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

unix.superglobalmegacorp.com

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