Annotation of 43BSDReno/sys/hpdev/hil_keymaps.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1988 University of Utah.
                      3:  * Copyright (c) 1990 The Regents of the University of California.
                      4:  * All rights reserved.
                      5:  *
                      6:  * This code is derived from software contributed to Berkeley by
                      7:  * the Systems Programming Group of the University of Utah Computer
                      8:  * Science Department.
                      9:  *
                     10:  * Redistribution is only permitted until one year after the first shipment
                     11:  * of 4.4BSD by the Regents.  Otherwise, redistribution and use in source and
                     12:  * binary forms are permitted provided that: (1) source distributions retain
                     13:  * this entire copyright notice and comment, and (2) distributions including
                     14:  * binaries display the following acknowledgement:  This product includes
                     15:  * software developed by the University of California, Berkeley and its
                     16:  * contributors'' in the documentation or other materials provided with the
                     17:  * distribution and in all advertising materials mentioning features or use
                     18:  * of this software.  Neither the name of the University nor the names of
                     19:  * its contributors may be used to endorse or promote products derived from
                     20:  * this software without specific prior written permission.
                     21:  * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     22:  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     23:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     24:  *
                     25:  * from: Utah $Hdr: hil_keymaps.c 1.1 89/08/22$
                     26:  *
                     27:  *     @(#)hil_keymaps.c       7.1 (Berkeley) 5/8/90
                     28:  */
                     29: 
                     30: /*
                     31:  * Keymaps for various HP-HIL keyboard layouts.
                     32:  * These tables apply only to keyboards in "cooked" mode.
                     33:  * Currently only one is supported as an ITE keyboard.
                     34:  *
                     35:  * Maps are indexed by cooked keycode and contain the ASCII
                     36:  * character for that keycode.  The map-set used depends on the
                     37:  * keyboard "language".  The map used within that set depends on
                     38:  * the shift/control status that is returned by the hardware along
                     39:  * with the keycode.  If an entry is NULL for a key in the appropriate
                     40:  * unshifted, shifted, control, or control-shifted table, then a
                     41:  * single "string" table is consulted.  In this fashion, a multi-
                     42:  * character sequence can be returned for a key press.  Note that
                     43:  * control/shift status have no effect on multi-character lookup
                     44:  * (i.e. there is only one string table per set, not four).
                     45:  *
                     46:  * Someday we could allow user-definable keymaps, but we would have
                     47:  * to come up with a better format (at least externally).  This
                     48:  * format takes up lots of space.  Having keymaps for all 18 or so
                     49:  * HP supported layouts would be bad news.
                     50:  */
                     51: #include "param.h"
                     52: #include "kbdmap.h"
                     53: 
                     54: char   us_keymap[] = {
                     55:        NULL,   '`',    '\\',   ESC,    NULL,   DEL,    NULL,   NULL,  
                     56:        '\n',   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,  
                     57:        NULL,   '\n',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,  
                     58:        NULL,   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                     59:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                     60:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   '\b',   NULL,
                     61:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                     62:        ESC,    '\r',   NULL,   '\n',   '0',    '.',    ',',    '+',
                     63:        '1',    '2',    '3',    '-',    '4',    '5',    '6',    '*',
                     64:        '7',    '8',    '9',    '/',    'E',    '(',    ')',    '^',
                     65:        '1',    '2',    '3',    '4',    '5',    '6',    '7',    '8',
                     66:        '9',    '0',    '-',    '=',    '[',    ']',    ';',    '\'',
                     67:        ',',    '.',    '/',    '\040', 'o',    'p',    'k',    'l',
                     68:        'q',    'w',    'e',    'r',    't',    'y',    'u',    'i',
                     69:        'a',    's',    'd',    'f',    'g',    'h',    'j',    'm',
                     70:        'z',    'x',    'c',    'v',    'b',    'n',    NULL,   NULL
                     71: };
                     72: 
                     73: char   us_shiftmap[] = {
                     74:        NULL,   '~',    '|',    DEL,    NULL,   DEL,    NULL,   NULL,
                     75:        '\n',   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                     76:        NULL,   '\n',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                     77:        NULL,   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                     78:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                     79:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   DEL,    NULL,
                     80:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                     81:        ESC,    '\r',   NULL,   '\n',   '0',    '.',    ',',    '+',
                     82:        '1',    '2',    '3',    '-',    '4',    '5',    '6',    '*',
                     83:        '7',    '8',    '9',    '/',    '`',    '|',    '\\',   '~',
                     84:        '!',    '@',    '#',    '$',    '%',    '^',    '&',    '*',
                     85:        '(',    ')',    '_',    '+',    '{',    '}',    ':',    '\"',
                     86:        '<',    '>',    '?',    '\040', 'O',    'P',    'K',    'L',
                     87:        'Q',    'W',    'E',    'R',    'T',    'Y',    'U',    'I',
                     88:        'A',    'S',    'D',    'F',    'G',    'H',    'J',    'M',
                     89:        'Z',    'X',    'C',    'V',    'B',    'N',    NULL,   NULL
                     90: };
                     91: 
                     92: char   us_ctrlmap[] = {
                     93:        NULL,   '`',    '\034', ESC,    NULL,   DEL,    NULL,   NULL,
                     94:        '\n',   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                     95:        NULL,   '\n',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                     96:        NULL,   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                     97:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                     98:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   '\b',   NULL,
                     99:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    100:        ESC,    '\r',   NULL,   '\n',   '0',    '.',    ',',    '+',
                    101:        '1',    '2',    '3',    '-',    '4',    '5',    '6',    '*',
                    102:        '7',    '8',    '9',    '/',    'E',    '(',    ')',    '\036',
                    103:        '1',    '2',    '3',    '4',    '5',    '6',    '7',    '8',
                    104:        '9',    '0',    '-',    '=',    '\033', '\035', ';',    '\'',
                    105:        ',',    '.',    '/',    '\040', '\017', '\020', '\013', '\014',
                    106:        '\021', '\027', '\005', '\022', '\024', '\031', '\025', '\011',
                    107:        '\001', '\023', '\004', '\006', '\007', '\010', '\012', '\015',
                    108:        '\032', '\030', '\003', '\026', '\002', '\016', NULL,   NULL
                    109: };
                    110: 
                    111: char   us_ctrlshiftmap[] = {
                    112:        NULL,   '~',    '|',    DEL,    NULL,   DEL,    NULL,   NULL,
                    113:        '\n',   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    114:        NULL,   '\n',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    115:        NULL,   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    116:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    117:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   DEL,    NULL,
                    118:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    119:        ESC,    '\r',   NULL,   '\n',   '0',    '.',    ',',    '+',
                    120:        '1',    '2',    '3',    '-',    '4',    '5',    '6',    '*',
                    121:        '7',    '8',    '9',    '/',    '`',    '|',    '\034', '~',
                    122:        '!',    '\000', '#',    '$',    '%',    '\036', '&',    '*',
                    123:        '(',    ')',    '\037', '+',    '{',    '}',    ':',    '\"',
                    124:        '<',    '>',    '?',    '\040', '\017', '\020', '\013', '\014',
                    125:        '\021', '\027', '\005', '\022', '\024', '\031', '\025', '\011',
                    126:        '\001', '\023', '\004', '\006', '\007', '\010', '\012', '\015',
                    127:        '\032', '\030', '\003', '\026', '\002', '\016', NULL,   NULL
                    128: };
                    129: 
                    130: char   *us_stringmap[] = {
                    131:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    132:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   "\033V","\033h",
                    133:        "\033U",NULL,   NULL,   NULL,   NULL,   NULL,   "\033K","\033J",
                    134:        NULL,   NULL,   NULL,   "\033p","\033q","\033t","\033u","\033v",
                    135:        "\033r","\033s","\033B","\033A","\033w",NULL,   "\033D","\033C",
                    136:        "\033L","\033M",NULL,   NULL,   "\033P",NULL,   NULL,   NULL,
                    137:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    138:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    139:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    140:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    141:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    142:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    143:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    144:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    145:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    146:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL
                    147: };
                    148: 
                    149: #ifdef UK_KEYBOARD
                    150: char   uk_keymap[] = {
                    151:        NULL,   '`',    '<',    ESC,    NULL,   DEL,    NULL,   NULL,  
                    152:        '\n',   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,  
                    153:        NULL,   '\n',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,  
                    154:        NULL,   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    155:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    156:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   '\b',   NULL,
                    157:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    158:        ESC,    '\r',   NULL,   '\n',   '0',    '.',    ',',    '+',
                    159:        '1',    '2',    '3',    '-',    '4',    '5',    '6',    '*',
                    160:        '7',    '8',    '9',    '/',    'E',    '(',    ')',    '^',
                    161:        '1',    '2',    '3',    '4',    '5',    '6',    '7',    '8',
                    162:        '9',    '0',    '+',    '\'',   '[',    ']',    '*',    '\\',
                    163:        ',',    '.',    '-',    '\040', 'o',    'p',    'k',    'l',
                    164:        'q',    'w',    'e',    'r',    't',    'y',    'u',    'i',
                    165:        'a',    's',    'd',    'f',    'g',    'h',    'j',    'm',
                    166:        'z',    'x',    'c',    'v',    'b',    'n',    NULL,   NULL
                    167: };
                    168: 
                    169: char   uk_shiftmap[] = {
                    170:        NULL,   '~',    '>',    DEL,    NULL,   DEL,    NULL,   NULL,
                    171:        '\n',   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    172:        NULL,   '\n',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    173:        NULL,   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    174:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    175:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   DEL,    NULL,
                    176:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    177:        ESC,    '\r',   NULL,   '\n',   '0',    '.',    ',',    '+',
                    178:        '1',    '2',    '3',    '-',    '4',    '5',    '6',    '*',
                    179:        '7',    '8',    '9',    '/',    '`',    '|',    '\\',   '~',
                    180:        '!',    '\"',   '#',    '$',    '%',    '&',    '^',    '(',
                    181:        ')',    '=',    '?',    '/',    '{',    '}',    '@',    '|',
                    182:        ';',    ':',    '_',    '\040', 'O',    'P',    'K',    'L',
                    183:        'Q',    'W',    'E',    'R',    'T',    'Y',    'U',    'I',
                    184:        'A',    'S',    'D',    'F',    'G',    'H',    'J',    'M',
                    185:        'Z',    'X',    'C',    'V',    'B',    'N',    NULL,   NULL
                    186: };
                    187: 
                    188: char   uk_ctrlmap[] = {
                    189:        NULL,   '`',    '<',    ESC,    NULL,   DEL,    NULL,   NULL,
                    190:        '\n',   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    191:        NULL,   '\n',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    192:        NULL,   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    193:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    194:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   '\b',   NULL,
                    195:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    196:        ESC,    '\r',   NULL,   '\n',   '0',    '.',    ',',    '+',
                    197:        '1',    '2',    '3',    '-',    '4',    '5',    '6',    '*',
                    198:        '7',    '8',    '9',    '/',    'E',    '(',    ')',    '\036',
                    199:        '1',    '2',    '3',    '4',    '5',    '6',    '7',    '8',
                    200:        '9',    '0',    '+',    '\'',   '\033', '\035', '*',    '\034',
                    201:        ',',    '.',    '/',    '\040', '\017', '\020', '\013', '\014',
                    202:        '\021', '\027', '\005', '\022', '\024', '\031', '\025', '\011',
                    203:        '\001', '\023', '\004', '\006', '\007', '\010', '\012', '\015',
                    204:        '\032', '\030', '\003', '\026', '\002', '\016', NULL,   NULL
                    205: };
                    206: 
                    207: char   uk_ctrlshiftmap[] = {
                    208:        NULL,   '~',    '>',    DEL,    NULL,   DEL,    NULL,   NULL,
                    209:        '\n',   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    210:        NULL,   '\n',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    211:        NULL,   '\t',   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    212:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    213:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   DEL,    NULL,
                    214:        NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,
                    215:        ESC,    '\r',   NULL,   '\n',   '0',    '.',    ',',    '+',
                    216:        '1',    '2',    '3',    '-',    '4',    '5',    '6',    '*',
                    217:        '7',    '8',    '9',    '/',    '`',    '|',    '\034', '~',
                    218:        '!',    '\"',   '#',    '$',    '%',    '&',    '\036', '(',
                    219:        ')',    '=',    '?',    '/',    '{',    '}',    '\000', '|',
                    220:        ';',    ':',    '\037', '\040', '\017', '\020', '\013', '\014',
                    221:        '\021', '\027', '\005', '\022', '\024', '\031', '\025', '\011',
                    222:        '\001', '\023', '\004', '\006', '\007', '\010', '\012', '\015',
                    223:        '\032', '\030', '\003', '\026', '\002', '\016', NULL,   NULL
                    224: };
                    225: #endif
                    226: 
                    227: /*
                    228:  * The keyboard map table.
                    229:  * Lookup is by hardware returned language code.
                    230:  */
                    231: struct kbdmap kbd_map[] = {
                    232:        KBD_US,         "US ASCII",
                    233:        us_keymap,      us_shiftmap,    us_ctrlmap,     us_ctrlshiftmap,
                    234:        us_stringmap,
                    235: 
                    236: #ifdef UK_KEYBOARD
                    237:        KBD_UK,         "United Kingdom",
                    238:        uk_keymap,      uk_shiftmap,    uk_ctrlmap,     uk_ctrlshiftmap,
                    239:        us_stringmap,
                    240: #endif
                    241: 
                    242:        0,              NULL,
                    243:        NULL,           NULL,           NULL,           NULL,
                    244:        NULL,
                    245: };

unix.superglobalmegacorp.com

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