kbdmap.c revision 1.10
11.10Sveego/* $NetBSD: kbdmap.c,v 1.10 1997/09/06 12:41:10 veego Exp $ */ 21.5Schopps 31.8Schopps/* 41.8Schopps * Copyright (c) 1993 Markus Wild 51.8Schopps * All rights reserved. 61.8Schopps * 71.8Schopps * Redistribution and use in source and binary forms, with or without 81.8Schopps * modification, are permitted provided that the following conditions 91.8Schopps * are met: 101.8Schopps * 1. Redistributions of source code must retain the above copyright 111.8Schopps * notice, this list of conditions and the following disclaimer. 121.8Schopps * 2. Redistributions in binary form must reproduce the above copyright 131.8Schopps * notice, this list of conditions and the following disclaimer in the 141.8Schopps * documentation and/or other materials provided with the distribution. 151.8Schopps * 3. All advertising materials mentioning features or use of this software 161.8Schopps * must display the following acknowledgement: 171.8Schopps * This product includes software developed by Markus Wild. 181.8Schopps * 4. The name of the author may not be used to endorse or promote products 191.8Schopps * derived from this software without specific prior written permission 201.8Schopps * 211.8Schopps * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 221.8Schopps * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 231.8Schopps * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 241.8Schopps * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 251.8Schopps * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 261.8Schopps * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 271.8Schopps * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 281.8Schopps * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 291.8Schopps * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 301.8Schopps * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 311.8Schopps */ 321.6Schopps#include <amiga/dev/kbdmap.h> 331.1Smw 341.1Smw/* define a default keymap. This can be changed by keyboard ioctl's 351.1Smw (later at least..) */ 361.1Smw 371.1Smw/* mode shortcuts: */ 381.1Smw#define S KBD_MODE_STRING 391.1Smw#define DG (KBD_MODE_DEAD | KBD_MODE_GRAVE) 401.1Smw#define DA (KBD_MODE_DEAD | KBD_MODE_ACUTE) 411.1Smw#define DC (KBD_MODE_DEAD | KBD_MODE_CIRC) 421.1Smw#define DT (KBD_MODE_DEAD | KBD_MODE_TILDE) 431.1Smw#define DD (KBD_MODE_DEAD | KBD_MODE_DIER) 441.1Smw#define C KBD_MODE_CAPS 451.1Smw#define K KBD_MODE_KPAD 461.1Smw 471.3Smwstruct kbdmap kbdmap; 481.3Smwstruct kbdmap ascii_kbdmap = { 491.1Smw /* normal map */ 501.1Smw { 511.9Sveego { 0, '`' }, /* 0x00 */ 521.9Sveego { 0, '1' }, 531.9Sveego { 0, '2' }, 541.9Sveego { 0, '3' }, 551.9Sveego { 0, '4' }, 561.9Sveego { 0, '5' }, 571.9Sveego { 0, '6' }, 581.9Sveego { 0, '7' }, 591.9Sveego { 0, '8' }, /* 0x08 */ 601.9Sveego { 0, '9' }, 611.9Sveego { 0, '0' }, 621.9Sveego { 0, '-' }, 631.9Sveego { 0, '=' }, 641.9Sveego { 0, '\\' }, 651.9Sveego { 0, 0 }, 661.9Sveego { K, '0' }, 671.9Sveego { C, 'q' }, /* 0x10 */ 681.9Sveego { C, 'w' }, 691.9Sveego { C, 'e' }, 701.9Sveego { C, 'r' }, 711.9Sveego { C, 't' }, 721.9Sveego { C, 'y' }, 731.9Sveego { C, 'u' }, 741.9Sveego { C, 'i' }, 751.9Sveego { C, 'o' }, /* 0x18 */ 761.9Sveego { C, 'p' }, 771.9Sveego { 0, '[' }, 781.9Sveego { 0, ']' }, 791.9Sveego { 0, 0 }, 801.9Sveego { K, '1' }, 811.9Sveego { K, '2' }, 821.9Sveego { K, '3' }, 831.9Sveego { C, 'a' }, /* 0x20 */ 841.9Sveego { C, 's' }, 851.9Sveego { C, 'd' }, 861.9Sveego { C, 'f' }, 871.9Sveego { C, 'g' }, 881.9Sveego { C, 'h' }, 891.9Sveego { C, 'j' }, 901.9Sveego { C, 'k' }, 911.9Sveego { C, 'l' }, /* 0x28 */ 921.9Sveego { 0, ';' }, 931.9Sveego { 0, '\'' }, 941.9Sveego { 0, 0 }, 951.9Sveego { 0, 0 }, 961.9Sveego { K, '4' }, 971.9Sveego { K, '5' }, 981.9Sveego { K, '6' }, 991.9Sveego { 0, 0 }, /* 0x30 */ 1001.9Sveego { C, 'z' }, 1011.9Sveego { C, 'x' }, 1021.9Sveego { C, 'c' }, 1031.9Sveego { C, 'v' }, 1041.9Sveego { C, 'b' }, 1051.9Sveego { C, 'n' }, 1061.9Sveego { C, 'm' }, 1071.9Sveego { 0, ',' }, /* 0x38 */ 1081.9Sveego { 0, '.' }, 1091.9Sveego { 0, '/' }, 1101.9Sveego { 0, 0 }, 1111.9Sveego { K, '.' }, 1121.9Sveego { K, '7' }, 1131.9Sveego { K, '8' }, 1141.9Sveego { K, '9' }, 1151.9Sveego { 0, ' ' }, /* 0x40 */ 1161.9Sveego { 0, DEL }, /* really BS, DEL & BS swapped */ 1171.9Sveego { 0, '\t' }, 1181.9Sveego { K, '\r' }, /* enter */ 1191.9Sveego { 0, '\r' }, /* return */ 1201.9Sveego { 0, ESC }, 1211.9Sveego { 0, '\b' }, /* really DEL, BS & DEL swapped */ 1221.9Sveego { 0, 0 }, 1231.9Sveego { 0, 0 }, /* 0x48 */ 1241.9Sveego { 0, 0 }, 1251.9Sveego { K, '-' }, 1261.9Sveego { 0, 0 }, 1271.9Sveego { S, 0x00 }, /* now it gets hairy.. CRSR UP */ 1281.9Sveego { S, 0x04 }, /* CRSR DOWN */ 1291.9Sveego { S, 0x08 }, /* CRSR RIGHT */ 1301.9Sveego { S, 0x0C }, /* CRSR LEFT */ 1311.9Sveego { S, 0x10 }, /* 0x50 F1 */ 1321.9Sveego { S, 0x15 }, /* F2 */ 1331.9Sveego { S, 0x1A }, /* F3 */ 1341.9Sveego { S, 0x1F }, /* F4 */ 1351.9Sveego { S, 0x24 }, /* F5 */ 1361.9Sveego { S, 0x29 }, /* F6 */ 1371.9Sveego { S, 0x2E }, /* F7 */ 1381.10Sveego { S, 0x33 }, /* F8 */ 1391.10Sveego { S, 0x38 }, /* 0x58 F9 */ 1401.9Sveego { S, 0x3D }, /* F10 */ 1411.9Sveego { K, '(' }, 1421.9Sveego { K, ')' }, 1431.9Sveego { K, '/' }, 1441.9Sveego { K, '*' }, 1451.10Sveego { K, '+' }, 1461.9Sveego { S, 0x42 } /* HELP */ 1471.1Smw }, 1481.1Smw 1491.1Smw /* shifted map */ 1501.1Smw { 1511.9Sveego { 0, '~' }, /* 0x00 */ 1521.9Sveego { 0, '!' }, 1531.9Sveego { 0, '@' }, 1541.9Sveego { 0, '#' }, 1551.9Sveego { 0, '$' }, 1561.9Sveego { 0, '%' }, 1571.9Sveego { 0, '^' }, 1581.9Sveego { 0, '&' }, 1591.9Sveego { 0, '*' }, /* 0x08 */ 1601.9Sveego { 0, '(' }, 1611.9Sveego { 0, ')' }, 1621.9Sveego { 0, '_' }, 1631.9Sveego { 0, '+' }, 1641.9Sveego { 0, '|' }, 1651.9Sveego { 0, 0 }, 1661.9Sveego { K, '0' }, 1671.9Sveego { C, 'Q' }, /* 0x10 */ 1681.9Sveego { C, 'W' }, 1691.9Sveego { C, 'E' }, 1701.9Sveego { C, 'R' }, 1711.9Sveego { C, 'T' }, 1721.9Sveego { C, 'Y' }, 1731.9Sveego { C, 'U' }, 1741.9Sveego { C, 'I' }, 1751.9Sveego { C, 'O' }, /* 0x18 */ 1761.9Sveego { C, 'P' }, 1771.9Sveego { 0, '{' }, 1781.9Sveego { 0, '}' }, 1791.9Sveego { 0, 0 }, 1801.9Sveego { K, '1' }, 1811.9Sveego { K, '2' }, 1821.9Sveego { K, '3' }, 1831.9Sveego { C, 'A' }, /* 0x20 */ 1841.9Sveego { C, 'S' }, 1851.9Sveego { C, 'D' }, 1861.9Sveego { C, 'F' }, 1871.9Sveego { C, 'G' }, 1881.9Sveego { C, 'H' }, 1891.9Sveego { C, 'J' }, 1901.9Sveego { C, 'K' }, 1911.9Sveego { C, 'L' }, /* 0x28 */ 1921.9Sveego { 0, ':' }, 1931.9Sveego { 0, '\"' }, 1941.9Sveego { 0, 0 }, 1951.9Sveego { 0, 0 }, 1961.9Sveego { K, '4' }, 1971.9Sveego { K, '5' }, 1981.9Sveego { K, '6' }, 1991.9Sveego { 0, 0 }, /* 0x30 */ 2001.9Sveego { C, 'Z' }, 2011.9Sveego { C, 'X' }, 2021.9Sveego { C, 'C' }, 2031.9Sveego { C, 'V' }, 2041.9Sveego { C, 'B' }, 2051.9Sveego { C, 'N' }, 2061.9Sveego { C, 'M' }, 2071.9Sveego { 0, '<' }, /* 0x38 */ 2081.9Sveego { 0, '>' }, 2091.9Sveego { 0, '?' }, 2101.9Sveego { 0, 0 }, 2111.9Sveego { K, '.' }, 2121.9Sveego { K, '7' }, 2131.9Sveego { K, '8' }, 2141.9Sveego { K, '9' }, 2151.9Sveego { 0, ' ' }, /* 0x40 */ 2161.9Sveego { 0, DEL }, /* really BS, DEL & BS swapped */ 2171.9Sveego { S, 0x99 }, /* shift TAB */ 2181.9Sveego { K, '\r' }, /* enter */ 2191.9Sveego { 0, '\r' }, /* return */ 2201.9Sveego { 0, ESC }, 2211.9Sveego { 0, '\b' }, /* really DEL, BS & DEL swapped */ 2221.9Sveego { 0, 0 }, 2231.9Sveego { 0, 0 }, /* 0x48 */ 2241.9Sveego { 0, 0 }, 2251.9Sveego { K, '-' }, 2261.9Sveego { 0, 0 }, 2271.9Sveego { S, 0x47 }, /* shift CRSR UP */ 2281.9Sveego { S, 0x4C }, /* shift CRSR DOWN */ 2291.9Sveego { S, 0x51 }, /* shift CRSR RIGHT */ 2301.9Sveego { S, 0x57 }, /* shift CRSR LEFT */ 2311.9Sveego { S, 0x5D }, /* 0x50 shift F1 */ 2321.9Sveego { S, 0x63 }, /* shift F2 */ 2331.9Sveego { S, 0x69 }, /* shift F3 */ 2341.9Sveego { S, 0x6F }, /* shift F4 */ 2351.9Sveego { S, 0x75 }, /* shift F5 */ 2361.9Sveego { S, 0x7B }, /* shift F6 */ 2371.9Sveego { S, 0x81 }, /* shift F7 */ 2381.10Sveego { S, 0x87 }, /* shift F8 */ 2391.10Sveego { S, 0x8D }, /* 0x58 shift F9 */ 2401.9Sveego { S, 0x93 }, /* shift F10 */ 2411.9Sveego { K, '(' }, 2421.9Sveego { K, ')' }, 2431.9Sveego { K, '/' }, 2441.9Sveego { K, '*' }, 2451.10Sveego { K, '+' }, 2461.9Sveego { S, 0x42 } /* HELP (no special shift code) */ 2471.1Smw }, 2481.1Smw 2491.1Smw 2501.1Smw /* alt map */ 2511.1Smw { 2521.10Sveego { 0, '`' }, /* 0x00 */ 2531.9Sveego { 0, '�' }, 2541.9Sveego { 0, '�' }, 2551.9Sveego { 0, '�' }, 2561.9Sveego { 0, '�' }, 2571.9Sveego { 0, '�' }, 2581.9Sveego { 0, '�' }, 2591.9Sveego { 0, '�' }, 2601.9Sveego { 0, '�' }, /* 0x08 */ 2611.9Sveego { 0, '�' }, 2621.9Sveego { 0, '�' }, 2631.10Sveego { 0, '-' }, 2641.10Sveego { 0, '=' }, 2651.10Sveego { 0, '\\' }, 2661.10Sveego { 0, 0 }, 2671.10Sveego { K, '0' }, 2681.9Sveego { C, '�' }, /* 0x10 */ 2691.9Sveego { 0, '�' }, 2701.9Sveego { 0, '�' }, 2711.9Sveego { 0, '�' }, 2721.9Sveego { C, '�' }, 2731.9Sveego { 0, '�' }, 2741.9Sveego { 0, '�' }, 2751.9Sveego { 0, '�' }, 2761.9Sveego { C, '�' }, /* 0x18 */ 2771.9Sveego { 0, '�' }, 2781.10Sveego { 0, '[' }, 2791.10Sveego { 0, ']' }, 2801.10Sveego { 0, 0 }, 2811.10Sveego { K, '1' }, 2821.10Sveego { K, '2' }, 2831.10Sveego { K, '3' }, 2841.9Sveego { C, '�' }, /* 0x20 */ 2851.9Sveego { 0, '�' }, 2861.9Sveego { C, '�' }, 2871.9Sveego { DA, '�' }, 2881.10Sveego { DG, '`' }, 2891.10Sveego { DC, '^' }, 2901.10Sveego { DT, '~' }, 2911.9Sveego { DD, '�' }, 2921.9Sveego { 0, '�' }, /* 0x28 */ 2931.10Sveego { 0, ';' }, 2941.10Sveego { 0, '\'' }, 2951.10Sveego { 0, 0 }, 2961.10Sveego { 0, 0 }, 2971.10Sveego { K, '4' }, 2981.10Sveego { K, '5' }, 2991.10Sveego { K, '6' }, 3001.10Sveego { 0, 0 }, /* 0x30 */ 3011.9Sveego { 0, '�' }, 3021.9Sveego { 0, '�' }, 3031.9Sveego { C, '�' }, 3041.9Sveego { 0, '�' }, 3051.9Sveego { 0, '�' }, 3061.9Sveego { 0, '�' }, 3071.9Sveego { 0, '�' }, 3081.10Sveego { 0, ',' }, /* 0x38 */ 3091.10Sveego { 0, '.' }, 3101.10Sveego { 0, '/' }, 3111.10Sveego { 0, 0 }, 3121.10Sveego { K, '.' }, 3131.10Sveego { K, '7' }, 3141.10Sveego { K, '8' }, 3151.10Sveego { K, '9' }, 3161.10Sveego { 0, ' ' }, /* 0x40 */ 3171.10Sveego { 0, DEL }, /* really BS, DEL & BS swapped */ 3181.10Sveego { 0, '\t' }, 3191.10Sveego { K, '\r' }, /* enter */ 3201.10Sveego { 0, '\r' }, /* return */ 3211.10Sveego { S, 0x9d }, /* CSI */ 3221.10Sveego { 0, '\b' }, /* really DEL, BS & DEL swapped */ 3231.10Sveego { 0, 0 }, 3241.10Sveego { 0, 0 }, /* 0x48 */ 3251.10Sveego { 0, 0 }, 3261.10Sveego { K, '-' }, 3271.10Sveego { 0, 0 }, 3281.10Sveego { S, 0x00 }, /* now it gets hairy.. CRSR UP */ 3291.10Sveego { S, 0x04 }, /* CRSR DOWN */ 3301.10Sveego { S, 0x08 }, /* CRSR RIGHT */ 3311.10Sveego { S, 0x0C }, /* CRSR LEFT */ 3321.10Sveego { S, 0x10 }, /* 0x50 F1 */ 3331.10Sveego { S, 0x15 }, /* F2 */ 3341.10Sveego { S, 0x1A }, /* F3 */ 3351.10Sveego { S, 0x1F }, /* F4 */ 3361.10Sveego { S, 0x24 }, /* F5 */ 3371.10Sveego { S, 0x29 }, /* F6 */ 3381.10Sveego { S, 0x2E }, /* F7 */ 3391.10Sveego { S, 0x33 }, /* F8 */ 3401.10Sveego { S, 0x38 }, /* 0x58 F9 */ 3411.10Sveego { S, 0x3D }, /* F10 */ 3421.10Sveego { K, '(' }, 3431.10Sveego { K, ')' }, 3441.10Sveego { K, '/' }, 3451.10Sveego { K, '*' }, 3461.10Sveego { K, '+' }, 3471.10Sveego { S, 0x42 } /* HELP */ 3481.1Smw }, 3491.1Smw 3501.1Smw /* shift alt map */ 3511.1Smw { 3521.10Sveego { 0, '~' }, /* 0x00 */ 3531.10Sveego { 0, '!' }, 3541.10Sveego { 0, '@' }, 3551.10Sveego { 0, '#' }, 3561.10Sveego { 0, '$' }, 3571.10Sveego { 0, '%' }, 3581.10Sveego { 0, '^' }, 3591.10Sveego { 0, '&' }, 3601.10Sveego { 0, '*' }, /* 0x08 */ 3611.10Sveego { 0, '(' }, 3621.10Sveego { 0, ')' }, 3631.10Sveego { 0, '_' }, 3641.10Sveego { 0, '+' }, 3651.10Sveego { 0, '|' }, 3661.10Sveego { 0, 0 }, 3671.10Sveego { K, '0' }, 3681.9Sveego { C, '�' }, /* 0x10 */ 3691.9Sveego { 0, '�' }, 3701.9Sveego { 0, '�' }, 3711.9Sveego { 0, '�' }, 3721.9Sveego { C, '�' }, 3731.9Sveego { 0, '�' }, 3741.9Sveego { 0, '�' }, 3751.9Sveego { 0, '�' }, 3761.9Sveego { C, '�' }, /* 0x18 */ 3771.9Sveego { 0, '�' }, 3781.10Sveego { 0, '[' }, 3791.10Sveego { 0, ']' }, 3801.10Sveego { 0, 0 }, 3811.10Sveego { K, '1' }, 3821.10Sveego { K, '2' }, 3831.10Sveego { K, '3' }, 3841.9Sveego { C, '�' }, /* 0x20 */ 3851.9Sveego { 0, '�' }, 3861.9Sveego { C, '�' }, 3871.9Sveego { DA, '�' }, 3881.10Sveego { DG, '`' }, 3891.10Sveego { DC, '^' }, 3901.10Sveego { DT, '~' }, 3911.9Sveego { DD, '�' }, 3921.9Sveego { 0, '�' }, /* 0x28 */ 3931.10Sveego { 0, ';' }, 3941.10Sveego { 0, '\'' }, 3951.10Sveego { 0, 0 }, 3961.10Sveego { 0, 0 }, 3971.10Sveego { K, '4' }, 3981.10Sveego { K, '5' }, 3991.10Sveego { K, '6' }, 4001.10Sveego { 0, 0 }, /* 0x30 */ 4011.9Sveego { 0, '�' }, 4021.9Sveego { 0, '�' }, 4031.9Sveego { C, '�' }, 4041.9Sveego { 0, '�' }, 4051.9Sveego { 0, '�' }, 4061.9Sveego { 0, '�' }, 4071.9Sveego { 0, '�' }, 4081.10Sveego { 0, ',' }, /* 0x38 */ 4091.10Sveego { 0, '.' }, 4101.10Sveego { 0, '/' }, 4111.10Sveego { 0, 0 }, 4121.10Sveego { K, '.' }, 4131.10Sveego { K, '7' }, 4141.10Sveego { K, '8' }, 4151.10Sveego { K, '9' }, 4161.10Sveego { 0, ' ' }, /* 0x40 */ 4171.10Sveego { 0, DEL }, /* really BS, DEL & BS swapped */ 4181.10Sveego { 0, '\t' }, 4191.10Sveego { K, '\r' }, /* enter */ 4201.10Sveego { 0, '\r' }, /* return */ 4211.10Sveego { S, 0x9d }, /* CSI */ 4221.10Sveego { 0, '\b' }, /* really DEL, BS & DEL swapped */ 4231.10Sveego { 0, 0 }, 4241.10Sveego { 0, 0 }, /* 0x48 */ 4251.10Sveego { 0, 0 }, 4261.10Sveego { K, '-' }, 4271.10Sveego { 0, 0 }, 4281.10Sveego { S, 0x00 }, /* now it gets hairy.. CRSR UP */ 4291.10Sveego { S, 0x04 }, /* CRSR DOWN */ 4301.10Sveego { S, 0x08 }, /* CRSR RIGHT */ 4311.10Sveego { S, 0x0C }, /* CRSR LEFT */ 4321.10Sveego { S, 0x10 }, /* 0x50 F1 */ 4331.10Sveego { S, 0x15 }, /* F2 */ 4341.10Sveego { S, 0x1A }, /* F3 */ 4351.10Sveego { S, 0x1F }, /* F4 */ 4361.10Sveego { S, 0x24 }, /* F5 */ 4371.10Sveego { S, 0x29 }, /* F6 */ 4381.10Sveego { S, 0x2E }, /* F7 */ 4391.10Sveego { S, 0x33 }, /* F8 */ 4401.10Sveego { S, 0x38 }, /* 0x58 F9 */ 4411.10Sveego { S, 0x3D }, /* F10 */ 4421.10Sveego { K, '(' }, 4431.10Sveego { K, ')' }, 4441.10Sveego { K, '/' }, 4451.10Sveego { K, '*' }, 4461.10Sveego { K, '+' }, 4471.10Sveego { S, 0x42 } /* HELP */ 4481.1Smw }, 4491.1Smw 4501.1Smw { 4511.1Smw /* string table. If there's a better way to get the offsets into the 4521.1Smw above table, please tell me.. 4531.1Smw 4541.1Smw NOTE: save yourself and others a lot of grief by *not* using 4551.1Smw CSI == 0x9b, using the two-character sequence gives 4561.1Smw much less trouble, especially in GNU-Emacs.. */ 4571.1Smw 4581.1Smw 3, ESC, '[', 'A', /* 0x00: CRSR UP */ 4591.1Smw 3, ESC, '[', 'B', /* 0x04: CRSR DOWN */ 4601.1Smw 3, ESC, '[', 'C', /* 0x08: CRSR RIGHT */ 4611.1Smw 3, ESC, '[', 'D', /* 0x0C: CRSR LEFT */ 4621.1Smw 4, ESC, '[', '0', '~', /* 0x10: F1 */ 4631.1Smw 4, ESC, '[', '1', '~', /* 0x15: F2 */ 4641.1Smw 4, ESC, '[', '2', '~', /* 0x1A: F3 */ 4651.1Smw 4, ESC, '[', '3', '~', /* 0x1F: F4 */ 4661.1Smw 4, ESC, '[', '4', '~', /* 0x24: F5 */ 4671.1Smw 4, ESC, '[', '5', '~', /* 0x29: F6 */ 4681.1Smw 4, ESC, '[', '6', '~', /* 0x2E: F7 */ 4691.1Smw 4, ESC, '[', '7', '~', /* 0x33: F8 */ 4701.1Smw 4, ESC, '[', '8', '~', /* 0x38: F9 */ 4711.1Smw 4, ESC, '[', '9', '~', /* 0x3D: F10 */ 4721.1Smw 4, ESC, '[', '?', '~', /* 0x42: HELP */ 4731.1Smw 4741.1Smw 4, ESC, '[', 'T', '~', /* 0x47: shift CRSR UP */ 4751.1Smw 4, ESC, '[', 'S', '~', /* 0x4C: shift CRSR DOWN */ 4761.1Smw 5, ESC, '[', ' ', '@', '~', /* 0x51: shift CRSR RIGHT */ 4771.1Smw 5, ESC, '[', ' ', 'A', '~', /* 0x57: shift CRSR LEFT */ 4781.1Smw 5, ESC, '[', '1', '0', '~', /* 0x5D: shift F1 */ 4791.1Smw 5, ESC, '[', '1', '1', '~', /* 0x63: shift F2 */ 4801.1Smw 5, ESC, '[', '1', '2', '~', /* 0x69: shift F3 */ 4811.1Smw 5, ESC, '[', '1', '3', '~', /* 0x6F: shift F4 */ 4821.1Smw 5, ESC, '[', '1', '4', '~', /* 0x75: shift F5 */ 4831.1Smw 5, ESC, '[', '1', '5', '~', /* 0x7B: shift F6 */ 4841.1Smw 5, ESC, '[', '1', '6', '~', /* 0x81: shift F7 */ 4851.1Smw 5, ESC, '[', '1', '7', '~', /* 0x87: shift F8 */ 4861.1Smw 5, ESC, '[', '1', '8', '~', /* 0x8D: shift F9 */ 4871.1Smw 5, ESC, '[', '1', '9', '~', /* 0x93: shift F10 */ 4881.1Smw 3, ESC, '[', 'Z', /* 0x99: shift TAB */ 4891.3Smw 2, ESC, '[', /* 0x9d: alt ESC == CSI */ 4901.1Smw }, 4911.1Smw}; 4921.1Smw 4931.1Smwunsigned char acctable[KBD_NUM_ACC][64] = { 4941.1Smw { "@�BCD�FGH�JKLMN�PQRST�VWXYZ[\\]^_" 4951.1Smw "`�bcd�fgh�jklmn�pqrst�vwxyz{|}~\177"}, /* KBD_ACC_GRAVE */ 4961.1Smw 4971.1Smw { "@�BCD�FGH�JKLMN�PQRST�VWXYZ[\\]^_" 4981.1Smw "`�bcd�fgh�jklmn�pqrst�vwxyz{|}~\177"}, /* KBD_ACC_ACUTE */ 4991.1Smw 5001.1Smw { "@�BCD�FGH�JKLMN�PQRST�VWXYZ[\\]^_" 5011.1Smw "`�bcd�fgh�jklmn�pqrst�vwxyz{|}~\177"}, /* KBD_ACC_CIRC */ 5021.1Smw 5031.1Smw { "@�BCDEFGHIJKLM��PQRSTUVWXYZ[\\]^_" 5041.1Smw "`�bcdefghijklm��pqrstuvwxyz{|}~\177"}, /* KBD_ACC_TILDE */ 5051.1Smw 5061.1Smw { "@�BCD�FGH�JKLMN�PQRST�VWXYZ[\\]^_" 5071.1Smw "`�bcd�fgh�jklmn�pqrst�vwxyz{|}~\177"}, /* KBD_ACC_DIER */ 5081.1Smw}; 5091.1Smw 510