home *** CD-ROM | disk | FTP | other *** search
- {$A+,B-,D-,E-,F-,G-,I-,L-,N-,O-,P-,Q-,R-,S-,T-,V-,X-}
- {$M 16384,0,655360}
- (*===================================================================*)
- (* NOBGI.PAS *)
- (* Copyright (C) 1993 te-wi Verlag, München *)
- (* Demonstration für das Schalten in den Grafikmodus ohne BGI *)
- (*===================================================================*)
- PROGRAM NoBGIButGraphics;
-
- USES
- DOS;
-
- VAR
- LastMode: BYTE;
- Regs : Registers;
-
- FUNCTION GetAttr: BYTE;
- BEGIN
- Regs.AH := 8;
- Regs.BH := BYTE(Ptr($40, $62)^);
- Intr($10, Regs);
- GetAttr := Regs.AH;
- END;
-
- PROCEDURE Locate(x, y: BYTE);
- BEGIN
- Regs.AH := 2;
- Regs.BH := 0;
- Regs.DH := x;
- Regs.DL := y;
- END;
-
- PROCEDURE ClearScreen;
- VAR
- color: BYTE;
- BEGIN
- color := GetAttr;
- ASM
- MOV AH, 6
- MOV AL, 0
- MOV CH, 0
- MOV CL, 0
- MOV DH, 24
- MOV DL, 79
- MOV BH, color
- INT 10h
- END;
- END;
-
- PROCEDURE SetGraphMode(Mode: BYTE);
- VAR
- om: BYTE;
- BEGIN
- ASM
- MOV BX, 40h
- MOV DS, BX
- MOV BX, 49h
- MOV AL, DS:[BX]
- MOV om, AL
- XOR AH, AH
- MOV AL, Mode;
- INT 10h
- END;
- LastMode := om;
- END;
-
- BEGIN
- SetGraphMode($10);
- WriteLn('Test 1');
- ReadLn;
- ClearScreen;
- WriteLn('Test 2');
- Locate(79,0);
- ReadLn;
- SetGraphMode(LastMode);
- END.
-
- (*===================================================================*)