home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / INCLUDE / PCSCAN.H < prev    next >
Text File  |  1990-10-17  |  7KB  |  236 lines

  1. /*
  2.     pcscan.h
  3.  
  4.     % Keyboard scan codes
  5.  
  6.     OWL-PC 1.2
  7.     Copyright (c) 1986, 1987, by Oakland Group, Inc.
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     Revision History:
  11.     -----------------
  12.     12/20/88 ted:    Extracted from scancode.h so scancode can conditionally
  13.                     include it if the version is DOS.
  14.  
  15.      6/07/89 jmd    Added new mouse codes
  16.  
  17.      9/27/89 ted    Redefined KEY_, MOU_, HARD_, and BOB_ codes to not be ASCII.
  18.     11/08/89 jmd    re-Redefined KEY_, MOU_, HARD_, and BOB_ codes to not be ASCII.
  19.                     (use 0x01xx instead of 0xFExx because many times scancodes
  20.                      are defined as ints,  skip 0x011B; it's ESC)
  21.      1/24/90 ted    Added HELP_KEY dummy scancode.
  22.      3/16/90 jmd    Added KEY_INVALID scancode.
  23.      5/12/90 jmd    converted to new scheme, moved pseudocodes to scancode.h
  24.                     changed values for ctrl alphabet
  25.      9/06/90 jmd    returned to direct scancode use
  26.      9/09/90 ted    added FN10/FN11 scancodes
  27.      9/10/90 ted    added CTRL_UP,DN,INS,DEL codes, KEY_DUMMY macro.
  28.     10/04/90 jmd    added casts to int to avoid turbo C++ complaints
  29.     10/16/90 jmd    added KEY_DUMMYVAL
  30. */
  31. /* -------------------------------------------------------------------------- */
  32.  
  33. /* Special codes for users and pseudo scancodes */
  34. /* Use key numbers for ScrollLock, NumLock, CapsLock; they're not used otherwise */
  35. #define KEY_USERVAL            0x4500
  36. #define KEY_PSEUDOVAL        0x4600
  37. #define KEY_DUMMYVAL        0x3A00
  38.  
  39. #define KEY_DUMMY(n)        (KEY_DUMMYVAL + (n))
  40.  
  41. /* Special HELP key not found on DOS machines' keyboards */
  42. #define HELP_KEY        KEY_DUMMY(0)
  43.  
  44. /* Pseudo - ascii keys */
  45. #define TAB                ((int) 0x0F09)
  46. #define BACKSPACE        ((int) 0x0E08)
  47. #define ENTER            ((int) 0x1C0D)
  48. #define ESC                ((int) 0x011B)
  49. #define GREYPLUS        ((int) 0x4E2B)
  50. #define GREYMINUS        ((int) 0x4A2D)
  51.  
  52. /* Other special PC - defined keys */
  53. #define CTRL_BACKSPACE    ((int) 0x0E7F)
  54. #define    PRTSC            ((int) 0x372A)
  55.  
  56. #define    CTRL_PRTSC        ((int) 0x7200)
  57. #define SHFT_TAB        ((int) 0x0F00)
  58. #define    CTRL_2            ((int) 0x0300)
  59.  
  60. #define    CTRL_6            ((int) 0x071E)
  61. #define    CTRL_HYPHEN        ((int) 0x0C1F)
  62. #define CTRL_BS            ((int) 0x2B1C)        /* back slash */
  63.  
  64. /*     Cursor Keys        */
  65.  
  66. #define LEFT            ((int) 0x4B00)
  67. #define RIGHT            ((int) 0x4D00)
  68. #define UP                ((int) 0x4800)
  69. #define DOWN            ((int) 0x5000)
  70. #define HOME            ((int) 0x4700)
  71. #define END                ((int) 0x4F00)
  72. #define PGUP            ((int) 0x4900)
  73. #define PGDN            ((int) 0x5100)
  74. #define INS                ((int) 0x5200)
  75. #define DEL                ((int) 0x5300)
  76.  
  77. /* CTRL  Cursor keys */
  78.  
  79. #define CTRL_LEFT        ((int) 0x7300)
  80. #define CTRL_RIGHT        ((int) 0x7400)
  81. #define CTRL_UP            ((int) 0x8D00)
  82. #define CTRL_DOWN        ((int) 0x9100)
  83. #define CTRL_HOME        ((int) 0x7700)
  84. #define CTRL_END        ((int) 0x7500)
  85. #define CTRL_PGUP        ((int) 0x8400)
  86. #define CTRL_PGDN        ((int) 0x7600)
  87. #define CTRL_INS        ((int) 0x9200)
  88. #define CTRL_DEL        ((int) 0x9300)
  89.  
  90. /* Shift Cursor keys */
  91.  
  92. #define SHFT_LEFT        ((int) 0x4B34)
  93. #define SHFT_RIGHT        ((int) 0x4D36)
  94. #define SHFT_UP            ((int) 0x4838)
  95. #define SHFT_DOWN        ((int) 0x5032)
  96. #define SHFT_HOME        ((int) 0x4737)
  97. #define SHFT_END        ((int) 0x4F31)
  98. #define SHFT_PGUP        ((int) 0x4939)
  99. #define SHFT_PGDN        ((int) 0x5133)
  100. #define SHFT_INS        ((int) 0x5230)
  101. #define SHFT_DEL        ((int) 0x532E)
  102.  
  103. /* Function Keys    */
  104.  
  105. #define FN1                ((int) 0x3B00)
  106. #define FN2                ((int) 0x3C00)
  107. #define FN3                ((int) 0x3D00)
  108. #define FN4                ((int) 0x3E00)
  109. #define FN5                ((int) 0x3F00)
  110. #define FN6                ((int) 0x4000)
  111. #define FN7                ((int) 0x4100)
  112. #define FN8                ((int) 0x4200)
  113. #define FN9                ((int) 0x4300)
  114. #define FN10            ((int) 0x4400)
  115. #define FN11            ((int) 0x8500)
  116. #define FN12            ((int) 0x8600)
  117.  
  118. /* Shift Function Keys    */
  119.  
  120. #define SHFT_FN1        ((int) 0x5400)
  121. #define SHFT_FN2        ((int) 0x5500)
  122. #define SHFT_FN3        ((int) 0x5600)
  123. #define SHFT_FN4        ((int) 0x5700)
  124. #define SHFT_FN5        ((int) 0x5800)
  125. #define SHFT_FN6        ((int) 0x5900)
  126. #define SHFT_FN7        ((int) 0x5A00)
  127. #define SHFT_FN8        ((int) 0x5B00)
  128. #define SHFT_FN9        ((int) 0x5C00)
  129. #define SHFT_FN10        ((int) 0x5D00)
  130. #define SHFT_FN11        ((int) 0x8700)
  131. #define SHFT_FN12        ((int) 0x8800)
  132.  
  133. /* CTRL  Function Keys    */
  134.  
  135. #define CTRL_FN1        ((int) 0x5E00)
  136. #define CTRL_FN2        ((int) 0x5F00)
  137. #define CTRL_FN3        ((int) 0x6000)
  138. #define CTRL_FN4        ((int) 0x6100)
  139. #define CTRL_FN5        ((int) 0x6200)
  140. #define CTRL_FN6        ((int) 0x6300)
  141. #define CTRL_FN7        ((int) 0x6400)
  142. #define CTRL_FN8        ((int) 0x6500)
  143. #define CTRL_FN9        ((int) 0x6600)
  144. #define CTRL_FN10        ((int) 0x6700)
  145. #define CTRL_FN11        ((int) 0x8900)
  146. #define CTRL_FN12        ((int) 0x8A00)
  147.  
  148. /* ALT   Function Keys    */
  149.  
  150. #define ALT_FN1            ((int) 0x6800)
  151. #define ALT_FN2            ((int) 0x6900)
  152. #define ALT_FN3            ((int) 0x6A00)
  153. #define ALT_FN4            ((int) 0x6B00)
  154. #define ALT_FN5            ((int) 0x6C00)
  155. #define ALT_FN6            ((int) 0x6D00)
  156. #define ALT_FN7            ((int) 0x6E00)
  157. #define ALT_FN8            ((int) 0x6F00)
  158. #define ALT_FN9            ((int) 0x7000)
  159. #define ALT_FN10        ((int) 0x7100)
  160. #define ALT_FN11        ((int) 0x8B00)
  161. #define ALT_FN12        ((int) 0x8C00)
  162.  
  163. /* CTRL  Alphabet        */
  164.  
  165. #define CTRLC            ((int) CTRL_C)        /* 1.0 compatible */
  166.  
  167. #define CTRL_A            ((int) 0x1E01)
  168. #define CTRL_B            ((int) 0x3002)
  169. #define CTRL_C            ((int) 0x2E03)
  170. #define CTRL_D            ((int) 0x2004)
  171. #define CTRL_E            ((int) 0x1205)
  172. #define CTRL_F            ((int) 0x2106)
  173. #define CTRL_G            ((int) 0x2207)
  174. #define CTRL_H            ((int) 0x2308)
  175. #define CTRL_I            ((int) 0x1709)
  176. #define CTRL_J            ((int) 0x240A)
  177. #define CTRL_K            ((int) 0x250B)
  178. #define CTRL_L            ((int) 0x260C)
  179. #define CTRL_M            ((int) 0x320D)
  180. #define CTRL_N            ((int) 0x310E)
  181. #define CTRL_O            ((int) 0x180F)
  182. #define CTRL_P            ((int) 0x1910)
  183. #define CTRL_Q            ((int) 0x1011)
  184. #define CTRL_R            ((int) 0x1312)
  185. #define CTRL_S            ((int) 0x1F13)
  186. #define CTRL_T            ((int) 0x1414)
  187. #define CTRL_U            ((int) 0x1615)
  188. #define CTRL_V            ((int) 0x2F16)
  189. #define CTRL_W            ((int) 0x1117)
  190. #define CTRL_X            ((int) 0x2D18)
  191. #define CTRL_Y            ((int) 0x1519)
  192. #define CTRL_Z            ((int) 0x2C1A)
  193.  
  194. /* ALT   Alphabet        */
  195.  
  196. #define    ALT_1            ((int) 0x7800)
  197. #define    ALT_2            ((int) 0x7900)
  198. #define    ALT_3            ((int) 0x7A00)
  199. #define    ALT_4            ((int) 0x7B00)
  200. #define    ALT_5            ((int) 0x7C00)
  201. #define    ALT_6            ((int) 0x7D00)
  202. #define    ALT_7            ((int) 0x7E00)
  203. #define    ALT_8            ((int) 0x7F00)
  204. #define    ALT_9            ((int) 0x8000)
  205. #define    ALT_0            ((int) 0x8100)
  206. #define    ALT_HYPHEN        ((int) 0x8200)
  207. #define    ALT_EQUALS        ((int) 0x8300)
  208.  
  209. #define ALT_A            ((int) 0x1E00)
  210. #define ALT_B            ((int) 0x3000)
  211. #define ALT_C            ((int) 0x2E00)
  212. #define ALT_D            ((int) 0x2000)
  213. #define ALT_E            ((int) 0x1200)
  214. #define ALT_F            ((int) 0x2100)
  215. #define ALT_G            ((int) 0x2200)
  216. #define ALT_H            ((int) 0x2300)
  217. #define ALT_I            ((int) 0x1700)
  218. #define ALT_J            ((int) 0x2400)
  219. #define ALT_K            ((int) 0x2500)
  220. #define ALT_L            ((int) 0x2600)
  221. #define ALT_M            ((int) 0x3200)
  222. #define ALT_N            ((int) 0x3100)
  223. #define ALT_O            ((int) 0x1800)
  224. #define ALT_P            ((int) 0x1900)
  225. #define ALT_Q            ((int) 0x1000)
  226. #define ALT_R            ((int) 0x1300)
  227. #define ALT_S            ((int) 0x1F00)
  228. #define ALT_T            ((int) 0x1400)
  229. #define ALT_U            ((int) 0x1600)
  230. #define ALT_V            ((int) 0x2F00)
  231. #define ALT_W            ((int) 0x1100)
  232. #define ALT_X            ((int) 0x2D00)
  233. #define ALT_Y            ((int) 0x1500)
  234. #define ALT_Z            ((int) 0x2C00)
  235.  
  236.