Home | History | Annotate | Line # | Download | only in sw
      1  1.4  aymeric /*	$NetBSD: sw-kbdmap.c,v 1.4 2000/09/27 08:28:36 aymeric Exp $	*/
      2  1.1   chopps 
      3  1.1   chopps /*
      4  1.1   chopps  * Copyright (c) 1993 Markus Wild
      5  1.1   chopps  * All rights reserved.
      6  1.1   chopps  *
      7  1.1   chopps  * Redistribution and use in source and binary forms, with or without
      8  1.1   chopps  * modification, are permitted provided that the following conditions
      9  1.1   chopps  * are met:
     10  1.1   chopps  * 1. Redistributions of source code must retain the above copyright
     11  1.1   chopps  *    notice, this list of conditions and the following disclaimer.
     12  1.1   chopps  * 2. Redistributions in binary form must reproduce the above copyright
     13  1.1   chopps  *    notice, this list of conditions and the following disclaimer in the
     14  1.1   chopps  *    documentation and/or other materials provided with the distribution.
     15  1.1   chopps  * 3. All advertising materials mentioning features or use of this software
     16  1.1   chopps  *    must display the following acknowledgement:
     17  1.1   chopps  *      This product includes software developed by Markus Wild.
     18  1.1   chopps  * 4. The name of the author may not be used to endorse or promote products
     19  1.1   chopps  *    derived from this software without specific prior written permission
     20  1.1   chopps  *
     21  1.1   chopps  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     22  1.1   chopps  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     23  1.1   chopps  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     24  1.1   chopps  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     25  1.1   chopps  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     26  1.1   chopps  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     27  1.1   chopps  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     28  1.1   chopps  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     29  1.1   chopps  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     30  1.1   chopps  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     31  1.1   chopps  */
     32  1.4  aymeric 
     33  1.4  aymeric #include <unistd.h>
     34  1.4  aymeric 
     35  1.3       is #include "../../../dev/kbdmap.h"
     36  1.1   chopps 
     37  1.1   chopps /* define a default keymap. This can be changed by keyboard ioctl's
     38  1.1   chopps    (later at least..) */
     39  1.1   chopps /*
     40  1.1   chopps  * Modified to standard swedish keyboard layout by Stefan Pedersen
     41  1.1   chopps  * di4ped (at) cse.hks.se 960103
     42  1.1   chopps */
     43  1.1   chopps 
     44  1.1   chopps /* mode shortcuts: */
     45  1.1   chopps #define	S KBD_MODE_STRING
     46  1.1   chopps #define DG (KBD_MODE_DEAD | KBD_MODE_GRAVE)
     47  1.1   chopps #define DA (KBD_MODE_DEAD | KBD_MODE_ACUTE)
     48  1.1   chopps #define DC (KBD_MODE_DEAD | KBD_MODE_CIRC)
     49  1.1   chopps #define DT (KBD_MODE_DEAD | KBD_MODE_TILDE)
     50  1.1   chopps #define DD (KBD_MODE_DEAD | KBD_MODE_DIER)
     51  1.1   chopps #define C KBD_MODE_CAPS
     52  1.1   chopps #define K KBD_MODE_KPAD
     53  1.1   chopps 
     54  1.2    veego struct kbdmap kbdmap = {
     55  1.1   chopps 	/* normal map */
     56  1.1   chopps 	{
     57  1.1   chopps 	   0, '`',	/* 0x00 */
     58  1.1   chopps 	   0, '1',
     59  1.1   chopps 	   0, '2',
     60  1.1   chopps 	   0, '3',
     61  1.1   chopps 	   0, '4',
     62  1.1   chopps 	   0, '5',
     63  1.1   chopps 	   0, '6',
     64  1.1   chopps 	   0, '7',
     65  1.1   chopps 	   0, '8',	/* 0x08 */
     66  1.1   chopps 	   0, '9',
     67  1.1   chopps 	   0, '0',
     68  1.1   chopps 	   0, '+',
     69  1.1   chopps 	   0, '\'',
     70  1.1   chopps 	   0, '\\',
     71  1.1   chopps 	   0, 0,
     72  1.1   chopps 	   K, '0',
     73  1.1   chopps 	   C, 'q',	/* 0x10 */
     74  1.1   chopps 	   C, 'w',
     75  1.1   chopps 	   C, 'e',
     76  1.1   chopps 	   C, 'r',
     77  1.1   chopps 	   C, 't',
     78  1.1   chopps 	   C, 'y',
     79  1.1   chopps 	   C, 'u',
     80  1.1   chopps 	   C, 'i',
     81  1.1   chopps 	   C, 'o',	/* 0x18 */
     82  1.1   chopps 	   C, 'p',
     83  1.1   chopps 	   C, '',
     84  1.1   chopps 	   0, ']',
     85  1.1   chopps 	   0, 0,
     86  1.1   chopps 	   K, '1',
     87  1.1   chopps 	   K, '2',
     88  1.1   chopps 	   K, '3',
     89  1.1   chopps 	   C, 'a',	/* 0x20 */
     90  1.1   chopps 	   C, 's',
     91  1.1   chopps 	   C, 'd',
     92  1.1   chopps 	   C, 'f',
     93  1.1   chopps 	   C, 'g',
     94  1.1   chopps 	   C, 'h',
     95  1.1   chopps 	   C, 'j',
     96  1.1   chopps 	   C, 'k',
     97  1.1   chopps 	   C, 'l',	/* 0x28 */
     98  1.1   chopps 	   C, '',
     99  1.1   chopps 	   C, '',
    100  1.1   chopps 	   C, '\'',
    101  1.1   chopps 	   0, 0,
    102  1.1   chopps 	   K, '4',
    103  1.1   chopps 	   K, '5',
    104  1.1   chopps 	   K, '6',
    105  1.1   chopps 	   0, '<',	/* 0x30 */
    106  1.1   chopps 	   C, 'z',
    107  1.1   chopps 	   C, 'x',
    108  1.1   chopps 	   C, 'c',
    109  1.1   chopps 	   C, 'v',
    110  1.1   chopps 	   C, 'b',
    111  1.1   chopps 	   C, 'n',
    112  1.1   chopps 	   C, 'm',
    113  1.1   chopps 	   0, ',',	/* 0x38 */
    114  1.1   chopps 	   0, '.',
    115  1.1   chopps 	   0, '-',
    116  1.1   chopps 	   0, 0,
    117  1.1   chopps 	   K, '.',
    118  1.1   chopps 	   K, '7',
    119  1.1   chopps 	   K, '8',
    120  1.1   chopps 	   K, '9',
    121  1.1   chopps 	   0, ' ',	/* 0x40 */
    122  1.1   chopps 	   0, DEL,	/* really BS, DEL & BS swapped */
    123  1.1   chopps 	   0, '\t',
    124  1.1   chopps 	   K, '\r',	/* enter */
    125  1.1   chopps 	   0, '\r',	/* return */
    126  1.1   chopps 	   0, ESC,
    127  1.1   chopps 	   0, '\b',	/* really DEL, BS & DEL swapped */
    128  1.1   chopps 	   0, 0,
    129  1.1   chopps 	   0, 0,	/* 0x48 */
    130  1.1   chopps 	   0, 0,
    131  1.1   chopps 	   0, '-',
    132  1.1   chopps 	   0, 0,
    133  1.1   chopps 	   S, 0x00,	/* now it gets hairy.. CRSR UP */
    134  1.1   chopps 	   S, 0x04,	/* CRSR DOWN */
    135  1.1   chopps 	   S, 0x08,	/* CRSR RIGHT */
    136  1.1   chopps 	   S, 0x0C,	/* CRSR LEFT */
    137  1.1   chopps 	   S, 0x10,	/* 0x50 F1 */
    138  1.1   chopps 	   S, 0x15,	/* F2 */
    139  1.1   chopps 	   S, 0x1A,	/* F3 */
    140  1.1   chopps 	   S, 0x1F,	/* F4 */
    141  1.1   chopps 	   S, 0x24,	/* F5 */
    142  1.1   chopps 	   S, 0x29,	/* F6 */
    143  1.1   chopps 	   S, 0x2E,	/* F7 */
    144  1.1   chopps 	   S, 0x33,	/* 0x58 F8 */
    145  1.1   chopps 	   S, 0x38,	/* F9 */
    146  1.1   chopps 	   S, 0x3D,	/* F10 */
    147  1.1   chopps 	   K, '[',
    148  1.1   chopps 	   K, ']',
    149  1.1   chopps 	   K, '/',
    150  1.1   chopps 	   K, '*',
    151  1.1   chopps 	   S, 0x42,	/* HELP */
    152  1.1   chopps 	},
    153  1.1   chopps 
    154  1.1   chopps 	/* shifted map */
    155  1.1   chopps 	{
    156  1.1   chopps 	   0, '~',	/* 0x00 */
    157  1.1   chopps 	   0, '!',
    158  1.1   chopps 	   0, '\"',
    159  1.1   chopps 	   0, '#',
    160  1.1   chopps 	   0, '$',
    161  1.1   chopps 	   0, '%',
    162  1.1   chopps 	   0, '&',
    163  1.1   chopps 	   0, '/',
    164  1.1   chopps 	   0, '(',	/* 0x08 */
    165  1.1   chopps 	   0, ')',
    166  1.1   chopps 	   0, '=',
    167  1.1   chopps 	   0, '?',
    168  1.1   chopps 	   0, '`',
    169  1.1   chopps 	   0, '|',
    170  1.1   chopps 	   0, 0,
    171  1.1   chopps 	   K, '0',
    172  1.1   chopps 	   C, 'Q',	/* 0x10 */
    173  1.1   chopps 	   C, 'W',
    174  1.1   chopps 	   C, 'E',
    175  1.1   chopps 	   C, 'R',
    176  1.1   chopps 	   C, 'T',
    177  1.1   chopps 	   C, 'Y',
    178  1.1   chopps 	   C, 'U',
    179  1.1   chopps 	   C, 'I',
    180  1.1   chopps 	   C, 'O',	/* 0x18 */
    181  1.1   chopps 	   C, 'P',
    182  1.1   chopps 	   C, '',
    183  1.1   chopps 	   C, '^',
    184  1.1   chopps 	   0, 0,
    185  1.1   chopps 	   K, '1',
    186  1.1   chopps 	   K, '2',
    187  1.1   chopps 	   K, '3',
    188  1.1   chopps 	   C, 'A',	/* 0x20 */
    189  1.1   chopps 	   C, 'S',
    190  1.1   chopps 	   C, 'D',
    191  1.1   chopps 	   C, 'F',
    192  1.1   chopps 	   C, 'G',
    193  1.1   chopps 	   C, 'H',
    194  1.1   chopps 	   C, 'J',
    195  1.1   chopps 	   C, 'K',
    196  1.1   chopps 	   C, 'L',	/* 0x28 */
    197  1.1   chopps 	   C, '',
    198  1.1   chopps 	   C, '',
    199  1.1   chopps 	   C, '*',
    200  1.1   chopps 	   0, 0,
    201  1.1   chopps 	   K, '4',
    202  1.1   chopps 	   K, '5',
    203  1.1   chopps 	   K, '6',
    204  1.1   chopps 	   0, '>',	/* 0x30 */
    205  1.1   chopps 	   C, 'Z',
    206  1.1   chopps 	   C, 'X',
    207  1.1   chopps 	   C, 'C',
    208  1.1   chopps 	   C, 'V',
    209  1.1   chopps 	   C, 'B',
    210  1.1   chopps 	   C, 'N',
    211  1.1   chopps 	   C, 'M',
    212  1.1   chopps 	   0, ';',	/* 0x38 */
    213  1.1   chopps 	   0, ':',
    214  1.1   chopps 	   0, '_',
    215  1.1   chopps 	   0, 0,
    216  1.1   chopps 	   K, '.',
    217  1.1   chopps 	   K, '7',
    218  1.1   chopps 	   K, '8',
    219  1.1   chopps 	   K, '9',
    220  1.1   chopps 	   0, ' ',	/* 0x40 */
    221  1.1   chopps 	   0, DEL,	/* really BS, DEL & BS swapped */
    222  1.1   chopps 	   S, 0x99,	/* shift TAB */
    223  1.1   chopps 	   K, '\r',	/* enter */
    224  1.1   chopps 	   0, '\r',	/* return */
    225  1.1   chopps 	   0, ESC,
    226  1.1   chopps 	   0, '\b',	/* really DEL, BS & DEL swapped */
    227  1.1   chopps 	   0, 0,
    228  1.1   chopps 	   0, 0,	/* 0x48 */
    229  1.1   chopps 	   0, 0,
    230  1.1   chopps 	   K, '-',
    231  1.1   chopps 	   0, 0,
    232  1.1   chopps 	   S, 0x47,	/* shift CRSR UP */
    233  1.1   chopps 	   S, 0x4C,	/* shift CRSR DOWN */
    234  1.1   chopps 	   S, 0x51,	/* shift CRSR RIGHT */
    235  1.1   chopps 	   S, 0x57,	/* shift CRSR LEFT */
    236  1.1   chopps 	   S, 0x5D,	/* 0x50 shift F1 */
    237  1.1   chopps 	   S, 0x63,	/* shift F2 */
    238  1.1   chopps 	   S, 0x69,	/* shift F3 */
    239  1.1   chopps 	   S, 0x6F,	/* shift F4 */
    240  1.1   chopps 	   S, 0x75,	/* shift F5 */
    241  1.1   chopps 	   S, 0x7B,	/* shift F6 */
    242  1.1   chopps 	   S, 0x81,	/* shift F7 */
    243  1.1   chopps 	   S, 0x87,	/* 0x58 shift F8 */
    244  1.1   chopps 	   S, 0x8D,	/* shift F9 */
    245  1.1   chopps 	   S, 0x93,	/* shift F10 */
    246  1.1   chopps 	   K, '{',
    247  1.1   chopps 	   K, '}',
    248  1.1   chopps 	   K, '/',
    249  1.1   chopps 	   K, '*',
    250  1.1   chopps 	   S, 0x42,	/* HELP (no special shift code) */
    251  1.1   chopps 	},
    252  1.1   chopps 
    253  1.1   chopps 
    254  1.1   chopps 	/* alt map */
    255  1.1   chopps 	{
    256  1.1   chopps 	   0, '`',	/* 0x00 */
    257  1.1   chopps 	   0, '',
    258  1.1   chopps 	   0, '',
    259  1.1   chopps 	   0, '',
    260  1.1   chopps 	   0, '',
    261  1.1   chopps 	   0, '',
    262  1.1   chopps 	   0, '',
    263  1.1   chopps 	   0, '',
    264  1.1   chopps 	   0, '',	/* 0x08 */
    265  1.1   chopps 	   0, '',
    266  1.1   chopps 	   0, '',
    267  1.1   chopps 	   0, '-',
    268  1.1   chopps 	   0, '=',
    269  1.1   chopps 	   0, '\\',
    270  1.1   chopps 	   0, 0,
    271  1.1   chopps 	   K, '0',
    272  1.1   chopps 	   C, '',	/* 0x10 */
    273  1.1   chopps 	   0, '',
    274  1.1   chopps 	   0, '',
    275  1.1   chopps 	   0, '',
    276  1.1   chopps 	   C, '',
    277  1.1   chopps 	   0, '',
    278  1.1   chopps 	   0, '',
    279  1.1   chopps 	   0, '',
    280  1.1   chopps 	   C, '',	/* 0x18 */
    281  1.1   chopps 	   0, '',
    282  1.1   chopps 	   0, '[',
    283  1.1   chopps 	   0, ']',
    284  1.1   chopps 	   0, 0,
    285  1.1   chopps 	   K, '1',
    286  1.1   chopps 	   K, '2',
    287  1.1   chopps 	   K, '3',
    288  1.1   chopps 	   C, '',	/* 0x20 */
    289  1.1   chopps 	   0, '',
    290  1.1   chopps 	   C, '',
    291  1.1   chopps 	   DA, '',
    292  1.1   chopps 	   DG, '`',
    293  1.1   chopps 	   DC, '^',
    294  1.1   chopps 	   DT, '~',
    295  1.1   chopps 	   DD, '',
    296  1.1   chopps 	   0, '',	/* 0x28 */
    297  1.1   chopps 	   0, ',',
    298  1.1   chopps 	   0, '\'',
    299  1.1   chopps 	   0, 0,
    300  1.1   chopps 	   0, 0,
    301  1.1   chopps 	   K, '4',
    302  1.1   chopps 	   K, '5',
    303  1.1   chopps 	   K, '6',
    304  1.1   chopps 	   0, 0,	/* 0x30 */
    305  1.1   chopps 	   0, '',
    306  1.1   chopps 	   0, '',
    307  1.1   chopps 	   C, '',
    308  1.1   chopps 	   0, '',
    309  1.1   chopps 	   0, '',
    310  1.1   chopps 	   0, '',
    311  1.1   chopps 	   0, '',
    312  1.1   chopps 	   0, ',',	/* 0x38 */
    313  1.1   chopps 	   0, '.',
    314  1.1   chopps 	   0, '/',
    315  1.1   chopps 	   0, 0,
    316  1.1   chopps 	   K, '.',
    317  1.1   chopps 	   K, '7',
    318  1.1   chopps 	   K, '8',
    319  1.1   chopps 	   K, '9',
    320  1.1   chopps 	   0, ' ',	/* 0x40 */
    321  1.1   chopps 	   0, DEL,	/* really BS, DEL & BS swapped */
    322  1.1   chopps 	   0, '\t',
    323  1.1   chopps 	   K, '\r',	/* enter */
    324  1.1   chopps 	   0, '\r',	/* return */
    325  1.1   chopps 	   S, 0x9d,	/* CSI */
    326  1.1   chopps 	   0, '\b',	/* really DEL, BS & DEL swapped */
    327  1.1   chopps 	   0, 0,
    328  1.1   chopps 	   0, 0,	/* 0x48 */
    329  1.1   chopps 	   0, 0,
    330  1.1   chopps 	   K, '-',
    331  1.1   chopps 	   0, 0,
    332  1.1   chopps 	   S, 0x00,	/* now it gets hairy.. CRSR UP */
    333  1.1   chopps 	   S, 0x04,	/* CRSR DOWN */
    334  1.1   chopps 	   S, 0x08,	/* CRSR RIGHT */
    335  1.1   chopps 	   S, 0x0C,	/* CRSR LEFT */
    336  1.1   chopps 	   S, 0x10,	/* 0x50 F1 */
    337  1.1   chopps 	   S, 0x15,	/* F2 */
    338  1.1   chopps 	   S, 0x1A,	/* F3 */
    339  1.1   chopps 	   S, 0x1F,	/* F4 */
    340  1.1   chopps 	   S, 0x24,	/* F5 */
    341  1.1   chopps 	   S, 0x29,	/* F6 */
    342  1.1   chopps 	   S, 0x2E,	/* F7 */
    343  1.1   chopps 	   S, 0x33,	/* 0x58 F8 */
    344  1.1   chopps 	   S, 0x38,	/* F9 */
    345  1.1   chopps 	   S, 0x3D,	/* F10 */
    346  1.1   chopps 	   K, '(',
    347  1.1   chopps 	   K, ')',
    348  1.1   chopps 	   K, '/',
    349  1.1   chopps 	   K, '*',
    350  1.1   chopps 	   S, 0x42,	/* HELP */
    351  1.1   chopps 	},
    352  1.1   chopps 
    353  1.1   chopps 	/* shift alt map */
    354  1.1   chopps 	{
    355  1.1   chopps 	   0, '~',	/* 0x00 */
    356  1.1   chopps 	   0, '!',
    357  1.1   chopps 	   0, '@',
    358  1.1   chopps 	   0, '#',
    359  1.1   chopps 	   0, '$',
    360  1.1   chopps 	   0, '%',
    361  1.1   chopps 	   0, '^',
    362  1.1   chopps 	   0, '&',
    363  1.1   chopps 	   0, '*',	/* 0x08 */
    364  1.1   chopps 	   0, '(',
    365  1.1   chopps 	   0, ')',
    366  1.1   chopps 	   0, '_',
    367  1.1   chopps 	   0, '+',
    368  1.1   chopps 	   0, '|',
    369  1.1   chopps 	   0, 0,
    370  1.1   chopps 	   K, '0',
    371  1.1   chopps 	   C, '',	/* 0x10 */
    372  1.1   chopps 	   0, '',
    373  1.1   chopps 	   0, '',
    374  1.1   chopps 	   0, '',
    375  1.1   chopps 	   C, '',
    376  1.1   chopps 	   0, '',
    377  1.1   chopps 	   0, '',
    378  1.1   chopps 	   0, '',
    379  1.1   chopps 	   C, '',	/* 0x18 */
    380  1.1   chopps 	   0, '',
    381  1.1   chopps 	   0, '[',
    382  1.1   chopps 	   0, ']',
    383  1.1   chopps 	   0, 0,
    384  1.1   chopps 	   K, '1',
    385  1.1   chopps 	   K, '2',
    386  1.1   chopps 	   K, '3',
    387  1.1   chopps 	   C, '',	/* 0x20 */
    388  1.1   chopps 	   0, '',
    389  1.1   chopps 	   C, '',
    390  1.1   chopps 	   DA, '',
    391  1.1   chopps 	   DG, '`',
    392  1.1   chopps 	   DC, '^',
    393  1.1   chopps 	   DT, '~',
    394  1.1   chopps 	   DD, '',
    395  1.1   chopps 	   0, '',	/* 0x28 */
    396  1.1   chopps 	   0, ':',
    397  1.1   chopps 	   0, '\"',
    398  1.1   chopps 	   0, 0,
    399  1.1   chopps 	   0, 0,
    400  1.1   chopps 	   K, '4',
    401  1.1   chopps 	   K, '5',
    402  1.1   chopps 	   K, '6',
    403  1.1   chopps 	   0, 0,	/* 0x30 */
    404  1.1   chopps 	   0, '',
    405  1.1   chopps 	   0, '',
    406  1.1   chopps 	   C, '',
    407  1.1   chopps 	   0, '',
    408  1.1   chopps 	   0, '',
    409  1.1   chopps 	   0, '',
    410  1.1   chopps 	   0, '',
    411  1.1   chopps 	   0, '<',	/* 0x38 */
    412  1.1   chopps 	   0, '>',
    413  1.1   chopps 	   0, '?',
    414  1.1   chopps 	   0, 0,
    415  1.1   chopps 	   K, '.',
    416  1.1   chopps 	   K, '7',
    417  1.1   chopps 	   K, '8',
    418  1.1   chopps 	   K, '9',
    419  1.1   chopps 	   0, ' ',	/* 0x40 */
    420  1.1   chopps 	   0, DEL,	/* really BS, DEL & BS swapped */
    421  1.1   chopps 	   0, '\t',
    422  1.1   chopps 	   K, '\r',	/* enter */
    423  1.1   chopps 	   0, '\r',	/* return */
    424  1.1   chopps 	   S, 0x9d,	/* CSI */
    425  1.1   chopps 	   0, '\b',	/* really DEL, BS & DEL swapped */
    426  1.1   chopps 	   0, 0,
    427  1.1   chopps 	   0, 0,	/* 0x48 */
    428  1.1   chopps 	   0, 0,
    429  1.1   chopps 	   K, '-',
    430  1.1   chopps 	   0, 0,
    431  1.1   chopps 	   S, 0x00,	/* now it gets hairy.. CRSR UP */
    432  1.1   chopps 	   S, 0x04,	/* CRSR DOWN */
    433  1.1   chopps 	   S, 0x08,	/* CRSR RIGHT */
    434  1.1   chopps 	   S, 0x0C,	/* CRSR LEFT */
    435  1.1   chopps 	   S, 0x10,	/* 0x50 F1 */
    436  1.1   chopps 	   S, 0x15,	/* F2 */
    437  1.1   chopps 	   S, 0x1A,	/* F3 */
    438  1.1   chopps 	   S, 0x1F,	/* F4 */
    439  1.1   chopps 	   S, 0x24,	/* F5 */
    440  1.1   chopps 	   S, 0x29,	/* F6 */
    441  1.1   chopps 	   S, 0x2E,	/* F7 */
    442  1.1   chopps 	   S, 0x33,	/* 0x58 F8 */
    443  1.1   chopps 	   S, 0x38,	/* F9 */
    444  1.1   chopps 	   S, 0x3D,	/* F10 */
    445  1.1   chopps 	   K, '(',
    446  1.1   chopps 	   K, ')',
    447  1.1   chopps 	   K, '/',
    448  1.1   chopps 	   K, '*',
    449  1.1   chopps 	   S, 0x42,	/* HELP */
    450  1.1   chopps 	},
    451  1.1   chopps 
    452  1.1   chopps 	{
    453  1.1   chopps 	  /* string table. If there's a better way to get the offsets into the
    454  1.1   chopps 	     above table, please tell me..
    455  1.1   chopps 
    456  1.1   chopps 	     NOTE: save yourself and others a lot of grief by *not* using
    457  1.1   chopps 	           CSI == 0x9b, using the two-character sequence gives
    458  1.1   chopps 	           much less trouble, especially in GNU-Emacs.. */
    459  1.1   chopps 
    460  1.1   chopps 	  3, ESC, '[', 'A',		/* 0x00: CRSR UP */
    461  1.1   chopps 	  3, ESC, '[', 'B',		/* 0x04: CRSR DOWN */
    462  1.1   chopps 	  3, ESC, '[', 'C',		/* 0x08: CRSR RIGHT */
    463  1.1   chopps 	  3, ESC, '[', 'D',		/* 0x0C: CRSR LEFT */
    464  1.1   chopps 	  4, ESC, '[', '0', '~',	/* 0x10: F1 */
    465  1.1   chopps 	  4, ESC, '[', '1', '~',	/* 0x15: F2 */
    466  1.1   chopps 	  4, ESC, '[', '2', '~',	/* 0x1A: F3 */
    467  1.1   chopps 	  4, ESC, '[', '3', '~',	/* 0x1F: F4 */
    468  1.1   chopps 	  4, ESC, '[', '4', '~',	/* 0x24: F5 */
    469  1.1   chopps 	  4, ESC, '[', '5', '~',	/* 0x29: F6 */
    470  1.1   chopps 	  4, ESC, '[', '6', '~',	/* 0x2E: F7 */
    471  1.1   chopps 	  4, ESC, '[', '7', '~',	/* 0x33: F8 */
    472  1.1   chopps 	  4, ESC, '[', '8', '~',	/* 0x38: F9 */
    473  1.1   chopps 	  4, ESC, '[', '9', '~',	/* 0x3D: F10 */
    474  1.1   chopps 	  4, ESC, '[', '?', '~',	/* 0x42: HELP */
    475  1.1   chopps 
    476  1.1   chopps 	  4, ESC, '[', 'T', '~',	/* 0x47: shift CRSR UP */
    477  1.1   chopps 	  4, ESC, '[', 'S', '~',	/* 0x4C: shift CRSR DOWN */
    478  1.1   chopps 	  5, ESC, '[', ' ', '@', '~',	/* 0x51: shift CRSR RIGHT */
    479  1.1   chopps 	  5, ESC, '[', ' ', 'A', '~',	/* 0x57: shift CRSR LEFT */
    480  1.1   chopps 	  5, ESC, '[', '1', '0', '~',	/* 0x5D: shift F1 */
    481  1.1   chopps 	  5, ESC, '[', '1', '1', '~',	/* 0x63: shift F2 */
    482  1.1   chopps 	  5, ESC, '[', '1', '2', '~',	/* 0x69: shift F3 */
    483  1.1   chopps 	  5, ESC, '[', '1', '3', '~',	/* 0x6F: shift F4 */
    484  1.1   chopps 	  5, ESC, '[', '1', '4', '~',	/* 0x75: shift F5 */
    485  1.1   chopps 	  5, ESC, '[', '1', '5', '~',	/* 0x7B: shift F6 */
    486  1.1   chopps 	  5, ESC, '[', '1', '6', '~',	/* 0x81: shift F7 */
    487  1.1   chopps 	  5, ESC, '[', '1', '7', '~',	/* 0x87: shift F8 */
    488  1.1   chopps 	  5, ESC, '[', '1', '8', '~',	/* 0x8D: shift F9 */
    489  1.1   chopps 	  5, ESC, '[', '1', '9', '~',	/* 0x93: shift F10 */
    490  1.1   chopps 	  3, ESC, '[', 'Z',		/* 0x99: shift TAB */
    491  1.1   chopps 	  2, ESC, '[',			/* 0x9d: alt ESC == CSI */
    492  1.1   chopps 	},
    493  1.1   chopps };
    494  1.1   chopps 
    495  1.1   chopps unsigned char acctable[KBD_NUM_ACC][64] = {
    496  1.1   chopps   {	"@BCDFGHJKLMNPQRSTVWXYZ[\\]^_"
    497  1.1   chopps 	"`bcdfghjklmnpqrstvwxyz{|}~\177"},	/* KBD_ACC_GRAVE */
    498  1.1   chopps 
    499  1.1   chopps   {	"@BCDFGHJKLMNPQRSTVWXYZ[\\]^_"
    500  1.1   chopps 	"`bcdfghjklmnpqrstvwxyz{|}~\177"},	/* KBD_ACC_ACUTE */
    501  1.1   chopps 
    502  1.1   chopps   {	"@BCDFGHJKLMNPQRSTVWXYZ[\\]^_"
    503  1.1   chopps 	"`bcdfghjklmnpqrstvwxyz{|}~\177"},	/* KBD_ACC_CIRC */
    504  1.1   chopps 
    505  1.1   chopps   {	"@BCDEFGHIJKLMPQRSTUVWXYZ[\\]^_"
    506  1.1   chopps 	"`bcdefghijklmpqrstuvwxyz{|}~\177"},	/* KBD_ACC_TILDE */
    507  1.1   chopps 
    508  1.1   chopps   {	"@BCDFGHJKLMNPQRSTVWXYZ[\\]^_"
    509  1.1   chopps 	"`bcdfghjklmnpqrstvwxyz{|}~\177"},	/* KBD_ACC_DIER */
    510  1.1   chopps };
    511  1.1   chopps 
    512  1.1   chopps 
    513  1.4  aymeric int
    514  1.4  aymeric main(void) {
    515  1.4  aymeric 	write(1, &kbdmap, sizeof (kbdmap));
    516  1.4  aymeric 
    517  1.4  aymeric 	return 0;
    518  1.2    veego }
    519