|
|
1.1 ! root 1: #ifndef lint ! 2: static char sccsid[] = "@(#)keytables.c 1.1 86/02/03 Copyr 1985 Sun Micro"; ! 3: #endif ! 4: ! 5: /* ! 6: * Copyright (C) 1983 by Sun Microsystems, Inc. ! 7: */ ! 8: ! 9: /* ! 10: * keytables.c ! 11: * ! 12: * This module contains the translation tables for the up-down encoded ! 13: * Sun keyboards. ! 14: */ ! 15: #include "../sundev/kbdvar.h" ! 16: ! 17: /* handy way to define control characters in the tables */ ! 18: #define c(char) (char&0x1F) ! 19: #define ESC 0x1B ! 20: ! 21: ! 22: /* Unshifted keyboard table for Micro Switch 103SD32-2 */ ! 23: ! 24: static struct keymap keytab_ms_lc = { ! 25: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 26: LF(2), LF(3), HOLE, TF(1), TF(2), TF(3), ! 27: /* 8 */ TF(4), TF(5), TF(6), TF(7), TF(8), TF(9), TF(10), TF(11), ! 28: /* 16 */ TF(12), TF(13), TF(14), c('['), HOLE, RF(1), '+', '-', ! 29: /* 24 */ HOLE, LF(4), '\f', LF(6), HOLE, SHIFTKEYS+CAPSLOCK, ! 30: '1', '2', ! 31: /* 32 */ '3', '4', '5', '6', '7', '8', '9', '0', ! 32: /* 40 */ '-', '~', '`', '\b', HOLE, '7', '8', '9', ! 33: /* 48 */ HOLE, LF(7), STRING+UPARROW, ! 34: LF(9), HOLE, '\t', 'q', 'w', ! 35: /* 56 */ 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', ! 36: /* 64 */ '{', '}', '_', HOLE, '4', '5', '6', HOLE, ! 37: /* 72 */ STRING+LEFTARROW, ! 38: STRING+HOMEARROW, ! 39: STRING+RIGHTARROW, ! 40: HOLE, SHIFTKEYS+SHIFTLOCK, ! 41: 'a', 's', 'd', ! 42: /* 80 */ 'f', 'g', 'h', 'j', 'k', 'l', ';', ':', ! 43: /* 88 */ '|', '\r', HOLE, '1', '2', '3', HOLE, NOSCROLL, ! 44: /* 96 */ STRING+DOWNARROW, ! 45: LF(15), HOLE, HOLE, SHIFTKEYS+LEFTSHIFT, ! 46: 'z', 'x', 'c', ! 47: /*104 */ 'v', 'b', 'n', 'm', ',', '.', '/', SHIFTKEYS+RIGHTSHIFT, ! 48: /*112 */ NOP, 0x7F, '0', NOP, '.', HOLE, HOLE, HOLE, ! 49: /*120 */ HOLE, HOLE, SHIFTKEYS+LEFTCTRL, ! 50: ' ', SHIFTKEYS+RIGHTCTRL, ! 51: HOLE, HOLE, IDLE, ! 52: }; ! 53: ! 54: /* Shifted keyboard table for Micro Switch 103SD32-2 */ ! 55: ! 56: static struct keymap keytab_ms_uc = { ! 57: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 58: LF(2), LF(3), HOLE, TF(1), TF(2), TF(3), ! 59: /* 8 */ TF(4), TF(5), TF(6), TF(7), TF(8), TF(9), TF(10), TF(11), ! 60: /* 16 */ TF(12), TF(13), TF(14), c('['), HOLE, RF(1), '+', '-', ! 61: /* 24 */ HOLE, LF(4), '\f', LF(6), HOLE, SHIFTKEYS+CAPSLOCK, ! 62: '!', '"', ! 63: /* 32 */ '#', '$', '%', '&', '\'', '(', ')', '0', ! 64: /* 40 */ '=', '^', '@', '\b', HOLE, '7', '8', '9', ! 65: /* 48 */ HOLE, LF(7), STRING+UPARROW, ! 66: LF(9), HOLE, '\t', 'Q', 'W', ! 67: /* 56 */ 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', ! 68: /* 64 */ '[', ']', '_', HOLE, '4', '5', '6', HOLE, ! 69: /* 72 */ STRING+LEFTARROW, ! 70: STRING+HOMEARROW, ! 71: STRING+RIGHTARROW, ! 72: HOLE, SHIFTKEYS+SHIFTLOCK, ! 73: 'A', 'S', 'D', ! 74: /* 80 */ 'F', 'G', 'H', 'J', 'K', 'L', '+', '*', ! 75: /* 88 */ '\\', '\r', HOLE, '1', '2', '3', HOLE, NOSCROLL, ! 76: /* 96 */ STRING+DOWNARROW, ! 77: LF(15), HOLE, HOLE, SHIFTKEYS+LEFTSHIFT, ! 78: 'Z', 'X', 'C', ! 79: /*104 */ 'V', 'B', 'N', 'M', '<', '>', '?', SHIFTKEYS+RIGHTSHIFT, ! 80: /*112 */ NOP, 0x7F, '0', NOP, '.', HOLE, HOLE, HOLE, ! 81: /*120 */ HOLE, HOLE, SHIFTKEYS+LEFTCTRL, ! 82: ' ', SHIFTKEYS+RIGHTCTRL, ! 83: HOLE, HOLE, IDLE, ! 84: }; ! 85: ! 86: ! 87: /* Caps Locked keyboard table for Micro Switch 103SD32-2 */ ! 88: ! 89: static struct keymap keytab_ms_cl = { ! 90: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 91: LF(2), LF(3), HOLE, TF(1), TF(2), TF(3), ! 92: /* 8 */ TF(4), TF(5), TF(6), TF(7), TF(8), TF(9), TF(10), TF(11), ! 93: /* 16 */ TF(12), TF(13), TF(14), c('['), HOLE, RF(1), '+', '-', ! 94: /* 24 */ HOLE, LF(4), '\f', LF(6), HOLE, SHIFTKEYS+CAPSLOCK, ! 95: '1', '2', ! 96: /* 32 */ '3', '4', '5', '6', '7', '8', '9', '0', ! 97: /* 40 */ '-', '~', '`', '\b', HOLE, '7', '8', '9', ! 98: /* 48 */ HOLE, LF(7), STRING+UPARROW, ! 99: LF(9), HOLE, '\t', 'Q', 'W', ! 100: /* 56 */ 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', ! 101: /* 64 */ '{', '}', '_', HOLE, '4', '5', '6', HOLE, ! 102: /* 72 */ STRING+LEFTARROW, ! 103: STRING+HOMEARROW, ! 104: STRING+RIGHTARROW, ! 105: HOLE, SHIFTKEYS+SHIFTLOCK, ! 106: 'A', 'S', 'D', ! 107: /* 80 */ 'F', 'G', 'H', 'J', 'K', 'L', ';', ':', ! 108: /* 88 */ '|', '\r', HOLE, '1', '2', '3', HOLE, NOSCROLL, ! 109: /* 96 */ STRING+DOWNARROW, ! 110: LF(15), HOLE, HOLE, SHIFTKEYS+LEFTSHIFT, ! 111: 'Z', 'X', 'C', ! 112: /*104 */ 'V', 'B', 'N', 'M', ',', '.', '/', SHIFTKEYS+RIGHTSHIFT, ! 113: /*112 */ NOP, 0x7F, '0', NOP, '.', HOLE, HOLE, HOLE, ! 114: /*120 */ HOLE, HOLE, SHIFTKEYS+LEFTCTRL, ! 115: ' ', SHIFTKEYS+RIGHTCTRL, ! 116: HOLE, HOLE, IDLE, ! 117: }; ! 118: ! 119: /* Controlled keyboard table for Micro Switch 103SD32-2 */ ! 120: ! 121: static struct keymap keytab_ms_ct = { ! 122: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 123: LF(2), LF(3), HOLE, TF(1), TF(2), TF(3), ! 124: /* 8 */ TF(4), TF(5), TF(6), TF(7), TF(8), TF(9), TF(10), TF(11), ! 125: /* 16 */ TF(12), TF(13), TF(14), c('['), HOLE, RF(1), OOPS, OOPS, ! 126: /* 24 */ HOLE, LF(4), '\f', LF(6), HOLE, SHIFTKEYS+CAPSLOCK, ! 127: OOPS, OOPS, ! 128: /* 32 */ OOPS, OOPS, OOPS, OOPS, OOPS, OOPS, OOPS, OOPS, ! 129: /* 40 */ OOPS, c('^'), c('@'), '\b', HOLE, OOPS, OOPS, OOPS, ! 130: /* 48 */ HOLE, LF(7), STRING+UPARROW, ! 131: LF(9), HOLE, '\t', CTRLQ, c('W'), ! 132: /* 56 */ c('E'), c('R'), c('T'), c('Y'), c('U'), c('I'), c('O'), c('P'), ! 133: /* 64 */ c('['), c(']'), c('_'), HOLE, OOPS, OOPS, OOPS, HOLE, ! 134: /* 72 */ STRING+LEFTARROW, ! 135: STRING+HOMEARROW, ! 136: STRING+RIGHTARROW, ! 137: HOLE, SHIFTKEYS+SHIFTLOCK, ! 138: c('A'), CTRLS, c('D'), ! 139: /* 80 */ c('F'), c('G'), c('H'), c('J'), c('K'), c('L'), OOPS, OOPS, ! 140: /* 88 */ c('\\'), ! 141: '\r', HOLE, OOPS, OOPS, OOPS, HOLE, NOSCROLL, ! 142: /* 96 */ STRING+DOWNARROW, ! 143: LF(15), HOLE, HOLE, SHIFTKEYS+LEFTSHIFT, ! 144: c('Z'), c('X'), c('C'), ! 145: /*104 */ c('V'), c('B'), c('N'), c('M'), OOPS, OOPS, OOPS, SHIFTKEYS+RIGHTSHIFT, ! 146: /*112 */ NOP, 0x7F, OOPS, NOP, OOPS, HOLE, HOLE, HOLE, ! 147: /*120 */ HOLE, HOLE, SHIFTKEYS+LEFTCTRL, ! 148: '\0', SHIFTKEYS+RIGHTCTRL, ! 149: HOLE, HOLE, IDLE, ! 150: }; ! 151: ! 152: ! 153: /* "Key Up" keyboard table for Micro Switch 103SD32-2 */ ! 154: ! 155: static struct keymap keytab_ms_up = { ! 156: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 157: OOPS, OOPS, HOLE, OOPS, OOPS, OOPS, ! 158: /* 8 */ OOPS, OOPS, OOPS, OOPS, OOPS, OOPS, OOPS, OOPS, ! 159: /* 16 */ OOPS, OOPS, OOPS, NOP, HOLE, OOPS, NOP, NOP, ! 160: /* 24 */ HOLE, OOPS, NOP, OOPS, HOLE, SHIFTKEYS+CAPSLOCK, ! 161: NOP, NOP, ! 162: /* 32 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 163: /* 40 */ NOP, NOP, NOP, NOP, HOLE, NOP, NOP, NOP, ! 164: /* 48 */ HOLE, OOPS, NOP, OOPS, HOLE, NOP, NOP, NOP, ! 165: /* 56 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 166: /* 64 */ NOP, NOP, NOP, HOLE, NOP, NOP, NOP, HOLE, ! 167: /* 72 */ NOP, NOP, NOP, HOLE, SHIFTKEYS+SHIFTLOCK, ! 168: NOP, NOP, NOP, ! 169: /* 80 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 170: /* 88 */ NOP, NOP, HOLE, NOP, NOP, NOP, HOLE, NOP, ! 171: /* 96 */ NOP, OOPS, HOLE, HOLE, SHIFTKEYS+LEFTSHIFT, ! 172: NOP, NOP, NOP, ! 173: /*104 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, SHIFTKEYS+RIGHTSHIFT, ! 174: /*112 */ NOP, NOP, NOP, NOP, NOP, HOLE, HOLE, HOLE, ! 175: /*120 */ HOLE, HOLE, SHIFTKEYS+LEFTCTRL, ! 176: NOP, SHIFTKEYS+RIGHTCTRL, ! 177: HOLE, HOLE, RESET, ! 178: }; ! 179: ! 180: ! 181: /* Index to keymaps for Micro Switch 103SD32-2 */ ! 182: static struct keyboard keyindex_ms = { ! 183: &keytab_ms_lc, ! 184: &keytab_ms_uc, ! 185: &keytab_ms_cl, ! 186: &keytab_ms_ct, ! 187: &keytab_ms_up, ! 188: CTLSMASK, /* Shift bits which stay on with idle keyboard */ ! 189: 0x0000, /* Bucky bits which stay on with idle keyboard */ ! 190: 1, 77, /* abort keys */ ! 191: 0x0000, /* Shift bits which toggle on down event */ ! 192: }; ! 193: ! 194: /* Unshifted keyboard table for Sun-2 keyboard */ ! 195: ! 196: static struct keymap keytab_s2_lc = { ! 197: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 198: LF(11), LF(2), HOLE, TF(1), TF(2), TF(11), ! 199: /* 8 */ TF(3), TF(12), TF(4), TF(13), TF(5), TF(14), TF(6), TF(15), ! 200: /* 16 */ TF(7), TF(8), TF(9), TF(10), HOLE, RF(1), RF(2), RF(3), ! 201: /* 24 */ HOLE, LF(3), LF(4), LF(12), HOLE, c('['), '1', '2', ! 202: /* 32 */ '3', '4', '5', '6', '7', '8', '9', '0', ! 203: /* 40 */ '-', '=', '`', '\b', HOLE, RF(4), RF(5), RF(6), ! 204: /* 48 */ HOLE, LF(5), LF(13), LF(6), HOLE, '\t', 'q', 'w', ! 205: /* 56 */ 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', ! 206: /* 64 */ '[', ']', 0x7F, HOLE, RF(7), STRING+UPARROW, ! 207: RF(9), HOLE, ! 208: /* 72 */ LF(7), LF(8), LF(14), HOLE, SHIFTKEYS+LEFTCTRL, ! 209: 'a', 's', 'd', ! 210: /* 80 */ 'f', 'g', 'h', 'j', 'k', 'l', ';', '\'', ! 211: /* 88 */ '\\', '\r', HOLE, STRING+LEFTARROW, ! 212: RF(11), STRING+RIGHTARROW, ! 213: HOLE, LF(9), ! 214: /* 96 */ LF(15), LF(10), HOLE, SHIFTKEYS+LEFTSHIFT, ! 215: 'z', 'x', 'c', 'v', ! 216: /*104 */ 'b', 'n', 'm', ',', '.', '/', SHIFTKEYS+RIGHTSHIFT, ! 217: '\n', ! 218: /*112 */ RF(13), STRING+DOWNARROW, ! 219: RF(15), HOLE, HOLE, HOLE, HOLE, HOLE, ! 220: /*120 */ BUCKYBITS+METABIT, ! 221: ' ', BUCKYBITS+METABIT, ! 222: HOLE, HOLE, HOLE, ERROR, IDLE, ! 223: }; ! 224: ! 225: /* Shifted keyboard table for Sun-2 keyboard */ ! 226: ! 227: static struct keymap keytab_s2_uc = { ! 228: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 229: LF(11), LF(2), HOLE, TF(1), TF(2), TF(11), ! 230: /* 8 */ TF(3), TF(12), TF(4), TF(13), TF(5), TF(14), TF(6), TF(15), ! 231: /* 16 */ TF(7), TF(8), TF(9), TF(10), HOLE, RF(1), RF(2), RF(3), ! 232: /* 24 */ HOLE, LF(3), LF(4), LF(12), HOLE, c('['), '!', '@', ! 233: /* 32 */ '#', '$', '%', '^', '&', '*', '(', ')', ! 234: /* 40 */ '_', '+', '~', '\b', HOLE, RF(4), RF(5), RF(6), ! 235: /* 48 */ HOLE, LF(5), LF(13), LF(6), HOLE, '\t', 'Q', 'W', ! 236: /* 56 */ 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', ! 237: /* 64 */ '{', '}', 0x7F, HOLE, RF(7), STRING+UPARROW, ! 238: RF(9), HOLE, ! 239: /* 72 */ LF(7), LF(8), LF(14), HOLE, SHIFTKEYS+LEFTCTRL, ! 240: 'A', 'S', 'D', ! 241: /* 80 */ 'F', 'G', 'H', 'J', 'K', 'L', ':', '"', ! 242: /* 88 */ '|', '\r', HOLE, STRING+LEFTARROW, ! 243: RF(11), STRING+RIGHTARROW, ! 244: HOLE, LF(9), ! 245: /* 96 */ LF(15), LF(10), HOLE, SHIFTKEYS+LEFTSHIFT, ! 246: 'Z', 'X', 'C', 'V', ! 247: /*104 */ 'B', 'N', 'M', '<', '>', '?', SHIFTKEYS+RIGHTSHIFT, ! 248: '\n', ! 249: /*112 */ RF(13), STRING+DOWNARROW, ! 250: RF(15), HOLE, HOLE, HOLE, HOLE, HOLE, ! 251: /*120 */ BUCKYBITS+METABIT, ! 252: ' ', BUCKYBITS+METABIT, ! 253: HOLE, HOLE, HOLE, ERROR, IDLE, ! 254: }; ! 255: ! 256: ! 257: /* Caps Locked keyboard table for Sun-2 keyboard */ ! 258: ! 259: static struct keymap keytab_s2_cl = { ! 260: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 261: LF(11), LF(2), HOLE, TF(1), TF(2), TF(11), ! 262: /* 8 */ TF(3), TF(12), TF(4), TF(13), TF(5), TF(14), TF(6), TF(15), ! 263: /* 16 */ TF(7), TF(8), TF(9), TF(10), HOLE, RF(1), RF(2), RF(3), ! 264: /* 24 */ HOLE, LF(3), LF(4), LF(12), HOLE, c('['), '1', '2', ! 265: /* 32 */ '3', '4', '5', '6', '7', '8', '9', '0', ! 266: /* 40 */ '-', '=', '`', '\b', HOLE, RF(4), RF(5), RF(6), ! 267: /* 48 */ HOLE, LF(5), LF(13), LF(6), HOLE, '\t', 'Q', 'W', ! 268: /* 56 */ 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', ! 269: /* 64 */ '[', ']', 0x7F, HOLE, RF(7), STRING+UPARROW, ! 270: RF(9), HOLE, ! 271: /* 72 */ LF(7), LF(8), LF(14), HOLE, SHIFTKEYS+LEFTCTRL, ! 272: 'A', 'S', 'D', ! 273: /* 80 */ 'F', 'G', 'H', 'J', 'K', 'L', ';', '\'', ! 274: /* 88 */ '\\', '\r', HOLE, STRING+LEFTARROW, ! 275: RF(11), STRING+RIGHTARROW, ! 276: HOLE, LF(9), ! 277: /* 96 */ LF(15), LF(10), HOLE, SHIFTKEYS+LEFTSHIFT, ! 278: 'Z', 'X', 'C', 'V', ! 279: /*104 */ 'B', 'N', 'M', ',', '.', '/', SHIFTKEYS+RIGHTSHIFT, ! 280: '\n', ! 281: /*112 */ RF(13), STRING+DOWNARROW, ! 282: RF(15), HOLE, HOLE, HOLE, HOLE, HOLE, ! 283: /*120 */ BUCKYBITS+METABIT, ! 284: ' ', BUCKYBITS+METABIT, ! 285: HOLE, HOLE, HOLE, ERROR, IDLE, ! 286: }; ! 287: ! 288: /* Controlled keyboard table for Sun-2 keyboard */ ! 289: ! 290: static struct keymap keytab_s2_ct = { ! 291: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 292: LF(11), LF(2), HOLE, TF(1), TF(2), TF(11), ! 293: /* 8 */ TF(3), TF(12), TF(4), TF(13), TF(5), TF(14), TF(6), TF(15), ! 294: /* 16 */ TF(7), TF(8), TF(9), TF(10), HOLE, RF(1), RF(2), RF(3), ! 295: /* 24 */ HOLE, LF(3), LF(4), LF(12), HOLE, c('['), '1', c('@'), ! 296: /* 32 */ '3', '4', '5', c('^'), '7', '8', '9', '0', ! 297: /* 40 */ c('_'), '=', c('^'), '\b', HOLE, RF(4), RF(5), RF(6), ! 298: /* 48 */ HOLE, LF(5), LF(13), LF(6), HOLE, '\t', c('q'), c('w'), ! 299: /* 56 */ c('e'), c('r'), c('t'), c('y'), c('u'), c('i'), c('o'), c('p'), ! 300: /* 64 */ c('['), c(']'), 0x7F, HOLE, RF(7), STRING+UPARROW, ! 301: RF(9), HOLE, ! 302: /* 72 */ LF(7), LF(8), LF(14), HOLE, SHIFTKEYS+LEFTCTRL, ! 303: c('a'), c('s'), c('d'), ! 304: /* 80 */ c('f'), c('g'), c('h'), c('j'), c('k'), c('l'), ';', '\'', ! 305: /* 88 */ c('\\'), ! 306: '\r', HOLE, STRING+LEFTARROW, ! 307: RF(11), STRING+RIGHTARROW, ! 308: HOLE, LF(9), ! 309: /* 96 */ LF(15), LF(10), HOLE, SHIFTKEYS+LEFTSHIFT, ! 310: c('z'), c('x'), c('c'), c('v'), ! 311: /*104 */ c('b'), c('n'), c('m'), ',', '.', c('_'), SHIFTKEYS+RIGHTSHIFT, ! 312: '\n', ! 313: /*112 */ RF(13), STRING+DOWNARROW, ! 314: RF(15), HOLE, HOLE, HOLE, HOLE, HOLE, ! 315: /*120 */ BUCKYBITS+METABIT, ! 316: c(' '), BUCKYBITS+METABIT, ! 317: HOLE, HOLE, HOLE, ERROR, IDLE, ! 318: }; ! 319: ! 320: ! 321: ! 322: /* "Key Up" keyboard table for Sun-2 keyboard */ ! 323: ! 324: static struct keymap keytab_s2_up = { ! 325: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 326: OOPS, OOPS, HOLE, OOPS, OOPS, OOPS, ! 327: /* 8 */ OOPS, OOPS, OOPS, OOPS, OOPS, OOPS, OOPS, OOPS, ! 328: /* 16 */ OOPS, OOPS, OOPS, OOPS, HOLE, OOPS, OOPS, NOP, ! 329: /* 24 */ HOLE, OOPS, OOPS, OOPS, HOLE, NOP, NOP, NOP, ! 330: /* 32 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 331: /* 40 */ NOP, NOP, NOP, NOP, HOLE, OOPS, OOPS, NOP, ! 332: /* 48 */ HOLE, OOPS, OOPS, OOPS, HOLE, NOP, NOP, NOP, ! 333: /* 56 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 334: /* 64 */ NOP, NOP, NOP, HOLE, OOPS, OOPS, NOP, HOLE, ! 335: /* 72 */ OOPS, OOPS, OOPS, HOLE, SHIFTKEYS+LEFTCTRL, ! 336: NOP, NOP, NOP, ! 337: /* 80 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 338: /* 88 */ NOP, NOP, HOLE, OOPS, OOPS, NOP, HOLE, OOPS, ! 339: /* 96 */ OOPS, OOPS, HOLE, SHIFTKEYS+LEFTSHIFT, ! 340: NOP, NOP, NOP, NOP, ! 341: /*104 */ NOP, NOP, NOP, NOP, NOP, NOP, SHIFTKEYS+RIGHTSHIFT, ! 342: NOP, ! 343: /*112 */ OOPS, OOPS, NOP, HOLE, HOLE, HOLE, HOLE, HOLE, ! 344: /*120 */ BUCKYBITS+METABIT, ! 345: NOP, BUCKYBITS+METABIT, ! 346: HOLE, HOLE, HOLE, HOLE, RESET, ! 347: }; ! 348: ! 349: /* Index to keymaps for Sun-2 keyboard */ ! 350: static struct keyboard keyindex_s2 = { ! 351: &keytab_s2_lc, ! 352: &keytab_s2_uc, ! 353: &keytab_s2_cl, ! 354: &keytab_s2_ct, ! 355: &keytab_s2_up, ! 356: CAPSMASK, /* Shift bits which stay on with idle keyboard */ ! 357: 0x0000, /* Bucky bits which stay on with idle keyboard */ ! 358: 1, 77, /* abort keys */ ! 359: 0x0000, /* Shift bits which toggle on down event */ ! 360: }; ! 361: ! 362: /* Unshifted keyboard table for "VT100 style" */ ! 363: ! 364: static struct keymap keytab_vt_lc = { ! 365: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 366: HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 367: /* 8 */ HOLE, HOLE, STRING+UPARROW, ! 368: STRING+DOWNARROW, ! 369: STRING+LEFTARROW, ! 370: STRING+RIGHTARROW, ! 371: HOLE, TF(1), ! 372: /* 16 */ TF(2), TF(3), TF(4), c('['), '1', '2', '3', '4', ! 373: /* 24 */ '5', '6', '7', '8', '9', '0', '-', '=', ! 374: /* 32 */ '`', c('H'), BUCKYBITS+METABIT, ! 375: '7', '8', '9', '-', '\t', ! 376: /* 40 */ 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', ! 377: /* 48 */ 'o', 'p', '[', ']', 0x7F, '4', '5', '6', ! 378: /* 56 */ ',', SHIFTKEYS+LEFTCTRL, ! 379: SHIFTKEYS+CAPSLOCK, ! 380: 'a', 's', 'd', 'f', 'g', ! 381: /* 64 */ 'h', 'j', 'k', 'l', ';', '\'', '\r', '\\', ! 382: /* 72 */ '1', '2', '3', NOP, NOSCROLL, ! 383: SHIFTKEYS+LEFTSHIFT, ! 384: 'z', 'x', ! 385: /* 80 */ 'c', 'v', 'b', 'n', 'm', ',', '.', '/', ! 386: /* 88 */ SHIFTKEYS+RIGHTSHIFT, ! 387: '\n', '0', HOLE, '.', '\r', HOLE, HOLE, ! 388: /* 96 */ HOLE, HOLE, ' ', HOLE, HOLE, HOLE, HOLE, HOLE, ! 389: /*104 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 390: /*112 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 391: /*120 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, IDLE, ! 392: }; ! 393: ! 394: ! 395: /* Shifted keyboard table for "VT100 style" */ ! 396: ! 397: static struct keymap keytab_vt_uc = { ! 398: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 399: HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 400: /* 8 */ HOLE, HOLE, STRING+UPARROW, ! 401: STRING+DOWNARROW, ! 402: STRING+LEFTARROW, ! 403: STRING+RIGHTARROW, ! 404: HOLE, TF(1), ! 405: /* 16 */ TF(2), TF(3), TF(4), c('['), '!', '@', '#', '$', ! 406: /* 24 */ '%', '^', '&', '*', '(', ')', '_', '+', ! 407: /* 32 */ '~', c('H'), BUCKYBITS+METABIT, ! 408: '7', '8', '9', '-', '\t', ! 409: /* 40 */ 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', ! 410: /* 48 */ 'O', 'P', '{', '}', 0x7F, '4', '5', '6', ! 411: /* 56 */ ',', SHIFTKEYS+LEFTCTRL, ! 412: SHIFTKEYS+CAPSLOCK, ! 413: 'A', 'S', 'D', 'F', 'G', ! 414: /* 64 */ 'H', 'J', 'K', 'L', ':', '"', '\r', '|', ! 415: /* 72 */ '1', '2', '3', NOP, NOSCROLL, ! 416: SHIFTKEYS+LEFTSHIFT, ! 417: 'Z', 'X', ! 418: /* 80 */ 'C', 'V', 'B', 'N', 'M', '<', '>', '?', ! 419: /* 88 */ SHIFTKEYS+RIGHTSHIFT, ! 420: '\n', '0', HOLE, '.', '\r', HOLE, HOLE, ! 421: /* 96 */ HOLE, HOLE, ' ', HOLE, HOLE, HOLE, HOLE, HOLE, ! 422: /*104 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 423: /*112 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 424: /*120 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, IDLE, ! 425: }; ! 426: ! 427: /* Caps Locked keyboard table for "VT100 style" */ ! 428: ! 429: static struct keymap keytab_vt_cl = { ! 430: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 431: HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 432: /* 8 */ HOLE, HOLE, STRING+UPARROW, ! 433: STRING+DOWNARROW, ! 434: STRING+LEFTARROW, ! 435: STRING+RIGHTARROW, ! 436: HOLE, TF(1), ! 437: /* 16 */ TF(2), TF(3), TF(4), c('['), '1', '2', '3', '4', ! 438: /* 24 */ '5', '6', '7', '8', '9', '0', '-', '=', ! 439: /* 32 */ '`', c('H'), BUCKYBITS+METABIT, ! 440: '7', '8', '9', '-', '\t', ! 441: /* 40 */ 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', ! 442: /* 48 */ 'O', 'P', '[', ']', 0x7F, '4', '5', '6', ! 443: /* 56 */ ',', SHIFTKEYS+LEFTCTRL, ! 444: SHIFTKEYS+CAPSLOCK, ! 445: 'A', 'S', 'D', 'F', 'G', ! 446: /* 64 */ 'H', 'J', 'K', 'L', ';', '\'', '\r', '\\', ! 447: /* 72 */ '1', '2', '3', NOP, NOSCROLL, ! 448: SHIFTKEYS+LEFTSHIFT, ! 449: 'Z', 'X', ! 450: /* 80 */ 'C', 'V', 'B', 'N', 'M', ',', '.', '/', ! 451: /* 88 */ SHIFTKEYS+RIGHTSHIFT, ! 452: '\n', '0', HOLE, '.', '\r', HOLE, HOLE, ! 453: /* 96 */ HOLE, HOLE, ' ', HOLE, HOLE, HOLE, HOLE, HOLE, ! 454: /*104 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 455: /*112 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 456: /*120 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, IDLE, ! 457: }; ! 458: ! 459: /* Controlled keyboard table for "VT100 style" */ ! 460: ! 461: static struct keymap keytab_vt_ct = { ! 462: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 463: HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 464: /* 8 */ HOLE, HOLE, STRING+UPARROW, ! 465: STRING+DOWNARROW, ! 466: STRING+LEFTARROW, ! 467: STRING+RIGHTARROW, ! 468: HOLE, TF(1), ! 469: /* 16 */ TF(2), TF(3), TF(4), c('['), '1', c('@'), '3', '4', ! 470: /* 24 */ '5', c('^'), '7', '8', '9', '0', c('_'), '=', ! 471: /* 32 */ c('^'), c('H'), BUCKYBITS+METABIT, ! 472: '7', '8', '9', '-', '\t', ! 473: /* 40 */ CTRLQ, c('W'), c('E'), c('R'), c('T'), c('Y'), c('U'), c('I'), ! 474: /* 48 */ c('O'), c('P'), c('['), c(']'), 0x7F, '4', '5', '6', ! 475: /* 56 */ ',', SHIFTKEYS+LEFTCTRL, ! 476: SHIFTKEYS+CAPSLOCK, ! 477: c('A'), CTRLS, c('D'), c('F'), c('G'), ! 478: /* 64 */ c('H'), c('J'), c('K'), c('L'), ':', '"', '\r', c('\\'), ! 479: /* 72 */ '1', '2', '3', NOP, NOSCROLL, ! 480: SHIFTKEYS+LEFTSHIFT, ! 481: c('Z'), c('X'), ! 482: /* 80 */ c('C'), c('V'), c('B'), c('N'), c('M'), ',', '.', c('_'), ! 483: /* 88 */ SHIFTKEYS+RIGHTSHIFT, ! 484: '\n', '0', HOLE, '.', '\r', HOLE, HOLE, ! 485: /* 96 */ HOLE, HOLE, c(' '), HOLE, HOLE, HOLE, HOLE, HOLE, ! 486: /*104 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 487: /*112 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 488: /*120 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, IDLE, ! 489: }; ! 490: ! 491: ! 492: /* "Key Up" keyboard table for "VT100 style" */ ! 493: ! 494: static struct keymap keytab_vt_up = { ! 495: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 496: HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 497: /* 8 */ HOLE, HOLE, NOP, NOP, NOP, NOP, HOLE, OOPS, ! 498: /* 16 */ OOPS, OOPS, OOPS, NOP, NOP, NOP, NOP, NOP, ! 499: /* 24 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 500: /* 32 */ NOP, NOP, BUCKYBITS+METABIT, ! 501: NOP, NOP, NOP, NOP, NOP, ! 502: /* 40 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 503: /* 48 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 504: /* 56 */ NOP, SHIFTKEYS+LEFTCTRL, ! 505: SHIFTKEYS+CAPSLOCK, ! 506: NOP, NOP, NOP, NOP, NOP, ! 507: /* 64 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 508: /* 72 */ NOP, NOP, NOP, NOP, NOP, SHIFTKEYS+LEFTSHIFT, ! 509: NOP, NOP, ! 510: /* 80 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 511: /* 88 */ SHIFTKEYS+RIGHTSHIFT, ! 512: NOP, NOP, HOLE, NOP, NOP, HOLE, HOLE, ! 513: /* 96 */ HOLE, HOLE, NOP, HOLE, HOLE, HOLE, HOLE, HOLE, ! 514: /*104 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 515: /*112 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, ! 516: /*120 */ HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, HOLE, RESET, ! 517: }; ! 518: ! 519: ! 520: /* Index to keymaps for "VT100 style" keyboard */ ! 521: static struct keyboard keyindex_vt = { ! 522: &keytab_vt_lc, ! 523: &keytab_vt_uc, ! 524: &keytab_vt_cl, ! 525: &keytab_vt_ct, ! 526: &keytab_vt_up, ! 527: CAPSMASK+CTLSMASK, /* Shift keys that stay on at idle keyboard */ ! 528: 0x0000, /* Bucky bits that stay on at idle keyboard */ ! 529: 1, 59, /* abort keys */ ! 530: 0x0000, /* Shift bits which toggle on down event */ ! 531: }; ! 532: ! 533: /* Unshifted keyboard table for Sun-3 keyboard */ ! 534: ! 535: static struct keymap keytab_s3_lc = { ! 536: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 537: HOLE, LF(2), HOLE, TF(1), TF(2), HOLE, ! 538: /* 8 */ TF(3), HOLE, TF(4), HOLE, TF(5), HOLE, TF(6), HOLE, ! 539: /* 16 */ TF(7), TF(8), TF(9), ALT, HOLE, RF(1), RF(2), RF(3), ! 540: /* 24 */ HOLE, LF(3), LF(4), HOLE, HOLE, c('['), '1', '2', ! 541: /* 32 */ '3', '4', '5', '6', '7', '8', '9', '0', ! 542: /* 40 */ '-', '=', '`', '\b', HOLE, RF(4), RF(5), RF(6), ! 543: /* 48 */ HOLE, LF(5), HOLE, LF(6), HOLE, '\t', 'q', 'w', ! 544: /* 56 */ 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', ! 545: /* 64 */ '[', ']', 0x7F, HOLE, RF(7), STRING+UPARROW, ! 546: RF(9), HOLE, ! 547: /* 72 */ LF(7), LF(8), LF(14), HOLE, SHIFTKEYS+LEFTCTRL, ! 548: 'a', 's', 'd', ! 549: /* 80 */ 'f', 'g', 'h', 'j', 'k', 'l', ';', '\'', ! 550: /* 88 */ '\\', '\r', HOLE, STRING+LEFTARROW, ! 551: RF(11), STRING+RIGHTARROW, ! 552: HOLE, LF(9), ! 553: /* 96 */ LF(15), LF(10), HOLE, SHIFTKEYS+LEFTSHIFT, ! 554: 'z', 'x', 'c', 'v', ! 555: /*104 */ 'b', 'n', 'm', ',', '.', '/', SHIFTKEYS+RIGHTSHIFT, ! 556: '\n', ! 557: /*112 */ RF(13), STRING+DOWNARROW, ! 558: RF(15), HOLE, HOLE, HOLE, HOLE, SHIFTKEYS+CAPSLOCK, ! 559: /*120 */ BUCKYBITS+METABIT, ! 560: ' ', BUCKYBITS+METABIT, ! 561: HOLE, HOLE, HOLE, ERROR, IDLE, ! 562: }; ! 563: ! 564: /* Shifted keyboard table for Sun-3 keyboard */ ! 565: ! 566: static struct keymap keytab_s3_uc = { ! 567: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 568: HOLE, LF(2), HOLE, TF(1), TF(2), HOLE, ! 569: /* 8 */ TF(3), HOLE, TF(4), HOLE, TF(5), HOLE, TF(6), HOLE, ! 570: /* 16 */ TF(7), TF(8), TF(9), ALT, HOLE, RF(1), RF(2), RF(3), ! 571: /* 24 */ HOLE, LF(3), LF(4), HOLE, HOLE, c('['), '!', '@', ! 572: /* 32 */ '#', '$', '%', '^', '&', '*', '(', ')', ! 573: /* 40 */ '_', '+', '~', '\b', HOLE, RF(4), RF(5), RF(6), ! 574: /* 48 */ HOLE, LF(5), HOLE, LF(6), HOLE, '\t', 'Q', 'W', ! 575: /* 56 */ 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', ! 576: /* 64 */ '{', '}', 0x7F, HOLE, RF(7), STRING+UPARROW, ! 577: RF(9), HOLE, ! 578: /* 72 */ LF(7), LF(8), HOLE, HOLE, SHIFTKEYS+LEFTCTRL, ! 579: 'A', 'S', 'D', ! 580: /* 80 */ 'F', 'G', 'H', 'J', 'K', 'L', ':', '"', ! 581: /* 88 */ '|', '\r', HOLE, STRING+LEFTARROW, ! 582: RF(11), STRING+RIGHTARROW, ! 583: HOLE, LF(9), ! 584: /* 96 */ LF(15), LF(10), HOLE, SHIFTKEYS+LEFTSHIFT, ! 585: 'Z', 'X', 'C', 'V', ! 586: /*104 */ 'B', 'N', 'M', '<', '>', '?', SHIFTKEYS+RIGHTSHIFT, ! 587: '\n', ! 588: /*112 */ RF(13), STRING+DOWNARROW, ! 589: RF(15), HOLE, HOLE, HOLE, HOLE, SHIFTKEYS+CAPSLOCK, ! 590: /*120 */ BUCKYBITS+METABIT, ! 591: ' ', BUCKYBITS+METABIT, ! 592: HOLE, HOLE, HOLE, ERROR, IDLE, ! 593: }; ! 594: ! 595: ! 596: /* Caps Locked keyboard table for Sun-3 keyboard */ ! 597: ! 598: static struct keymap keytab_s3_cl = { ! 599: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 600: HOLE, LF(2), HOLE, TF(1), TF(2), HOLE, ! 601: /* 8 */ TF(3), HOLE, TF(4), HOLE, TF(5), HOLE, TF(6), HOLE, ! 602: /* 16 */ TF(7), TF(8), TF(9), ALT, HOLE, RF(1), RF(2), RF(3), ! 603: /* 24 */ HOLE, LF(3), LF(4), HOLE, HOLE, c('['), '1', '2', ! 604: /* 32 */ '3', '4', '5', '6', '7', '8', '9', '0', ! 605: /* 40 */ '-', '=', '`', '\b', HOLE, RF(4), RF(5), RF(6), ! 606: /* 48 */ HOLE, LF(5), HOLE, LF(6), HOLE, '\t', 'Q', 'W', ! 607: /* 56 */ 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', ! 608: /* 64 */ '[', ']', 0x7F, HOLE, RF(7), STRING+UPARROW, ! 609: RF(9), HOLE, ! 610: /* 72 */ LF(7), LF(8), HOLE, HOLE, SHIFTKEYS+LEFTCTRL, ! 611: 'A', 'S', 'D', ! 612: /* 80 */ 'F', 'G', 'H', 'J', 'K', 'L', ';', '\'', ! 613: /* 88 */ '\\', '\r', HOLE, STRING+LEFTARROW, ! 614: RF(11), STRING+RIGHTARROW, ! 615: HOLE, LF(9), ! 616: /* 96 */ LF(15), LF(10), HOLE, SHIFTKEYS+LEFTSHIFT, ! 617: 'Z', 'X', 'C', 'V', ! 618: /*104 */ 'B', 'N', 'M', ',', '.', '/', SHIFTKEYS+RIGHTSHIFT, ! 619: '\n', ! 620: /*112 */ RF(13), STRING+DOWNARROW, ! 621: RF(15), HOLE, HOLE, HOLE, HOLE, SHIFTKEYS+CAPSLOCK, ! 622: /*120 */ BUCKYBITS+METABIT, ! 623: ' ', BUCKYBITS+METABIT, ! 624: HOLE, HOLE, HOLE, ERROR, IDLE, ! 625: }; ! 626: ! 627: /* Controlled keyboard table for Sun-3 keyboard */ ! 628: ! 629: static struct keymap keytab_s3_ct = { ! 630: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 631: HOLE, LF(2), HOLE, TF(1), TF(2), HOLE, ! 632: /* 8 */ TF(3), HOLE, TF(4), HOLE, TF(5), HOLE, TF(6), HOLE, ! 633: /* 16 */ TF(7), TF(8), TF(9), ALT, HOLE, RF(1), RF(2), RF(3), ! 634: /* 24 */ HOLE, LF(3), LF(4), HOLE, HOLE, c('['), '1', c('@'), ! 635: /* 32 */ '3', '4', '5', c('^'), '7', '8', '9', '0', ! 636: /* 40 */ c('_'), '=', c('^'), '\b', HOLE, RF(4), RF(5), RF(6), ! 637: /* 48 */ HOLE, LF(5), HOLE, LF(6), HOLE, '\t', c('q'), c('w'), ! 638: /* 56 */ c('e'), c('r'), c('t'), c('y'), c('u'), c('i'), c('o'), c('p'), ! 639: /* 64 */ c('['), c(']'), 0x7F, HOLE, RF(7), STRING+UPARROW, ! 640: RF(9), HOLE, ! 641: /* 72 */ LF(7), LF(8), HOLE, HOLE, SHIFTKEYS+LEFTCTRL, ! 642: c('a'), c('s'), c('d'), ! 643: /* 80 */ c('f'), c('g'), c('h'), c('j'), c('k'), c('l'), ';', '\'', ! 644: /* 88 */ c('\\'), ! 645: '\r', HOLE, STRING+LEFTARROW, ! 646: RF(11), STRING+RIGHTARROW, ! 647: HOLE, LF(9), ! 648: /* 96 */ LF(15), LF(10), HOLE, SHIFTKEYS+LEFTSHIFT, ! 649: c('z'), c('x'), c('c'), c('v'), ! 650: /*104 */ c('b'), c('n'), c('m'), ',', '.', c('_'), SHIFTKEYS+RIGHTSHIFT, ! 651: '\n', ! 652: /*112 */ RF(13), STRING+DOWNARROW, ! 653: RF(15), HOLE, HOLE, HOLE, HOLE, SHIFTKEYS+CAPSLOCK, ! 654: /*120 */ BUCKYBITS+METABIT, ! 655: c(' '), BUCKYBITS+METABIT, ! 656: HOLE, HOLE, HOLE, ERROR, IDLE, ! 657: }; ! 658: ! 659: ! 660: ! 661: /* "Key Up" keyboard table for Sun-3 keyboard */ ! 662: ! 663: static struct keymap keytab_s3_up = { ! 664: /* 0 */ HOLE, BUCKYBITS+SYSTEMBIT, ! 665: HOLE, OOPS, HOLE, OOPS, OOPS, HOLE, ! 666: /* 8 */ OOPS, HOLE, OOPS, HOLE, OOPS, HOLE, OOPS, HOLE, ! 667: /* 16 */ OOPS, OOPS, OOPS, OOPS, HOLE, OOPS, OOPS, NOP, ! 668: /* 24 */ HOLE, OOPS, OOPS, HOLE, HOLE, NOP, NOP, NOP, ! 669: /* 32 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 670: /* 40 */ NOP, NOP, NOP, NOP, HOLE, OOPS, OOPS, NOP, ! 671: /* 48 */ HOLE, OOPS, HOLE, OOPS, HOLE, NOP, NOP, NOP, ! 672: /* 56 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 673: /* 64 */ NOP, NOP, NOP, HOLE, OOPS, OOPS, NOP, HOLE, ! 674: /* 72 */ OOPS, OOPS, HOLE, HOLE, SHIFTKEYS+LEFTCTRL, ! 675: NOP, NOP, NOP, ! 676: /* 80 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, ! 677: /* 88 */ NOP, NOP, HOLE, OOPS, OOPS, NOP, HOLE, OOPS, ! 678: /* 96 */ OOPS, OOPS, HOLE, SHIFTKEYS+LEFTSHIFT, ! 679: NOP, NOP, NOP, NOP, ! 680: /*104 */ NOP, NOP, NOP, NOP, NOP, NOP, SHIFTKEYS+RIGHTSHIFT, ! 681: NOP, ! 682: /*112 */ OOPS, OOPS, NOP, HOLE, HOLE, HOLE, HOLE, NOP, ! 683: /*120 */ BUCKYBITS+METABIT, ! 684: NOP, BUCKYBITS+METABIT, ! 685: HOLE, HOLE, HOLE, HOLE, RESET, ! 686: }; ! 687: ! 688: /* Index to keymaps for Sun-3 keyboard */ ! 689: static struct keyboard keyindex_s3 = { ! 690: &keytab_s3_lc, ! 691: &keytab_s3_uc, ! 692: &keytab_s3_cl, ! 693: &keytab_s3_ct, ! 694: &keytab_s3_up, ! 695: 0x0000, /* Shift bits which stay on with idle keyboard */ ! 696: 0x0000, /* Bucky bits which stay on with idle keyboard */ ! 697: 1, 77, /* abort keys */ ! 698: CAPSMASK, /* Shift bits which toggle on down event */ ! 699: }; ! 700: ! 701: /***************************************************************************/ ! 702: /* Index table for the whole shebang */ ! 703: /***************************************************************************/ ! 704: int nkeytables = 4; /* max 16 */ ! 705: struct keyboard *keytables[] = { ! 706: &keyindex_ms, ! 707: &keyindex_vt, ! 708: &keyindex_s2, ! 709: &keyindex_s3, ! 710: }; ! 711: ! 712: /* ! 713: Keyboard String Table ! 714: ! 715: This defines the strings sent by various keys (as selected in the ! 716: tables above). ! 717: ! 718: The first byte of each string is its length, the rest is data. ! 719: */ ! 720: ! 721: #define kstescinit(c) {'\033', '[', 'c', '\0'} ! 722: char keystringtab[16][KTAB_STRLEN] = { ! 723: kstescinit(H) /*home*/, ! 724: kstescinit(A) /*up*/, ! 725: kstescinit(B) /*down*/, ! 726: kstescinit(D) /*left*/, ! 727: kstescinit(C) /*right*/, ! 728: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.