unit Apricot;
interface
- type
- ScreenModeT = (ScreenModeText, ScreenModeGfx);
+ type
+ ScreenModeT = (ScreenModeText, ScreenModeGfx);
- { Standard Crt-like functions }
- function ReadKey: Char;
- function KeyPressed: Boolean;
+ { Standard Crt-like functions }
+ function ReadKey: Char;
+ function KeyPressed: Boolean;
procedure Delay(const ms: Word);
- { Screen }
- { true if screen is on; false otherwise }
- function ScreenIsOn: Boolean;
- { Mode 0: Text, Mode 1: Graphics }
- procedure ScreenMode(const mode: ScreenModeT);
- procedure ScreenOn(const on: Boolean);
+ { Screen }
+ { true if screen is on; false otherwise }
+ function ScreenIsOn: Boolean;
+ { Mode 0: Text, Mode 1: Graphics }
+ procedure ScreenMode(const mode: ScreenModeT);
+ procedure ScreenOn(const on: Boolean);
var CurrentScreenMode: ScreenModeT;
implementation
- uses Dos;
+ uses Dos;
- function IntDos1(cmd: Byte): Byte;
- var r: Registers;
- begin
- r.AX := cmd shl 8;
- Intr($21, r);
- IntDos1 := Byte(r.AX);
- end;
+ function IntDos1(cmd: Byte): Byte;
+ var r: Registers;
+ begin
+ r.AX := cmd shl 8;
+ Intr($21, r);
+ IntDos1 := Byte(r.AX);
+ end;
- function ReadKey: Char;
- begin
- ReadKey := Char(IntDos1(8));
- end;
+ function ReadKey: Char;
+ begin
+ ReadKey := Char(IntDos1(8));
+ end;
- function KeyPressed: Boolean;
- begin
- KeyPressed := Boolean(IntDos1($0B));
- end;
+ function KeyPressed: Boolean;
+ begin
+ KeyPressed := Boolean(IntDos1($0B));
+ end;
procedure Delay(const ms: Word);
var t0, t1: Longint;
until t0 >= t1;
end;
- function Control(dev, com, dat: Word): Word;
- var r: Registers;
- begin
- r.BX := dev;
- r.CX := com;
- r.DX := dat;
- Intr($FC, r);
- Control := r.AX;
- end;
+ function Control(dev, com, dat: Word): Word;
+ var r: Registers;
+ begin
+ r.BX := dev;
+ r.CX := com;
+ r.DX := dat;
+ Intr($FC, r);
+ Control := r.AX;
+ end;
- function ScreenIsOn: Boolean;
- begin
- ScreenIsOn := not Boolean(Control($31, 0, 0));
- end;
+ function ScreenIsOn: Boolean;
+ begin
+ ScreenIsOn := not Boolean(Control($31, 0, 0));
+ end;
- procedure ScreenMode(const mode: ScreenModeT);
- begin
- Control($31, 1, Word(mode));
+ procedure ScreenMode(const mode: ScreenModeT);
+ begin
+ Control($31, 1, Word(mode));
CurrentScreenMode := mode;
- end;
+ end;
- procedure ScreenOn(const on: Boolean);
- begin
- Control($31, 2, Word(not on));
- end;
+ procedure ScreenOn(const on: Boolean);
+ begin
+ Control($31, 2, Word(not on));
+ end;
end.