home *** CD-ROM | disk | FTP | other *** search
- /* keytab98.h hterm pc98 keytable
- *
- * Author: HIRANO Satoshi
- * (C) 1989 Halca Computer Science Laboratory TM
- * University of Tokyo
- *
- * Edition History:
- * 1.1 89/06/?? Halca.Hirano creation
- * 1.2 89/09/25 Halca.Hirano
- * ---- V2.4.0 distribution ----
- * 1.3 89/11/29 Halca.Hirano
- * fix set-up mode tenkey bug
- * 1.4 90/05/27 Halca.Hirano
- * add tables for hkey utility
- * add keySwapTable
- * 1.5 90/06/21 Halca.Hirano
- * change key table from short to char
- *
- * $Header: keytab98.hv 1.11 90/07/04 20:22:16 hirano Exp $
- */
-
- #define LAST_KEY_TABLE 0x33 /* SPACE is the last elem in tables */
- #define BEG_SPECIAL_TABLE 0x36 /* special key table first */
- #define KEY_CODE_PF1 0x62
- #define KEY_CODE_PF10 0X6b
- #define KEY_CODE_COPY 0x61
- #define KEY_CODE_STOP 0x60
- #define SCAN_PAD_BEGIN 0x36
- #define SCAN_PAD_END 0x50
-
- #ifndef TSR
- /* normal key name */
- char *normalKeyName[] = {
- "ESC", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "^", "\\", "BS",
- "TAB", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "@", "[","CR",
- "A", "S", "D", "F", "G", "H", "J", "K", "L", ";", ":", "]",
- "Z", "X", "C", "V", "B", "N", "M", ",", ".", "/", "_", ""};
-
- /* shift key name */
- char *shiftKeyName[] = {
- "ESC", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "0", "=", "\x60", "|", "BS",
- "TAB", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "~", "{", "CR",
- "A", "S", "D", "F", "G", "H", "J", "K", "L", "+", "*", "}",
- "Z", "X", "C", "V", "B", "N", "M", "<", ">", "?", "_", ""};
- #endif /* TSR */
- #define NUM_NORMAL_KEY 0x34
- #define NORMAL_KEY_NAME_LEN 3
-
- /*
- * key table mark
- * hkeyset.exe searches "PINK" string and assumes that
- * key table follows it.
- */
- char keyTableMark[6] = KEYTAB_MARK;
-
- /* keycode to keycode swapping table */
- u_char keySwapTable[128] = {
- 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
- 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
- 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
- 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
- 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
- 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
- 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
- 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
- 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
- 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
- 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
- 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
- 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
- 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
- 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
- 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f
- };
-
- /* ASCII keyboard without shift */
- u_char anoshiftbl[] = {
- ESC, '1', '2', '3', /* 00 ESC 1 2 3 */
- '4', '5', '6', '7', /* 04 4 5 6 7 */
- '8', '9', '0', '-', /* 08 8 9 0 - */
- '=', 0x60, BS, TAB, /* 0c ^ \ BS TAB */
- 'q', 'w', 'e', 'r', /* 10 Q W E R */
- 't', 'y', 'u', 'i', /* 14 T Y U I */
- 'o', 'p', '[', ']', /* 18 O P @ [ */
- CR, 'a', 's', 'd', /* 1c CR A S D */
- 'f', 'g', 'h', 'j', /* 20 F G H J */
- 'k', 'l', ';', '\'', /* 24 K L ; : */
- '\\','z', 'x', 'c', /* 28 ] Z X C */
- 'v', 'b', 'n', 'm', /* 2C V B N M */
- ',', '.', '/', '`'}; /* 30 , . / _ */
-
- /* ASCII keyboard with CTRL */
- u_char actrltbl[] = {
- SHORT_BREAK,NG, 0, 0x1b, /* 00 ESC 1 2 3 */
- 0x1c, 0x1d, 0x1e, 0x1f, /* 04 4 5 6 7 */
- 0x7f, NG, NG, 0x1f, /* 08 8 9 0 - */
- 0x1e, 0x1f, NG, TAB, /* 0c ^ \ BS TAB */
- 0x11, 0x17, 0x05, 0x12, /* 10 Q W E R */
- 0x14, 0x19, 0x15, TAB, /* 14 T Y U I */
- 0x0f, 0x10, 0x1b, 0x1d, /* 18 O P @ [ */
- CR, 0x01, 0x13, 0x04, /* 1c CR A S D */
- 0x06, 0x07, 0x08, 0x0a, /* 20 F G H J */
- 0x0b, 0x0c, NG, NG, /* 24 K L ; : */
- 0x1c, 0x1a, 0x18, 0x03, /* 28 ] Z X C */
- 0x16, 0x02, 0x0e, CR, /* 2C V B N M */
- NG, NG, 0x1f, NA}; /* 30 , . / _ */
-
- /* ASCII keyboard with shift */
- u_char ashiftbl[] = {
- LONG_BREAK, '!', '@', '#', /* 00 ESC 1 2 3 */
- '$', '%', '^', '&', /* 04 4 5 6 7 */
- '*', '(', ')', '_', /* 08 8 9 0 - */
- '+', '~', BS, TAB, /* 0c ^ \ BS TAB */
- 'Q', 'W', 'E', 'R', /* 10 Q W E R */
- 'T', 'Y', 'U', 'I', /* 14 T Y U I */
- 'O', 'P', '{', '}', /* 18 O P @ [ */
- CR, 'A', 'S', 'D', /* 1c CR A S D */
- 'F', 'G', 'H', 'J', /* 20 F G H J */
- 'K', 'L', ':', '\"', /* 24 K L ; : */
- '|', 'Z', 'X', 'C', /* 28 ] Z X C */
- 'V', 'B', 'N', 'M', /* 2C V B N M */
- '<', '>', '?', '~'}; /* 30 , . / _ */
-
- /* ASCII/9801 keyboard with kana */
- u_char akanatbl[] = {
- ESC, 0307,0314,0261, /* 00 ESC 1 2 3 */
- 0263,0264,0265,0324, /* 04 4 5 6 7 */
- 0325,0326,0334,0316, /* 08 8 9 0 - */
- 0315,0260, 8, 9, /* 0c ^ \ BS TAB */
- 0300,0303,0262,0275, /* 10 Q W E R */
- 0266,0335,0305,0306, /* 14 T Y U I */
- 0327,0276,0336,0337, /* 18 O P @ [ */
- CR, 0301,0304,0274, /* 1c CR A S D */
- 0312,0267,0270,0317, /* 20 F G H J */
- 0311,0330,0332,0271, /* 24 K L ; : */
- 0321,0302,0273,0277, /* 28 ] Z X C */
- 0313,0272,0320,0323, /* 2C V B N M */
- 0310,0331,0322,0333}; /* 30 , . / _ */
-
- /* ASCII/9801 keyboard with kana and shift */
- u_char ashkanatbl[] = {
- ESC, 0307,0314,0247, /* 00 ESC 1 2 3 */
- 0251,0252,0253,0254, /* 04 4 5 6 7 */
- 0255,0256,0246,0316, /* 08 8 9 0 - */
- 0315,0260, 8, 9, /* 0c ^ \ BS TAB */
- 0300,0303,0250,0275, /* 10 Q W E R */
- 0266,0335,0305,0306, /* 14 T Y U I */
- 0327,0276,0336,0242, /* 18 O P @ [ */
- CR, 0301,0304,0274, /* 1c CR A S D */
- 0312,0267,0270,0317, /* 20 F G H J */
- 0311,0330,0332,0271, /* 24 K L ; : */
- 0243,0257,0273,0277, /* 28 ] Z X C */
- 0313,0272,0320,0323, /* 2C V B N M */
- 0244,0241,0245,0333}; /* 30 , . / _ */
-
- /*
- * key table for PC9801 keyboard mode
- */
-
- /* PC98 keyboard normal */
- u_char pnoshiftbl[] = {
- ESC, '1', '2', '3', /* 00 ESC 1 2 3 */
- '4', '5', '6', '7', /* 04 4 5 6 7 */
- '8', '9', '0', '-', /* 08 8 9 0 - */
- '^', '\\', BS, TAB, /* 0c ^ \ BS TAB */
- 'q', 'w', 'e', 'r', /* 10 Q W E R */
- 't', 'y', 'u', 'i', /* 14 T Y U I */
- 'o', 'p', '@', '[', /* 18 O P @ [ */
- CR, 'a', 's', 'd', /* 1c CR A S D */
- 'f', 'g', 'h', 'j', /* 20 F G H J */
- 'k', 'l', ';', ':', /* 24 K L ; : */
- ']', 'z', 'x', 'c', /* 28 ] Z X C */
- 'v', 'b', 'n', 'm', /* 2C V B N M */
- ',', '.', '/', NA}; /* 30 , . / _ */
-
- /* PC98 keyboard with CTRL */
- u_char pctrltbl[] = {
- SHORT_BREAK, NG, 0, 0x1b, /* 00 ESC 1 2 3 */
- 0x1c, 0x1d, 0x1e, 0x1f, /* 04 4 5 6 7 */
- 0x7f, NG, NG, 0x1f, /* 08 8 9 0 - */
- 0x1e, 0x1c, NG, TAB, /* 0c ^ \ BS TAB */
- 0x11, 0x17, 0x05, 0x12, /* 10 Q W E R */
- 0x14, 0x19, 0x15, TAB, /* 14 T Y U I */
- 0x0f, 0x10, 0x00, ESC, /* 18 O P @ [ */
- 0x0d, 0x01, 0x13, 0x04, /* 1c CR A S D */
- 0x06, 0x07, 0x08, 0x0a, /* 20 F G H J */
- 0x0b, 0x0c, NA, NA, /* 24 K L ; : */
- 0x1d, 0x1a, 0x18, 0x03, /* 28 ] Z X C */
- 0x16, 0x02, 0x0e, CR, /* 2C V B N M */
- NG, NG, 0x1f, 0x1f}; /* 30 , . / _ */
-
- /* PC98 keyboard mode with shift */
- u_char pshiftbl[] = {
- LONG_BREAK, '!', '\"', '#', /* 00 ESC 1 2 3 */
- '$', '%', '&', '\'', /* 04 4 5 6 7 */
- '(', ')', '0', '=', /* 08 8 9 0 - */
- 0x60, '|', BS, TAB, /* 0c ^ \ BS TAB */
- 'Q', 'W', 'E', 'R', /* 10 Q W E R */
- 'T', 'Y', 'U', 'I', /* 14 T Y U I */
- 'O', 'P', '~', '{', /* 18 O P @ [ */
- CR, 'A', 'S', 'D', /* 1c CR A S D */
- 'F', 'G', 'H', 'J', /* 20 F G H J */
- 'K', 'L', '+', '*', /* 24 K L ; : */
- '}', 'Z', 'X', 'C', /* 28 ] Z X C */
- 'V', 'B', 'N', 'M', /* 2C V B N M */
- '<', '>', '?', '_'}; /* 30 , . / _ */
-
- /*
- * ASCII to scan code conversion table
- */
- u_char ASCIItoSCAN[] = {
- /* 0 1 2 3 4 5 6 7 */
- 0x1a,0x1d,0x2d,0x2b,0x1f,0x12,0x20,0x21, /* 0 - 7 */
- /* 8 9 a b c d e f */
- 0x22,0x17,0x23,0x24,0x25,0x1c,0x2e,0x18, /* 8 - f */
- 0x19,0x10,0x13,0x1e,0x14,0x16,0x2c,0x11, /* 10 - 17 */
- 0x2a,0x15,0x29,0x1b,0x0d,0x28,0x0c,0x33, /* 18 - 1f */
- 0x34,0x01,0x02,0x03,0x04,0x05,0x06,0x07, /* 20 - 27 */
- 0x08,0x09,0x27,0x26,0x30,0x0b,0x31,0x32, /* 28 - 2f */
- 0x0a,0x01,0x02,0x03,0x04,0x05,0x06,0x07, /* 30 - 37 */
- 0x08,0x09,0x27,0x26,0x30,0x0b,0x31,0x32, /* 38 - 3f */
- 0x1a,0x1d,0x0d,0x2b,0x1f,0x12,0x20,0x21, /* 40 - 47 */
- 0x22,0x17,0x23,0x24,0x25,0x2f,0x2e,0x18, /* 48 - 4f */
- 0x19,0x10,0x13,0x1e,0x14,0x16,0x2c,0x11, /* 50 - 57 */
- 0x2a,0x15,0x29,0x1b,0x0d,0x28,0x0c,0x33, /* 58 - 5f */
- 0x0c,0x1d,0x0d,0x2b,0x1f,0x12,0x20,0x21, /* 60 - 67 */
- 0x22,0x17,0x23,0x24,0x25,0x2f,0x2e,0x18, /* 68 - 6f */
- 0x19,0x10,0x13,0x1e,0x14,0x16,0x2c,0x11, /* 70 - 77 */
- 0x2a,0x15,0x29,0x1b,0x0d,0x28,0x1a,0x39, /* 78 - 7f */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 80 - 87 */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 88 - 8f */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 90 - 97 */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 98 - 9f */
- 0x00,0x31,0x1b,0x28,0x30,0x32,0x0a,0x03, /* a0 - a7 */
- 0x12,0x04,0x05,0x06,0x07,0x08,0x09,0x29, /* a8 - af */
- 0x0d,0x03,0x12,0x04,0x05,0x06,0x14,0x21, /* b0 - b7 */
- 0x22,0x27,0x2d,0x2a,0x1f,0x13,0x19,0x2b, /* b8 - bf */
- 0x10,0x1d,0x29,0x11,0x1e,0x16,0x17,0x01, /* c0 - c7 */
- 0x30,0x24,0x20,0x2c,0x02,0x0c,0x0b,0x23, /* c8 - cf */
- 0x2e,0x28,0x32,0x2f,0x07,0x08,0x09,0x18, /* d0 - d7 */
- 0x25,0x31,0x26,0x33,0x0a,0x15,0x1a,0x1b, /* d8 - df */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* e0 - e7 */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* e8 - ef */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* f0 - f7 */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; /* f8 - ff */
-
- #ifndef TSR
- /*
- * we can use 0xa0 - 0xdf for hterm special keys
- */
- char *funkeyName[] = {
- "F1","F2","F3","F4","F5","F6","F7","F8","F9","F10", ""};
- #define FUNKEY_NAME_LEN 3
-
- char *keypadName[] = {
- "Roll Up", "Roll Dn", "INS", "DEL", "UP", "LEFT", "RIGHT",
- "DOWN", "HOME", "HELP", "-", "/", "7", "8", "9", "*", "4",
- "5", "6", "+", "1", "2", "3", "=", "0", ",", "."};
- #define KEYPAD_NAME_LEN 7
-
- /*
- * non FEP mode PF key; macro key
- */
- u_char NORMALFunkey[NUM_FUNKEY][MAX_FUNKEY] = {
- "\x1b[17~", /* pf1 (VT220 F7 ) */
- "\x1b[18~", /* pf2 (VT220 F8 ) */
- "\x1b[19~", /* pf3 (VT220 F9 ) */
- "\x1b[20~", /* pf4 (VT220 F10) */
- "\x1b[21~", /* pf5 (VT220 F11) */
- "\x1b[22~", /* pf6 (VT220 F12) */
- "\x1b[23~", /* pf7 (VT220 F13) */
- "\x1b[24~", /* pf8 (VT220 F14) */
- "\x1b[25~", /* pf9 (VT220 HELP F15) */
- "\x1b[26~" /* pf10 (VT220 DO F16) */
- };
-
- /*
- * non FEP mode shift PF key; macro key
- */
- u_char SHIFTFunkey[NUM_FUNKEY][MAX_FUNKEY] = {
- "\x1b[27~", /* shift pf1 (VT220 F17) */
- "\x1b[28~", /* shift pf2 (VT220 F18) */
- "\x1b[29~", /* shift pf3 (VT220 F19) */
- "\x1b[30~", /* shift pf4 (VT220 F20) */
- "\x1b[31~", /* shift pf5 (VT220 none) */
- "\x1b[32~", /* shift pf6 (VT220 none) */
- "\x1b[33~", /* shift pf7 (VT220 none) */
- "\x1b[34~", /* shift pf8 (VT220 none) */
- "\x1b[35~", /* shift pf9 (VT220 none) */
- "\x1b[36~" /* shift pf0 (VT220 none) */
- };
-
- /*
- * non FEP mode ctrl PF keys; hterm control key
- */
- u_short CTRLFunkey[NUM_FUNKEY] = {
- CTRL_PF1, /* ctrl pf1 (VT220 none) */
- CTRL_PF2, /* ctrl pf2 (VT220 none) */
- CTRL_PF3, /* ctrl pf3 (VT220 none) */
- CTRL_PF4, /* ctrl pf4 (VT220 none) */
- CTRL_PF5, /* ctrl pf5 (VT220 none) */
- CTRL_PF6, /* ctrl pf6 (VT220 none) */
- CTRL_PF7, /* ctrl pf7 (VT220 none) */
- CTRL_PF8, /* ctrl pf8 (VT220 none) */
- CTRL_PF9, /* ctrl pf9 (VT220 none) */
- CTRL_PF10 /* ctrl pf10 (VT220 none) */
- };
-
- /*
- * non FEP mode meta PF keys; hterm control key
- */
- u_short METAFunkey[NUM_FUNKEY] = {
- META_PF1, /* META pf1 (VT220 none) */
- META_PF2, /* META pf2 (VT220 none) */
- META_PF3, /* META pf3 (VT220 none) */
- META_PF4, /* META pf4 (VT220 none) */
- META_PF5, /* META pf5 (VT220 none) */
- META_PF6, /* META pf6 (VT220 none) */
- META_PF7, /* META pf7 (VT220 none) */
- META_PF8, /* META pf8 (VT220 none) */
- META_PF9, /* META pf9 (VT220 none) */
- META_PF10 /* META pf10 (VT220 none) */
- };
-
- /*
- * normal cursor key mode and numeric keypad mode
- */
- u_char NORMALPad[][MAX_FUNKEY] = {
- "\x1b[5~", /* 36 rl up (VT220 prev screen) */
- "\x1b[6~", /* 37 rl down (VT220 next screen) */
- "\x1b[2~", /* 38 INS (VT220 insert here) */
- "\x7f", /* 39 DEL (VT220 none) */
- "\x1b[A", /* 3A UP (VT220 UP) */
- "\x1b[D", /* 3B LEFT (VT220 LEFT) */
- "\x1b[C", /* 3C RIGHT (VT220 RIGHT) */
- "\x1b[B", /* 3D DOWN (VT220 DOWN) */
- "\x1b[1~", /* 3E HOME/CLR (VT220 FIND) */
- "\x1b[4~", /* 3F HELP (VT220 SELECT) */
- "-","/","7","8", /* 40 - / 7 8 */
- "9","*","4","5", /* 44 9 * 4 5 */
- "6","+","1","2", /* 48 6 + 1 2 */
- "3","=","0",",", /* 4C 3 = 0 , */
- "." /* 50 . */
- };
-
- /*
- * application cursor key mode and application keypad mode
- */
- u_char APPLPad[][MAX_FUNKEY] = {
- "\x1b[5~", /* 36 rl up (VT220 prev screen) */
- "\x1b[6~", /* 37 rl down (VT220 next screen) */
- "\x1b[2~", /* 38 INS (VT220 insert here) */
- "\x7f", /* 39 DEL (VT220 none) */
- "\x1bOA", /* 3A UP (VT220 UP) */
- "\x1bOD", /* 3B LEFT (VT220 LEFT) */
- "\x1bOC", /* 3C RIGHT (VT220 RIGHT) */
- "\x1bOB", /* 3D DOWN (VT220 DOWN) */
- "\x1bOP", /* 3E HOME/CLR (VT220 PF1) */
- "\x1bOQ", /* 3F HELP (VT220 PF2) */
- "\x1bOR", /* 40 - (VT220 PF3) */
- "\x1bOS", /* 41 / (VT220 PF4) */
- "\x1bOw", /* 42 7 (VT220 7) */
- "\x1bOx", /* 43 8 (VT220 8) */
- "\x1bOy", /* 44 9 (VT220 9) */
- "\x1bOm", /* 45 * (VT220 -) */
- "\x1bOt", /* 46 4 (VT220 4) */
- "\x1bOu", /* 47 5 (VT220 5) */
- "\x1bOv", /* 48 6 (VT220 6) */
- "\x1bOl", /* 49 + (VT220 ,) */
- "\x1bOq", /* 4A 1 (VT220 1) */
- "\x1bOr", /* 4B 2 (VT220 2) */
- "\x1bOs", /* 4C 3 (VT220 3) */
- "\x1bOM", /* 4D = (VT220 ENTER) */
- "\x1bOp", /* 4E 0 (VT220 0) */
- "\x1bOo", /* 4F , (VT220 none) */
- "\x1bOn" /* 50 . (VT220 .) */
- };
- #endif /* TSR */
-
- /*
- * CTRL-keypad or keypad in setup
- */
- u_short CTRLPad[] = {
- PGUP_KEY>>8, /* 36 rl up */
- PGDN_KEY>>8, /* 37 rl down */
- INS_KEY>>8, /* 38 INS */
- DEL_KEY, /* 39 DEL */
- UP_KEY>>8, /* 3A UP */
- LEFT_KEY>>8, /* 3B LEFT */
- RIGHT_KEY>>8, /* 3C RIGHT */
- DOWN_KEY>>8, /* 3D DOWN */
- HOME_KEY>>8, /* 3E HOME/CLR */
- HELP_KEY>>8, /* 3F HELP */
- (u_short)'-', /* 40 - */
- (u_short)'/', /* 41 / */
- (u_short)'7', /* 42 7 */
- (u_short)'8', /* 43 8 */
- (u_short)'9', /* 44 9 */
- (u_short)'*', /* 45 * */
- (u_short)'4', /* 46 4 */
- (u_short)'5', /* 47 5 */
- (u_short)'6', /* 48 6 */
- (u_short)'+', /* 49 + */
- (u_short)'1', /* 4A 1 */
- (u_short)'2', /* 4B 2 */
- (u_short)'3', /* 4C 3 */
- (u_short)'=', /* 4D = */
- (u_short)'0', /* 4E 0 */
- (u_short)',', /* 4F , */
- (u_short)'.' /* 50 . */
- /* STOP_KEY // 0x94 STOP */
- /* SETUP_KEY // 0x95 COPY */
- };
-