home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
1991
/
04
/
tricks
/
manykey.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-01-08
|
2KB
|
66 lines
(* ------------------------------------------------------ *)
(* MANYKEY.PAS *)
(* Unit zur direkten Abfrage mehrerer Tasten gleichzeitig *)
(* (c) 1991 Hanno-Ekkehard Müller & TOOLBOX *)
(* ------------------------------------------------------ *)
UNIT ManyKey;
INTERFACE
USES Dos;
CONST
InitFlag : BOOLEAN = FALSE;
{ ein Flag, um Katastrophen zu vermeiden }
VAR
ButtonPressed : ARRAY [$00..$7F] OF BOOLEAN;
{ wenn TRUE, dann gedrückt }
PROCEDURE InitManyKey;
PROCEDURE ReInitManyKey;
IMPLEMENTATION
VAR
SaveInt09,
SaveExitProc : Pointer;
PROCEDURE Int09; EXTERNAL; {$L INT09}
PROCEDURE InitManyKey;
{ Installierung unserer eigenen Interrupt-Prozedur }
BEGIN
IF NOT InitFlag THEN BEGIN
FillChar(ButtonPressed, 128, CHAR(FALSE));
GetIntVec($09, SaveInt09);
SetIntVec($09, @Int09);
InitFlag := TRUE;
END;
END;
PROCEDURE ReInitManyKey;
{ Normalen Zustand wiederherstellen }
BEGIN
IF InitFlag THEN BEGIN
SetIntVec($09, SaveInt09);
InitFlag := FALSE;
END;
END;
{$F+}
PROCEDURE ManyKeyExit;
{ Damit Laufzeitfehler nicht zum Verhängnis werden... }
BEGIN
ReInitManyKey;
ExitProc := SaveExitProc;
END;
{$F-}
BEGIN
SaveExitProc := ExitProc;
ExitProc := @ManyKeyExit;
END.
(* ------------------------------------------------------ *)
(* Ende von MANYKEY.PAS *)