Changeset 9e951acb in mainline for kbd/arch/ppc32/src/kbd.c


Ignore:
Timestamp:
2006-06-07T00:13:34Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d3f2cad
Parents:
ec5beb7d
Message:

better keymap, console switching works

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kbd/arch/ppc32/src/kbd.c

    rec5beb7d r9e951acb  
    4141
    4242
    43 static char lchars[0x80] = {
    44         'a',  's',  'd',  'f',  'h',  'g',  'z',  'x',  'c',  'v',    0,  'b',  'q',  'w',  'e',  'r',
    45         'y',  't',  '1',  '2',  '3',  '4',  '6',  '5',  '=',  '9',  '7',  '-',  '8',  '0',  ']',  'o',
    46         'u',  '[',  'i',  'p',   13,  'l',  'j', '\'',  'k',  ';', '\\',  ',',  '/',  'n',  'm',  '.',
    47           9,   32,  '`',    8,    0,   27,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    48           0,  '.',    0,  '*',    0,  '+',    0,    0,    0,    0,    0,  '/',   13,    0,  '-',    0,
    49           0,    0,  '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',    0,  '8',  '9',    0,    0,    0,
    50           0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    51           0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
     43#define SPECIAL         255
     44#define FUNCTION_KEYS 0x100
     45
     46
     47static int lchars[0x80] = {
     48        'a',
     49        's',
     50        'd',
     51        'f',
     52        'h',
     53        'g',
     54        'z',
     55        'x',
     56        'c',
     57        'v',
     58        SPECIAL,
     59        'b',
     60        'q',
     61        'w',
     62        'e',
     63        'r',
     64        'y',
     65        't',
     66        '1',
     67        '2',
     68        '3',
     69        '4',
     70        '6',
     71        '5',
     72        '=',
     73        '9',
     74        '7',
     75        '-',
     76        '8',
     77        '0',
     78        ']',
     79        'o',
     80        'u',
     81        '[',
     82        'i',
     83        'p',
     84        '\n',                 /* Enter */
     85        'l',
     86        'j',
     87        '\'',
     88        'k',
     89        ';',
     90        '\\',
     91        ',',
     92        '/',
     93        'n',
     94        'm',
     95        '.',
     96        '\t',                 /* Tab */
     97        ' ',
     98        '`',
     99        '\b',                 /* Backspace */
     100        SPECIAL,
     101        SPECIAL,              /* Escape */
     102        SPECIAL,              /* Ctrl */
     103        SPECIAL,              /* Alt */
     104        SPECIAL,              /* Shift */
     105        SPECIAL,              /* Caps-Lock */
     106        SPECIAL,              /* RAlt */
     107        SPECIAL,              /* Left */
     108        SPECIAL,              /* Right */
     109        SPECIAL,              /* Down */
     110        SPECIAL,              /* Up */
     111        SPECIAL,
     112        SPECIAL,
     113        '.',                  /* Keypad . */
     114        SPECIAL,
     115        '*',                  /* Keypad * */
     116        SPECIAL,
     117        '+',                  /* Keypad + */
     118        SPECIAL,
     119        SPECIAL,              /* NumLock */
     120        SPECIAL,
     121        SPECIAL,
     122        SPECIAL,
     123        '/',                  /* Keypad / */
     124        '\n',                 /* Keypad Enter */
     125        SPECIAL,
     126        '-',                  /* Keypad - */
     127        SPECIAL,
     128        SPECIAL,
     129        SPECIAL,
     130        '0',                  /* Keypad 0 */
     131        '1',                  /* Keypad 1 */
     132        '2',                  /* Keypad 2 */
     133        '3',                  /* Keypad 3 */
     134        '4',                  /* Keypad 4 */
     135        '5',                  /* Keypad 5 */
     136        '6',                  /* Keypad 6 */
     137        '7',                  /* Keypad 7 */
     138        SPECIAL,
     139        '8',                  /* Keypad 8 */
     140        '9',                  /* Keypad 9 */
     141        SPECIAL,
     142        SPECIAL,
     143        SPECIAL,
     144        (FUNCTION_KEYS | 5),  /* F5 */
     145        (FUNCTION_KEYS | 6),  /* F6 */
     146        (FUNCTION_KEYS | 7),  /* F7 */
     147        (FUNCTION_KEYS | 3),  /* F3 */
     148        (FUNCTION_KEYS | 8),  /* F8 */
     149        (FUNCTION_KEYS | 9),  /* F9 */
     150        SPECIAL,
     151        (FUNCTION_KEYS | 11), /* F11 */
     152        SPECIAL,
     153        (FUNCTION_KEYS | 13), /* F13 */
     154        SPECIAL,
     155        SPECIAL,              /* ScrollLock */
     156        SPECIAL,
     157        (FUNCTION_KEYS | 10), /* F10 */
     158        SPECIAL,
     159        (FUNCTION_KEYS | 12), /* F12 */
     160        SPECIAL,
     161        SPECIAL,              /* Pause */
     162        SPECIAL,              /* Insert */
     163        SPECIAL,              /* Home */
     164        SPECIAL,              /* PageUp */
     165        SPECIAL,              /* Delete */
     166        (FUNCTION_KEYS | 4),  /* F4 */
     167        SPECIAL,              /* End */
     168        (FUNCTION_KEYS | 2),  /* F2 */
     169        SPECIAL,              /* PageDown */
     170        (FUNCTION_KEYS | 1)   /* F1 */
    52171};
    53172
     
    61180int kbd_arch_process(keybuffer_t *keybuffer, int scan_code)
    62181{
    63         uint8_t scancode = (uint8_t) scan_code;
     182        if (scan_code != -1) {
     183                uint8_t scancode = (uint8_t) scan_code;
    64184       
    65         if ((scancode != 0) && ((scancode & 0x80) != 0x80))
    66                 keybuffer_push(keybuffer, lchars[scancode & 0x7f]);
     185                if ((scancode & 0x80) != 0x80) {
     186                        int key = lchars[scancode & 0x7f];
     187                       
     188                        if (key != SPECIAL)
     189                                keybuffer_push(keybuffer, key);
     190                }
     191        }
    67192       
    68193        return 1;
Note: See TracChangeset for help on using the changeset viewer.