home *** CD-ROM | disk | FTP | other *** search
-
- { Copyright (c) 1990 by Borland International, Inc. }
-
- (*
- Programs compiled with {$G} compiler directive enabled do not
- check the processor at runtime to determine whether it is
- 286-compatible. Trying to execute 80286 instructions on an 8086
- or an 8088 will lock up the computer. This program shows how to
- check for the presence of a 286-compatible chip at runtime.
-
- If you want to put code like this in a program with {$G+}
- enabled, put the test and halt code in the initialization
- section of the first unit in the main program's USES clause.
- *)
-
- program Test286;
-
- function Is286Able: Boolean; assembler;
- asm
- PUSHF
- POP BX
- AND BX,0FFFH
- PUSH BX
- POPF
- PUSHF
- POP BX
- AND BX,0F000H
- CMP BX,0F000H
- MOV AX,0
- JZ @@1
- MOV AX,1
- @@1:
- end;
-
- begin
- if not Is286Able then
- begin
- Writeln('Need an 80286-compatible system to run this program');
- Halt(1);
- end;
- end.