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

  1. /* keytab98.h    hterm pc98 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.  * 1.3 89/11/29 Halca.Hirano
  12.  *    fix set-up mode tenkey bug
  13.  * 1.4 90/05/27 Halca.Hirano
  14.  *    add tables for hkey utility
  15.  *    add keySwapTable
  16.  * 1.5 90/06/21 Halca.Hirano
  17.  *    change key table from short to char
  18.  *
  19.  * $Header: keytab98.hv  1.11  90/07/04 20:22:16  hirano  Exp $
  20.  */
  21.  
  22. #define LAST_KEY_TABLE    0x33        /* SPACE is the last elem in tables */
  23. #define BEG_SPECIAL_TABLE 0x36        /* special key table first    */
  24. #define KEY_CODE_PF1    0x62
  25. #define    KEY_CODE_PF10    0X6b
  26. #define KEY_CODE_COPY    0x61
  27. #define KEY_CODE_STOP    0x60
  28. #define SCAN_PAD_BEGIN    0x36
  29. #define SCAN_PAD_END    0x50
  30.  
  31. #ifndef TSR
  32. /* normal key name */
  33. char *normalKeyName[] = {
  34. "ESC", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "^", "\\", "BS",
  35. "TAB", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "@", "[","CR",
  36. "A", "S", "D", "F", "G", "H", "J", "K", "L", ";", ":", "]",
  37. "Z", "X", "C", "V", "B", "N", "M", ",", ".", "/", "_", ""};
  38.  
  39. /* shift key name */
  40. char *shiftKeyName[] = {
  41. "ESC", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "0", "=", "\x60", "|", "BS",
  42. "TAB", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "~", "{", "CR",
  43. "A", "S", "D", "F", "G", "H", "J", "K", "L", "+", "*", "}",
  44. "Z", "X", "C", "V", "B", "N", "M", "<", ">", "?", "_", ""};
  45. #endif /* TSR */
  46. #define NUM_NORMAL_KEY 0x34
  47. #define NORMAL_KEY_NAME_LEN 3
  48.  
  49. /*
  50.  * key table mark
  51.  * hkeyset.exe searches "PINK" string and assumes that
  52.  * key table follows it.
  53.  */
  54. char keyTableMark[6] = KEYTAB_MARK;
  55.  
  56. /* keycode to keycode swapping table */
  57. u_char keySwapTable[128] = {
  58.     0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
  59.     0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
  60.     0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
  61.     0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
  62.     0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
  63.     0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
  64.     0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
  65.     0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
  66.     0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
  67.     0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
  68.     0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
  69.     0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
  70.     0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
  71.     0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
  72.     0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
  73.     0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f
  74. };
  75.  
  76. /* ASCII keyboard without shift */
  77. u_char anoshiftbl[] = {
  78.     ESC, '1', '2', '3',           /* 00    ESC 1 2 3        */
  79.     '4', '5', '6', '7',            /* 04    4 5 6 7            */
  80.     '8', '9', '0', '-',            /* 08    8 9 0 -            */
  81.     '=', 0x60, BS, TAB,         /* 0c    ^ \ BS TAB        */
  82.     'q', 'w', 'e', 'r',         /* 10    Q W E R            */
  83.     't', 'y', 'u', 'i',           /* 14    T Y U I            */
  84.     'o', 'p', '[', ']',            /* 18    O P @ [            */
  85.     CR,  'a', 's', 'd',            /* 1c    CR  A S D        */
  86.     'f', 'g', 'h', 'j',         /* 20    F G H J            */
  87.     'k', 'l', ';', '\'',        /* 24    K L ; :            */
  88.     '\\','z', 'x', 'c',            /* 28    ] Z X C            */
  89.     'v', 'b', 'n', 'm',            /* 2C    V B N M            */
  90.     ',', '.', '/', '`'};        /* 30    , . / _            */
  91.  
  92. /* ASCII keyboard with CTRL     */
  93. u_char actrltbl[] = {
  94.     SHORT_BREAK,NG,   0, 0x1b,     /* 00    ESC 1 2 3        */
  95.     0x1c, 0x1d, 0x1e, 0x1f,        /* 04    4 5 6 7            */
  96.     0x7f, NG,   NG,   0x1f,     /* 08    8 9 0 -            */
  97.     0x1e, 0x1f, NG,      TAB,        /* 0c    ^ \ BS TAB        */
  98.     0x11, 0x17, 0x05, 0x12,        /* 10    Q W E R            */
  99.     0x14, 0x19, 0x15, TAB,         /* 14    T Y U I            */
  100.     0x0f, 0x10, 0x1b, 0x1d,        /* 18    O P @ [            */
  101.     CR,   0x01, 0x13, 0x04,        /* 1c    CR  A S D        */
  102.     0x06, 0x07, 0x08, 0x0a,     /* 20    F G H J            */
  103.     0x0b, 0x0c, NG,   NG,         /* 24    K L ; :            */
  104.     0x1c, 0x1a, 0x18, 0x03,        /* 28    ] Z X C            */
  105.     0x16, 0x02, 0x0e, CR,        /* 2C    V B N M            */
  106.     NG,   NG,   0x1f, NA};        /* 30    , . / _            */
  107.  
  108. /* ASCII keyboard with shift */
  109. u_char ashiftbl[] = {
  110.     LONG_BREAK, '!', '@', '#',    /* 00    ESC 1 2 3        */
  111.     '$', '%', '^', '&',            /* 04    4 5 6 7            */
  112.     '*', '(', ')', '_',            /* 08    8 9 0 -            */
  113.     '+', '~', BS,  TAB,            /* 0c    ^ \ BS TAB        */
  114.     'Q', 'W', 'E', 'R',            /* 10    Q W E R            */
  115.     'T', 'Y', 'U', 'I',            /* 14    T Y U I            */
  116.     'O', 'P', '{', '}',            /* 18    O P @ [            */
  117.     CR,  'A', 'S', 'D',            /* 1c    CR  A S D        */
  118.     'F', 'G', 'H', 'J',            /* 20    F G H J            */
  119.     'K', 'L', ':', '\"',        /* 24    K L ; :            */
  120.     '|', 'Z', 'X', 'C',            /* 28    ] Z X C            */
  121.     'V', 'B', 'N', 'M',            /* 2C    V B N M            */
  122.     '<', '>', '?', '~'};        /* 30    , . / _            */
  123.  
  124. /* ASCII/9801 keyboard with kana    */
  125. u_char akanatbl[] = {
  126.     ESC, 0307,0314,0261,        /* 00    ESC 1 2 3        */
  127.     0263,0264,0265,0324,        /* 04    4 5 6 7            */
  128.     0325,0326,0334,0316,        /* 08    8 9 0 -            */
  129.     0315,0260,   8,   9,        /* 0c    ^ \ BS TAB        */
  130.     0300,0303,0262,0275,        /* 10    Q W E R            */
  131.     0266,0335,0305,0306,        /* 14    T Y U I            */
  132.     0327,0276,0336,0337,        /* 18    O P @ [            */
  133.     CR,  0301,0304,0274,        /* 1c    CR  A S D        */
  134.     0312,0267,0270,0317,        /* 20    F G H J            */
  135.     0311,0330,0332,0271,        /* 24    K L ; :            */
  136.     0321,0302,0273,0277,        /* 28    ] Z X C            */
  137.     0313,0272,0320,0323,        /* 2C    V B N M            */
  138.     0310,0331,0322,0333};        /* 30    , . / _            */
  139.  
  140. /* ASCII/9801 keyboard with kana and shift */
  141. u_char ashkanatbl[] = {
  142.     ESC, 0307,0314,0247,        /* 00    ESC 1 2 3        */
  143.     0251,0252,0253,0254,        /* 04    4 5 6 7            */
  144.     0255,0256,0246,0316,        /* 08    8 9 0 -            */
  145.     0315,0260,   8,   9,        /* 0c    ^ \ BS TAB        */
  146.     0300,0303,0250,0275,        /* 10    Q W E R            */
  147.     0266,0335,0305,0306,        /* 14    T Y U I            */
  148.     0327,0276,0336,0242,        /* 18    O P @ [            */
  149.     CR,  0301,0304,0274,        /* 1c    CR  A S D        */
  150.     0312,0267,0270,0317,        /* 20    F G H J            */
  151.     0311,0330,0332,0271,        /* 24    K L ; :            */
  152.     0243,0257,0273,0277,        /* 28    ] Z X C            */
  153.     0313,0272,0320,0323,        /* 2C    V B N M            */
  154.     0244,0241,0245,0333};        /* 30    , . / _            */
  155.  
  156. /*
  157.  * key table for PC9801 keyboard mode
  158.  */
  159.  
  160. /* PC98 keyboard normal    */
  161. u_char pnoshiftbl[] = {    
  162.     ESC, '1', '2', '3',            /* 00    ESC 1 2 3        */
  163.     '4', '5', '6', '7',            /* 04    4 5 6 7            */
  164.     '8', '9', '0', '-',            /* 08    8 9 0 -            */
  165.     '^', '\\', BS, TAB,         /* 0c    ^ \ BS TAB        */
  166.     'q', 'w', 'e', 'r',            /* 10    Q W E R            */
  167.     't', 'y', 'u', 'i',            /* 14    T Y U I            */
  168.     'o', 'p', '@', '[',            /* 18    O P @ [            */
  169.     CR,  'a', 's', 'd',            /* 1c    CR  A S D        */
  170.     'f', 'g', 'h', 'j',            /* 20    F G H J            */
  171.     'k', 'l', ';', ':',            /* 24    K L ; :            */
  172.     ']', 'z', 'x', 'c',            /* 28    ] Z X C            */
  173.     'v', 'b', 'n', 'm',            /* 2C    V B N M            */
  174.     ',', '.', '/', NA};            /* 30    , . / _            */
  175.  
  176. /* PC98 keyboard with CTRL */
  177. u_char pctrltbl[] = {
  178.     SHORT_BREAK,  NG, 0, 0x1b,    /* 00    ESC 1 2 3        */
  179.     0x1c, 0x1d, 0x1e, 0x1f,        /* 04    4 5 6 7            */
  180.     0x7f, NG,   NG,   0x1f,        /* 08    8 9 0 -            */
  181.     0x1e, 0x1c, NG,      TAB,        /* 0c    ^ \ BS TAB        */
  182.     0x11, 0x17, 0x05, 0x12,        /* 10    Q W E R            */
  183.     0x14, 0x19, 0x15, TAB,        /* 14    T Y U I            */
  184.     0x0f, 0x10, 0x00, ESC,        /* 18    O P @ [            */
  185.     0x0d, 0x01, 0x13, 0x04,        /* 1c    CR  A S D        */
  186.     0x06, 0x07, 0x08, 0x0a,        /* 20    F G H J            */
  187.     0x0b, 0x0c, NA,   NA,        /* 24    K L ; :            */
  188.     0x1d, 0x1a, 0x18, 0x03,        /* 28    ] Z X C            */
  189.     0x16, 0x02, 0x0e, CR,        /* 2C    V B N M            */
  190.     NG,   NG,   0x1f, 0x1f};    /* 30    , . / _            */
  191.  
  192. /* PC98 keyboard mode with shift */
  193. u_char pshiftbl[] = {
  194.     LONG_BREAK, '!', '\"', '#',    /* 00    ESC 1 2 3        */
  195.     '$', '%', '&', '\'',         /* 04    4 5 6 7            */
  196.     '(', ')', '0', '=',            /* 08    8 9 0 -            */
  197.     0x60, '|', BS, TAB,            /* 0c    ^ \ BS TAB        */
  198.     'Q', 'W', 'E', 'R',         /* 10    Q W E R            */
  199.     'T', 'Y', 'U', 'I',            /* 14    T Y U I            */
  200.     'O', 'P', '~', '{',            /* 18    O P @ [            */
  201.     CR,  'A', 'S', 'D',            /* 1c    CR  A S D        */
  202.     'F', 'G', 'H', 'J',            /* 20    F G H J            */
  203.     'K', 'L', '+', '*',            /* 24    K L ; :            */
  204.     '}', 'Z', 'X', 'C',            /* 28    ] Z X C            */
  205.     'V', 'B', 'N', 'M',            /* 2C    V B N M            */
  206.     '<', '>', '?', '_'};        /* 30    , . / _            */
  207.  
  208. /*
  209.  * ASCII to scan code conversion table
  210.  */
  211. u_char ASCIItoSCAN[] = {
  212.      /* 0    1    2    3    4    5    6    7 */
  213.      0x1a,0x1d,0x2d,0x2b,0x1f,0x12,0x20,0x21,     /* 0  - 7  */
  214.     /* 8    9    a    b    c    d    e    f */
  215.     0x22,0x17,0x23,0x24,0x25,0x1c,0x2e,0x18,    /* 8  - f  */
  216.     0x19,0x10,0x13,0x1e,0x14,0x16,0x2c,0x11,    /* 10 - 17 */
  217.     0x2a,0x15,0x29,0x1b,0x0d,0x28,0x0c,0x33,    /* 18 - 1f */
  218.     0x34,0x01,0x02,0x03,0x04,0x05,0x06,0x07,    /* 20 - 27 */
  219.     0x08,0x09,0x27,0x26,0x30,0x0b,0x31,0x32,    /* 28 - 2f */
  220.     0x0a,0x01,0x02,0x03,0x04,0x05,0x06,0x07,    /* 30 - 37 */
  221.     0x08,0x09,0x27,0x26,0x30,0x0b,0x31,0x32,    /* 38 - 3f */
  222.     0x1a,0x1d,0x0d,0x2b,0x1f,0x12,0x20,0x21,    /* 40 - 47 */
  223.     0x22,0x17,0x23,0x24,0x25,0x2f,0x2e,0x18,    /* 48 - 4f */
  224.     0x19,0x10,0x13,0x1e,0x14,0x16,0x2c,0x11,    /* 50 - 57 */
  225.     0x2a,0x15,0x29,0x1b,0x0d,0x28,0x0c,0x33,    /* 58 - 5f */
  226.     0x0c,0x1d,0x0d,0x2b,0x1f,0x12,0x20,0x21,    /* 60 - 67 */
  227.     0x22,0x17,0x23,0x24,0x25,0x2f,0x2e,0x18,    /* 68 - 6f */
  228.     0x19,0x10,0x13,0x1e,0x14,0x16,0x2c,0x11,    /* 70 - 77 */
  229.     0x2a,0x15,0x29,0x1b,0x0d,0x28,0x1a,0x39,    /* 78 - 7f */
  230.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,    /* 80 - 87 */
  231.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,    /* 88 - 8f */
  232.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,    /* 90 - 97 */
  233.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,    /* 98 - 9f */
  234.     0x00,0x31,0x1b,0x28,0x30,0x32,0x0a,0x03,    /* a0 - a7 */
  235.     0x12,0x04,0x05,0x06,0x07,0x08,0x09,0x29,    /* a8 - af */
  236.     0x0d,0x03,0x12,0x04,0x05,0x06,0x14,0x21,    /* b0 - b7 */
  237.     0x22,0x27,0x2d,0x2a,0x1f,0x13,0x19,0x2b,    /* b8 - bf */
  238.     0x10,0x1d,0x29,0x11,0x1e,0x16,0x17,0x01,    /* c0 - c7 */
  239.     0x30,0x24,0x20,0x2c,0x02,0x0c,0x0b,0x23,    /* c8 - cf */
  240.     0x2e,0x28,0x32,0x2f,0x07,0x08,0x09,0x18,    /* d0 - d7 */
  241.     0x25,0x31,0x26,0x33,0x0a,0x15,0x1a,0x1b,    /* d8 - df */
  242.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,    /* e0 - e7 */
  243.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,    /* e8 - ef */
  244.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,    /* f0 - f7 */
  245.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};    /* f8 - ff */
  246.  
  247. #ifndef TSR
  248. /*
  249.  * we can use 0xa0 - 0xdf for hterm special keys
  250.  */
  251. char *funkeyName[] = {
  252.     "F1","F2","F3","F4","F5","F6","F7","F8","F9","F10", ""};
  253. #define FUNKEY_NAME_LEN 3
  254.  
  255. char *keypadName[] = {
  256.     "Roll Up", "Roll Dn", "INS", "DEL", "UP", "LEFT", "RIGHT",
  257.     "DOWN", "HOME", "HELP", "-", "/", "7", "8", "9", "*", "4",
  258.     "5", "6", "+", "1", "2", "3", "=", "0", ",", "."};
  259. #define KEYPAD_NAME_LEN 7
  260.  
  261. /*
  262.  * non FEP mode PF key; macro key
  263.  */
  264. u_char NORMALFunkey[NUM_FUNKEY][MAX_FUNKEY] = {
  265.     "\x1b[17~",    /* pf1 (VT220 F7 ) */
  266.     "\x1b[18~",    /* pf2 (VT220 F8 ) */
  267.     "\x1b[19~",    /* pf3 (VT220 F9 ) */
  268.     "\x1b[20~",    /* pf4 (VT220 F10) */
  269.     "\x1b[21~",    /* pf5 (VT220 F11) */
  270.     "\x1b[22~",    /* pf6 (VT220 F12) */
  271.     "\x1b[23~",    /* pf7 (VT220 F13) */
  272.     "\x1b[24~",    /* pf8 (VT220 F14) */
  273.     "\x1b[25~",    /* pf9 (VT220 HELP F15) */
  274.     "\x1b[26~"    /* pf10 (VT220 DO F16) */
  275. };
  276.  
  277. /*
  278.  * non FEP mode shift PF key; macro key
  279.  */
  280. u_char SHIFTFunkey[NUM_FUNKEY][MAX_FUNKEY] = {
  281.     "\x1b[27~",    /* shift pf1 (VT220 F17) */
  282.     "\x1b[28~",    /* shift pf2 (VT220 F18) */
  283.     "\x1b[29~",    /* shift pf3 (VT220 F19) */
  284.     "\x1b[30~",    /* shift pf4 (VT220 F20) */
  285.     "\x1b[31~",    /* shift pf5 (VT220 none) */
  286.     "\x1b[32~",    /* shift pf6 (VT220 none) */
  287.     "\x1b[33~",    /* shift pf7 (VT220 none) */
  288.     "\x1b[34~",    /* shift pf8 (VT220 none) */
  289.     "\x1b[35~",    /* shift pf9 (VT220 none) */
  290.     "\x1b[36~"    /* shift pf0 (VT220 none) */
  291. };
  292.  
  293. /*
  294.  * non FEP mode ctrl PF keys; hterm control key
  295.  */
  296. u_short CTRLFunkey[NUM_FUNKEY] = {
  297.     CTRL_PF1,    /* ctrl pf1 (VT220 none) */
  298.     CTRL_PF2,    /* ctrl pf2 (VT220 none) */
  299.     CTRL_PF3,    /* ctrl pf3 (VT220 none) */
  300.     CTRL_PF4,    /* ctrl pf4 (VT220 none) */
  301.     CTRL_PF5,    /* ctrl pf5 (VT220 none) */
  302.     CTRL_PF6,    /* ctrl pf6 (VT220 none) */
  303.     CTRL_PF7,    /* ctrl pf7 (VT220 none) */
  304.     CTRL_PF8,    /* ctrl pf8 (VT220 none) */
  305.     CTRL_PF9,    /* ctrl pf9 (VT220 none) */
  306.     CTRL_PF10    /* ctrl pf10 (VT220 none) */
  307. };
  308.  
  309. /*
  310.  * non FEP mode meta PF keys; hterm control key
  311.  */
  312. u_short METAFunkey[NUM_FUNKEY] = {
  313.     META_PF1,    /* META pf1 (VT220 none) */
  314.     META_PF2,    /* META pf2 (VT220 none) */
  315.     META_PF3,    /* META pf3 (VT220 none) */
  316.     META_PF4,    /* META pf4 (VT220 none) */
  317.     META_PF5,    /* META pf5 (VT220 none) */
  318.     META_PF6,    /* META pf6 (VT220 none) */
  319.     META_PF7,    /* META pf7 (VT220 none) */
  320.     META_PF8,    /* META pf8 (VT220 none) */
  321.     META_PF9,    /* META pf9 (VT220 none) */
  322.     META_PF10    /* META pf10 (VT220 none) */
  323. };
  324.  
  325. /* 
  326.  * normal cursor key mode and numeric keypad mode
  327.  */
  328. u_char NORMALPad[][MAX_FUNKEY] = {
  329.     "\x1b[5~",        /* 36    rl up (VT220 prev screen)    */
  330.     "\x1b[6~",         /* 37    rl down  (VT220 next screen)    */
  331.     "\x1b[2~",        /* 38    INS    (VT220 insert here)    */
  332.     "\x7f",            /* 39    DEL (VT220 none)        */
  333.     "\x1b[A",        /* 3A    UP (VT220 UP)        */
  334.     "\x1b[D",        /* 3B    LEFT (VT220 LEFT)    */
  335.     "\x1b[C",        /* 3C    RIGHT (VT220 RIGHT)    */
  336.     "\x1b[B",        /* 3D    DOWN (VT220 DOWN)    */
  337.     "\x1b[1~",        /* 3E    HOME/CLR (VT220 FIND)    */
  338.     "\x1b[4~",        /* 3F    HELP    (VT220 SELECT)    */
  339.     "-","/","7","8",    /* 40    - / 7 8            */
  340.     "9","*","4","5",    /* 44    9 * 4 5            */
  341.     "6","+","1","2",    /* 48    6 + 1 2            */
  342.     "3","=","0",",",    /* 4C    3 = 0 ,            */
  343.     "."                /* 50    .            */
  344. };
  345.  
  346. /*
  347.  * application cursor key mode and application keypad mode
  348.  */
  349. u_char APPLPad[][MAX_FUNKEY] = {
  350.     "\x1b[5~",        /* 36    rl up (VT220 prev screen)    */
  351.     "\x1b[6~",         /* 37    rl down  (VT220 next screen)    */
  352.     "\x1b[2~",        /* 38    INS    (VT220 insert here)    */
  353.     "\x7f",            /* 39    DEL (VT220 none)        */
  354.     "\x1bOA",        /* 3A    UP (VT220 UP)        */
  355.     "\x1bOD",        /* 3B    LEFT (VT220 LEFT)    */
  356.     "\x1bOC",        /* 3C    RIGHT (VT220 RIGHT)    */
  357.     "\x1bOB",        /* 3D    DOWN (VT220 DOWN)    */
  358.     "\x1bOP",        /* 3E    HOME/CLR (VT220 PF1)    */
  359.     "\x1bOQ",        /* 3F    HELP    (VT220 PF2)    */
  360.     "\x1bOR",        /* 40    -    (VT220 PF3)    */
  361.     "\x1bOS",        /* 41    /    (VT220 PF4)    */
  362.     "\x1bOw",        /* 42    7    (VT220 7)    */
  363.     "\x1bOx",        /* 43    8    (VT220 8)    */
  364.     "\x1bOy",        /* 44    9    (VT220 9)    */
  365.     "\x1bOm",        /* 45    *    (VT220 -)    */
  366.     "\x1bOt",        /* 46    4    (VT220 4)    */
  367.     "\x1bOu",        /* 47    5    (VT220 5)    */
  368.     "\x1bOv",        /* 48    6    (VT220 6)    */
  369.     "\x1bOl",        /* 49    +    (VT220 ,)    */
  370.     "\x1bOq",        /* 4A    1    (VT220 1)    */
  371.     "\x1bOr",        /* 4B    2    (VT220 2)    */
  372.     "\x1bOs",        /* 4C    3    (VT220 3)    */
  373.     "\x1bOM",        /* 4D    =    (VT220 ENTER)    */
  374.     "\x1bOp",        /* 4E    0    (VT220 0)    */
  375.     "\x1bOo",        /* 4F    ,    (VT220 none)    */
  376.     "\x1bOn"        /* 50    .    (VT220 .)    */
  377. };
  378. #endif /* TSR */
  379.  
  380. /*
  381.  * CTRL-keypad or keypad in setup
  382.  */
  383. u_short CTRLPad[] = {
  384.     PGUP_KEY>>8,    /* 36    rl up         */
  385.     PGDN_KEY>>8,    /* 37    rl down      */
  386.     INS_KEY>>8,        /* 38    INS        */
  387.     DEL_KEY,        /* 39    DEL         */
  388.     UP_KEY>>8,        /* 3A    UP         */
  389.     LEFT_KEY>>8,    /* 3B    LEFT         */
  390.     RIGHT_KEY>>8,    /* 3C    RIGHT         */
  391.     DOWN_KEY>>8,    /* 3D    DOWN         */
  392.     HOME_KEY>>8,    /* 3E    HOME/CLR     */
  393.     HELP_KEY>>8,    /* 3F    HELP        */
  394.     (u_short)'-',        /* 40    -        */
  395.     (u_short)'/',        /* 41    /        */
  396.     (u_short)'7',        /* 42    7        */
  397.     (u_short)'8',        /* 43    8        */
  398.     (u_short)'9',        /* 44    9        */
  399.     (u_short)'*',        /* 45    *        */
  400.     (u_short)'4',        /* 46    4        */
  401.     (u_short)'5',        /* 47    5        */
  402.     (u_short)'6',        /* 48    6        */
  403.     (u_short)'+',        /* 49    +        */
  404.     (u_short)'1',        /* 4A    1        */
  405.     (u_short)'2',        /* 4B    2        */
  406.     (u_short)'3',        /* 4C    3        */
  407.     (u_short)'=',        /* 4D    =        */
  408.     (u_short)'0',        /* 4E    0        */
  409.     (u_short)',',        /* 4F    ,        */
  410.     (u_short)'.'        /* 50    .         */
  411.     /* STOP_KEY        // 0x94    STOP        */
  412.     /* SETUP_KEY        // 0x95    COPY        */
  413. };
  414.