home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / COMM / MISC / SRC26_2.ZIP / SRC / KEYTABPC.H < prev    next >
Encoding:
C/C++ Source or Header  |  1990-07-04  |  7.6 KB  |  240 lines

  1. /* keytabpc.h    hterm ibmpc/ax/j3100 keytable
  2.  *
  3.  * Author: HIRANO Satoshi
  4.  * (C) 1989  Halca Computer Science Laboratory TM
  5.  *           University of Tokyo
  6.  * 
  7.  * Edition History:
  8.  * 1.1 89/06/?? Halca.Hirano creation
  9.  * 1.2 89/09/25 Halca.Hirano
  10.  *    ---- V2.4.0 distribution ----
  11.  *
  12.  * $Header: keytabpc.hv  1.8  90/07/04 01:08:28  hirano  Exp $
  13.  *
  14.  */
  15. #define getkeyval(table, c) ((0<=(c)&&(c)<=(sizeof table))?table[c]:0xff)
  16.  
  17. /* META typewriter key */
  18. char metaTable[] = {
  19. '1', '2', '3', '4', '5', '6', '7', '8',      /* 0 - 7  */
  20. '9', '0', '-', '=', -1,   -1,  -1,  -1,     /* 8 - 0f */
  21. 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',        /* 10 - 17 */
  22. 'o', 'p', '[', ']', -1,  -1,  'a', 's',      /* 18 - 1f */
  23. 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';',     /* 20 - 27 */
  24. 0x27,'`', -1, 0x5c, 'z', 'x', 'c', 'v',        /* 28 - 2f */
  25. 'b', 'n', 'm', ',', '.', '/',  -1,  -1,     /* 30 - 37 */
  26.  -1, 0x20};                    /* 38 - 39 */
  27.  
  28. /* META-CTRL typewriter key */
  29. char metaCtrlTable[] = {
  30.  -1, 0x00, -1,  -1,  -1, CTRL('^'), -1,  -1, 
  31.  -1,  -1, CTRL('_'), -1,  -1,  -1,  -1,  -1, 
  32. CTRL('Q'),CTRL('W'),CTRL('E'),CTRL('R'),CTRL('T'),CTRL('Y'),CTRL('U'),CTRL('I'),
  33. CTRL('O'),CTRL('P'),CTRL('['),CTRL(']'), -1,  -1, CTRL('A'),CTRL('S'),
  34. CTRL('D'),CTRL('F'),CTRL('G'),CTRL('H'),CTRL('J'),CTRL('K'),CTRL('L'), -1, 
  35.  -1,  -1,  -1, 0x1c,CTRL('Z'),CTRL('X'),CTRL('C'),CTRL('V'),
  36. CTRL('B'),CTRL('N'),CTRL('M'), -1,  -1, 0x7f, -1,  -1, 
  37.  -1, 0x00};
  38.  
  39. /* META-SHIFT typewriter key */
  40. char metaShiftTable[] = {
  41. '!', '@', '#', '$', '%', '^', '&', '*',      /* 0 - 7  */
  42. '(', ')', '_', '+', -1,   -1,  -1,  -1,     /* 8 - 0f */
  43. 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',        /* 10 - 17 */
  44. 'O', 'P', '{', '}', -1,  -1,  'A', 'S',      /* 18 - 1f */
  45. 'D', 'F', 'G', 'H', 'J', 'K', 'L', ':',     /* 20 - 27 */
  46. 0x22,'~', -1,  '|', 'Z', 'X', 'C', 'V',        /* 28 - 2f */
  47. 'B', 'N', 'M', '<', '>', '?',  -1,  -1,     /* 30 - 37 */
  48.  -1, 0x20};                    /* 38 - 39 */
  49.  
  50. /*
  51.  * we can use 0xa0 - 0xdf for hterm special keys
  52.  */
  53.  
  54. #define SCAN_PF1    0x3b        /* scan code of PF1 without shift */
  55. #define SCAN_PF10    0x44        /* scan code of PF10 without shift */
  56. #define SCAN_S_PF1    0x54        /* scan code of PF1 with shift    */
  57. #define SCAN_S_PF10    0x5d        /* scan code of PF10 with shift    */
  58. #define SCAN_C_PF1    0x5e        /* scan code of PF1 with ctrl    */
  59. #define SCAN_C_PF10    0x67        /* scan code of PF10 with ctrl    */
  60. #define SCAN_M_PF1    0x68        /* scan code of PF1 with alt    */
  61. #define SCAN_M_PF10    0x71        /* scan code of PF10 with alt    */
  62.  
  63. /*
  64.  * non FEP mode PF key; macro key
  65.  */
  66. u_char NORMALFunkey[NUM_FUNKEY][MAX_FUNKEY] = {
  67.     "\x1b[17~",    /* pf1 (VT220 F7 ) */
  68.     "\x1b[18~",    /* pf2 (VT220 F8 ) */
  69.     "\x1b[19~",    /* pf3 (VT220 F9 ) */
  70.     "\x1b[20~",    /* pf4 (VT220 F10) */
  71.     "\x1b[21~",    /* pf5 (VT220 F11) */
  72.     "\x1b[22~",    /* pf6 (VT220 F12) */
  73.     "\x1b[23~",    /* pf7 (VT220 F13) */
  74.     "\x1b[24~",    /* pf8 (VT220 F14) */
  75.     "\x1b[25~",    /* pf9 (VT220 HELP F15) */
  76.     "\x1b[26~"    /* pf10 (VT220 DO F16) */
  77. };
  78.  
  79. /*
  80.  * non FEP mode shift PF key; macro key
  81.  */
  82. u_char SHIFTFunkey[NUM_FUNKEY][MAX_FUNKEY] = {
  83.     "\x1b[27~",    /* shift pf1 (VT220 F17) */
  84.     "\x1b[28~",    /* shift pf2 (VT220 F18) */
  85.     "\x1b[29~",    /* shift pf3 (VT220 F19) */
  86.     "\x1b[30~",    /* shift pf4 (VT220 F20) */
  87.     "\x1b[31~",    /* shift pf5 (VT220 none) */
  88.     "\x1b[32~",    /* shift pf6 (VT220 none) */
  89.     "\x1b[33~",    /* shift pf7 (VT220 none) */
  90.     "\x1b[34~",    /* shift pf8 (VT220 none) */
  91.     "\x1b[35~",    /* shift pf9 (VT220 none) */
  92.     "\x1b[36~"    /* shift pf0 (VT220 none) */
  93. };
  94.  
  95. /*
  96.  * non FEP mode ctrl PF keys; hterm control key
  97.  */
  98. u_short CTRLFunkey[MAX_FUNKEY] = {
  99.     CTRL_PF1,    /* ctrl pf1 (VT220 none) */
  100.     CTRL_PF2,    /* ctrl pf2 (VT220 none) */
  101.     CTRL_PF3,    /* ctrl pf3 (VT220 none) */
  102.     CTRL_PF4,    /* ctrl pf4 (VT220 none) */
  103.     CTRL_PF5,    /* ctrl pf5 (VT220 none) */
  104.     CTRL_PF6,    /* ctrl pf6 (VT220 none) */
  105.     CTRL_PF7,    /* ctrl pf7 (VT220 none) */
  106.     CTRL_PF8,    /* ctrl pf8 (VT220 none) */
  107.     CTRL_PF9,    /* ctrl pf9 (VT220 none) */
  108.     CTRL_PF10    /* ctrl pf10 (VT220 none) */
  109. };
  110.  
  111.  
  112. /*
  113.  * non FEP mode meta PF keys; hterm control key
  114.  */
  115. u_short METAFunkey[MAX_FUNKEY] = {
  116.     META_PF1,    /* meta pf1 (VT220 none) */
  117.     META_PF2,    /* meta pf2 (VT220 none) */
  118.     META_PF3,    /* meta pf3 (VT220 none) */
  119.     META_PF4,    /* meta pf4 (VT220 none) */
  120.     META_PF5,    /* meta pf5 (VT220 none) */
  121.     META_PF6,    /* meta pf6 (VT220 none) */
  122.     META_PF7,    /* meta pf7 (VT220 none) */
  123.     META_PF8,    /* meta pf8 (VT220 none) */
  124.     META_PF9,    /* meta pf9 (VT220 none) */
  125.     META_PF10    /* meta pf10 (VT220 none) */
  126. };
  127.  
  128. char *funkeyName[] = {
  129.     "F1","F2","F3","F4","F5","F6","F7","F8","F9","F10", ""};
  130. #define FUNKEY_NAME_LEN 3
  131.  
  132. char *keypadName[] = {
  133.     "*",
  134.     "HOME", "UP", "Page Up", "-", "LEFT", "5", "RIGHT", "+",
  135.     "END", "DOWN", "Page Dn", "INS", "DEL", ""};
  136. #define KEYPAD_NAME_LEN 6
  137.  
  138. #define SCAN_PAD_BEGIN    0x47
  139. #define SCAN_PAD_END    0x53
  140.  
  141. /* 
  142.  * pad is cursor key state (without NUMLOCK)
  143.  * normal cursor key mode
  144.  */
  145. u_char NORMALCursor[][MAX_FUNKEY] = {
  146.     "\x1b[1~",        /* 47    HOME (VT220 FIND)    */
  147.     "\x1b[A",        /* 48    UP (VT220 UP)        */
  148.     "\x1b[5~",        /* 49    page up (VT220 prev screen)    */
  149.     "-",            /* 4A    -    (VT220 none)    */
  150.     "\x1b[D",        /* 4b    LEFT (VT220 LEFT)    */
  151.     "",            /* 4c    (5)            */
  152.     "\x1b[C",        /* 4d    RIGHT (VT220 RIGHT)    */
  153.     "+",            /* 4e    + (VT220 ,)        */
  154.     "\x1b[4~",        /* 4f    END    (VT220 SELECT)    */
  155.     "\x1b[B",        /* 50    DOWN (VT220 DOWN)    */
  156.     "\x1b[6~",         /* 51    page down  (VT220 next screen)    */
  157.     "\x1b[2~",        /* 52    INS    (VT220 insert here)    */
  158.     "\x7f",            /* 53    DEL (VT220 none)        */
  159. };
  160.  
  161. /*
  162.  * pad is cursor key state
  163.  * application cursor key
  164.  */
  165. u_char APPLCursor[][MAX_FUNKEY] = {
  166.     "\x1bOP",        /* 47    HOME (VT220 FIND)    */
  167.     "\x1bOA",        /* 48    UP (VT220 UP)        */
  168.     "\x1b[5~",        /* 49    page up (VT220 prev screen)    */
  169.     "-",            /* 4A    -    (VT220 none)    */
  170.     "\x1bOD",        /* 4b    LEFT (VT220 LEFT)    */
  171.     "",            /* 4c    (5)  (VT220 none)    */
  172.     "\x1bOC",        /* 4d    RIGHT (VT220 RIGHT)    */
  173.     "+",            /* 4e    + (VT220 ,)        */
  174.     "\x1b[4~",        /* 4f    END    (VT220 SELECT)    */
  175.     "\x1bOB",        /* 50    DOWN (VT220 DOWN)    */
  176.     "\x1b[6~",         /* 51    page down  (VT220 next screen)    */
  177.     "\x1b[2~",        /* 52    INS    (VT220 insert here)    */
  178.     "\x7f",            /* 53    DEL (VT220 none)        */
  179. };
  180.  
  181.  
  182. /* 
  183.  * keypad is cursor state (without NUMLOCK)
  184.  * in setup mode 
  185.  */
  186. u_short SETUPCursor[] = {
  187.     HOME_KEY,        /* 47    HOME (VT220 FIND)    */
  188.     UP_KEY,            /* 48    UP (VT220 UP)        */
  189.     PGUP_KEY,        /* 49    page up (VT220 prev screen)    */
  190.     (u_short)'-',        /* 4A    -    (VT220 none)    */
  191.     LEFT_KEY,        /* 4b    LEFT (VT220 LEFT)    */
  192.     (u_short)'5',        /* 4c    (5)  (VT220 none)    */
  193.     RIGHT_KEY,        /* 4d    RIGHT (VT220 RIGHT)    */
  194.     (u_short)'+',        /* 4e    + (VT220 ,)        */
  195.     END_KEY,        /* 4f    END    (VT220 SELECT)    */
  196.     DOWN_KEY,        /* 50    DOWN (VT220 DOWN)    */
  197.     PGDN_KEY,         /* 51    page down  (VT220 next screen)    */
  198.     INS_KEY,        /* 52    INS    (VT220 insert here)    */
  199.     DEL_KEY,        /* 53    DEL (VT220 none)        */
  200. };
  201.  
  202. #define SCAN_C_PAD_BEGIN 0x73
  203. #define SCAN_C_PAD_END    0x84
  204.  
  205. /* 
  206.  * keypad is cursor state (without NUMLOCK)
  207.  * CTRL-cursor/keypad
  208.  */
  209. u_short CTRLCursor[] = {
  210.     LEFT_KEY,        /* 73    CTRL-LEFT        */
  211.     RIGHT_KEY,        /* 74    CTRL-RIGHT        */
  212.     END_KEY,        /* 75    CTRL-END        */
  213.     PGDN_KEY,        /* 76    CTRL-PgDn        */
  214.     HOME_KEY,        /* 77    CTRL-HOME        */
  215.     0,0,0,0,0,0,0,0,
  216.     0,0,0,0,
  217.     PGUP_KEY,        /* 84    CTRL-PgUp        */
  218. };
  219.  
  220. /*
  221.  * keypad is ten key state (with NUMLOCK)
  222.  * application keypad mode
  223.  */
  224. u_char APPLPad[][MAX_FUNKEY] = {
  225.     "\x1bOS",        /* 37    * (VT220 PF4)        */
  226.     "\x1bOw",        /* 47    7 (VT220 7)        */
  227.     "\x1bOx",        /* 48    8 (VT220 8)        */
  228.     "\x1bOy",        /* 49    9 (VT220 9)        */
  229.     "\x1bOR",        /* 4A    - (VT220 PF3)        */
  230.     "\x1bOt",        /* 4b    4 (VT220 4)        */
  231.     "\x1bOu",        /* 4c    5 (VT220 5)        */
  232.     "\x1bOv",        /* 4d    6 (VT220 6)        */
  233.     "\x1bOl",        /* 4e    + (VT220 ,)        */
  234.     "\x1bOq",        /* 4f    1 (VT220 1)        */
  235.     "\x1bOr",        /* 50    2 (VT220 2)        */
  236.     "\x1bOs",         /* 51    3 (VT220 3)        */
  237.     "\x1bOp",        /* 52    0 (VT220 0)        */
  238.     "\x1bOn",        /* 53    . (VT220 .)        */
  239. };
  240.