home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1988-12-21 | 1.3 KB | 63 lines |
- (*------------------------------------------------------*)
- (* GRAPHDET.MOD *)
- (* (C) 1989 M.Schlöter & TOOLBOX *)
-
- IMPLEMENTATION MODULE GraphDetect;
-
- FROM SYSTEM IMPORT BYTE, Registers;
- IMPORT Lib;
- IMPORT IO;
- IMPORT Graph;
-
- CONST GetMode = 15;
- VGACheck = 1AH;
- Error = 0;
- Mono = 1;
- CGA = 2;
- EGA = 3;
- VGA = 4;
-
- VAR EGAFlag[0040H:00A8H] : BYTE;
-
- PROCEDURE AutoGraphInit() : BOOLEAN;
-
- VAR Regs : Registers;
- Mode : BYTE;
- Screen : INTEGER;
-
- BEGIN
- Regs.AH := GetMode;
- Lib.Intr(Regs,10H);
- Mode := Regs.AL;
-
- Screen := Error;
- IF (Mode = BYTE(7H)) OR (Mode = BYTE(87H)) THEN
- Screen := Mono; (* --> Hercules ! *)
- ELSE
- IF EGAFlag = BYTE(0) THEN
- Screen := CGA;
- ELSE
- Regs.AH := VGACheck;
- Regs.AL := 0;
- Lib.Intr(Regs,10H);
- IF Regs.AL = VGACheck THEN
- Screen := VGA
- ELSE
- Screen := EGA;
- END;
- END;
- END;
- CASE Screen OF
- Mono : Graph.InitHerc |
- CGA : Graph.InitCGA |
- EGA : Graph.InitEGA |
- VGA : Graph.InitVGA |
- ELSE
- IO.WrStr(">>> FEHLER IN DER GRAFIKKARTENERKENNUNG <<<");
- IO.WrLn;
- RETURN FALSE;
- END;
- RETURN TRUE;
- END AutoGraphInit;
-
- END GraphDetect.