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

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [conts/] [libdev/] [kmi/] [pl050/] [keymap.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 drasko
 
2
#ifndef __KEYMAP_H__
3
#define __KEYMAP_H__
4
 
5
/* Special meaning keys */
6
#define KEYCODE_LSHIFT      0x101
7
#define KEYCODE_RSHIFT      0x102
8
#define KEYCODE_LCTRL       0x103
9
#define KEYCODE_RCTRL       0x104
10
#define KEYCODE_ALT         0x105
11
#define KEYCODE_ALTGR       0x106
12
 
13
#define KEYCODE_CAPSLK      0x201
14
#define KEYCODE_SCRLK       0x202
15
#define KEYCODE_NUMLK       0x203
16
 
17
#define KEYCODE_TAB         0x301
18
#define KEYCODE_BACKSP      0x302
19
#define KEYCODE_RETURN      0x303
20
#define KEYCODE_ESCAPE      0x304
21
#define KEYCODE_ENTER       0x305
22
 
23
#define KEYCODE_PRTSCR      0x401
24
#define KEYCODE_BREAK       0x402
25
#define KEYCODE_INSERT      0x403
26
#define KEYCODE_HOME        0x404
27
#define KEYCODE_PAGEUP      0x405
28
#define KEYCODE_DELETE      0x406
29
#define KEYCODE_END         0x407
30
#define KEYCODE_PAGEDN      0x408
31
 
32
#define KEYCODE_UP          0x501
33
#define KEYCODE_DOWN        0x502
34
#define KEYCODE_LEFT        0x503
35
#define KEYCODE_RIGHT       0x504
36
#define KEYCODE_CENTER      0x505
37
 
38
#define KEYCODE_F1          0x601
39
#define KEYCODE_F2          0x602
40
#define KEYCODE_F3          0x603
41
#define KEYCODE_F4          0x604
42
#define KEYCODE_F5          0x605
43
#define KEYCODE_F6          0x606
44
#define KEYCODE_F7          0x607
45
#define KEYCODE_F8          0x608
46
#define KEYCODE_F9          0x609
47
#define KEYCODE_F10         0x60A
48
#define KEYCODE_F11         0x60B
49
#define KEYCODE_F12         0x60C
50
 
51
#define KEYCODE_WINL        0x701
52
#define KEYCODE_WINR        0x702
53
#define KEYCODE_MENU        0x703
54
 
55
#define MODIFIER_EXTENDED   0x00100000
56
#define MODIFIER_EXTENDED2  0x00200000
57
#define MODIFIER_RCTRL      0x00400000
58
#define MODIFIER_RSHIFT     0x00800000
59
#define MODIFIER_LSHIFT     0x01000000
60
#define MODIFIER_LCTRL      0x02000000
61
#define MODIFIER_ALT        0x04000000
62
#define MODIFIER_ALTGR      0x08000000
63
#define MODIFIER_SCRLK      0x10000000
64
#define MODIFIER_NUMLK      0x20000000
65
#define MODIFIER_CAPSLK     0x40000000
66
#define MODIFIER_RELEASE    0x80000000
67
#define MODIFIER_SHIFT      (MODIFIER_LSHIFT | MODIFIER_RSHIFT)
68
#define MODIFIER_CTRL       (MODIFIER_LCTRL | MODIFIER_RCTRL)
69
 
70
struct keyboard_key {
71
        int nomods;
72
        int shift;
73
        int ext_nomods;
74
        int ext_shift;
75
};
76
 
77
/*
78
 * Keymap for a UK keyboard
79
 * maps key numbers->key codes
80
 *
81
 * We will use scan code index to get the key
82
 *
83
 * FIXME: element 1 and 4 gives, muticharacter
84
 * character constant error, fix this.
85
 */
86
struct keyboard_key keymap_uk2[256] = {
87
/*  0    */     {0,0,0,0},
88
#if 0
89
/*  1    */     {'`','¬',0,0},
90
#else
91
/*  1    */     {'`',0,0,0},
92
#endif
93
/*  2    */     {'1','!',0,0},
94
/*  3    */     {'2','"',0,0},
95
#if 0
96
/*  4    */     {'3','£',0,0},
97
#else
98
/*  4    */     {'3',0,0,0},
99
#endif
100
/*  5    */     {'4','$',0,0},
101
/*  6    */     {'5','%',0,0},
102
/*  7    */     {'6','^',0,0},
103
/*  8    */     {'7','&',0,0},
104
/*  9    */     {'8','*',0,0},
105
/*  10   */     {'9','(',0,0},
106
/*  11   */     {'0',')',0,0},
107
/*  12   */     {'-','_',0,0},
108
/*  13   */     {'=','+',0,0},
109
/*  14   */     {0,0,0,0},
110
/*  15   */     {KEYCODE_BACKSP,0,0,0},
111
/*  16   */     {KEYCODE_TAB,0,0,0},
112
/*  17   */     {'q','Q',0,0},
113
/*  18   */     {'w','W',0,0},
114
/*  19   */     {'e','E',0,0},
115
/*  20   */     {'r','R',0,0},
116
/*  21   */     {'t','T',0,0},
117
/*  22   */     {'y','Y',0,0},
118
/*  23   */     {'u','U',0,0},
119
/*  24   */     {'i','I',0,0},
120
/*  25   */     {'o','O',0,0},
121
/*  26   */     {'p','P',0,0},
122
/*  27   */     {'[','{',0,0},
123
/*  28   */     {']','}',0,0},
124
/*  29   */     {'#','~',0,0},
125
/*  30   */     {KEYCODE_CAPSLK,0,0,0},
126
/*  31   */     {'a','A',0,0},
127
/*  32   */     {'s','S',0,0},
128
/*  33   */     {'d','D',0,0},
129
/*  34   */     {'f','F',0,0},
130
/*  35   */     {'g','G',0,0},
131
/*  36   */     {'h','H',0,0},
132
/*  37   */     {'j','J',0,0},
133
/*  38   */     {'k','K',0,0},
134
/*  39   */     {'l','L',0,0},
135
/*  40   */     {';',':',0,0},
136
/*  41   */     {'\'','@',0,0},
137
/*  42   */     {0,0,0,0},
138
/*  43   */     {'\n','\n',KEYCODE_ENTER,0},
139
/*  44   */     {KEYCODE_LSHIFT,0,0,0},
140
/*  45   */     {'\\','|',0,0},
141
/*  46   */     {'z','Z',0,0},
142
/*  47   */     {'x','X',0,0},
143
/*  48   */     {'c','C',0,0},
144
/*  49   */     {'v','V',0,0},
145
/*  50   */     {'b','B',0,0},
146
/*  51   */     {'n','N',0,0},
147
/*  52   */     {'m','M',0,0},
148
/*  53   */     {',','<',0,0},
149
/*  54   */     {'.','>',0,0},
150
/*  55   */     {'/','?','/' | MODIFIER_NUMLK,0},
151
/*  56   */     {0,0,0,0},
152
/*  57   */     {KEYCODE_RSHIFT,0,0,0},
153
/*  58   */     {KEYCODE_LCTRL,0,KEYCODE_RCTRL,0},
154
/*  59   */     {0,0,0,0},
155
/*  60   */     {KEYCODE_ALT,0,KEYCODE_ALTGR,0},
156
/*  61   */     {' ',0,0,0},
157
/*  62   */     {KEYCODE_ALTGR,0,0,0},
158
/*  63   */     {0,0,0,0},
159
/*  64   */     {KEYCODE_RCTRL,0,0,0},
160
/*  65   */     {0,0,0,0},
161
/*  66   */     {0,0,0,0},
162
/*  67   */     {0,0,0,0},
163
/*  68   */     {0,0,0,0},
164
/*  69   */     {0,0,0,0},
165
/*  70   */     {0,0,0,0},
166
/*  71   */     {0,0,0,0},
167
/*  72   */     {0,0,0,0},
168
/*  73   */     {0,0,0,0},
169
/*  74   */     {0,0,0,0},
170
/*  75   */     {KEYCODE_INSERT,0,0,0},
171
/*  76   */     {KEYCODE_DELETE,0,0,0},
172
/*  77   */     {0,0,0,0},
173
/*  78   */     {0,0,0,0},
174
/*  79   */     {KEYCODE_LEFT,0,0,0},
175
/*  80   */     {KEYCODE_HOME,0,0,0},
176
/*  81   */     {KEYCODE_END,0,0,0},
177
/*  82   */     {0,0,0,0},
178
/*  83   */     {KEYCODE_UP,0,0,0},
179
/*  84   */     {KEYCODE_DOWN,0,0,0},
180
/*  85   */     {KEYCODE_PAGEUP,0,0,0},
181
/*  86   */     {KEYCODE_PAGEDN,0,0,0},
182
/*  87   */     {0,0,0,0},
183
/*  88   */     {0,0,0,0},
184
/*  89   */     {KEYCODE_RIGHT,0,0,0},
185
/*  90   */     {KEYCODE_NUMLK,0,KEYCODE_BREAK,0},
186
/*  91   */     {KEYCODE_HOME | MODIFIER_NUMLK,0,KEYCODE_HOME,0},
187
/*  92   */     {KEYCODE_LEFT | MODIFIER_NUMLK,0,KEYCODE_LEFT,0},
188
/*  93   */     {KEYCODE_END | MODIFIER_NUMLK,0,KEYCODE_END,0},
189
/*  94   */     {0,0,0,0},
190
/*  95   */     {'/' | MODIFIER_NUMLK,0,0},
191
/*  96   */     {KEYCODE_UP | MODIFIER_NUMLK,0,KEYCODE_UP,0},
192
/*  97   */     {KEYCODE_CENTER | MODIFIER_NUMLK,0,KEYCODE_CENTER,0},
193
/*  98   */     {KEYCODE_DOWN | MODIFIER_NUMLK,0,KEYCODE_DOWN,0},
194
/*  99   */     {KEYCODE_INSERT | MODIFIER_NUMLK,0,KEYCODE_INSERT,0},
195
/*  100  */     {'*' | MODIFIER_NUMLK,0,KEYCODE_PRTSCR,0},
196
/*  101  */     {KEYCODE_PAGEUP | MODIFIER_NUMLK,0,KEYCODE_PAGEUP,0},
197
/*  102  */     {KEYCODE_RIGHT | MODIFIER_NUMLK,0,KEYCODE_RIGHT,0},
198
/*  103  */     {KEYCODE_PAGEDN | MODIFIER_NUMLK,0,KEYCODE_PAGEDN,0},
199
/*  104  */     {KEYCODE_DELETE | MODIFIER_NUMLK,0,KEYCODE_DELETE,0},
200
/*  105  */     {'-' | MODIFIER_NUMLK,0,0,0},
201
/*  106  */     {'+' | MODIFIER_NUMLK,0,0,0},
202
/*  107  */     {KEYCODE_ENTER,0,0,0},
203
/*  108  */     {0,0,0,0},
204
/*  109  */     {0,0,0,0},
205
/*  110  */     {KEYCODE_ESCAPE,0,0,0},
206
/*  111  */     {0,0,0,0},
207
/*  112  */     {KEYCODE_F1,0,0,7},
208
/*  113  */     {KEYCODE_F2,0,0,0},
209
/*  114  */     {KEYCODE_F3,0,0,0},
210
/*  115  */     {KEYCODE_F4,0,0,0},
211
/*  116  */     {KEYCODE_F5,0,0,0},
212
/*  117  */     {KEYCODE_F6,0,0,0},
213
/*  118  */     {KEYCODE_F7,0,0,0},
214
/*  119  */     {KEYCODE_F8,0,0,0},
215
/*  120  */     {KEYCODE_F9,0,0,0},
216
/*  121  */     {KEYCODE_F10,0,0,0},
217
/*  122  */     {KEYCODE_F11,0,0,0},
218
/*  123  */     {KEYCODE_F12,0,0,0},
219
/*  124  */     {KEYCODE_PRTSCR,0,0,0},
220
/*  125  */     {KEYCODE_SCRLK,0,KEYCODE_BREAK,0},
221
/*  126  */     {KEYCODE_BREAK,0,0,0},
222
/*  127  */     {0,0,0,0},
223
/*  128  */     {KEYCODE_WINL,0,KEYCODE_WINL,0},
224
/*  129  */     {KEYCODE_WINR,0,KEYCODE_WINR,0},
225
/*  130  */     {KEYCODE_MENU,0,KEYCODE_MENU,0},
226
/* currently no keys with numbers > 130 */
227
/*  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},
228
/*  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},
229
/*  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},
230
/*  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},
231
/*  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},
232
/*  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},
233
/*  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},
234
/*  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},
235
/*  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},
236
/*  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},
237
/*  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},
238
/*  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},
239
/*  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}
240
};
241
 
242
/*
243
 * Scan code to key number conversion table for
244
 * an extended AT keyboard in mode 2
245
 *
246
 * This will give us the key index for keyboard
247
 */
248
int scancode_mode2_extended[256] = {
249
        0,       120,    0,       116,    114,    112,    113,
250
        123,    0,       121,    119,    117,    115,    16,
251
        1,      0,       0,       60,     44,     0,       58,
252
        17,     2,      0,       0,       0,       46,     32,
253
        31,     18,     3,      128,    0,       48,     47,
254
        33,     19,     5,      4,      129,    0,       61,
255
        49,     34,     21,     20,     6,      130,    0,
256
        51,     50,     36,     35,     22,     7,      0,
257
        0,       0,       52,     37,     23,     8,      9,
258
        0,       0,       53,     38,     24,     25,     11,
259
        10,     0,       0,       54,     55,     39,     40,
260
        26,     12,     0,       0,       0,       41,     0,
261
        27,     13,     0,       0,       30,     57,     43,
262
        28,     0,       29,     0,       0,       0,       45,
263
        0,       0,       0,       0,       15,     0,       0,
264
        93,     0,       92,     91,     0,       0,       0,
265
        99,     104,    98,     97,     102,    96,     110,
266
        90,     122,    106,    103,    105,    100,    101,
267
        125,    0,       0,       0,       0,       118,    0,
268
        0,       0,       0,       0,       0,       0,       0,
269
        0,       0,       0,       0,
270
        /* no keys with codes > 0x8F */
271
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
272
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
273
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
274
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
275
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
276
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
277
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
278
};
279
 
280
#endif /* __KEYMAP_H__ */

powered by: WebSVN 2.1.0

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