home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
1991
/
04
/
tricks
/
mktest.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-01-08
|
3KB
|
90 lines
(* ------------------------------------------------------ *)
(* MKTEST.PAS *)
(* ------------------------------------------------------ *)
PROGRAM ManyKeyTest;
USES Crt, ManyKey;
CONST
KeyName : ARRAY [$01..$53] OF STRING [22] =
('Esc','1','2','3','4','5','6',
'7','8','9','0','ß','''',#17#205,
'Tab','Q','W','E','R','T','Z',
'U','I','O','P','Ü','+',#17#205#205#190,
'Ctrl','A','S','D','F','G','H',
'J','K','L','Ö','Ä','<>',
#24#24#24#24#24,'#','Y','X','C',
'V','B','N','M',',','.','-',
#24#24#24#24#24,' * ','Alt',
' Space-Bar ','Caps',
'F1','F2','F3','F4','F5',
'F6','F7','F8','F9','F0',
'Num','Scroll ','Hom',' '#24' ',
'PUp',' - ',' '#27' ',' '#250' ',
' '#26' ',' + ','End',' '#25' ',
'PDn','Insert ','Del');
KeyPos : ARRAY [$01..$53, 1..2] OF BYTE=
((45,1),(11,1),(13,1),(15,1),(17,1),(19,1),(21,1),
(23,1),(25,1),(27,1),(29,1),(31,1),(33,1),(37,1),
(8,2),(12,2),(14,2),(16,2),(18,2),(20,2),(22,2),
(24,2),(26,2),(28,2),(30,2),(32,2),(34,2),(35,3),
(8,3),(13,3),(15,3),(17,3),(19,3),(21,3),(23,3),
(25,3),(27,3),(29,3),(31,3),(33,3),(8,1),
(8,4),(35,1),(14,4),(16,4),(18,4),
(20,4),(22,4),(24,4),(26,4),(28,4),(30,4),(32,4),
(34,4),(57,2),(8,5),
(12,5),(35,5),
(1,1),(4,1),(1,2),(4,2),(1,3),
(4,3),(1,4),(4,4),(1,5),(4,5),
(49,1),(53,1),(45,2),(49,2),
(53,2),(57,3),(45,3),(49,3),
(53,3),(57,4),(45,4),(49,4),
(53,4),(45,5),(53,5));
TYPE
TScreen = ARRAY [1..25, 1..80] OF WORD;
VAR
i : INTEGER;
Scr : ^TScreen;
PROCEDURE PutStr(x, y : BYTE; s : STRING);
VAR
i : BYTE;
w : WORD;
BEGIN
w := TextAttr SHL 8;
FOR i := 1 TO Length(s) DO
Scr^[y, x+i] := BYTE(s[i]) OR w;
END;
BEGIN
ClrScr;
IF Mem[$40:$49] = 7 THEN
Scr := Ptr($B000, $0000)
ELSE
Scr := Ptr($B800, $0000);
GotoXY(1, 15);
WriteLn('Dieses Programm ist eine Demonstration ',
'für »ManyKey«');
WriteLn;
WriteLn('»ManyKey« erlaubt die Abfrage mehrerer ',
'Tasten gleichzeitig!');
WriteLn;
WriteLn('[ESC] bricht das Programm ab.');
WriteLn;
WriteLn('(c) 1991 Hanno-Ekkehard Müller & TOOLBOX');
InitManyKey;
REPEAT
FOR i := $53 DOWNTO $01 DO BEGIN
IF ButtonPressed[i] THEN
TextAttr := $70
ELSE
TextAttr := $0F;
PutStr(KeyPos[i, 1]+5, KeyPos[i, 2]+3, KeyName[i]);
END;
UNTIL ButtonPressed[$01];
ReInitManyKey;
END.
(* ------------------------------------------------------ *)
(* Ende von MKTEST.PAS *)