home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 04 / tricks / mktest.pas < prev    next >
Pascal/Delphi Source File  |  1991-01-08  |  3KB  |  90 lines

  1. (* ------------------------------------------------------ *)
  2. (*                    MKTEST.PAS                          *)
  3. (* ------------------------------------------------------ *)
  4. PROGRAM ManyKeyTest;
  5.  
  6. USES Crt, ManyKey;
  7.  
  8. CONST
  9.   KeyName : ARRAY [$01..$53] OF STRING [22] =
  10.           ('Esc','1','2','3','4','5','6',
  11.           '7','8','9','0','ß','''',#17#205,
  12.            'Tab','Q','W','E','R','T','Z',
  13.            'U','I','O','P','Ü','+',#17#205#205#190,
  14.            'Ctrl','A','S','D','F','G','H',
  15.            'J','K','L','Ö','Ä','<>',
  16.            #24#24#24#24#24,'#','Y','X','C',
  17.            'V','B','N','M',',','.','-',
  18.            #24#24#24#24#24,' * ','Alt',
  19.            '       Space-Bar      ','Caps',
  20.            'F1','F2','F3','F4','F5',
  21.            'F6','F7','F8','F9','F0',
  22.            'Num','Scroll ','Hom',' '#24' ',
  23.            'PUp',' - ',' '#27' ',' '#250' ',
  24.            ' '#26' ',' + ','End',' '#25' ',
  25.            'PDn','Insert ','Del');
  26.   KeyPos : ARRAY [$01..$53, 1..2] OF BYTE=
  27.           ((45,1),(11,1),(13,1),(15,1),(17,1),(19,1),(21,1),
  28.           (23,1),(25,1),(27,1),(29,1),(31,1),(33,1),(37,1),
  29.           (8,2),(12,2),(14,2),(16,2),(18,2),(20,2),(22,2),
  30.           (24,2),(26,2),(28,2),(30,2),(32,2),(34,2),(35,3),
  31.           (8,3),(13,3),(15,3),(17,3),(19,3),(21,3),(23,3),
  32.           (25,3),(27,3),(29,3),(31,3),(33,3),(8,1),
  33.           (8,4),(35,1),(14,4),(16,4),(18,4),
  34.           (20,4),(22,4),(24,4),(26,4),(28,4),(30,4),(32,4),
  35.           (34,4),(57,2),(8,5),
  36.           (12,5),(35,5),
  37.           (1,1),(4,1),(1,2),(4,2),(1,3),
  38.           (4,3),(1,4),(4,4),(1,5),(4,5),
  39.           (49,1),(53,1),(45,2),(49,2),
  40.           (53,2),(57,3),(45,3),(49,3),
  41.           (53,3),(57,4),(45,4),(49,4),
  42.           (53,4),(45,5),(53,5));
  43.  
  44. TYPE
  45.   TScreen = ARRAY [1..25, 1..80] OF WORD;
  46.  
  47. VAR
  48.   i   : INTEGER;
  49.   Scr : ^TScreen;
  50.  
  51.   PROCEDURE PutStr(x, y : BYTE; s : STRING);
  52.   VAR
  53.     i : BYTE;
  54.     w : WORD;
  55.   BEGIN
  56.     w := TextAttr SHL 8;
  57.     FOR i := 1 TO Length(s) DO
  58.       Scr^[y, x+i] := BYTE(s[i]) OR w;
  59.   END;
  60.  
  61. BEGIN
  62.   ClrScr;
  63.   IF Mem[$40:$49] = 7 THEN
  64.     Scr := Ptr($B000, $0000)
  65.   ELSE
  66.     Scr := Ptr($B800, $0000);
  67.   GotoXY(1, 15);
  68.   WriteLn('Dieses Programm ist eine Demonstration ',
  69.           'für »ManyKey«');
  70.   WriteLn;
  71.   WriteLn('»ManyKey« erlaubt die Abfrage mehrerer ',
  72.           'Tasten gleichzeitig!');
  73.   WriteLn;
  74.   WriteLn('[ESC] bricht das Programm ab.');
  75.   WriteLn;
  76.   WriteLn('(c) 1991 Hanno-Ekkehard Müller & TOOLBOX');
  77.   InitManyKey;
  78.   REPEAT
  79.     FOR i := $53 DOWNTO $01 DO BEGIN
  80.       IF ButtonPressed[i] THEN
  81.         TextAttr := $70
  82.       ELSE
  83.         TextAttr := $0F;
  84.       PutStr(KeyPos[i, 1]+5, KeyPos[i, 2]+3, KeyName[i]);
  85.     END;
  86.   UNTIL ButtonPressed[$01];
  87.   ReInitManyKey;
  88. END.
  89. (* ------------------------------------------------------ *)
  90. (*              Ende von MKTEST.PAS                       *)