1 /* 2 * Copyright (c) 1992 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Sony Corp. and Kazumasa Utashiro of Software Research Associates, Inc. 7 * 8 * %sccs.include.redist.c% 9 * 10 * from: $Hdr: keyconf.c,v 4.300 91/06/09 06:14:53 root Rel41 $ SONY 11 * 12 * @(#)keyconf.c 7.1 (Berkeley) 06/04/92 13 */ 14 15 #ifdef CPU_DOUBLE 16 #include "../../iop/keyboard.h" 17 #include "../../iop/kbreg.h" 18 #else 19 #include "../iop/keyboard.h" 20 #include "../iop/kbreg.h" 21 #endif 22 23 #ifndef NULL 24 #define NULL (char *)0 25 #endif /* NULL */ 26 27 Pfk_table pfk_init[] = { 28 /* 00 */ /* */ 0, 0, NULL, 0, NULL, 29 /* 01 */ /* F1 */ 1, 3, "\033OP", 0, NULL, 30 /* 02 */ /* F2 */ 2, 3, "\033OQ", 0, NULL, 31 /* 03 */ /* F3 */ 3, 3, "\033OR", 0, NULL, 32 /* 04 */ /* F4 */ 4, 3, "\033OS", 0, NULL, 33 /* 05 */ /* F5 */ 5, 3, "\033OT", 0, NULL, 34 /* 06 */ /* F6 */ 6, 3, "\033OU", 0, NULL, 35 /* 07 */ /* F7 */ 7, 3, "\033OV", 0, NULL, 36 /* 08 */ /* F8 */ 8, 3, "\033OW", 0, NULL, 37 /* 09 */ /* F9 */ 9, 3, "\033OX", 0, NULL, 38 /* 10 */ /* F10 */ 10, 3, "\033OY", 0, NULL, 39 /* 11 */ /* PF1 */ 12, 0, NULL, 0, NULL, 40 /* 12 */ /* PF2 */ 13, 0, NULL, 0, NULL, 41 /* 13 */ /* PF3 */ 14, 0, NULL, 0, NULL, 42 /* 14 */ /* PF4 */ 15, 0, NULL, 0, NULL, 43 /* 15 */ /* PF5 */ 16, 0, NULL, 0, NULL, 44 /* 16 */ /* PF6 */ 17, 0, NULL, 0, NULL, 45 /* 17 */ /* PF7 */ 18, 0, NULL, 0, NULL, 46 /* 18 */ /* PF8 */ 19, 0, NULL, 0, NULL, 47 /* 19 */ /* PF9 */ 20, 0, NULL, 0, NULL, 48 /* 20 */ /* PF10 */ 21, 0, NULL, 0, NULL, 49 /* 21 */ /* PF11 */ 22, 0, NULL, 0, NULL, 50 /* 22 */ /* PF12 */ 23, 0, NULL, 0, NULL, 51 /* 23 */ /* ncnv */ 69, 0, NULL, 0, NULL, 52 /* 24 */ /* conv */ 71, 0, NULL, 0, NULL, 53 /* 25 */ /* enter*/ 74, 0, NULL, 0, NULL, 54 /* 26 */ /* 0 */ 87, 1, "0", 1, "0", 55 /* 27 */ /* 1 */ 83, 1, "1", 1, "1", 56 /* 28 */ /* 2 */ 84, 1, "2", 1, "2", 57 /* 29 */ /* 3 */ 85, 1, "3", 1, "3", 58 /* 30 */ /* 4 */ 79, 1, "4", 1, "4", 59 /* 31 */ /* 5 */ 80, 1, "5", 1, "5", 60 /* 32 */ /* 6 */ 81, 1, "6", 1, "6", 61 /* 33 */ /* 7 */ 75, 1, "7", 1, "7", 62 /* 34 */ /* 8 */ 76, 1, "8", 1, "8", 63 /* 35 */ /* 9 */ 77, 1, "9", 1, "9", 64 /* 36 */ /* . */ 89, 1, ".", 1, ".", 65 /* 37 */ /* - */ 78, 1, "-", 1, "/", 66 /* 38 */ /* + */ 82, 1, "+", 1, "*", 67 /* 39 */ /* , */ 86, 1, ",", 1, "=", 68 /* 40 */ /*nenter*/ 90, 1, "\r", 1, "\r", 69 /* 41 */ /* up */ 88, 3, "\033[A", 3, "\033[A", 70 /* 42 */ /* down */ 92, 3, "\033[B", 3, "\033[B", 71 /* 43 */ /* rignt*/ 93, 3, "\033[C", 3, "\033[C", 72 /* 44 */ /* left */ 91, 3, "\033[D", 3, "\033[D", 73 }; 74 75 Key_table default_table[] = { 76 /* key_flags normal shift ctrl alt kana kshft */ 77 /* 0*/ 0, 0, 0, 0, 0, 0, 0, 78 /* 1*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 79 /* 2*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 80 /* 3*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 81 /* 4*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 82 /* 5*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 83 /* 6*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 84 /* 7*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 85 /* 8*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 86 /* 9*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 87 /* 10*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 88 /* 11*/ N|S|C|K|J|O, 0x1b, 0x1b, 0x1b, 0, 0x1b, 0x1b, 89 /* 12*/ N|S|K|L|ALT_FUNC, '1', '!', 0, 0, 0xc7, 0, 90 /* 13*/ N|S|C|K|L|ALT_FUNC, '2', '@', 0x00, 0, 0xcc, 0, 91 /* 14*/ N|S|C|K|J|L|ALT_FUNC, '3', '#', 0x1b, 0, 0xb1, 0xa7, 92 /* 15*/ N|S|C|K|J|L|ALT_FUNC, '4', '$', 0x1c, 0, 0xb3, 0xa9, 93 /* 16*/ N|S|C|K|J|L|ALT_FUNC, '5', '%', 0x1d, 0, 0xb4, 0xaa, 94 /* 17*/ N|S|C|K|J|R|ALT_FUNC, '6', '^', 0x1e, 0, 0xb5, 0xab, 95 /* 18*/ N|S|C|K|J|R|ALT_FUNC, '7', '&', 0x1f, 0, 0xd4, 0xac, 96 /* 19*/ N|S|C|K|J|R|ALT_FUNC, '8', '*', 0x0f, 0, 0xd5, 0xad, 97 /* 20*/ N|S|K|K|J|R|ALT_FUNC, '9', '(', 0, 0, 0xd6, 0xae, 98 /* 21*/ N|S|K|K|J|R|ALT_FUNC, '0', ')', 0, 0, 0xdc, 0xa6, 99 /* 22*/ N|S|K|R|ALT_FUNC, '-', '_', 0, 0, 0xce, 0, 100 /* 23*/ N|S|K|R|ALT_FUNC, '=', '+', 0, 0, 0xcd, 0, 101 /* 24*/ N|S|C|L, '\\', '|', 0x1c, 0, 0, 0, 102 /* 25*/ N|S|C|K|J|O, '\b', '\b', '\b', 0, '\b', '\b', 103 /* 26*/ N|S|C|K|J|O, '\t', '\t', '\t', 0, '\t', '\t', 104 /* 27*/ N|S|C|K|L|CAP_LOCK, 'q', 'Q', 0x11, 0, 0xc0, 0, 105 /* 28*/ N|S|C|K|L|CAP_LOCK, 'w', 'W', 0x17, 0, 0xc3, 0, 106 /* 29*/ N|S|C|K|L|J|CAP_LOCK, 'e', 'E', 0x05, 0, 0xb2, 0xa8, 107 /* 30*/ N|S|C|K|L|CAP_LOCK, 'r', 'R', 0x12, 0, 0xbd, 0, 108 /* 31*/ N|S|C|K|L|CAP_LOCK, 't', 'T', 0x14, 0, 0xb6, 0, 109 /* 32*/ N|S|C|K|R|CAP_LOCK, 'y', 'Y', 0x19, 0, 0xdd, 0, 110 /* 33*/ N|S|C|K|R|CAP_LOCK, 'u', 'U', 0x15, 0, 0xc5, 0, 111 /* 34*/ N|S|C|K|R|CAP_LOCK, 'i', 'I', '\t', 0, 0xc6, 0, 112 /* 35*/ N|S|C|K|R|CAP_LOCK, 'o', 'O', 0x0f, 0, 0xd7, 0, 113 /* 36*/ N|S|C|K|R|CAP_LOCK, 'p', 'P', 0x10, 0, 0xbe, 0, 114 /* 37*/ N|S|C|K|R, '[', '{', 0x1b, 0, 0xde, 0, 115 /* 38*/ N|S|C|K|R|J, ']', '}', 0x1d, 0, 0xdf, 0xa2, 116 /* 39*/ N|C|K|O, 0x7f, 0, 0x7f, 0, 0x7f, 0, 117 /* 40*/ PSH_SHFT, S_CTRL, 0, 0, 0, 0, 0, 118 /* 41*/ N|S|C|K|L|CAP_LOCK, 'a', 'A', 0x01, 0, 0xc1, 0, 119 /* 42*/ N|S|C|K|L|CAP_LOCK, 's', 'S', 0x13, 0, 0xc4, 0, 120 /* 43*/ N|S|C|K|L|CAP_LOCK, 'd', 'D', 0x04, 0, 0xbc, 0, 121 /* 44*/ N|S|C|K|L|CAP_LOCK, 'f', 'F', 0x06, 0, 0xca, 0, 122 /* 45*/ N|S|C|K|L|CAP_LOCK, 'g', 'G', 0x07, 0, 0xb7, 0, 123 /* 46*/ N|S|C|K|R|CAP_LOCK, 'h', 'H', '\b', 0, 0xb8, 0, 124 /* 47*/ N|S|C|K|R|CAP_LOCK, 'j', 'J', '\n', 0, 0xcf, 0, 125 /* 48*/ N|S|C|K|R|CAP_LOCK, 'k', 'K', 0x0b, 0, 0xc9, 0, 126 /* 49*/ N|S|C|K|R|CAP_LOCK, 'l', 'L', '\f', 0, 0xd8, 0, 127 /* 50*/ N|S|K|R, ';', ':', 0, 0, 0xda, 0, 128 /* 51*/ N|S|K|L, '\'', '"', 0, 0, 0xb9, 0, 129 /* 52*/ N|S|C|K|L|J, '`', '~', 0x1e, 0, 0xd1, 0xa3, 130 /* 53*/ N|S|C|K|J|O, '\r', '\r', '\r', 0, '\r', '\r', 131 /* 54*/ PSH_SHFT, S_LSHFT,0, 0, 0, 0, 0, 132 /* 55*/ N|S|C|K|J|L|CAP_LOCK, 'z', 'Z', 0x1a, 0, 0xc2, 0xaf, 133 /* 56*/ N|S|C|K|L|CAP_LOCK, 'x', 'X', 0x18, 0, 0xbb, 0, 134 /* 57*/ N|S|C|K|L|CAP_LOCK, 'c', 'C', 0x03, 0, 0xbf, 0, 135 /* 58*/ N|S|C|K|L|CAP_LOCK, 'v', 'V', 0x16, 0, 0xcb, 0, 136 /* 59*/ N|S|C|K|L|CAP_LOCK, 'b', 'B', 0x02, 0, 0xba, 0, 137 /* 60*/ N|S|C|K|R|CAP_LOCK, 'n', 'N', 0x0e, 0, 0xd0, 0, 138 /* 61*/ N|S|C|K|R|CAP_LOCK, 'm', 'M', '\r', 0, 0xd3, 0, 139 /* 62*/ N|S|K|J|R, ',', '<', 0, 0, 0xc8, 0xa4, 140 /* 63*/ N|S|K|J|R, '.', '>', 0, 0, 0xd9, 0xa1, 141 /* 64*/ N|S|C|K|J|R, '/', '?', 0x1f, 0, 0xd2, 0xa5, 142 /* 65*/ K|J, 0, 0, 0, 0, 0xdb, 0xb0, 143 /* 66*/ PSH_SHFT, S_RSHFT,0, 0, 0, 0, 0, 144 /* 67*/ PSH_SHFT|NOT_REPT, S_ALT, 0, 0, 0, 0, 0, 145 /* 68*/ PSH_SHFT|NOT_REPT, S_CAPS, 0, 0, 0, 0, 0, 146 /* 69*/ PRG_FUNC|NOT_REPT, 0, 0, 0, 0, 0, 0, 147 /* 70*/ N|S|C|K|J|O, ' ', ' ', 0x00, 0, ' ', ' ', 148 /* 71*/ PRG_FUNC|NOT_REPT, 0, 0, 0, 0, 0, 0, 149 /* 72*/ SW_SHFT|NOT_REPT, S_AN, 0, 0, 0, 0, 0, 150 /* 73*/ SW_SHFT|NOT_REPT, S_KANA, 0, 0, 0, 0, 0, 151 /* 74*/ PRG_FUNC|NOT_REPT, 0, 0, 0, 0, 0, 0, 152 /* 75*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 153 /* 76*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 154 /* 77*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 155 /* 78*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 156 /* 79*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 157 /* 80*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 158 /* 81*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 159 /* 82*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 160 /* 83*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 161 /* 84*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 162 /* 85*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 163 /* 86*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 164 /* 87*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 165 /* 88*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 166 /* 89*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 167 /* 90*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 168 /* 91*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 169 /* 92*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 170 /* 93*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 171 }; 172 173 #define PFK_SIZE sizeof(pfk_init)/sizeof(Pfk_table) 174 int N_Pfk = PFK_SIZE; 175 Pfk_table pfk_table[PFK_SIZE]; 176