Annotation of coherent/d/conf/kbd/us.c, revision 1.1.1.1

1.1       root        1: /* (-lgl
                      2:  *     COHERENT Version 4.0
                      3:  *     Copyright (c) 1982, 1992 by Mark Williams Company.
                      4:  *     All rights reserved. May not be copied without permission.
                      5:  -lgl) */
                      6: /*
                      7:  *  Virtual console keyboard code table.
                      8:  *
                      9:  *     See header files for definitions and constants.
                     10:  *
                     11:  *     Version: 1.2, 07/01/91
                     12:  *     Version: 1.3, 06/25/92
                     13:  *     Version: 1.4, 07/09/92
                     14:  *     Version: 1.5, 06/14/93
                     15:  *     Version: 1.6, 09/01/93
                     16:  */
                     17: #include <sys/kbscan.h>
                     18: #include <sys/kb.h>
                     19: 
                     20: char   tbl_name[] = "U.S. virtual console keyboard table - V1.6";
                     21: 
                     22: #define A      0x80 |
                     23: #define CSI    "\x1B["
                     24: #define END    "\xFF"
                     25: 
                     26: KBTBL  kbtbl[] = {
                     27: /* AT                                                    Alt
                     28:  *Phys                       Ctrl           Alt   Alt    Ctrl     Alt
                     29:  *Key#  Base   Shift  Ctrl   Shift  Alt    Shift  Ctrl   Shift  Graphic Flags
                     30:  *----  ----   -----  ----   -----  ---    -----  ----   -----  ------- -----*/
                     31: {K_1,  '`',   '~',   none,  none,  A'`',  A'~',  none,  none,  none,   O|T  },
                     32: {K_2,  '1',   '!',   none,  none,  A'1',  A'!',  none,  none,  none,   O|T  },
                     33: {K_3,  '2',   '@',   nul,   nul,   A'2',  A'@',  A nul, A nul, none,   O|T  },
                     34: {K_4,  '3',   '#',   none,  none,  A'3',  A'#',  none,  none,  none,   O|T  },
                     35: {K_5,  '4',   '$',   none,  none,  A'4',  A'$',  none,  none,  none,   O|T  },
                     36: {K_6,  '5',   '%',   none,  none,  A'5',  A'%',  none,  none,  none,   O|T  },
                     37: {K_7,  '6',   '^',   rs,    rs,    A'6',  A'^',  A rs,  A rs,  none,   O|T  },
                     38: {K_8,  '7',   '&',   none,  none,  A'7',  A'&',  none,  none,  none,   O|T  },
                     39: {K_9,  '8',   '*',   none,  none,  A'8',  A'*',  none,  none,  none,   O|T  },
                     40: {K_10, '9',   '(',   none,  none,  A'9',  A'(',  none,  none,  none,   O|T  },
                     41: {K_11, '0',   ')',   none,  none,  A'0',  A')',  none,  none,  none,   O|T  },
                     42: {K_12, '-',   '_',   us,    us,    A'-',  A'_',  A us,  A us,  none,   O|T  },
                     43: {K_13, '=',   '+',   none,  none,  A'=',  A'+',  none,  none,  none,   O|T  },
                     44: /* key 14 for compatibility -- not on most 101/102 keyboards */
                     45: {K_14, '\\',  '|',   fs,    fs,    A'\\', A'|',  A fs,  A fs,  none,   O|T  },
                     46: {K_15, bs,    bs,    del,   del,   A bs,  A bs,  A del, A del, none,   O|T  },
                     47: {K_16, f42,   f43,   none,  none,  f42,   f43,   none,  none,  none,   F|T  },
                     48: {K_17, 'q',   'Q',   dc1,   dc1,   A'q',  A'Q',  A dc1, A dc1, none,   C|T  },
                     49: {K_18, 'w',   'W',   etb,   etb,   A'w',  A'W',  A etb, A etb, none,   C|T  },
                     50: {K_19, 'e',   'E',   enq,   enq,   A'e',  A'E',  A enq, A enq, none,   C|T  },
                     51: {K_20, 'r',   'R',   dc2,   dc2,   A'r',  A'R',  A dc2, A dc2, none,   C|T  },
                     52: {K_21, 't',   'T',   dc4,   dc4,   A't',  A'T',  A dc4, A dc4, none,   C|T  },
                     53: {K_22, 'y',   'Y',   em,    em,    A'y',  A'Y',  A em,  A em,  none,   C|T  },
                     54: {K_23, 'u',   'U',   nak,   nak,   A'u',  A'U',  A nak, A nak, none,   C|T  },
                     55: {K_24, 'i',   'I',   ht,    ht,    A'i',  A'I',  A ht,  A ht,  none,   C|T  },
                     56: {K_25, 'o',   'O',   si,    si,    A'o',  A'O',  A si,  A si,  none,   C|T  },
                     57: {K_26, 'p',   'P',   dle,   dle,   A'p',  A'P',  A dle, A dle, none,   C|T  },
                     58: {K_27, '[',   '{',   esc,   esc,   A'[',  A'{',  A esc, A esc, none,   O|T  },
                     59: {K_28, ']',   '}',   gs,    gs,    A']',  A'}',  A gs,  A gs,  none,   O|T  },
                     60: {K_29, '\\',  '|',   fs,    fs,    A'\\', A'|',  A fs,  A fs,  none,   O|T  },
                     61: {K_30, caps,  caps,  caps,  caps,  caps,  caps,  caps,  caps,  caps,   S|M  },
                     62: {K_31, 'a',   'A',   soh,   soh,   A'a',  A'A',  A soh, A soh, none,   C|T  },
                     63: {K_32, 's',   'S',   dc3,   dc3,   A's',  A'S',  A dc3, A dc3, none,   C|T  },
                     64: {K_33, 'd',   'D',   eot,   eot,   A'd',  A'D',  A eot, A eot, none,   C|T  },
                     65: {K_34, 'f',   'F',   ack,   ack,   A'f',  A'F',  A ack, A ack, none,   C|T  },
                     66: {K_35, 'g',   'G',   bel,   bel,   A'g',  A'G',  A bel, A bel, none,   C|T  },
                     67: {K_36, 'h',   'H',   bs,    bs,    A'h',  A'H',  A bs,  A bs,  none,   C|T  },
                     68: {K_37, 'j',   'J',   nl,    nl,    A'j',  A'J',  A nl,  A nl,  none,   C|T  },
                     69: {K_38, 'k',   'K',   vt,    vt,    A'k',  A'K',  A vt,  A vt,  none,   C|T  },
                     70: {K_39, 'l',   'L',   ff,    ff,    A'l',  A'L',  A ff,  A ff,  none,   C|T  },
                     71: {K_40, ';',   ':',   none,  none,  A';',  A':',  none,  none,  none,   O|T  },
                     72: {K_41, '\'',  '"',   none,  none,  A'\'', A'"',  none,  none,  none,   O|T  },
                     73: {K_42, '\\',  '|',   fs,    fs,    A'\\', A'|',  A fs,  A fs,  none,   O|T  },
                     74: {K_43, cr,    cr,    nl,    nl,    A cr,  A cr,  A nl,  A nl,  none,   O|T  },
                     75: {K_44, lshift,lshift,lshift,lshift,lshift,lshift,lshift,lshift,lshift, S|MB },
                     76: {K_45, none,  none,  none,  none,  none,  none,  none,  none,  none,   O|T  },
                     77: {K_46, 'z',   'Z',   sub,   sub,   A'z',  A'Z',  A sub, A sub, none,   C|T  },
                     78: {K_47, 'x',   'X',   can,   can,   A'x',  A'X',  A can, A can, none,   C|T  },
                     79: {K_48, 'c',   'C',   etx,   etx,   A'c',  A'C',  A etx, A etx, none,   C|T  },
                     80: {K_49, 'v',   'V',   syn,   syn,   A'v',  A'V',  A syn, A syn, none,   C|T  },
                     81: {K_50, 'b',   'B',   stx,   stx,   A'b',  A'B',  A stx, A stx, none,   C|T  },
                     82: {K_51, 'n',   'N',   so,    so,    A'n',  A'N',  A so,  A so,  none,   C|T  },
                     83: {K_52, 'm',   'M',   cr,    cr,    A'm',  A'M',  A cr,  A cr,  none,   C|T  },
                     84: {K_53, ',',   '<',   none,  none,  A',',  A'<',  none,  none,  none,   O|T  },
                     85: {K_54, '.',   '>',   none,  none,  A'.',  A'>',  none,  none,  none,   O|T  },
                     86: {K_55, '/',   '?',   none,  none,  A'/',  A'?',  none,  none,  none,   O|T  },
                     87: /* key 56 undefined */
                     88: {K_57, rshift,rshift,rshift,rshift,rshift,rshift,rshift,rshift,rshift, S|MB },
                     89: {K_58, lctrl, lctrl, lctrl, lctrl, lctrl, lctrl, lctrl, lctrl, lctrl,  S|MB },
                     90: /* key 59 undefined */
                     91: {K_60, lalt,  lalt,  lalt,  lalt,  lalt,  lalt,  lalt,  lalt,  lalt,   S|MB },
                     92: {K_61, ' ',   ' ',   ' ',   ' ',   A' ',  A' ',  A' ',  A' ',  none,   O|T  },
                     93: {K_62, ralt,  ralt,  ralt,  ralt,  ralt,  ralt,  ralt,  ralt,  ralt,   S|MB },
                     94: /* key 63 undefined */
                     95: {K_64, rctrl, rctrl, rctrl, rctrl, rctrl, rctrl, rctrl, rctrl, rctrl,  S|MB },
                     96: /* keys 65 through 74 could be functional keys on XT type keyboard */
                     97: {K_65, f2,    f14,   f26,   f71,   vt1,   none,  none,  none,  none,   F|M  },
                     98: {K_66, f4,    f16,   f28,   f73,   vt3,   none,  none,  none,  none,   F|M  },
                     99: {K_67, f6,    f18,   f30,   f75,   vt5,   none,  none,  none,  none,   F|M  },
                    100: {K_68, f8,    f20,   f65,   f77,   vt7,   none,  none,  none,  none,   F|M  },
                    101: {K_69, f10,   f22,   f67,   f79,   vtn,   none,  none,  none,  none,   F|M  },
                    102: {K_70, f1,    f13,   f25,   f70,   vt0,   none,  none,  none,  none,   F|M  },
                    103: {K_71, f3,    f15,   f27,   f72,   vt2,   none,  none,  none,  none,   F|M  },
                    104: {K_72, f5,    f17,   f29,   f74,   vt4,   none,  none,  none,  none,   F|M  },
                    105: {K_73, f7,    f19,   f64,   f76,   vt6,   none,  none,  none,  none,   F|M  },
                    106: {K_74, f9,    f21,   f66,   f78,   none,  none,  none,  none,  none,   F|M  },
                    107: {K_75, f40,   f40,   f40,   f40,   f40,   f40,   f40,   f40,   f40,    F|M  },
                    108: {K_76, f41,   f41,   f41,   f41,   f41,   f41,   reboot,f41,   f41,    F|M  },
                    109: /* keys 77 and 78 undefined */
                    110: {K_79, f34,   f34,   f34,   f34,   f34,   f34,   f34,   f34,   f34,    F|T  },
                    111: {K_80, f37,   f37,   f37,   f37,   f37,   f37,   f37,   f37,   f37,    F|M  },
                    112: {K_81, f31,   f31,   f31,   f31,   f31,   f31,   f31,   f31,   f31,    F|M  },
                    113: /* key 82 undefined */
                    114: {K_83, f38,   f38,   f38,   f38,   f38,   f38,   f38,   f38,   f38,    F|T  },
                    115: {K_84, f32,   f32,   f32,   f32,   f32,   f32,   f32,   f32,   f32,    F|T  },
                    116: {K_85, f39,   f39,   f39,   f39,   f39,   f39,   f39,   f39,   f39,    F|M  },
                    117: {K_86, f33,   f33,   f33,   f33,   f33,   f33,   f33,   f33,   f33,    F|M  },
                    118: /* keys 87 and 88 undefined */
                    119: {K_89, f36,   f36,   f36,   f36,   f36,   f36,   f36,   f36,   f36,    F|T  },
                    120: {K_90, num,   num,   num,   num,   num,   num,   num,   num,   num,    S|M  },
                    121: {K_91, f37,   f57,   vt7,   vt7,   f57,   f57,   f57,   f57,   f57,    F|N|M},
                    122: {K_92, f34,   f54,   vt4,   vt4,   f54,   f54,   f54,   f54,   f54,    F|N|M},
                    123: {K_93, f31,   f51,   vt1,   vt1,   f51,   f51,   f51,   f51,   f51,    F|N|M},
                    124: /* key 94 undefined */
                    125: {K_95, '/',   '/',   none,  none,  none,  none,  none,  none,  none,   O|M  },
                    126: {K_96, f38,   f58,   vt8,   vt8,   f58,   f58,   f58,   f58,   f58,    F|N|M},
                    127: {K_97, f35,   f55,   vt5,   vt5,   f55,   f55,   f55,   f55,   f55,    F|N|M},
                    128: {K_98, f32,   f52,   vt2,   vt2,   f52,   f52,   f52,   f52,   f52,    F|N|M},
                    129: {K_99, f40,   f60,   vt0,   vt0,   f60,   f60,   f60,   f60,   f60,    F|N|M},
                    130: {K_100,        '*',   '*',   none,  none,  none,  none,  none,  none,  none,   O|M  },
                    131: {K_101,        f39,   f59,   vt9,   vt9,   f59,   f59,   f59,   f59,   f59,    F|N|M},
                    132: {K_102,        f36,   f56,   vt6,   vt6,   f56,   f56,   f56,   f56,   f56,    F|N|M},
                    133: {K_103,        f33,   f53,   vt3,   vt3,   f53,   f53,   f53,   f53,   f53,    F|N|M},
                    134: {K_104,        f41,   f61,   vtt,   vtt,   f61,   f61,   reboot,reboot,f61,    F|N|M},
                    135: {K_105,        f63,   f63,   vtp,   vtp,  none,  none,  none,  none,  none,   F|M  },
                    136: {K_106,        f62,   f62,   vtn,   vtn,  none,  none,  none,  none,  none,   F|M  },
                    137: /* key 107 undefined */
                    138: {K_108,        cr,    cr,    nl,    nl,    cr,    cr,    nl,    nl,    none,   O|M  },
                    139: /* key 109 undefined */
                    140: {K_110,        esc,   esc,   none,  none,  esc,   esc,   none,  none,  none,   O|M  },
                    141: /* key 111 undefined */
                    142: {K_112,        f1,    f13,   f25,   f70,   vt0,   none,  none,  none,  none,   F|M  },
                    143: {K_113,        f2,    f14,   f26,   f71,   vt1,   none,  none,  none,  none,   F|M  },
                    144: {K_114,        f3,    f15,   f27,   f72,   vt2,   none,  none,  none,  none,   F|M  },
                    145: {K_115,        f4,    f16,   f28,   f73,   vt3,   none,  none,  none,  none,   F|M  },
                    146: {K_116,        f5,    f17,   f29,   f74,   vt4,   none,  none,  none,  none,   F|M  },
                    147: {K_117,        f6,    f18,   f30,   f75,   vt5,   none,  none,  none,  none,   F|M  },
                    148: {K_118,        f7,    f19,   f64,   f76,   vt6,   none,  none,  none,  none,   F|M  },
                    149: {K_119,        f8,    f20,   f65,   f77,   vt7,   none,  none,  none,  none,   F|M  },
                    150: {K_120,        f9,    f21,   f66,   f78,   none,  none,  none,  none,  none,   F|M  },
                    151: {K_121,        f10,   f22,   f67,   f79,   vtn,   none,  none,  none,  none,   F|M  },
                    152: {K_122,        f11,   f23,   f68,   f44,   vtp,   none,  none,  none,  none,   F|M  },
                    153: {K_123,        f12,   f24,   f69,   f45,   vtt,   none,  none,  none,  none,   F|M  },
                    154: {K_124,        none,  none,  none,  none,  none,  none,  none,  none,  none,   O|M  },
                    155: {K_125,        scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll, S|M  },
                    156: {K_126,        none,  none,  none,  none,  none,  none,  none,  none,  none,   O|M  }
                    157: };
                    158: 
                    159: /*
                    160:  * Special and programmable function key definitions:
                    161:  *
                    162:  * Notes:
                    163:  *   1) If a key outputs a multi-byte sequence in any mode, the key
                    164:  *     must be defined as a function key (flags field == F) and all entries
                    165:  *     for the key must be function keys (i.e., f1 through f50).
                    166:  *
                    167:  *   2)        All key definition strings must be terminated by a \377 sequence.
                    168:  *     This allows the NUL ('\0') character to be embedded in function strings
                    169:  */
                    170: 
                    171: unsigned char  *funkey[] = {
                    172: /* 0/reboot */ "reboot" END,           /* jump to reboot code */
                    173: /* 1 */                CSI"M" END,             /* F1 */
                    174: /* 2 */                CSI"N" END,             /* F2 */
                    175: /* 3 */                CSI"O" END,             /* F3 */
                    176: /* 4 */                CSI"P" END,             /* F4 */
                    177: /* 5 */                CSI"Q" END,             /* F5 */
                    178: /* 6 */                CSI"R" END,             /* F6 */
                    179: /* 7 */                CSI"S" END,             /* F7 */
                    180: /* 8 */                CSI"T" END,             /* F8 */
                    181: /* 9 */                CSI"U" END,             /* F9 */
                    182: /* 10 */       CSI"V" END,             /* F10 */
                    183: /* 11 */       CSI"W" END,             /* F11 */
                    184: /* 12 */       CSI"X" END,             /* F12 */
                    185: /* 13 */       CSI"Y" END,             /* sF1 */
                    186: /* 14 */       CSI"Z" END,             /* sF2 */
                    187: /* 15 */       CSI"a" END,             /* sF3 */
                    188: /* 16 */       CSI"b" END,             /* sF4 */
                    189: /* 17 */       CSI"c" END,             /* sF5 */
                    190: /* 18 */       CSI"d" END,             /* sF6 */
                    191: /* 19 */       CSI"e" END,             /* sF7 */
                    192: /* 20 */       CSI"f" END,             /* sF8 */
                    193: /* 21 */       CSI"g" END,             /* sF9 */
                    194: /* 22 */       CSI"h" END,             /* sF10 */
                    195: /* 23 */       CSI"i" END,             /* sF11 */
                    196: /* 24 */       CSI"j" END,             /* sF12 */
                    197: /* 25 */       CSI"k" END,             /* cF1 */
                    198: /* 26 */       CSI"l" END,             /* cF2 */
                    199: /* 27 */       CSI"m" END,             /* cF3 */
                    200: /* 28 */       CSI"n" END,             /* cF4 */
                    201: /* 29 */       CSI"o" END,             /* cF5 */
                    202: /* 30 */       CSI"p" END,             /* cF6 */
                    203: /* 31 */       CSI"F" END,             /* End */
                    204: /* 32 */       CSI"B" END,             /* Down Arrow */
                    205: /* 33 */       CSI"G" END,             /* Page Down */
                    206: /* 34 */       CSI"D" END,             /* Left Arrow */
                    207: /* 35 */       "" END,                 /* Unshifted keypad 5 */
                    208: /* 36 */       CSI"C" END,             /* Right Arrow */
                    209: /* 37 */       CSI"H" END,             /* Home */
                    210: /* 38 */       CSI"A" END,             /* Up Arrow */
                    211: /* 39 */       CSI"I" END,             /* Page Up */
                    212: /* 40 */       CSI"L" END,             /* Insert */
                    213: /* 41 */        "\177" END,            /* Delete */
                    214: /* 42 */       "\t" END,               /* Tab */
                    215: /* 43 */       CSI"Z" END,             /* Back Tab */
                    216: /* 44 */       CSI"`" END,             /* c-s-F11 */
                    217: /* 45 */       CSI"{" END,             /* c-s-F12 */
                    218: /* 46 */       "F44" END,              /* unused */
                    219: /* 47 */       "F47" END,              /* unused */
                    220: /* 48 */       "F48" END,              /* unused */
                    221: /* 49 */       "F49" END,              /* unused */
                    222: /* 50 */       "F50" END,              /* unused */
                    223: /* 51 */       "1" END,                /* Keypad 1 */
                    224: /* 52 */       "2" END,                /* Keypad 2 */
                    225: /* 53 */       "3" END,                /* Keypad 3 */
                    226: /* 54 */       "4" END,                /* Keypad 4 */
                    227: /* 55 */       "5" END,                /* Keypad 5 */
                    228: /* 56 */       "6" END,                /* Keypad 6 */
                    229: /* 57 */       "7" END,                /* Keypad 7 */
                    230: /* 58 */       "8" END,                /* Keypad 8 */
                    231: /* 59 */       "9" END,                /* Keypad 9 */
                    232: /* 60 */       "0" END,                /* Keypad 0 */
                    233: /* 61 */       "." END,                /* Keypad . */
                    234: /* 62 */       "+" END,                /* Keypad + */
                    235: /* 63 */       "-" END,                /* Keypad - */
                    236: /* 64 */       CSI"q" END,             /* cF7 */
                    237: /* 65 */       CSI"r" END,             /* cF8 */
                    238: /* 66 */       CSI"s" END,             /* cF9 */
                    239: /* 67 */       CSI"t" END,             /* cF10 */
                    240: /* 68 */       CSI"u" END,             /* cF11 */
                    241: /* 69 */       CSI"v" END,             /* cF12 */
                    242: /* 70 */       CSI"w" END,             /* c-s-F1 */
                    243: /* 71 */       CSI"x" END,             /* c-s-F2 */
                    244: /* 72 */       CSI"y" END,             /* c-s-F3 */
                    245: /* 73 */       CSI"z" END,             /* c-s-F4 */
                    246: /* 74 */       CSI"@" END,             /* c-s-F5 */
                    247: /* 75 */       CSI"[" END,             /* c-s-F6 */
                    248: /* 76 */       CSI"\\" END,            /* c-s-F7 */
                    249: /* 77 */       CSI"]" END,             /* c-s-F8 */
                    250: /* 78 */       CSI"^" END,             /* c-s-F9 */
                    251: /* 79 */       CSI"_" END              /* c-s-F10 */
                    252: };
                    253: 
                    254: int    numfun  = sizeof(funkey) / sizeof(funkey[0]);   /* # of Fn keys */
                    255: int    numkey  = sizeof(kbtbl) / sizeof(kbtbl[0]);     /* # of actual keys */
                    256: /* end of us.c */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.