home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / xbase / library / clipper / keyboard / keycod / keycod.ch
Encoding:
Text File  |  1991-07-18  |  14.9 KB  |  378 lines

  1. // KEYCODES.CH
  2. // This file contains the inkey() codes for every possible key combination
  3. // available on an IBM PS2/70.    These should be valid for IBM compatible
  4. // computers as well.  Where possible - the names match inkey.ch.
  5. // This file can be use in place in inkey.ch if desired.
  6. // Note: Some keys when used with SHIFT, CONTROL, or ALTERNATE will produce
  7. //     the same code as they normally do.  Some produce no code at all.
  8. // Ronald W. Frazier  07/02/91     CIS ID: 70312,2450
  9. // Note: I have made every effort to cross-check these numbers.  They
  10. //       were obtained by punching each key on the keyboard and writing
  11. //       down what lastkey() returned.  However, I had no practical way
  12. //       to TEST every single one.  Keep this in mind when debugging.
  13.  
  14. // ***********************  NORMAL KEYS  **************************
  15.  
  16. #define K_ESC             27        // ESC
  17.  
  18. // ***********************  FUNCTION KEYS  **************************
  19.  
  20. #define K_F1             28        // F1
  21. #define K_F2             -1        // F2
  22. #define K_F3             -2        // F3
  23. #define K_F4             -3        // F4
  24. #define K_F5             -4        // F5
  25. #define K_F6             -5        // F6
  26. #define K_F7             -6        // F7
  27. #define K_F8             -7        // F8
  28. #define K_F9             -8        // F9
  29. #define K_F10             -9        // F10
  30. #define K_F11             -40       // F11
  31. #define K_F12             -41       // F12
  32.  
  33. // ***********************  NUMBER KEYS  **************************
  34.  
  35. #define K_BK_APPOS         96        // BK_APPOS - `
  36. #define K_1             49        // 1
  37. #define K_2             50        // 2
  38. #define K_3             51        // 3
  39. #define K_4             52        // 4
  40. #define K_5             53        // 5
  41. #define K_6             54        // 6
  42. #define K_7             55        // 7
  43. #define K_8             56        // 8
  44. #define K_9             57        // 9
  45. #define K_0             48        // 0
  46. #define K_MINUS          45        // MINUS - -
  47. #define K_EQUAL          61        // EQUAL - =
  48.  
  49. // ***********************  SPECIAL KEYS  **************************
  50.  
  51. #define K_BS             08        // BS
  52. #define K_TAB             09        // TAB
  53. #define K_ENTER          13        // ENTER
  54. #define K_RETURN         13        // RETURN
  55.  
  56. // ***********************  ALPHA KEYS    **************************
  57.  
  58. #define K_SPACEBAR         32        // SPACEBAR
  59. #define K_A             97        // A
  60. #define K_B             98        // B
  61. #define K_C             99        // C
  62. #define K_D             100       // D
  63. #define K_E             101       // E
  64. #define K_F             102       // F
  65. #define K_G             103       // G
  66. #define K_H             104       // H
  67. #define K_I             105       // I
  68. #define K_J             106       // J
  69. #define K_K             107       // K
  70. #define K_L             108       // L
  71. #define K_M             109       // M
  72. #define K_N             110       // N
  73. #define K_O             111       // O
  74. #define K_P             112       // P
  75. #define K_Q             113       // Q
  76. #define K_R             114       // R
  77. #define K_S             115       // S
  78. #define K_T             116       // T
  79. #define K_U             117       // U
  80. #define K_V             118       // V
  81. #define K_W             119       // W
  82. #define K_X             120       // X
  83. #define K_Y             121       // Y
  84. #define K_Z             122       // Z
  85. #define K_LF_BRKT         91        // LF_BRKT - [
  86. #define K_RT_BRKT         93        // RT_BRKT - ]
  87. #define K_BK_SLASH         92        // BK_SLASH - \
  88. #define K_SEMI             59        // SEMI - ;
  89. #define K_APPOS          39        // APPOS - '
  90. #define K_COMMA          44        // COMMA - ,
  91. #define K_PERIOD         46        // PERIOD - .
  92. #define K_SLASH          47        // SLASH - /
  93.  
  94. // ***********************  KEYPAD KEYS  **************************
  95.  
  96. #define K_INS             22        // INS
  97. #define K_DEL             07        // DEL
  98. #define K_HOME             01        // HOME
  99. #define K_END             06        // END
  100. #define K_PGUP             18        // PGUP
  101. #define K_PGDN             03        // PGDN
  102. #define K_UP             05        // UP
  103. #define K_DOWN             24        // DOWN
  104. #define K_LEFT             19        // LEFT
  105. #define K_RIGHT          04        // RIGHT
  106.  
  107. // ***********************  SHIFTED KEYS  **************************
  108.  
  109. #define K_SH_ESC         27        // SH_ESC
  110.  
  111. // ***********************  SHIFTED FUNCTION KEYS  **************************
  112.  
  113. #define K_SH_F1          -10       // SH_F1
  114. #define K_SH_F2          -11       // SH_F2
  115. #define K_SH_F3          -12       // SH_F3
  116. #define K_SH_F4          -13       // SH_F4
  117. #define K_SH_F5          -14       // SH_F5
  118. #define K_SH_F6          -15       // SH_F6
  119. #define K_SH_F7          -16       // SH_F7
  120. #define K_SH_F8          -17       // SH_F8
  121. #define K_SH_F9          -18       // SH_F9
  122. #define K_SH_F10         -19       // SH_F10
  123. #define K_SH_F11         -42       // SH_F11
  124. #define K_SH_F12         -43       // SH_F12
  125.  
  126. // ***********************  SHIFTED NUMBER KEYS  **************************
  127.  
  128. #define K_TILDE          126       // TILDE - ~
  129. #define K_EXCLAM         33        // EXCLAM - !
  130. #define K_AT             64        // AT - @
  131. #define K_NUMBER         35        // NUMBER - #
  132. #define K_POUND          35        // POUND - #
  133. #define K_DOLLAR         36        // DOLLAR - $
  134. #define K_PERCENT         37        // PERCENT - %
  135. #define K_CARET          94        // CARET - ^
  136. #define K_AMPERSAND         38        // AMPERSAND - &
  137. #define K_ASTERISK         42        // ASTERISK - *
  138. #define K_LF_PAREN         40        // LF_PAREN - (
  139. #define K_RT_PAREN         41        // RT_PAREN - )
  140. #define K_UNDERSCORE         95        // UNDERSCORE - _
  141. #define K_PLUS             43        // PLUS - +
  142.  
  143. // ***********************  SHIFTED SPECIAL KEYS  **************************
  144.  
  145. #define K_SH_BS          08        // SH_BS
  146. #define K_SH_TAB         271       // SH_TAB
  147. #define K_SH_ENTER         13        // SH_ENTER
  148. #define K_SH_RETURN         13        // SH_RETURN
  149.  
  150. // ***********************  SHIFTED ALPHA KEYS    **************************
  151.  
  152. #define K_SH_SPACEBAR         32        // SH_SPACEBAR
  153. #define K_CAP_A          65        // CAP_A
  154. #define K_CAP_B          66        // CAP_B
  155. #define K_CAP_C          67        // CAP_C
  156. #define K_CAP_D          68        // CAP_D
  157. #define K_CAP_E          69        // CAP_E
  158. #define K_CAP_F          70        // CAP_F
  159. #define K_CAP_G          71        // CAP_G
  160. #define K_CAP_H          72        // CAP_H
  161. #define K_CAP_I          73        // CAP_I
  162. #define K_CAP_J          74        // CAP_J
  163. #define K_CAP_K          75        // CAP_K
  164. #define K_CAP_L          76        // CAP_L
  165. #define K_CAP_M          77        // CAP_M
  166. #define K_CAP_N          78        // CAP_N
  167. #define K_CAP_O          79        // CAP_O
  168. #define K_CAP_P          80        // CAP_P
  169. #define K_CAP_Q          81        // CAP_Q
  170. #define K_CAP_R          82        // CAP_R
  171. #define K_CAP_S          83        // CAP_S
  172. #define K_CAP_T          84        // CAP_T
  173. #define K_CAP_U          85        // CAP_U
  174. #define K_CAP_V          86        // CAP_V
  175. #define K_CAP_W          87        // CAP_W
  176. #define K_CAP_X          88        // CAP_X
  177. #define K_CAP_Y          89        // CAP_Y
  178. #define K_CAP_Z          90        // CAP_Z
  179. #define K_LF_BRACE         123       // LF_BRACE - {
  180. #define K_RT_BRACE         125       // RT_BRACE - }
  181. #define K_V_BAR          124       // V_BAR - |
  182. #define K_COLON          58        // COLON - :
  183. #define K_QUOTE          34        // QUOTE - "
  184. #define K_LESS_THAN         60        // LESS_THAN - <
  185. #define K_GREATER_THAN         62        // GREATER_THAN - >
  186. #define K_QUESTION         63        // QUESTION - ?
  187.  
  188. // ***********************  SHIFTED KEYPAD KEYS  **************************
  189.  
  190. #define K_SH_INS         22        // SH_INS
  191. #define K_SH_DEL         07        // SH_DEL
  192. #define K_SH_HOME         01        // SH_HOME
  193. #define K_SH_END         06        // SH_END
  194. #define K_SH_PGUP         18        // SH_PGUP
  195. #define K_SH_PGDN         03        // SH_PGDN
  196. #define K_SH_UP          05        // SH_UP
  197. #define K_SH_DOWN         24        // SH_DOWN
  198. #define K_SH_LEFT         19        // SH_LEFT
  199. #define K_SH_RIGHT         04        // SH_RIGHT
  200.  
  201. // ***********************  CONTROL KEYS  **************************
  202.  
  203. #define K_CTRL_ESC         27        // CTRL_ESC
  204.  
  205. // ***********************  CONTROL FUNCTION KEYS  **************************
  206.  
  207. #define K_CTRL_F1         -20       // CTRL_F1
  208. #define K_CTRL_F2         -21       // CTRL_F2
  209. #define K_CTRL_F3         -22       // CTRL_F3
  210. #define K_CTRL_F4         -23       // CTRL_F4
  211. #define K_CTRL_F5         -24       // CTRL_F5
  212. #define K_CTRL_F6         -25       // CTRL_F6
  213. #define K_CTRL_F7         -26       // CTRL_F7
  214. #define K_CTRL_F8         -27       // CTRL_F8
  215. #define K_CTRL_F9         -28       // CTRL_F9
  216. #define K_CTRL_F10         -29       // CTRL_F10
  217. #define K_CTRL_F11         -44       // CTRL_F11
  218. #define K_CTRL_F12         -45       // CTRL_F12
  219.  
  220. // ***********************  CONTROL NUMBER KEYS  **************************
  221. // The following number keys have no discernible output when used with the
  222. //    CONTROL key: BK_APPOS,1,3,4,5,7,8,9,0
  223.  
  224. #define K_CTRL_2         259       // CTRL_2
  225. #define K_CTRL_6         30        // CTRL_6
  226. #define K_CTRL_MINUS         31        // CTRL_MINUS
  227.  
  228. // ***********************  CONTROL SPECIAL KEYS  **************************
  229.  
  230. #define K_CTRL_BS         127       // CTRL_BS
  231. #define K_CTRL_TAB         404       // CTRL_TAB
  232. #define K_CTRL_ENTER         10        // CTRL_ENTER
  233. #define K_CTRL_RETURN         10        // CTRL_RETURN
  234.  
  235. // ***********************  CONTROL ALPHA KEYS    **************************
  236. // The following alpha keys have no discernible output when used with the
  237. //    CONTROL key: SEMI, APPOS, COMMA, PERIOD, SLASH
  238.  
  239. #define K_CTRL_SPACEBAR      32        // CTRL_SPACEBAR
  240. #define K_CTRL_A         01        // CTRL_A
  241. #define K_CTRL_B         02        // CTRL_B
  242. #define K_CTRL_C         03        // CTRL_C
  243. #define K_CTRL_D         04        // CTRL_D
  244. #define K_CTRL_E         05        // CTRL_E
  245. #define K_CTRL_F         06        // CTRL_F
  246. #define K_CTRL_G         07        // CTRL_G
  247. #define K_CTRL_H         08        // CTRL_H
  248. #define K_CTRL_I         09        // CTRL_I
  249. #define K_CTRL_J         10        // CTRL_J
  250. #define K_CTRL_K         11        // CTRL_K
  251. #define K_CTRL_L         12        // CTRL_L
  252. #define K_CTRL_M         13        // CTRL_M
  253. #define K_CTRL_N         14        // CTRL_N
  254. #define K_CTRL_O         15        // CTRL_O
  255. #define K_CTRL_P         16        // CTRL_P
  256. #define K_CTRL_Q         17        // CTRL_Q
  257. #define K_CTRL_R         18        // CTRL_R
  258. #define K_CTRL_S         19        // CTRL_S
  259. #define K_CTRL_T         20        // CTRL_T
  260. #define K_CTRL_U         21        // CTRL_U
  261. #define K_CTRL_V         22        // CTRL_V
  262. #define K_CTRL_W         23        // CTRL_W
  263. #define K_CTRL_X         24        // CTRL_X
  264. #define K_CTRL_Y         25        // CTRL_Y
  265. #define K_CTRL_Z         26        // CTRL_Z
  266. #define K_CTRL_LF_BRKT         27        // CTRL_LF_BRKT
  267. #define K_CTRL_RT_BRKT         29        // CTRL_RT_BRKT
  268. #define K_CTRL_BK_SLASH      28        // CTRL_BK_SLASH
  269.  
  270. // ***********************  CONTROL KEYPAD KEYS  **************************
  271.  
  272. #define K_CTRL_INS         402       // CTRL_INS
  273. #define K_CTRL_DEL         403       // CTRL_DEL
  274. #define K_CTRL_HOME         29        // CTRL_HOME
  275. #define K_CTRL_END         23        // CTRL_END
  276. #define K_CTRL_PGUP         31        // CTRL_PGUP
  277. #define K_CTRL_PGDN         30        // CTRL_PGDN
  278. #define K_CTRL_UP         397       // CTRL_UP
  279. #define K_CTRL_DOWN         401       // CTRL_DOWN
  280. #define K_CTRL_LEFT         26        // CTRL_LEFT
  281. #define K_CTRL_RIGHT         02        // CTRL_RIGHT
  282.  
  283. // ***********************  ALTERNATE KEYS  **************************
  284.  
  285. #define K_ALT_ESC         257       // ALT_ESC
  286.  
  287. // ***********************  ALTERNATE FUNCTION KEYS  **************************
  288.  
  289. #define K_ALT_F1         -30       // ALT_F1
  290. #define K_ALT_F2         -31       // ALT_F2
  291. #define K_ALT_F3         -32       // ALT_F3
  292. #define K_ALT_F4         -33       // ALT_F4
  293. #define K_ALT_F5         -34       // ALT_F5
  294. #define K_ALT_F6         -35       // ALT_F6
  295. #define K_ALT_F7         -36       // ALT_F7
  296. #define K_ALT_F8         -37       // ALT_F8
  297. #define K_ALT_F9         -38       // ALT_F9
  298. #define K_ALT_F10         -39       // ALT_F10
  299. #define K_ALT_F11         -46       // ALT_F11
  300. #define K_ALT_F12         -47       // ALT_F12
  301.  
  302. // ***********************  ALTERNATE NUMBER KEYS  **************************
  303.  
  304. #define K_ALT_BK_APPOS         297       // ALT_BK_APPOS
  305. #define K_ALT_1          376       // ALT_1
  306. #define K_ALT_2          377       // ALT_2
  307. #define K_ALT_3          378       // ALT_3
  308. #define K_ALT_4          379       // ALT_4
  309. #define K_ALT_5          380       // ALT_5
  310. #define K_ALT_6          381       // ALT_6
  311. #define K_ALT_7          382       // ALT_7
  312. #define K_ALT_8          383       // ALT_8
  313. #define K_ALT_9          384       // ALT_9
  314. #define K_ALT_0          385       // ALT_0
  315. #define K_ALT_MINUS         386       // ALT_MINUS
  316. #define K_ALT_EQUAL         387       // ALT_EQUAL
  317.  
  318. // ***********************  ALTERNATE SPECIAL KEYS  **************************
  319.  
  320. #define K_ALT_BS         270       // ALT_BS
  321. #define K_ALT_TAB         421       // ALT_TAB
  322. #define K_ALT_ENTER         284       // ALT_ENTER
  323. #define K_ALT_RETURN         284       // ALT_RETURN
  324.  
  325. // ***********************  ALTERNATE ALPHA KEYS  **************************
  326. // Note: ALT_C will halt a program.  ALT_D may not be detectable.
  327.  
  328. #define K_ALT_SPACEBAR         32        // ALT_SPACEBAR
  329. #define K_ALT_A          286       // ALT_A
  330. #define K_ALT_B          304       // ALT_B
  331. #define K_ALT_C          302       // ALT_C
  332. #define K_ALT_D          288       // ALT_D
  333. #define K_ALT_E          274       // ALT_E
  334. #define K_ALT_F          289       // ALT_F
  335. #define K_ALT_G          290       // ALT_G
  336. #define K_ALT_H          291       // ALT_H
  337. #define K_ALT_I          279       // ALT_I
  338. #define K_ALT_J          292       // ALT_J
  339. #define K_ALT_K          293       // ALT_K
  340. #define K_ALT_L          294       // ALT_L
  341. #define K_ALT_M          306       // ALT_M
  342. #define K_ALT_N          305       // ALT_N
  343. #define K_ALT_O          280       // ALT_O
  344. #define K_ALT_P          281       // ALT_P
  345. #define K_ALT_Q          272       // ALT_Q
  346. #define K_ALT_R          275       // ALT_R
  347. #define K_ALT_S          287       // ALT_S
  348. #define K_ALT_T          276       // ALT_T
  349. #define K_ALT_U          278       // ALT_U
  350. #define K_ALT_V          303       // ALT_V
  351. #define K_ALT_W          273       // ALT_W
  352. #define K_ALT_X          301       // ALT_X
  353. #define K_ALT_Y          277       // ALT_Y
  354. #define K_ALT_Z          300       // ALT_Z
  355. #define K_ALT_LF_BRKT         282       // ALT_LF_BRKT
  356. #define K_ALT_RT_BRKT         283       // ALT_RT_BRKT
  357. #define K_ALT_BK_SLASH         299       // ALT_BK_SLASH
  358. #define K_ALT_SEMI         295       // ALT_SEMI
  359. #define K_ALT_APPOS         296       // ALT_APPOS
  360. #define K_ALT_COMMA         307       // ALT_COMMA
  361. #define K_ALT_PERIOD         308       // ALT_PERIOD
  362. #define K_ALT_SLASH         309       // ALT_SLASH
  363.  
  364. // ***********************  ALTERNATE KEYPAD KEYS  **************************
  365.  
  366. #define K_ALT_INS         418       // ALT_INS
  367. #define K_ALT_DEL         419       // ALT_DEL
  368. #define K_ALT_HOME         407       // ALT_HOME
  369. #define K_ALT_END         415       // ALT_END
  370. #define K_ALT_PGUP         409       // ALT_PGUP
  371. #define K_ALT_PGDN         417       // ALT_PGDN
  372. #define K_ALT_UP         408       // ALT_UP
  373. #define K_ALT_DOWN         416       // ALT_DOWN
  374. #define K_ALT_LEFT         411       // ALT_LEFT
  375. #define K_ALT_RIGHT         413       // ALT_RIGHT
  376.  
  377. 
  378.