home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / the25.zip / thesrc251.zip / getch.h < prev    next >
C/C++ Source or Header  |  1997-09-10  |  18KB  |  654 lines

  1. /*
  2.  * This software is Copyright (c) 1989, 1990, 1991 by Patrick J. Wolfe.
  3.  *
  4.  * Permission is hereby granted to copy, distribute or otherwise
  5.  * use any part of this package as long as you do not try to make
  6.  * money from it or pretend that you wrote it.  This copyright
  7.  * notice must be maintained in any copy made.
  8.  *
  9.  * Use of this software constitutes acceptance for use in an AS IS
  10.  * condition. There are NO warranties with regard to this software.
  11.  * In no event shall the author be liable for any damages whatsoever
  12.  * arising out of or in connection with the use or performance of this
  13.  * software.  Any use of this software is at the user's own risk.
  14.  *
  15.  * If you make modifications to this software that you feel
  16.  * increases it usefulness for the rest of the community, please
  17.  * email the changes, enhancements, bug fixes as well as any and
  18.  * all ideas to me. This software is going to be maintained and
  19.  * enhanced as deemed necessary by the community.
  20.  *
  21.  *              Patrick J. Wolfe
  22.  *              uunet!uiucuxc!kailand!pwolfe
  23.  *              pwolfe@kailand.kai.com
  24.  *
  25.  * Additions of DOS keys and extended function key descriptions
  26.  * made by Mark Hessling.
  27.  *
  28.  */
  29.  
  30. /* System V curses key names and codes returned by getch */
  31.  
  32. /*
  33. $Id: getch.h 2.1 1995/06/24 16:30:08 MH Rel MH $
  34. */
  35.  
  36.  
  37. #ifndef KEY_MIN
  38. #define KEY_MIN         0x101           /* Minimum curses key */
  39. #endif
  40. #ifndef KEY_BREAK
  41. #define KEY_BREAK    0x101    /* Not on PC KBD         */
  42. #endif
  43. #ifndef KEY_DOWN
  44. #define KEY_DOWN    0x102    /* Down arrow key         */
  45. #endif
  46. #ifndef KEY_UP
  47. #define KEY_UP        0x103    /* Up arrow key             */
  48. #endif
  49. #ifndef KEY_LEFT
  50. #define KEY_LEFT    0x104    /* Left arrow key         */
  51. #endif
  52. #ifndef KEY_RIGHT
  53. #define KEY_RIGHT    0x105    /* Right arrow key         */
  54. #endif
  55. #ifndef KEY_HOME
  56. #define KEY_HOME    0x106    /* home key             */
  57. #endif
  58. #ifndef KEY_BACKSPACE
  59. #define KEY_BACKSPACE    0x107    /* not on pc             */
  60. #endif
  61. #ifndef KEY_F0
  62. #define KEY_F0        0x108    /* function keys. space for     */
  63. #define KEY_F(n)    (KEY_F0+(n))/* 64 keys are reserved.     */
  64. #endif
  65. #ifndef KEY_DL
  66. #define KEY_DL        0x148    /* not on pc             */
  67. #endif
  68. #ifndef KEY_IL
  69. #define KEY_IL        0x149    /* insert line             */
  70. #endif
  71. #ifndef KEY_DC
  72. #define KEY_DC        0x14a    /* delete character         */
  73. #endif
  74. #ifndef KEY_IC
  75. #define KEY_IC        0x14b    /* insert char or enter ins mode */
  76. #endif
  77. #ifndef KEY_EIC
  78. #define KEY_EIC        0x14c    /* exit insert char mode     */
  79. #endif
  80. #ifndef KEY_CLEAR
  81. #define KEY_CLEAR    0x14d    /* clear screen             */
  82. #endif
  83. #ifndef KEY_EOS
  84. #define KEY_EOS        0x14e    /* clear to end of screen     */
  85. #endif
  86. #ifndef KEY_EOL
  87. #define KEY_EOL        0x14f    /* clear to end of line         */
  88. #endif
  89. #ifndef KEY_SF
  90. #define KEY_SF        0x150    /* scroll 1 line forward     */
  91. #endif
  92. #ifndef KEY_SR
  93. #define KEY_SR        0x151    /* scroll 1 line back (reverse)     */
  94. #endif
  95. #ifndef KEY_NPAGE
  96. #define KEY_NPAGE    0x152    /* next page             */
  97. #endif
  98. #ifndef KEY_PPAGE
  99. #define KEY_PPAGE    0x153    /* previous page         */
  100. #endif
  101. #ifndef KEY_STAB
  102. #define KEY_STAB    0x154    /* set tab             */
  103. #endif
  104. #ifndef KEY_CTAB
  105. #define KEY_CTAB    0x155    /* clear tab             */
  106. #endif
  107. #ifndef KEY_CATAB
  108. #define KEY_CATAB    0x156    /* clear all tabs         */
  109. #endif
  110. #ifndef KEY_ENTER
  111. #define KEY_ENTER    0x157    /* enter or send (unreliable)     */
  112. #endif
  113. #ifndef KEY_SRESET
  114. #define KEY_SRESET    0x158    /* soft/reset (partial/unreliable)*/
  115. #endif
  116. #ifndef KEY_RESET
  117. #define KEY_RESET    0x159    /* reset/hard reset (unreliable) */
  118. #endif
  119. #ifndef KEY_PRINT
  120. #define KEY_PRINT    0x15a    /* print/copy             */
  121. #endif
  122. #ifndef KEY_LL
  123. #define KEY_LL        0x15b    /* home down/bottom (lower left) */
  124. #endif
  125. #ifndef KEY_ABORT
  126. #define KEY_ABORT    0x15c    /* abort/terminate key (any)     */
  127. #endif
  128. #ifndef KEY_SHELP
  129. #define KEY_SHELP    0x15d    /* short help             */
  130. #endif
  131. #ifndef KEY_LHELP
  132. #define KEY_LHELP    0x15e    /* long help             */
  133. #endif
  134. #ifndef KEY_BTAB 
  135. #define KEY_BTAB        0x15f            /* Back tab key */
  136. #endif
  137. #ifndef KEY_BEG  
  138. #define KEY_BEG         0x160            /* beg(inning) key */
  139. #endif
  140. #ifndef KEY_CANCEL
  141. #define KEY_CANCEL      0x161             /* cancel key */
  142. #endif
  143. #ifndef KEY_CLOSE 
  144. #define KEY_CLOSE       0x162             /* close key */
  145. #endif
  146. #ifndef KEY_COMMAND
  147. #define KEY_COMMAND     0x163             /* cmd (command) key */
  148. #endif
  149. #ifndef KEY_COPY   
  150. #define KEY_COPY        0x164             /* copy key */
  151. #endif
  152. #ifndef KEY_CREATE 
  153. #define KEY_CREATE      0x165             /* create key */
  154. #endif
  155. #ifndef KEY_END    
  156. #define KEY_END         0x166             /* end key */
  157. #endif
  158. #ifndef KEY_EXIT   
  159. #define KEY_EXIT        0x167             /* exit key */
  160. #endif
  161. #ifndef KEY_FIND   
  162. #define KEY_FIND        0x168             /* find key */
  163. #endif
  164. #ifndef KEY_HELP   
  165. #define KEY_HELP        0x169             /* help key */
  166. #endif
  167. #ifndef KEY_MARK   
  168. #define KEY_MARK        0x16a             /* mark key */
  169. #endif
  170. #ifndef KEY_MESSAGE
  171. #define KEY_MESSAGE     0x16b             /* message key */
  172. #endif
  173. #ifndef KEY_MOVE   
  174. #define KEY_MOVE        0x16c             /* move key */
  175. #endif
  176. #ifndef KEY_NEXT   
  177. #define KEY_NEXT        0x16d             /* next object key */
  178. #endif
  179. #ifndef KEY_OPEN   
  180. #define KEY_OPEN        0x16e             /* open key */
  181. #endif
  182. #ifndef KEY_OPTIONS
  183. #define KEY_OPTIONS     0x16f             /* options key */
  184. #endif
  185. #ifndef KEY_PREVIOUS
  186. #define KEY_PREVIOUS    0x170             /* previous object key */
  187. #endif
  188. #ifndef KEY_REDO    
  189. #define KEY_REDO        0x171             /* redo key */
  190. #endif
  191. #ifndef KEY_REFERENCE
  192. #define KEY_REFERENCE   0x172             /* ref(erence) key */
  193. #endif
  194. #ifndef KEY_REFRESH  
  195. #define KEY_REFRESH     0x173             /* refresh key */
  196. #endif
  197. #ifndef KEY_REPLACE  
  198. #define KEY_REPLACE     0x174             /* replace key */
  199. #endif
  200. #ifndef KEY_RESTART  
  201. #define KEY_RESTART     0x175             /* restart key */
  202. #endif
  203. #ifndef KEY_RESUME   
  204. #define KEY_RESUME      0x176             /* resume key */
  205. #endif
  206. #ifndef KEY_SAVE     
  207. #define KEY_SAVE        0x177             /* save key */
  208. #endif
  209. #ifndef KEY_SBEG     
  210. #define KEY_SBEG        0x178             /* shifted beginning key */
  211. #endif
  212. #ifndef KEY_SCANCEL  
  213. #define KEY_SCANCEL     0x179             /* shifted cancel key */
  214. #endif
  215. #ifndef KEY_SCOMMAND 
  216. #define KEY_SCOMMAND    0x17a             /* shifted command key */
  217. #endif
  218. #ifndef KEY_SCOPY    
  219. #define KEY_SCOPY       0x17b             /* shifted copy key */
  220. #endif
  221. #ifndef KEY_SCREATE  
  222. #define KEY_SCREATE     0x17c             /* shifted create key */
  223. #endif
  224. #ifndef KEY_SDC      
  225. #define KEY_SDC         0x17d             /* shifted delete char key */
  226. #endif
  227. #ifndef KEY_SDL      
  228. #define KEY_SDL         0x17e             /* shifted delete line key */
  229. #endif
  230. #ifndef KEY_SELECT   
  231. #define KEY_SELECT      0x17f             /* select key */
  232. #endif
  233. #ifndef KEY_SEND     
  234. #define KEY_SEND        0x180             /* shifted end key */
  235. #endif
  236. #ifndef KEY_SEOL     
  237. #define KEY_SEOL        0x181             /* shifted clear line key */
  238. #endif
  239. #ifndef KEY_SEXIT    
  240. #define KEY_SEXIT       0x182             /* shifted exit key */
  241. #endif
  242. #ifndef KEY_SFIND    
  243. #define KEY_SFIND       0x183             /* shifted find key */
  244. #endif
  245. #ifndef KEY_SHOME    
  246. #define KEY_SHOME       0x184             /* shifted home key */
  247. #endif
  248. #ifndef KEY_SIC      
  249. #define KEY_SIC         0x185             /* shifted input key */
  250. #endif
  251. #ifndef KEY_SLEFT    
  252. #define KEY_SLEFT       0x187             /* shifted left arrow key */
  253. #endif
  254. #ifndef KEY_SMESSAGE 
  255. #define KEY_SMESSAGE    0x188             /* shifted message key */
  256. #endif
  257. #ifndef KEY_SMOVE    
  258. #define KEY_SMOVE       0x189             /* shifted move key */
  259. #endif
  260. #ifndef KEY_SNEXT    
  261. #define KEY_SNEXT       0x18a             /* shifted next key */
  262. #endif
  263. #ifndef KEY_SOPTIONS 
  264. #define KEY_SOPTIONS    0x18b             /* shifted options key */
  265. #endif
  266. #ifndef KEY_SPREVIOUS
  267. #define KEY_SPREVIOUS   0x18c             /* shifted prev key */
  268. #endif
  269. #ifndef KEY_SPRINT   
  270. #define KEY_SPRINT      0x18d             /* shifted print key */
  271. #endif
  272. #ifndef KEY_SREDO    
  273. #define KEY_SREDO       0x18e             /* shifted redo key */
  274. #endif
  275. #ifndef KEY_SREPLACE 
  276. #define KEY_SREPLACE    0x18f             /* shifted replace key */
  277. #endif
  278. #ifndef KEY_SRIGHT   
  279. #define KEY_SRIGHT      0x190             /* shifted right arrow */
  280. #endif
  281. #ifndef KEY_SRSUME   
  282. #define KEY_SRSUME      0x191             /* shifted resume key */
  283. #endif
  284. #ifndef KEY_SSAVE    
  285. #define KEY_SSAVE       0x192             /* shifted save key */
  286. #endif
  287. #ifndef KEY_SSUSPEND 
  288. #define KEY_SSUSPEND    0x193             /* shifted suspend key */
  289. #endif
  290. #ifndef KEY_SUNDO    
  291. #define KEY_SUNDO       0x194             /* shifted undo key */
  292. #endif
  293. #ifndef KEY_SUSPEND  
  294. #define KEY_SUSPEND     0x195             /* suspend key */
  295. #endif
  296. #ifndef KEY_UNDO     
  297. #define KEY_UNDO        0x196             /* undo key */
  298. #endif
  299. #ifndef KEY_A1       
  300. #define KEY_A1          0x197             /* Upper left of keypad */
  301. #endif
  302. #ifndef KEY_A2
  303. #define KEY_A2          0x198             /* Upper centre of keypad */
  304. #endif
  305. #ifndef KEY_A3       
  306. #define KEY_A3          0x199             /* Upper right of keypad */
  307. #endif
  308. #ifndef KEY_B1
  309. #define KEY_B1          0x19a             /* Middle left of keypad */
  310. #endif
  311. #ifndef KEY_B2       
  312. #define KEY_B2          0x19b             /* Middle centre of keypad */
  313. #endif
  314. #ifndef KEY_B3
  315. #define KEY_B3          0x19c             /* Middle right of keypad */
  316. #endif
  317. #ifndef KEY_C1       
  318. #define KEY_C1          0x19d             /* Lower left of keypad */
  319. #endif
  320. #ifndef KEY_C2
  321. #define KEY_C2          0x19e             /* Lower centre of keypad */
  322. #endif
  323. #ifndef KEY_C3       
  324. #define KEY_C3          0x19f             /* Lower right of keypad */
  325. #endif
  326. #ifndef KEY_MAX      
  327. #define KEY_MAX         0xfff             /* Maximum curses key */
  328. #endif
  329.   
  330. #define KEY_DELETE  127
  331.  
  332. #if !defined(DOS) && !defined(OS2) && !defined(XCURSES) && !defined(WIN32)
  333.  
  334. /* vt220 special keys */
  335.  
  336. #define CTL_LEFT       0x302
  337. #define CTL_RIGHT      0x303
  338. #define CTL_UP         0x304
  339. #define CTL_DOWN       0x305
  340. #define CTL_HOME       0x306
  341. #define CTL_END        0x307
  342. #define CTL_PGUP       0x308
  343. #define CTL_PGDN       0x309
  344.  
  345. # ifndef KEY_RETURN
  346. #  define KEY_RETURN     KEY_ENTER
  347. # endif
  348.  
  349. # ifndef KEY_NUMENTER
  350. #  define KEY_NUMENTER   KEY_ENTER
  351. # endif
  352.  
  353. #endif
  354.  
  355. #if defined(DOS) || defined(OS2) || defined(XCURSES) || defined(WIN32)
  356. /* normal characters */
  357. #define KEY_a      0x61
  358. #define KEY_b      0x62
  359. #define KEY_c      0x63
  360. #define KEY_d      0x64
  361. #define KEY_e      0x65
  362. #define KEY_f      0x66
  363. #define KEY_g      0x67
  364. #define KEY_h      0x68
  365. #define KEY_i      0x69
  366. #define KEY_j      0x6a
  367. #define KEY_k      0x6b
  368. #define KEY_l      0x6c
  369. #define KEY_m      0x6d
  370. #define KEY_n      0x6e
  371. #define KEY_o      0x6f
  372. #define KEY_p      0x70
  373. #define KEY_q      0x71
  374. #define KEY_r      0x72
  375. #define KEY_s      0x73
  376. #define KEY_t      0x74
  377. #define KEY_u      0x75
  378. #define KEY_v      0x76
  379. #define KEY_w      0x77
  380. #define KEY_x      0x78
  381. #define KEY_y      0x79
  382. #define KEY_z      0x7a
  383. #define KEY_0      0x30
  384. #define KEY_1      0x31
  385. #define KEY_2      0x32
  386. #define KEY_3      0x33
  387. #define KEY_4      0x34
  388. #define KEY_5      0x35
  389. #define KEY_6      0x36
  390. #define KEY_7      0x37
  391. #define KEY_8      0x38
  392. #define KEY_9      0x39
  393. #define KEY_BQUOTE      0x60
  394. #define KEY_MINUS      0x2d
  395. #define KEY_EQUAL      0x3d
  396. #define KEY_LBRACKET      0x5b
  397. #define KEY_RBRACKET      0x5d
  398. #define KEY_BSLASH      0x5c
  399. #define KEY_SEMICOLON      0x3b
  400. #define KEY_FQUOTE      0x27
  401. #define KEY_COMMA      0x2c
  402. #define KEY_STOP      0x2e
  403. #define KEY_FSLASH      0x2f
  404. #define KEY_SPACE      0x20
  405. #define KEY_RETURN     0xd
  406. #define KEY_TAB      0x9
  407. #define KEY_BKSP      0x8
  408. #define KEY_PGUP      KEY_PPAGE
  409. #define KEY_PGDN      KEY_NPAGE
  410. #define KEY_CURU      KEY_UP
  411. #define KEY_CURD      KEY_DOWN
  412. #define KEY_CURL      KEY_LEFT
  413. #define KEY_CURR      KEY_RIGHT
  414. #define KEY_INS      KEY_IC
  415. #define KEY_DEL      KEY_DC
  416. #define KEY_NUMENTER PADENTER
  417. /* shifted characters */
  418. #define KEY_S_a      0x41
  419. #define KEY_S_b      0x42
  420. #define KEY_S_c      0x43
  421. #define KEY_S_d      0x44
  422. #define KEY_S_e      0x45
  423. #define KEY_S_f      0x46
  424. #define KEY_S_g      0x47
  425. #define KEY_S_h      0x48
  426. #define KEY_S_i      0x49
  427. #define KEY_S_j      0x4a
  428. #define KEY_S_k      0x4b
  429. #define KEY_S_l      0x4c
  430. #define KEY_S_m      0x4d
  431. #define KEY_S_n      0x4e
  432. #define KEY_S_o      0x4f
  433. #define KEY_S_p      0x50
  434. #define KEY_S_q      0x51
  435. #define KEY_S_r      0x52
  436. #define KEY_S_s      0x53
  437. #define KEY_S_t      0x54
  438. #define KEY_S_u      0x55
  439. #define KEY_S_v      0x56
  440. #define KEY_S_w      0x57
  441. #define KEY_S_x      0x58
  442. #define KEY_S_y      0x59
  443. #define KEY_S_z      0x5a
  444. #define KEY_S_0      0x29
  445. #define KEY_S_1      0x21
  446. #define KEY_S_2      0x40
  447. #define KEY_S_3      0x23
  448. #define KEY_S_4      0x24
  449. #define KEY_S_5      0x25
  450. #define KEY_S_6      0x5e
  451. #define KEY_S_7      0x26
  452. #define KEY_S_8      0x2a
  453. #define KEY_S_9      0x28
  454. #define KEY_S_BQUOTE      0x7e
  455. #define KEY_S_MINUS      0x5f
  456. #define KEY_S_EQUAL      0x2b
  457. #define KEY_S_LBRACKET      0x7b
  458. #define KEY_S_RBRACKET      0x7d
  459. #define KEY_S_BSLASH      0x7c
  460. #define KEY_S_SEMICOLON      0x3a
  461. #define KEY_S_FQUOTE      0x22
  462. #define KEY_S_COMMA      0x3c
  463. #define KEY_S_STOP      0x3e
  464. #define KEY_S_FSLASH      0x3f
  465. #define KEY_S_TAB     KEY_BTAB
  466. #define KEY_S_CURU    KEY_CURU
  467. #define KEY_S_CURD    KEY_CURD
  468. #define KEY_S_INS     KEY_INS
  469. #define KEY_S_DEL     KEY_DEL
  470. #define KEY_S_NUMCENTER  KEY_5
  471. /* control characters */
  472. /* Control-A to Control-Z at end */
  473. #define KEY_C_2      0x0
  474. #define KEY_C_6      0x1e
  475. #define KEY_C_MINUS      0x1f
  476. #define KEY_C_LBRACKET      0x1b
  477. #define KEY_C_RBRACKET      0x1d
  478. #define KEY_C_BSLASH      0x1c
  479. #endif
  480.  
  481. /* special definition for UNIX systems */
  482. #ifndef KEY_RETURN
  483. #define KEY_RETURN 0xd
  484. #endif
  485.  
  486. #define CSI          0233
  487. #define KEY_ESC      0x1b
  488.  
  489. /* control alpha keys */
  490. #define KEY_C_a      0x1
  491. #define KEY_C_b      0x2
  492. #define KEY_C_c      0x3
  493. #define KEY_C_d      0x4
  494. #define KEY_C_e      0x5
  495. #define KEY_C_f      0x6
  496. #define KEY_C_g      0x7
  497. #define KEY_C_h      0x8
  498. #define KEY_C_i      0x9
  499. #define KEY_C_j      0xa
  500. #define KEY_C_k      0xb
  501. #define KEY_C_l      0xc
  502. #define KEY_C_m      0xd
  503. #define KEY_C_n      0xe
  504. #define KEY_C_o      0xf
  505. #define KEY_C_p      0x10
  506. #define KEY_C_q      0x11
  507. #define KEY_C_r      0x12
  508. #define KEY_C_s      0x13
  509. #define KEY_C_t      0x14
  510. #define KEY_C_u      0x15
  511. #define KEY_C_v      0x16
  512. #define KEY_C_w      0x17
  513. #define KEY_C_x      0x18
  514. #define KEY_C_y      0x19
  515. #define KEY_C_z      0x1a
  516.  
  517. /* unshifted function keys */
  518. #define KEY_F1      KEY_F(1)
  519. #define KEY_F2      KEY_F(2)
  520. #define KEY_F3      KEY_F(3)
  521. #define KEY_F4      KEY_F(4)
  522. #define KEY_F5      KEY_F(5)
  523. #define KEY_F6      KEY_F(6)
  524. #define KEY_F7      KEY_F(7)
  525. #define KEY_F8      KEY_F(8)
  526. #define KEY_F9      KEY_F(9)
  527. #define KEY_F10     KEY_F(10)
  528. #define KEY_F11     KEY_F(11)
  529. #define KEY_F12     KEY_F(12)
  530.  
  531. /* shifted function keys */
  532. #define KEY_S_F1      KEY_F(13)
  533. #define KEY_S_F2      KEY_F(14)
  534. #define KEY_S_F3      KEY_F(15)
  535. #define KEY_S_F4      KEY_F(16)
  536. #define KEY_S_F5      KEY_F(17)
  537. #define KEY_S_F6      KEY_F(18)
  538. #define KEY_S_F7      KEY_F(19)
  539. #define KEY_S_F8      KEY_F(20)
  540. #define KEY_S_F9      KEY_F(21)
  541. #define KEY_S_F10     KEY_F(22)
  542. #define KEY_S_F11     KEY_F(23)
  543. #define KEY_S_F12     KEY_F(24)
  544.  
  545. /* control function keys */
  546. #define KEY_C_F1      KEY_F(25)
  547. #define KEY_C_F2      KEY_F(26)
  548. #define KEY_C_F3      KEY_F(27)
  549. #define KEY_C_F4      KEY_F(28)
  550. #define KEY_C_F5      KEY_F(29)
  551. #define KEY_C_F6      KEY_F(30)
  552. #define KEY_C_F7      KEY_F(31)
  553. #define KEY_C_F8      KEY_F(32)
  554. #define KEY_C_F9      KEY_F(33)
  555. #define KEY_C_F10     KEY_F(34)
  556. #define KEY_C_F11     KEY_F(35)
  557. #define KEY_C_F12     KEY_F(36)
  558.  
  559. /* alt function keys */
  560. #define KEY_A_F1      KEY_F(37)
  561. #define KEY_A_F2      KEY_F(38)
  562. #define KEY_A_F3      KEY_F(39)
  563. #define KEY_A_F4      KEY_F(40)
  564. #define KEY_A_F5      KEY_F(41)
  565. #define KEY_A_F6      KEY_F(42)
  566. #define KEY_A_F7      KEY_F(43)
  567. #define KEY_A_F8      KEY_F(44)
  568. #define KEY_A_F9      KEY_F(45)
  569. #define KEY_A_F10     KEY_F(46)
  570. #define KEY_A_F11     KEY_F(47)
  571. #define KEY_A_F12     KEY_F(48)
  572.  
  573. /* remaining curses function keys */
  574. #define KEY_F13       KEY_F(49)
  575. #define KEY_F14       KEY_F(50)
  576. #define KEY_F15       KEY_F(51)
  577. #define KEY_F16       KEY_F(52)
  578. #define KEY_F17       KEY_F(53)
  579. #define KEY_F18       KEY_F(54)
  580. #define KEY_F19       KEY_F(55)
  581. #define KEY_F20       KEY_F(56)
  582. #define KEY_S_F13     KEY_F(57)
  583. #define KEY_S_F14     KEY_F(58)
  584. #define KEY_S_F15     KEY_F(59)
  585. #define KEY_S_F16     KEY_F(60)
  586. #define KEY_S_F17     KEY_F(61)
  587. #define KEY_S_F18     KEY_F(62)
  588. #define KEY_S_F19     KEY_F(63)
  589.  
  590. #define KEY_Find       KEY_FIND
  591. #define KEY_InsertHere KEY_IC
  592. #define KEY_Remove     KEY_REPLACE
  593. #define KEY_Select     KEY_SELECT
  594. #define KEY_PrevScreen KEY_PPAGE
  595. #define KEY_NextScreen KEY_NPAGE
  596. #define KEY_PF1        0x350
  597. #define KEY_PF2        0x351
  598. #define KEY_PF3        0x352
  599. #define KEY_PF4        0x353
  600. #define KEY_PadComma   0x354
  601. #define KEY_PadMinus   0x355
  602. #define KEY_PadPeriod  0x356
  603. #define KEY_PadPlus    0x357
  604. #define KEY_PadStar    0x358
  605. #define KEY_PadSlash   0x359
  606.  
  607. #ifdef PAD0
  608. # define KEY_Pad0      PAD0
  609. #else
  610. # define KEY_Pad0      0x360
  611. #endif
  612.  
  613. /* Mouse button definitions */
  614.  
  615. #define KEY_PB1        0x400
  616. #define KEY_PB2        0x401
  617. #define KEY_PB3        0x402
  618. #define KEY_S_PB1      0x403
  619. #define KEY_S_PB2      0x404
  620. #define KEY_S_PB3      0x405
  621. #define KEY_C_PB1      0x406
  622. #define KEY_C_PB2      0x407
  623. #define KEY_C_PB3      0x408
  624. #define KEY_A_PB1      0x409
  625. #define KEY_A_PB2      0x40a
  626. #define KEY_A_PB3      0x40b
  627.  
  628. #define KEY_RB1        0x410
  629. #define KEY_RB2        0x411
  630. #define KEY_RB3        0x412
  631. #define KEY_S_RB1      0x413
  632. #define KEY_S_RB2      0x414
  633. #define KEY_S_RB3      0x415
  634. #define KEY_C_RB1      0x416
  635. #define KEY_C_RB2      0x417
  636. #define KEY_C_RB3      0x418
  637. #define KEY_A_RB1      0x419
  638. #define KEY_A_RB2      0x41a
  639. #define KEY_A_RB3      0x41b
  640.  
  641. #define KEY_DB1        0x420
  642. #define KEY_DB2        0x421
  643. #define KEY_DB3        0x422
  644. #define KEY_S_DB1      0x423
  645. #define KEY_S_DB2      0x424
  646. #define KEY_S_DB3      0x425
  647. #define KEY_C_DB1      0x426
  648. #define KEY_C_DB2      0x427
  649. #define KEY_C_DB3      0x428
  650. #define KEY_A_DB1      0x429
  651. #define KEY_A_DB2      0x42a
  652. #define KEY_A_DB3      0x42b
  653.  
  654.