home *** CD-ROM | disk | FTP | other *** search
/ On Disk Monthly 62 / odm62.zip / GDSOURCE.EXE / KEYGLOB.PAS < prev    next >
Pascal/Delphi Source File  |  1991-10-14  |  4KB  |  131 lines

  1. {$A-}
  2. unit keyglob;
  3.  
  4. interface
  5.  
  6. {  note:  order of precedence of shift keys when two or more are pressed at
  7.    the same time is
  8.    Alt  Ctrl  Shift  }
  9.  
  10. CONST NULL      =  #0;
  11. CONST SPACE     = ' ';
  12. CONST ESC       = #27;
  13. CONST CR        = #13;
  14. CONST BACKSPACE =  #8;
  15.  
  16. CONST MOUSEKEY = $FFFF;
  17. CONST NOKEY    =     0;
  18. CONST BKSPC    = $0E08;
  19. CONST ESCKY    = $011B;
  20. CONST CRKEY    = $1C0D;
  21. CONST TAB      = $0F09;
  22. CONST SHTAB    = $0F0F;
  23. CONST SPACEBAR = $3920;
  24.  
  25. CONST UPARR  = $4800; DNARR =  $5000;
  26. CONST LFARR  = $4B00; RTARR =  $4D00;
  27. CONST HOMKY  = $4700; ENDKY =  $4F00;
  28. CONST PGUPK  = $4900; PGDNK =  $5100;
  29. CONST INSKY  = $5200; DELKY =  $5300;
  30.  
  31. CONST KUPARR = $4838; KDNARR = $5032;
  32. CONST KLFARR = $4B34; KRTARR = $4D36;
  33. CONST KHOMKY = $4737; KENDKY = $4F31;
  34. CONST KPGUPK = $4939; KPGDNK = $5133;
  35. CONST KINSKY = $5230; KDELKY = $533E;
  36. CONST KFIVE  = $4C35;
  37. CONST KPLUS  = $502B; KMINUS = $4E2D;
  38.  
  39. CONST CTRLLF = $7300; CTRLRT = $7400;
  40. CONST CTRLHM = $7700; CTRLEN = $7500;
  41. CONST CTRLPD = $7600; CTRLPU = $8400;
  42.  
  43. CONST F1     = $3B00;    F2  = $3C00;
  44. CONST F3     = $3D00;    F4  = $3E00;
  45. CONST F5     = $3F00;    F6  = $4000;
  46. CONST F7     = $4100;    F8  = $4200;
  47. CONST F9     = $4300;   F10  = $4400;
  48. CONST SF1    = $5400;    SF2 = $5500;
  49. CONST SF3    = $5600;    SF4 = $5700;
  50. CONST SF5    = $5800;    SF6 = $5900;
  51. CONST SF7    = $5A00;    SF8 = $5B00;
  52. CONST SF9    = $5C00;   SF10 = $5D00;
  53. CONST CF1    = $5E00;    CF2 = $5F00;
  54. CONST CF3    = $6000;    CF4 = $6100;
  55. CONST CF5    = $6200;    CF6 = $6300;
  56. CONST CF7    = $6400;    CF8 = $6500;
  57. CONST CF9    = $6600;   CF10 = $6700;
  58. CONST AF1    = $6800;    AF2 = $6900;
  59. CONST AF3    = $6A00;    AF4 = $6B00;
  60. CONST AF5    = $6C00;    AF6 = $6D00;
  61. CONST AF7    = $6E00;    AF8 = $6F00;
  62. CONST AF9    = $7000;   AF10 = $7100;
  63.  
  64. CONST ALTA   = $1E00;   ALTB = $3000;
  65. CONST ALTC   = $2E00;   ALTD = $2000;
  66. CONST ALTE   = $1200;   ALTF = $2100;
  67. CONST ALTG   = $2200;   ALTH = $2300;
  68. CONST ALTI   = $1700;   ALTJ = $2400;
  69. CONST ALTK   = $2500;   ALTL = $2600;
  70. CONST ALTM   = $3200;   ALTN = $3100;
  71. CONST ALTO   = $1800;   ALTP = $1900;
  72. CONST ALTQ   = $1000;   ALTR = $1300;
  73. CONST ALTS   = $1F00;   ALTT = $1400;
  74. CONST ALTU   = $1600;   ALTV = $2F00;
  75. CONST ALTW   = $1100;   ALTX = $2D00;
  76. CONST ALTY   = $1500;   ALTZ = $2C00;
  77.  
  78. CONST CTLA   = $1E01;   CTLB = $3002;
  79. CONST CTLC   = $2E03;   CTLD = $2004;
  80. CONST CTLE   = $1205;   CTLF = $2106;
  81. CONST CTLG   = $2207;   CTLH = $2308;
  82. CONST CTLI   = $1709;   CTLJ = $240A;
  83. CONST CTLK   = $250B;   CTLL = $260C;
  84. CONST CTLM   = $320D;   CTLN = $310E;
  85. CONST CTLO   = $180F;   CTLP = $1910;
  86. CONST CTLQ   = $1011;   CTLR = $1312;
  87. CONST CTLS   = $1F13;   CTLT = $1414;
  88. CONST CTLU   = $1615;   CTLV = $2F16;
  89. CONST CTLW   = $1117;   CTLX = $2D18;
  90. CONST CTLY   = $1519;   CTLZ = $2C1A;
  91.  
  92. CONST ALT1   = $7800;   ALT2 = $7900;
  93. CONST ALT3   = $7A00;   ALT4 = $7B00;
  94. CONST ALT5   = $7C00;   ALT6 = $7D00;
  95. CONST ALT7   = $7E00;   ALT8 = $7F00;
  96. CONST ALT9   = $8000;   ALT0 = $8100;
  97. CONST ALTMINUS = $8200; ALTEQUAL = $8300;
  98.  
  99. VAR GLOBCH : CHAR;
  100.     GLOBSC : BYTE;
  101.     GLOBKEY: WORD ABSOLUTE GLOBCH;
  102.  
  103. FUNCTION InKey: word;
  104. FUNCTION GetKey: word;
  105.  
  106. implementation
  107.  
  108. FUNCTION InKey: word;
  109. BEGIN
  110. Inline(
  111.   $B4/$01/         {   MOV      AH,1      }
  112.   $CD/$16/         {   INT      $16       }
  113.   $B8/$00/$00/     {   MOV      AX,0      }
  114.   $74/$02/         {   JZ       exit      }
  115.   $CD/$16/         {   INT      $16       }
  116.   $89/$46/$FE      {   MOV      [BP-2],AX}
  117. )
  118. END;
  119.  
  120. FUNCTION GetKey: word;
  121. BEGIN
  122. Inline(
  123.   $B4/$00/         {   MOV      AH,0      }
  124.   $CD/$16/         {   INT      $16       }
  125.   $89/$46/$FE      {   MOV      [BP-2],AX }
  126. )
  127. END;
  128.  
  129. END.
  130.  
  131.