OpenCores
URL https://opencores.org/ocsvn/c0or1k/c0or1k/trunk

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [conts/] [libdev/] [kmi/] [pl050/] [keymap.h] - Rev 2

Compare with Previous | Blame | View Log

 
#ifndef __KEYMAP_H__
#define __KEYMAP_H__
 
/* Special meaning keys */
#define KEYCODE_LSHIFT      0x101
#define KEYCODE_RSHIFT      0x102
#define KEYCODE_LCTRL       0x103
#define KEYCODE_RCTRL       0x104
#define KEYCODE_ALT         0x105
#define KEYCODE_ALTGR       0x106
 
#define KEYCODE_CAPSLK      0x201
#define KEYCODE_SCRLK       0x202
#define KEYCODE_NUMLK       0x203
 
#define KEYCODE_TAB         0x301
#define KEYCODE_BACKSP      0x302
#define KEYCODE_RETURN      0x303
#define KEYCODE_ESCAPE      0x304
#define KEYCODE_ENTER       0x305
 
#define KEYCODE_PRTSCR      0x401
#define KEYCODE_BREAK       0x402
#define KEYCODE_INSERT      0x403
#define KEYCODE_HOME        0x404
#define KEYCODE_PAGEUP      0x405
#define KEYCODE_DELETE      0x406
#define KEYCODE_END         0x407
#define KEYCODE_PAGEDN      0x408
 
#define KEYCODE_UP          0x501
#define KEYCODE_DOWN        0x502
#define KEYCODE_LEFT        0x503
#define KEYCODE_RIGHT       0x504
#define KEYCODE_CENTER      0x505
 
#define KEYCODE_F1          0x601
#define KEYCODE_F2          0x602
#define KEYCODE_F3          0x603
#define KEYCODE_F4          0x604
#define KEYCODE_F5          0x605
#define KEYCODE_F6          0x606
#define KEYCODE_F7          0x607
#define KEYCODE_F8          0x608
#define KEYCODE_F9          0x609
#define KEYCODE_F10         0x60A
#define KEYCODE_F11         0x60B
#define KEYCODE_F12         0x60C
 
#define KEYCODE_WINL        0x701
#define KEYCODE_WINR        0x702
#define KEYCODE_MENU        0x703
 
#define MODIFIER_EXTENDED   0x00100000
#define MODIFIER_EXTENDED2  0x00200000
#define MODIFIER_RCTRL      0x00400000
#define MODIFIER_RSHIFT     0x00800000
#define MODIFIER_LSHIFT     0x01000000
#define MODIFIER_LCTRL      0x02000000
#define MODIFIER_ALT        0x04000000
#define MODIFIER_ALTGR      0x08000000
#define MODIFIER_SCRLK      0x10000000
#define MODIFIER_NUMLK      0x20000000
#define MODIFIER_CAPSLK     0x40000000
#define MODIFIER_RELEASE    0x80000000
#define MODIFIER_SHIFT      (MODIFIER_LSHIFT | MODIFIER_RSHIFT)
#define MODIFIER_CTRL       (MODIFIER_LCTRL | MODIFIER_RCTRL)
 
struct keyboard_key {
	int nomods;
	int shift;
	int ext_nomods;
	int ext_shift;
};
 
/*
 * Keymap for a UK keyboard
 * maps key numbers->key codes
 *
 * We will use scan code index to get the key
 *
 * FIXME: element 1 and 4 gives, muticharacter
 * character constant error, fix this.
 */
struct keyboard_key keymap_uk2[256] = {
/*  0    */     {0,0,0,0},
#if 0
/*  1    */     {'`','¬',0,0},
#else
/*  1    */     {'`',0,0,0},
#endif
/*  2    */     {'1','!',0,0},
/*  3    */     {'2','"',0,0},
#if 0
/*  4    */     {'3','£',0,0},
#else
/*  4    */     {'3',0,0,0},
#endif
/*  5    */     {'4','$',0,0},
/*  6    */     {'5','%',0,0},
/*  7    */     {'6','^',0,0},
/*  8    */     {'7','&',0,0},
/*  9    */     {'8','*',0,0},
/*  10   */     {'9','(',0,0},
/*  11   */     {'0',')',0,0},
/*  12   */     {'-','_',0,0},
/*  13   */     {'=','+',0,0},
/*  14   */     {0,0,0,0},
/*  15   */     {KEYCODE_BACKSP,0,0,0},
/*  16   */     {KEYCODE_TAB,0,0,0},
/*  17   */     {'q','Q',0,0},
/*  18   */     {'w','W',0,0},
/*  19   */     {'e','E',0,0},
/*  20   */     {'r','R',0,0},
/*  21   */     {'t','T',0,0},
/*  22   */     {'y','Y',0,0},
/*  23   */     {'u','U',0,0},
/*  24   */     {'i','I',0,0},
/*  25   */     {'o','O',0,0},
/*  26   */     {'p','P',0,0},
/*  27   */     {'[','{',0,0},
/*  28   */     {']','}',0,0},
/*  29   */     {'#','~',0,0},
/*  30   */     {KEYCODE_CAPSLK,0,0,0},
/*  31   */     {'a','A',0,0},
/*  32   */     {'s','S',0,0},
/*  33   */     {'d','D',0,0},
/*  34   */     {'f','F',0,0},
/*  35   */     {'g','G',0,0},
/*  36   */     {'h','H',0,0},
/*  37   */     {'j','J',0,0},
/*  38   */     {'k','K',0,0},
/*  39   */     {'l','L',0,0},
/*  40   */     {';',':',0,0},
/*  41   */     {'\'','@',0,0},
/*  42   */     {0,0,0,0},
/*  43   */     {'\n','\n',KEYCODE_ENTER,0},
/*  44   */     {KEYCODE_LSHIFT,0,0,0},
/*  45   */     {'\\','|',0,0},
/*  46   */     {'z','Z',0,0},
/*  47   */     {'x','X',0,0},
/*  48   */     {'c','C',0,0},
/*  49   */     {'v','V',0,0},
/*  50   */     {'b','B',0,0},
/*  51   */     {'n','N',0,0},
/*  52   */     {'m','M',0,0},
/*  53   */     {',','<',0,0},
/*  54   */     {'.','>',0,0},
/*  55   */     {'/','?','/' | MODIFIER_NUMLK,0},
/*  56   */     {0,0,0,0},
/*  57   */     {KEYCODE_RSHIFT,0,0,0},
/*  58   */     {KEYCODE_LCTRL,0,KEYCODE_RCTRL,0},
/*  59   */     {0,0,0,0},
/*  60   */     {KEYCODE_ALT,0,KEYCODE_ALTGR,0},
/*  61   */     {' ',0,0,0},
/*  62   */     {KEYCODE_ALTGR,0,0,0},
/*  63   */     {0,0,0,0},
/*  64   */     {KEYCODE_RCTRL,0,0,0},
/*  65   */     {0,0,0,0},
/*  66   */     {0,0,0,0},
/*  67   */     {0,0,0,0},
/*  68   */     {0,0,0,0},
/*  69   */     {0,0,0,0},
/*  70   */     {0,0,0,0},
/*  71   */     {0,0,0,0},
/*  72   */     {0,0,0,0},
/*  73   */     {0,0,0,0},
/*  74   */     {0,0,0,0},
/*  75   */     {KEYCODE_INSERT,0,0,0},
/*  76   */     {KEYCODE_DELETE,0,0,0},
/*  77   */     {0,0,0,0},
/*  78   */     {0,0,0,0},
/*  79   */     {KEYCODE_LEFT,0,0,0},
/*  80   */     {KEYCODE_HOME,0,0,0},
/*  81   */     {KEYCODE_END,0,0,0},
/*  82   */     {0,0,0,0},
/*  83   */     {KEYCODE_UP,0,0,0},
/*  84   */     {KEYCODE_DOWN,0,0,0},
/*  85   */     {KEYCODE_PAGEUP,0,0,0},
/*  86   */     {KEYCODE_PAGEDN,0,0,0},
/*  87   */     {0,0,0,0},
/*  88   */     {0,0,0,0},
/*  89   */     {KEYCODE_RIGHT,0,0,0},
/*  90   */     {KEYCODE_NUMLK,0,KEYCODE_BREAK,0},
/*  91   */     {KEYCODE_HOME | MODIFIER_NUMLK,0,KEYCODE_HOME,0},
/*  92   */     {KEYCODE_LEFT | MODIFIER_NUMLK,0,KEYCODE_LEFT,0},
/*  93   */     {KEYCODE_END | MODIFIER_NUMLK,0,KEYCODE_END,0},
/*  94   */     {0,0,0,0},
/*  95   */     {'/' | MODIFIER_NUMLK,0,0},
/*  96   */     {KEYCODE_UP | MODIFIER_NUMLK,0,KEYCODE_UP,0},
/*  97   */     {KEYCODE_CENTER | MODIFIER_NUMLK,0,KEYCODE_CENTER,0},
/*  98   */     {KEYCODE_DOWN | MODIFIER_NUMLK,0,KEYCODE_DOWN,0},
/*  99   */     {KEYCODE_INSERT | MODIFIER_NUMLK,0,KEYCODE_INSERT,0},
/*  100  */     {'*' | MODIFIER_NUMLK,0,KEYCODE_PRTSCR,0},
/*  101  */     {KEYCODE_PAGEUP | MODIFIER_NUMLK,0,KEYCODE_PAGEUP,0},
/*  102  */     {KEYCODE_RIGHT | MODIFIER_NUMLK,0,KEYCODE_RIGHT,0},
/*  103  */     {KEYCODE_PAGEDN | MODIFIER_NUMLK,0,KEYCODE_PAGEDN,0},
/*  104  */     {KEYCODE_DELETE | MODIFIER_NUMLK,0,KEYCODE_DELETE,0},
/*  105  */     {'-' | MODIFIER_NUMLK,0,0,0},
/*  106  */     {'+' | MODIFIER_NUMLK,0,0,0},
/*  107  */     {KEYCODE_ENTER,0,0,0},
/*  108  */     {0,0,0,0},
/*  109  */     {0,0,0,0},
/*  110  */     {KEYCODE_ESCAPE,0,0,0},
/*  111  */     {0,0,0,0},
/*  112  */     {KEYCODE_F1,0,0,7},
/*  113  */     {KEYCODE_F2,0,0,0},
/*  114  */     {KEYCODE_F3,0,0,0},
/*  115  */     {KEYCODE_F4,0,0,0},
/*  116  */     {KEYCODE_F5,0,0,0},
/*  117  */     {KEYCODE_F6,0,0,0},
/*  118  */     {KEYCODE_F7,0,0,0},
/*  119  */     {KEYCODE_F8,0,0,0},
/*  120  */     {KEYCODE_F9,0,0,0},
/*  121  */     {KEYCODE_F10,0,0,0},
/*  122  */     {KEYCODE_F11,0,0,0},
/*  123  */     {KEYCODE_F12,0,0,0},
/*  124  */     {KEYCODE_PRTSCR,0,0,0},
/*  125  */     {KEYCODE_SCRLK,0,KEYCODE_BREAK,0},
/*  126  */     {KEYCODE_BREAK,0,0,0},
/*  127  */     {0,0,0,0},
/*  128  */     {KEYCODE_WINL,0,KEYCODE_WINL,0},
/*  129  */     {KEYCODE_WINR,0,KEYCODE_WINR,0},
/*  130  */     {KEYCODE_MENU,0,KEYCODE_MENU,0},
/* currently no keys with numbers > 130 */
/*  131  */     {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
/*  140  */     {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
/*  150  */     {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
/*  160  */     {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
/*  170  */     {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
/*  180  */     {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
/*  190  */     {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
/*  200  */     {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
/*  210  */     {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
/*  220  */     {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
/*  230  */     {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
/*  240  */     {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
/*  250  */     {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}
};
 
/*
 * Scan code to key number conversion table for
 * an extended AT keyboard in mode 2
 *
 * This will give us the key index for keyboard
 */
int scancode_mode2_extended[256] = {
  	0, 	120, 	0, 	116, 	114, 	112, 	113,
	123, 	0, 	121, 	119, 	117, 	115,	16,
	1, 	0, 	0, 	60, 	44, 	0, 	58,
	17, 	2, 	0, 	0, 	0, 	46, 	32,
	31, 	18,	3, 	128, 	0, 	48, 	47,
	33, 	19, 	5, 	4, 	129, 	0, 	61,
	49, 	34, 	21, 	20,	6, 	130, 	0,
	51, 	50, 	36, 	35, 	22, 	7, 	0,
	0, 	0, 	52, 	37, 	23, 	8, 	9,
	0, 	0, 	53, 	38, 	24, 	25, 	11,
	10, 	0, 	0, 	54, 	55, 	39, 	40,
	26, 	12, 	0, 	0, 	0, 	41, 	0,
	27, 	13, 	0, 	0, 	30, 	57, 	43,
	28, 	0, 	29, 	0, 	0, 	0, 	45,
	0, 	0, 	0, 	0, 	15, 	0, 	0,
	93, 	0, 	92, 	91, 	0, 	0, 	0,
	99, 	104,	98, 	97, 	102, 	96, 	110,
	90, 	122, 	106, 	103, 	105, 	100, 	101,
	125,  	0, 	0, 	0, 	0, 	118, 	0,
	0, 	0, 	0, 	0, 	0, 	0, 	0,
	0, 	0, 	0, 	0,
  	/* no keys with codes > 0x8F */
  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
 
#endif /* __KEYMAP_H__ */
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.