home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / modula2 / library / modula2 / pckeys.mod < prev    next >
Text File  |  1987-07-14  |  4KB  |  152 lines

  1. IMPLEMENTATION MODULE PcKeys;
  2.  
  3. (**********************************************************)
  4. (*   ROLLINS MEDICAL/DENTAL SYSTEMS                       *)
  5. (*   360 CLAUSEN BUILDING                                 *)
  6. (*   23100 PROVIDENCE DRIVE                               *)
  7. (*   SOUTHFIELD, MI  48075-3677                           *)
  8. (*   -------------------------------------------------    *)
  9. (*  |                                                 |   *)
  10. (*  | Key Defs for Pc                                 |   *)
  11. (*  |                                                 |   *)
  12. (*   -------------------------------------------------    *)
  13. (*   Author: John Tal            Created: 04/22/1986      *)
  14. (*   Version:  2.00 a          Last Edit: 04/26/1986      *)
  15. (*                                                        *)
  16. (*   (C) Copyright 1986 ROLLINS MEDICAL/DENTAL SYSTEMS    *)
  17. (*       All Rights Reserved                              *)
  18. (*                                                        *)
  19. (*    Permission is hereby granted to use and modify the  *)
  20. (*  following module in the implementation of customized  *)
  21. (*  software.                                             *)
  22. (*    This permission includes the right to re-distribute *)
  23. (*  the original source code but does not include the     *)
  24. (*  right to redistribute modified source code of this    *)
  25. (*  program.                                              *)
  26. (**********************************************************)
  27.  
  28.  
  29. FROM SYSTEM IMPORT DOSCALL,BYTE;
  30. FROM Keyboard IMPORT KeyPressed;
  31.  
  32.  
  33. PROCEDURE MakeSpecial(b: CHAR; VAR c: ARRAY OF CHAR);
  34. BEGIN
  35.   c[0] := CHR(0);
  36.   c[1] := b;
  37. END MakeSpecial;
  38.  
  39. PROCEDURE CompareKey(keysA,keysB: ARRAY OF CHAR) : BOOLEAN;
  40. BEGIN
  41.   IF ORD(keysA[0]) = 0 THEN
  42.     IF ORD(keysA[0]) = ORD(keysB[0]) THEN
  43.       IF ORD(keysA[1]) = ORD(keysB[1]) THEN
  44.         RETURN TRUE;
  45.       ELSE
  46.         RETURN FALSE;
  47.       END;
  48.     ELSE
  49.       RETURN FALSE;
  50.     END;
  51.   ELSE
  52.     IF ORD(keysA[0]) = ORD(keysB[0]) THEN
  53.       RETURN TRUE;
  54.     ELSE
  55.       RETURN FALSE;
  56.     END;
  57.   END;
  58. END CompareKey;
  59.  
  60. PROCEDURE InKey(VAR keys: ARRAY OF CHAR) : BOOLEAN;
  61. VAR
  62.  keyfetch : BYTE;
  63. BEGIN
  64.   IF KeyPressed() THEN
  65.     DOSCALL(8H,keyfetch);
  66.     IF ORD(keyfetch) = 0 THEN
  67.        DOSCALL(8H,keyfetch);
  68.        keys[0] := CHR(0);
  69.        keys[1] := CHR(ORD(keyfetch));
  70.        RETURN(TRUE);
  71.      ELSE
  72.        keys[0] := CHR(ORD(keyfetch));
  73.        keys[1] := CHR(0);
  74.        RETURN(TRUE);
  75.     END
  76.    ELSE
  77.     RETURN(FALSE);
  78.   END;
  79. END InKey;
  80.  
  81. PROCEDURE SpecialKey(keys: ARRAY OF CHAR) : BOOLEAN;
  82. BEGIN
  83.   IF ORD(keys[0]) = 0 THEN
  84.     RETURN TRUE;
  85.   ELSE
  86.     RETURN FALSE;
  87.   END;
  88. END SpecialKey;
  89.  
  90. BEGIN
  91.   CarriageReturn := CHR(13);
  92.   BackSpace := CHR(8);
  93.   Tab := CHR(9);
  94.   Escape := CHR(27);
  95.   MakeSpecial(CHR(71),Home);
  96.   MakeSpecial(CHR(72),UpArrow);
  97.   MakeSpecial(CHR(73),PageUp);
  98.   MakeSpecial(CHR(75),LtArrow);
  99.   MakeSpecial(CHR(77),RtArrow);
  100.   MakeSpecial(CHR(79),End);
  101.   MakeSpecial(CHR(80),DnArrow);
  102.   MakeSpecial(CHR(81),PageDn);
  103.   MakeSpecial(CHR(82),Insert);
  104.   MakeSpecial(CHR(83),Delete);
  105.   MakeSpecial(CHR(15),ShiftTab);
  106.  
  107.   MakeSpecial(CHR(59),F1);
  108.   MakeSpecial(CHR(60),F2);
  109.   MakeSpecial(CHR(61),F3);
  110.   MakeSpecial(CHR(62),F4);
  111.   MakeSpecial(CHR(63),F5);
  112.   MakeSpecial(CHR(64),F6);
  113.   MakeSpecial(CHR(65),F7);
  114.   MakeSpecial(CHR(66),F8);
  115.   MakeSpecial(CHR(67),F9);
  116.   MakeSpecial(CHR(68),F10);
  117.  
  118.   MakeSpecial(CHR(84),ShF1);
  119.   MakeSpecial(CHR(85),ShF2);
  120.   MakeSpecial(CHR(86),ShF3);
  121.   MakeSpecial(CHR(87),ShF4);
  122.   MakeSpecial(CHR(88),ShF5);
  123.   MakeSpecial(CHR(89),ShF6);
  124.   MakeSpecial(CHR(90),ShF7);
  125.   MakeSpecial(CHR(91),ShF8);
  126.   MakeSpecial(CHR(92),ShF9);
  127.   MakeSpecial(CHR(93),ShF10);
  128.  
  129.   MakeSpecial(CHR(94),CtF1);
  130.   MakeSpecial(CHR(95),CtF2);
  131.   MakeSpecial(CHR(96),CtF3);
  132.   MakeSpecial(CHR(97),CtF4);
  133.   MakeSpecial(CHR(98),CtF5);
  134.   MakeSpecial(CHR(99),CtF6);
  135.   MakeSpecial(CHR(100),CtF7);
  136.   MakeSpecial(CHR(101),CtF8);
  137.   MakeSpecial(CHR(102),CtF9);
  138.   MakeSpecial(CHR(103),CtF10);
  139.  
  140.   MakeSpecial(CHR(104),AtF1);
  141.   MakeSpecial(CHR(105),AtF2);
  142.   MakeSpecial(CHR(106),AtF3);
  143.   MakeSpecial(CHR(107),AtF4);
  144.   MakeSpecial(CHR(108),AtF5);
  145.   MakeSpecial(CHR(109),AtF6);
  146.   MakeSpecial(CHR(110),AtF7);
  147.   MakeSpecial(CHR(111),AtF8);
  148.   MakeSpecial(CHR(112),AtF9);
  149.   MakeSpecial(CHR(113),AtF10);
  150.  
  151. END PcKeys.
  152.