OSDN Git Service

[VM] TRY:Use namespace {VMNAME} to separate around VMs. This feature still apply...
[csp-qt/common_source_project-fm7.git] / source / src / vm / fm7 / keyboard_tables.h
1 /*
2  * Common Source code Project -> VM -> FM-7/77AV -> Keyboard (Tables)
3  * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
4  * Licence: GPLv2
5  * History : 
6  *  Jun 16, 2015 : Separate tables from keyboard.cpp .
7  */
8
9 #ifndef _FM7_KEYBOARD_TABLES_H
10 #define _FM7_KEYBOARD_TABLES_H
11
12 #include "fm7_keyboard.h"
13 #if !defined(VK_OEM_CSP_KPRET)
14 #     define VK_OEM_CSP_KPRET 0x9f
15 #endif
16
17
18 namespace FM7 {
19
20 const uint16_t vk_matrix_106[0x68] = { // VK
21         // +0, +1, +2, +3, +4, +5, +6, +7
22         /* 0x00, ESC, 1 , 2, 3, 4, 5, 6 */
23         0x00,            VK_KANJI,      '1',            '2',            '3',            '4',            '5',            '6',            // +0x00        
24         /* 7, 8, 9, 0, - , ^, \|, BS */
25         '7',            '8',            '9',            '0',            0xbd,           0xde,           0xdc,           VK_BACK,        // +0x08
26         /* TAB, Q, W, E, R, T, Y, U */
27         VK_TAB,         'Q',            'W',            'E',            'R',            'T',            'Y',            'U',            // +0x10
28         /* I, O, P, @, [, [RET], A, S */
29         'I',            'O',            'P',            VK_OEM_3,       VK_OEM_4,       VK_RETURN,      'A',            'S',            //+0x18
30         /* D, F, G, H, J, K, L, ; */
31         'D',            'F',            'G',            'H',            'J',            'K',            'L',            VK_OEM_PLUS,            // +0x20
32         /* :, ], Z, X, C, V, B, N */
33         VK_OEM_1,       VK_OEM_6,       'Z',            'X',            'C',            'V',            'B',            'N',            // +0x28
34         /* M, , , ., / , \, RSPACE=Henkan , * , / */
35         'M',            VK_OEM_COMMA,   VK_OEM_PERIOD,  VK_OEM_2,       VK_OEM_102,     VK_CONVERT,     VK_MULTIPLY,    VK_DIVIDE,      // +0x30
36 #if defined(_MSC_VER) || defined(Q_OS_WIN)
37         /* + , - , 7, 8, 9, = = RWIN or Scroll Lock (Windows), 4, 5 */
38         VK_ADD,         VK_SUBTRACT,    VK_NUMPAD7,     VK_NUMPAD8,     VK_NUMPAD9,     VK_SCROLL,      VK_NUMPAD4,     VK_NUMPAD5,     // +0x38
39 #else
40         VK_ADD,         VK_SUBTRACT,    VK_NUMPAD7,     VK_NUMPAD8,     VK_NUMPAD9,     VK_RWIN,        VK_NUMPAD4,     VK_NUMPAD5,     // +0x38
41 #endif
42         /* 6, NUMPADCOMMA=RMENU , 1, 2, 3, NUMPADENTER=RETURN,0, . */
43         VK_NUMPAD6,     VK_RMENU,       VK_NUMPAD1,     VK_NUMPAD2,     VK_NUMPAD3,     VK_OEM_CSP_KPRET,       VK_NUMPAD0,     VK_DECIMAL,     // +0x40
44         /* INS, EL, CLS, DEL, DUP, ↑, HOME,← */
45         VK_INSERT,      VK_PRIOR,       VK_NEXT,        VK_DELETE,      VK_END,         VK_UP,          VK_HOME,        VK_LEFT,        // +0x48
46         /* ↓, →, LCTRL, LSHIFT or SHIFT (Winwdows), RSHIFT, CAPS, Graph=LWIN or ALT (WIndows), Lspace=Muhenkan */
47 #if defined(_MSC_VER) || defined(Q_OS_WIN)
48         VK_DOWN,        VK_RIGHT,       VK_CONTROL,     VK_LSHIFT,      VK_RSHIFT,      VK_CAPITAL,     VK_LMENU,       VK_NONCONVERT,  // +0x50
49 #else   
50         VK_DOWN,        VK_RIGHT,       VK_CONTROL,     VK_LSHIFT,      VK_RSHIFT,      VK_CAPITAL,     VK_LWIN,        VK_NONCONVERT,  // +0x50
51 #endif
52         /* Cspace=Space, *Unknown*, KANA, *Unknown* , ESC(Break), F1, F2, F3 */
53         VK_SPACE,       0x00,           0x15,           0x00,           VK_ESCAPE,      VK_F1,          VK_F2,  VK_F3,  // +0x58
54         /* F4, F5, F6, F7, F8, F9, F10 , *END* */
55         VK_F4,          VK_F5,          VK_F6,          VK_F7,          VK_F8,          VK_F9,          VK_F10,         0xffff  // +0x60
56 };
57
58 struct key_tbl_t {
59         uint16_t phy;
60         uint16_t code;
61 };
62
63 // Key tables value from XM7.
64 const key_tbl_t standard_key[] = {
65         {0x01, 0x1b},
66         {0x02, 0x31},
67         {0x03, 0x32},
68         {0x04, 0x33},
69         {0x05, 0x34},
70         {0x06, 0x35},
71         {0x07, 0x36},
72         {0x08, 0x37},
73         {0x09, 0x38},
74         {0x0a, 0x39},
75         {0x0b, 0x30},
76         {0x0c, 0x2d},
77         {0x0d, 0x5e},
78         {0x0e, 0x5c},
79         {0x0f, 0x08},
80         
81         {0x10, 0x09},
82         {0x11, 0x71},
83         {0x12, 0x77},
84         {0x13, 0x65},
85         {0x14, 0x72},
86         {0x15, 0x74},
87         {0x16, 0x79},
88         {0x17, 0x75},
89         {0x18, 0x69},
90         {0x19, 0x6f},
91         {0x1a, 0x70},
92         {0x1b, 0x40},
93         {0x1c, 0x5b},
94         {0x1d, 0x0d},
95         {0x1e, 0x61},
96         {0x1f, 0x73},
97         
98         {0x20, 0x64},
99         {0x21, 0x66},
100         {0x22, 0x67},
101         {0x23, 0x68},
102         {0x24, 0x6a},
103         {0x25, 0x6b},
104         {0x26, 0x6c},
105         {0x27, 0x3b},
106         {0x28, 0x3a},
107         {0x29, 0x5d},
108         {0x2a, 0x7a},
109         {0x2b, 0x78},
110         {0x2c, 0x63},
111         {0x2d, 0x76},
112         {0x2e, 0x62},
113         {0x2f, 0x6e},
114         
115         {0x30, 0x6d},
116         {0x31, 0x2c},
117         {0x32, 0x2e},
118         {0x33, 0x2f},
119         {0x34, 0x22},
120         {0x35, 0x20},
121         {0x36, 0x2a},
122         {0x37, 0x2f},
123         {0x38, 0x2b},
124         {0x39, 0x2d},
125         {0x3a, 0x37},
126         {0x3b, 0x38},
127         {0x3c, 0x39},
128         {0x3d, 0x3d},
129         {0x3e, 0x34},
130         {0x3f, 0x35},
131         
132         {0x40, 0x36},
133         {0x41, 0x2c},
134         {0x42, 0x31},
135         {0x43, 0x32},
136         {0x44, 0x33},
137         {0x45, 0x0d},
138         {0x46, 0x30},
139         {0x47, 0x2e},
140         {0x48, 0x12},
141         {0x49, 0x05},
142         {0x4a, 0x0c},
143         {0x4b, 0x7f},
144         {0x4c, 0x11},
145         {0x4d, 0x1e},
146         {0x4e, 0x0b},
147         {0x4f, 0x1d},
148         
149         {0x50, 0x1f},
150         {0x51, 0x1c},
151         
152         {0x57, 0x20},
153         {0x58, 0x20},
154         
155         {0x5d, 0x0101},
156         {0x5e, 0x0102},
157         {0x5f, 0x0103},
158         {0x60, 0x0104},
159         {0x61, 0x0105},
160         {0x62, 0x0106},
161         {0x63, 0x0107},
162         {0x64, 0x0108},
163         {0x65, 0x0109},
164         {0x66, 0x010a},
165         
166         {0xffff, 0xffff}
167 };
168
169 const key_tbl_t standard_shift_key[] = {
170         {0x01, 0x1b},
171         {0x02, 0x21},
172         {0x03, 0x22},
173         {0x04, 0x23},
174         {0x05, 0x24},
175         {0x06, 0x25},
176         {0x07, 0x26},
177         {0x08, 0x27},
178         {0x09, 0x28},
179         {0x0a, 0x29},
180         
181         {0x0c, 0x3d},
182         {0x0d, 0x7e},
183         {0x0e, 0x7c},
184         {0x0f, 0x08},
185         
186         {0x10, 0x09},
187         {0x11, 0x51},
188         {0x12, 0x57},
189         {0x13, 0x45},
190         {0x14, 0x52},
191         {0x15, 0x54},
192         {0x16, 0x59},
193         {0x17, 0x55},
194         {0x18, 0x49},
195         {0x19, 0x4f},
196         {0x1a, 0x50},
197         {0x1b, 0x60},
198         {0x1c, 0x7b},
199         {0x1d, 0x0d},
200         {0x1e, 0x41},
201         {0x1f, 0x53},
202         
203         {0x20, 0x44},
204         {0x21, 0x46},
205         {0x22, 0x47},
206         {0x23, 0x48},
207         {0x24, 0x4a},
208         {0x25, 0x4b},
209         {0x26, 0x4c},
210         {0x27, 0x2b},
211         {0x28, 0x2a},
212         {0x29, 0x7d},
213         {0x2a, 0x5a},
214         {0x2b, 0x58},
215         {0x2c, 0x43},
216         {0x2d, 0x56},
217         {0x2e, 0x42},
218         {0x2f, 0x4e},
219         
220         {0x30, 0x4d},
221         {0x31, 0x3c},
222         {0x32, 0x3e},
223         {0x33, 0x3f},
224         {0x34, 0x5f},
225         {0x35, 0x20},
226         {0x36, 0x2a},
227         {0x37, 0x2f},
228         {0x38, 0x2b},
229         {0x39, 0x2d},
230         {0x3a, 0x37},
231         {0x3b, 0x38},
232         {0x3c, 0x39},
233         {0x3d, 0x3d},
234         {0x3e, 0x34},
235         {0x3f, 0x35},
236
237         {0x40, 0x36},
238         {0x41, 0x2c},
239         {0x42, 0x31},
240         {0x43, 0x32},
241         {0x44, 0x33},
242         {0x45, 0x0d},
243         {0x46, 0x30},
244         {0x47, 0x2e},
245         {0x48, 0x12},
246         {0x49, 0x05},
247         {0x4a, 0x0c},
248         {0x4b, 0x7f},
249         {0x4c, 0x11},
250         {0x4d, 0x19},
251         {0x4e, 0x0b},
252         {0x4f, 0x02},
253         
254         {0x50, 0x1a},
255         {0x51, 0x06},
256
257         {0x57, 0x20},
258         {0x58, 0x20},
259         {0xffff, 0xffff}
260 };
261
262 const struct key_tbl_t ctrl_key[] = {
263         {0x0c, 0x1e},
264         {0x0d, 0x1c},
265         
266         {0x11, 0x11},
267         {0x12, 0x17},
268         {0x13, 0x05},
269         {0x14, 0x12},
270         {0x15, 0x14},
271         {0x16, 0x19},
272         {0x17, 0x15},
273         {0x18, 0x09},
274         {0x19, 0x0f}, // 09
275         {0x1a, 0x10},
276         {0x1b, 0x00},
277         {0x1c, 0x1b},
278         {0x1e, 0x01},
279         {0x1f, 0x13},
280         
281         {0x20, 0x04},
282         {0x21, 0x06},
283         {0x22, 0x07},
284         {0x23, 0x08},
285         {0x24, 0x0a},
286         {0x25, 0x0b},
287         {0x26, 0x0c},
288         {0x29, 0x1d},
289         {0x2a, 0x1a},
290         {0x2b, 0x18},
291         {0x2c, 0x03},
292         {0x2d, 0x16},
293         {0x2e, 0x02},
294         {0x2f, 0x0e},
295   
296         {0x30, 0x0d},
297         
298         {0x34, 0x1f},
299         {0xffff, 0xffff}
300 };
301
302 const struct key_tbl_t ctrl_shift_key[] = {
303         {0x0c, 0x1e},
304         {0x0d, 0x1c},
305         
306         {0x11, 0x11},
307         {0x12, 0x17},
308         {0x13, 0x05},
309         {0x14, 0x12},
310         {0x15, 0x14},
311         {0x16, 0x19},
312         {0x17, 0x15},
313         {0x18, 0x09},
314         {0x19, 0x09},
315         {0x1a, 0x10},
316         {0x1b, 0x00},
317         {0x1c, 0x1b},
318         {0x1e, 0x01},
319         {0x1f, 0x13},
320   
321         {0x20, 0x04},
322         {0x21, 0x06},
323         {0x22, 0x07},
324         {0x23, 0x08},
325         {0x24, 0x0a},
326         {0x25, 0x0b},
327         {0x26, 0x0c},
328         {0x29, 0x1d},
329         {0x2a, 0x1a},
330         {0x2b, 0x18},
331         {0x2c, 0x03},
332         {0x2d, 0x16},
333         {0x2e, 0x02},
334         {0x2f, 0x0e},
335   
336         {0x30, 0x0d},
337         
338         {0x34, 0x1f},
339         {0xffff, 0xffff}
340 };
341
342 const struct key_tbl_t graph_key[] = {
343         {0x01, 0x1b},
344         {0x02, 0xf9},
345         {0x03, 0xfa},
346         {0x04, 0xfb},
347         {0x05, 0xfc},
348         {0x06, 0xf2},
349         {0x07, 0xf3},
350         {0x08, 0xf4},
351         {0x09, 0xf5},
352         {0x0a, 0xf6},
353         {0x0b, 0xf7},
354         {0x0c, 0x8c},
355         {0x0d, 0x8b},
356         {0x0e, 0xf1},
357         {0x0f, 0x08},
358         
359         {0x10, 0x09},
360         {0x11, 0xfd},
361         {0x12, 0xf8},
362         {0x13, 0xe4},
363         {0x14, 0xe5},
364         {0x15, 0x9c},
365         {0x16, 0x9d},
366         {0x17, 0xf0},
367         {0x18, 0xe8},
368         {0x19, 0xe9},
369         {0x1a, 0x8d},
370         {0x1b, 0x8a},
371         {0x1c, 0xed},
372         {0x1d, 0x0d},
373         {0x1e, 0x95},
374         {0x1f, 0x96},
375   
376         {0x20, 0xe6},
377         {0x21, 0xe7},
378         {0x22, 0x9e},
379         {0x23, 0x9f},
380         {0x24, 0xea},
381         {0x25, 0xeb},
382         {0x26, 0x8e},
383         {0x27, 0x99},
384         {0x28, 0x94},
385         {0x29, 0xec},
386         {0x2a, 0x80},
387         {0x2b, 0x81},
388         {0x2c, 0x82},
389         {0x2d, 0x83},
390         {0x2e, 0x84},
391         {0x2f, 0x85},
392         
393         {0x30, 0x86},
394         {0x31, 0x87},
395         {0x32, 0x88},
396         {0x33, 0x97},
397         {0x34, 0xe0},
398         {0x35, 0x20},
399         {0x36, 0x98},
400         {0x37, 0x91},
401         {0x38, 0x99},
402         {0x39, 0xee},
403         {0x3a, 0xe1},
404         {0x3b, 0xe2},
405         {0x3c, 0xe3},
406         {0x3d, 0xef},
407         {0x3e, 0x93},
408         {0x3f, 0x8f},
409
410         {0x40, 0x92}, 
411         
412         {0x42, 0x9a},
413         {0x43, 0x90},
414         {0x44, 0x9b},
415         {0x45, 0x0d},
416         {0x48, 0x12},
417         {0x49, 0x05},
418         {0x4a, 0x0c},
419         {0x4b, 0x7f},
420         {0x4c, 0x11},
421         {0x4d, 0x1e},
422         {0x4e, 0x0b},
423         {0x4f, 0x1d},
424   
425         {0x50, 0x1f},
426         {0x51, 0x1c},
427
428         {0x57, 0x20},
429         {0x58, 0x20},
430         /* Belows is none when shift */
431         {0x5d, 0x101},
432         {0x5e, 0x102},
433         {0x5f, 0x103},
434         {0x60, 0x104},
435         {0x61, 0x105},
436         {0x62, 0x106},
437         {0x63, 0x107},
438         {0x64, 0x108},
439         {0x65, 0x109},
440         {0x66, 0x10a},
441         {0xffff, 0xffff}
442 };
443 const struct key_tbl_t graph_shift_key[] = {
444         {0x01, 0x1b},
445         {0x02, 0xf9},
446         {0x03, 0xfa},
447         {0x04, 0xfb},
448         {0x05, 0xfc},
449         {0x06, 0xf2},
450         {0x07, 0xf3},
451         {0x08, 0xf4},
452         {0x09, 0xf5},
453         {0x0a, 0xf6},
454         {0x0b, 0xf7},
455         {0x0c, 0x8c},
456         {0x0d, 0x8b},
457         {0x0e, 0xf1},
458         {0x0f, 0x08},
459
460         {0x10, 0x09},
461         {0x11, 0xfd},
462         {0x12, 0xf8},
463         {0x13, 0xe4},
464         {0x14, 0xe5},
465         {0x15, 0x9c},
466         {0x16, 0x9d},
467         {0x17, 0xf0},
468         {0x18, 0xe8},
469         {0x19, 0xe9},
470         {0x1a, 0x8d},
471         {0x1b, 0x8a},
472         {0x1c, 0xed},
473         {0x1d, 0x0d},
474         {0x1e, 0x95},
475         {0x1f, 0x96},
476   
477         {0x20, 0xe6},
478         {0x21, 0xe7},
479         {0x22, 0x9e},
480         {0x23, 0x9f},
481         {0x24, 0xea},
482         {0x25, 0xeb},
483         {0x26, 0x8e},
484         {0x27, 0x99},
485         {0x28, 0x94},
486         {0x29, 0xec},
487         {0x2a, 0x80},
488         {0x2b, 0x81},
489         {0x2c, 0x82},
490         {0x2d, 0x83},
491         {0x2e, 0x84},
492         {0x2f, 0x85},
493   
494         {0x30, 0x86},
495         {0x31, 0x87},
496         {0x32, 0x88},
497         {0x33, 0x97},
498         {0x34, 0xe0},
499         {0x35, 0x20},
500         {0x36, 0x98},
501         {0x37, 0x91},
502         {0x38, 0x99},
503         {0x39, 0xee},
504         {0x3a, 0xe1},
505         {0x3b, 0xe2},
506         {0x3c, 0xe3},
507         {0x3d, 0xef},
508         {0x3e, 0x93},
509         {0x3f, 0x8f},
510
511         {0x40, 0x92}, 
512         
513         {0x42, 0x9a},
514         {0x43, 0x90},
515         {0x44, 0x9b},
516         {0x45, 0x0d},
517         
518         {0x48, 0x12},
519         {0x49, 0x05},
520         {0x4a, 0x0c},
521         {0x4b, 0x7f},
522         {0x4c, 0x11},
523         {0x4d, 0x19},
524         {0x4e, 0x0b},
525         {0x4f, 0x02},
526   
527         {0x50, 0x1a},
528         {0x51, 0x06},
529         
530         {0x57, 0x20},
531         {0x58, 0x20},
532         {0xffff, 0xffff}
533 };
534
535 const struct key_tbl_t kana_key[] = {
536         {0x01, 0x1b},
537         {0x02, 0xc7},
538         {0x03, 0xcc},
539         {0x04, 0xb1},
540         {0x05, 0xb3},
541         {0x06, 0xb4},
542         {0x07, 0xb5},
543         {0x08, 0xd4},
544         {0x09, 0xd5},
545         {0x0a, 0xd6},
546         {0x0b, 0xdc},
547         {0x0c, 0xce},
548         {0x0d, 0xcd},
549         {0x0e, 0xb0},
550         {0x0f, 0x08},
551         
552         {0x10, 0x09},
553         {0x11, 0xc0},
554         {0x12, 0xc3},
555         {0x13, 0xb2},
556         {0x14, 0xbd},
557         {0x15, 0xb6},
558         {0x16, 0xdd},
559         {0x17, 0xc5},
560         {0x18, 0xc6},
561         {0x19, 0xd7},
562         {0x1a, 0xbe},
563         {0x1b, 0xde},
564         {0x1c, 0xdf},
565         {0x1d, 0x0d},
566         {0x1e, 0xc1},
567         {0x1f, 0xc4},
568         
569         {0x20, 0xbc},
570         {0x21, 0xca},
571         {0x22, 0xb7},
572         {0x23, 0xb8},
573         {0x24, 0xcf},
574         {0x25, 0xc9},
575         {0x26, 0xd8},
576         {0x27, 0xda},
577         {0x28, 0xb9},
578         {0x29, 0xd1},
579         {0x2a, 0xc2},
580         {0x2b, 0xbb},
581         {0x2c, 0xbf},
582         {0x2d, 0xcb},
583         {0x2e, 0xba},
584         {0x2f, 0xd0},
585                   
586         {0x30, 0xd3},
587         {0x31, 0xc8},
588         {0x32, 0xd9},
589         {0x33, 0xd2},
590         {0x34, 0xdb},
591         {0x35, 0x20},
592         {0x36, 0x2a},
593         {0x37, 0x2f},
594         {0x38, 0x2b},
595         {0x39, 0x2d},
596         {0x3a, 0x37},
597         {0x3b, 0x38},
598         {0x3c, 0x39},
599         {0x3d, 0x3d},
600         {0x3e, 0x34},
601         {0x3f, 0x35},
602                   
603         {0x40, 0x36},
604         {0x41, 0x2c},
605         {0x42, 0x31},
606         {0x43, 0x32},
607         {0x44, 0x33},
608         {0x45, 0x0d},
609         {0x46, 0x30},
610         {0x47, 0x2e},
611   
612         {0x48, 0x12},
613         {0x49, 0x05},
614         {0x4a, 0x0c},
615         {0x4b, 0x7f},
616         {0x4c, 0x11},
617         {0x4d, 0x1e},
618         
619         {0x4e, 0x0b},
620         {0x4f, 0x1d},
621         {0x50, 0x1f},
622         {0x51, 0x1c},
623         
624         
625         {0x57, 0x20},
626         {0x58, 0x20},
627         
628         {0x5d, 0x0101},
629         {0x5e, 0x0102},
630         {0x5f, 0x0103},
631         {0x60, 0x0104},
632         {0x61, 0x0105},
633         {0x62, 0x0106},
634         {0x63, 0x0107},
635         {0x64, 0x0108},
636         {0x65, 0x0109},
637         {0x66, 0x010a},
638
639         {0xffff, 0xffff}
640 };
641
642 const struct key_tbl_t kana_shift_key[] = {
643         {0x01, 0x1b},
644         {0x04, 0xa7},
645         {0x05, 0xa9},
646         {0x06, 0xaa},
647         {0x07, 0xab},
648         {0x08, 0xac},
649         {0x09, 0xad},
650         {0x0a, 0xae},
651         {0x0b, 0xa6},
652         {0x0f, 0x08},
653         
654         {0x10, 0x09},
655         {0x13, 0xa8},
656         {0x1c, 0xa2},
657         {0x1d, 0x0d},
658         
659         {0x29, 0xa3},
660         {0x2a, 0xaf},
661         
662         {0x31, 0xa4},
663         {0x32, 0xa1},
664         {0x33, 0xa5},
665         
666         {0x35, 0x20},
667         {0x36, 0x2a},
668         {0x37, 0x2f},
669         {0x38, 0x2b},
670         {0x39, 0x2d},
671         {0x3a, 0x37},
672         {0x3b, 0x38},
673         {0x3c, 0x39},
674         {0x3d, 0x3d},
675         {0x3e, 0x34},
676         {0x3f, 0x35},
677         
678         {0x40, 0x36},
679         {0x41, 0x2c},
680         {0x42, 0x31},
681         {0x43, 0x32},
682         {0x44, 0x33},
683         {0x45, 0x0d},
684         {0x46, 0x30},
685         {0x47, 0x2e},
686   
687         {0x48, 0x12},
688         {0x49, 0x05},
689         {0x4a, 0x0c},
690         {0x4b, 0x7f},
691         {0x4c, 0x11},
692         {0x4d, 0x19},
693
694         {0x4e, 0x0b},
695         {0x4f, 0x02},
696         {0x50, 0x1a},
697         {0x51, 0x06},
698         
699         {0x57, 0x20},
700         {0x58, 0x20},
701
702         {0xffff, 0xffff}
703 };
704
705 #if defined(_FM77AV_VARIANTS)
706 const key_tbl_t standard_key_16beta[] = {
707         {0x01, 0x1b},
708         {0x02, 0x31},
709         {0x03, 0x32},
710         {0x04, 0x33},
711         {0x05, 0x34},
712         {0x06, 0x35},
713         {0x07, 0x36},
714         {0x08, 0x37},
715         {0x09, 0x38},
716         {0x0a, 0x39},
717         {0x0b, 0x30},
718         {0x0c, 0x2d},
719         {0x0d, 0x5e},
720         {0x0e, 0x5c},
721         {0x0f, 0x08},
722         
723         {0x10, 0x09},
724         {0x11, 0x71},
725         {0x12, 0x77},
726         {0x13, 0x65},
727         {0x14, 0x72},
728         {0x15, 0x74},
729         {0x16, 0x79},
730         {0x17, 0x75},
731         {0x18, 0x69},
732         {0x19, 0x6f},
733         {0x1a, 0x70},
734         {0x1b, 0x40},
735         {0x1c, 0x5b},
736         {0x1d, 0x0d},
737         {0x1e, 0x61},
738         {0x1f, 0x73},
739         
740         {0x20, 0x64},
741         {0x21, 0x66},
742         {0x22, 0x67},
743         {0x23, 0x68},
744         {0x24, 0x6a},
745         {0x25, 0x6b},
746         {0x26, 0x6c},
747         {0x27, 0x3b},
748         {0x28, 0x3a},
749         {0x29, 0x5d},
750         {0x2a, 0x7a},
751         {0x2b, 0x78},
752         {0x2c, 0x63},
753         {0x2d, 0x76},
754         {0x2e, 0x62},
755         {0x2f, 0x6e},
756         
757         {0x30, 0x6d},
758         {0x31, 0x2c},
759         {0x32, 0x2e},
760         {0x33, 0x2f},
761         {0x34, 0x22},
762         {0x35, 0x20},
763         {0x36, 0x2a},
764         {0x37, 0x2f},
765         {0x38, 0x2b},
766         {0x39, 0x2d},
767         {0x3a, 0x37},
768         {0x3b, 0x38},
769         {0x3c, 0x39},
770         {0x3d, 0x3d},
771         {0x3e, 0x34},
772         {0x3f, 0x35},
773         
774         {0x40, 0x36},
775         {0x41, 0x2c},
776         {0x42, 0x31},
777         {0x43, 0x32},
778         {0x44, 0x33},
779         {0x45, 0x0d},
780         {0x46, 0x30},
781         {0x47, 0x2e},
782         {0x48, 0x110},
783         {0x49, 0x112},
784         {0x4a, 0x111},
785         {0x4b, 0x114},
786         {0x4c, 0x133},
787         {0x4d, 0x1e},
788         {0x4e, 0x115},
789         {0x4f, 0x118},
790         
791         {0x50, 0x117},
792         {0x51, 0x119},
793         
794         {0x57, 0x10e},
795         {0x58, 0x10d},
796         
797         {0x5d, 0x0101},
798         {0x5e, 0x0102},
799         {0x5f, 0x0103},
800         {0x60, 0x0104},
801         {0x61, 0x0105},
802         {0x62, 0x0106},
803         {0x63, 0x0107},
804         {0x64, 0x0108},
805         {0x65, 0x0109},
806         {0x66, 0x010a},
807         
808         {0xffff, 0xffff}
809 };
810
811 const key_tbl_t standard_shift_key_16beta[] = {
812         {0x01, 0x1b},
813         {0x02, 0x21},
814         {0x03, 0x22},
815         {0x04, 0x23},
816         {0x05, 0x24},
817         {0x06, 0x25},
818         {0x07, 0x26},
819         {0x08, 0x27},
820         {0x09, 0x28},
821         {0x0a, 0x29},
822         
823         {0x0c, 0x3d},
824         {0x0d, 0x7e},
825         {0x0e, 0x7c},
826         {0x0f, 0x08},
827         
828         {0x10, 0x09},
829         {0x11, 0x51},
830         {0x12, 0x57},
831         {0x13, 0x45},
832         {0x14, 0x52},
833         {0x15, 0x54},
834         {0x16, 0x59},
835         {0x17, 0x55},
836         {0x18, 0x49},
837         {0x19, 0x4f},
838         {0x1a, 0x50},
839         {0x1b, 0x60},
840         {0x1c, 0x7b},
841         {0x1d, 0x0d},
842         {0x1e, 0x41},
843         {0x1f, 0x53},
844         
845         {0x20, 0x44},
846         {0x21, 0x46},
847         {0x22, 0x47},
848         {0x23, 0x48},
849         {0x24, 0x4a},
850         {0x25, 0x4b},
851         {0x26, 0x4c},
852         {0x27, 0x2b},
853         {0x28, 0x2a},
854         {0x29, 0x7d},
855         {0x2a, 0x5a},
856         {0x2b, 0x58},
857         {0x2c, 0x43},
858         {0x2d, 0x56},
859         {0x2e, 0x42},
860         {0x2f, 0x4e},
861         
862         {0x30, 0x4d},
863         {0x31, 0x3c},
864         {0x32, 0x3e},
865         {0x33, 0x3f},
866         {0x34, 0x5f},
867         {0x35, 0x20},
868         {0x36, 0x2a},
869         {0x37, 0x2f},
870         {0x38, 0x2b},
871         {0x39, 0x2d},
872         {0x3a, 0x37},
873         {0x3b, 0x38},
874         {0x3c, 0x39},
875         {0x3d, 0x3d},
876         {0x3e, 0x34},
877         {0x3f, 0x35},
878
879         {0x40, 0x36},
880         {0x41, 0x2c},
881         {0x42, 0x31},
882         {0x43, 0x32},
883         {0x44, 0x33},
884         {0x45, 0x0d},
885         {0x46, 0x30},
886         {0x47, 0x2e},
887         {0x48, 0x130},
888         {0x49, 0x132},
889         {0x4a, 0x131},
890         {0x4b, 0x134},
891         {0x4c, 0x133},
892         {0x4d, 0x136},
893         {0x4e, 0x135},
894         {0x4f, 0x138},
895         
896         {0x50, 0x137},
897         {0x51, 0x139},
898
899         {0x57, 0x12e},
900         {0x58, 0x12d},
901         {0xffff, 0xffff}
902 };
903
904 const struct key_tbl_t ctrl_key_16beta[] = {
905         {0x0c, 0x1e},
906         {0x0d, 0x1c},
907         
908         {0x11, 0x11},
909         {0x12, 0x17},
910         {0x13, 0x05},
911         {0x14, 0x12},
912         {0x15, 0x14},
913         {0x16, 0x19},
914         {0x17, 0x15},
915         {0x18, 0x09},
916         {0x19, 0x0f}, // 09
917         {0x1a, 0x10},
918         {0x1b, 0x00},
919         {0x1c, 0x1b},
920         {0x1e, 0x01},
921         {0x1f, 0x13},
922         
923         {0x20, 0x04},
924         {0x21, 0x06},
925         {0x22, 0x07},
926         {0x23, 0x08},
927         {0x24, 0x0a},
928         {0x25, 0x0b},
929         {0x26, 0x0c},
930         {0x29, 0x1d},
931         {0x2a, 0x1a},
932         {0x2b, 0x18},
933         {0x2c, 0x03},
934         {0x2d, 0x16},
935         {0x2e, 0x02},
936         {0x2f, 0x0e},
937   
938         {0x30, 0x0d},
939         {0x34, 0x1f},
940         
941         {0x48, 0x150},
942         {0x49, 0x152},
943         {0x4a, 0x151},
944         {0x4b, 0x154},
945         {0x4c, 0x153},
946         {0x4d, 0x156},
947         {0x4e, 0x155},
948         {0x4f, 0x158},
949         
950         {0x50, 0x157},
951         {0x51, 0x159},
952
953         {0x57, 0x14e},
954         {0x58, 0x14d},
955         {0xffff, 0xffff}
956 };
957
958 const struct key_tbl_t ctrl_shift_key_16beta[] = {
959         {0x0c, 0x1e},
960         {0x0d, 0x1c},
961         
962         {0x11, 0x11},
963         {0x12, 0x17},
964         {0x13, 0x05},
965         {0x14, 0x12},
966         {0x15, 0x14},
967         {0x16, 0x19},
968         {0x17, 0x15},
969         {0x18, 0x09},
970         {0x19, 0x09},
971         {0x1a, 0x10},
972         {0x1b, 0x00},
973         {0x1c, 0x1b},
974         {0x1e, 0x01},
975         {0x1f, 0x13},
976   
977         {0x20, 0x04},
978         {0x21, 0x06},
979         {0x22, 0x07},
980         {0x23, 0x08},
981         {0x24, 0x0a},
982         {0x25, 0x0b},
983         {0x26, 0x0c},
984         {0x29, 0x1d},
985         {0x2a, 0x1a},
986         {0x2b, 0x18},
987         {0x2c, 0x03},
988         {0x2d, 0x16},
989         {0x2e, 0x02},
990         {0x2f, 0x0e},
991   
992         {0x30, 0x0d},
993         
994         {0x34, 0x1f},
995         
996         {0x48, 0x150},
997         {0x49, 0x152},
998         {0x4a, 0x151},
999         {0x4b, 0x154},
1000         {0x4c, 0x153},
1001         {0x4d, 0x156},
1002         {0x4e, 0x155},
1003         {0x4f, 0x158},
1004         
1005         {0x50, 0x157},
1006         {0x51, 0x159},
1007
1008         {0x57, 0x14e},
1009         {0x58, 0x14d},
1010         {0xffff, 0xffff}
1011 };
1012
1013 const struct key_tbl_t graph_key_16beta[] = {
1014         {0x01, 0x1b},
1015         {0x02, 0xf9},
1016         {0x03, 0xfa},
1017         {0x04, 0xfb},
1018         {0x05, 0xfc},
1019         {0x06, 0xf2},
1020         {0x07, 0xf3},
1021         {0x08, 0xf4},
1022         {0x09, 0xf5},
1023         {0x0a, 0xf6},
1024         {0x0b, 0xf7},
1025         {0x0c, 0x8c},
1026         {0x0d, 0x8b},
1027         {0x0e, 0xf1},
1028         {0x0f, 0x08},
1029         
1030         {0x10, 0x09},
1031         {0x11, 0xfd},
1032         {0x12, 0xf8},
1033         {0x13, 0xe4},
1034         {0x14, 0xe5},
1035         {0x15, 0x9c},
1036         {0x16, 0x9d},
1037         {0x17, 0xf0},
1038         {0x18, 0xe8},
1039         {0x19, 0xe9},
1040         {0x1a, 0x8d},
1041         {0x1b, 0x8a},
1042         {0x1c, 0xed},
1043         {0x1d, 0x0d},
1044         {0x1e, 0x95},
1045         {0x1f, 0x96},
1046   
1047         {0x20, 0xe6},
1048         {0x21, 0xe7},
1049         {0x22, 0x9e},
1050         {0x23, 0x9f},
1051         {0x24, 0xea},
1052         {0x25, 0xeb},
1053         {0x26, 0x8e},
1054         {0x27, 0x99},
1055         {0x28, 0x94},
1056         {0x29, 0xec},
1057         {0x2a, 0x80},
1058         {0x2b, 0x81},
1059         {0x2c, 0x82},
1060         {0x2d, 0x83},
1061         {0x2e, 0x84},
1062         {0x2f, 0x85},
1063         
1064         {0x30, 0x86},
1065         {0x31, 0x87},
1066         {0x32, 0x88},
1067         {0x33, 0x97},
1068         {0x34, 0xe0},
1069         {0x35, 0x20},
1070         {0x36, 0x98},
1071         {0x37, 0x91},
1072         {0x38, 0x99},
1073         {0x39, 0xee},
1074         {0x3a, 0xe1},
1075         {0x3b, 0xe2},
1076         {0x3c, 0xe3},
1077         {0x3d, 0xef},
1078         {0x3e, 0x93},
1079         {0x3f, 0x8f},
1080
1081         {0x40, 0x92}, 
1082         
1083         {0x42, 0x9a},
1084         {0x43, 0x90},
1085         {0x44, 0x9b},
1086         {0x45, 0x0d},
1087         {0x48, 0x110},
1088         {0x49, 0x112},
1089         {0x4a, 0x111},
1090         {0x4b, 0x114},
1091         {0x4c, 0x113},
1092         {0x4d, 0x116},
1093         {0x4e, 0x115},
1094         {0x4f, 0x118},
1095   
1096         {0x50, 0x117},
1097         {0x51, 0x119},
1098
1099         {0x57, 0x10e},
1100         {0x58, 0x10d},
1101         /* Belows is none when shift */
1102         {0x5d, 0x101},
1103         {0x5e, 0x102},
1104         {0x5f, 0x103},
1105         {0x60, 0x104},
1106         {0x61, 0x105},
1107         {0x62, 0x106},
1108         {0x63, 0x107},
1109         {0x64, 0x108},
1110         {0x65, 0x109},
1111         {0x66, 0x10a},
1112         {0xffff, 0xffff}
1113 };
1114 const struct key_tbl_t graph_shift_key_16beta[] = {
1115         {0x01, 0x1b},
1116         {0x02, 0xf9},
1117         {0x03, 0xfa},
1118         {0x04, 0xfb},
1119         {0x05, 0xfc},
1120         {0x06, 0xf2},
1121         {0x07, 0xf3},
1122         {0x08, 0xf4},
1123         {0x09, 0xf5},
1124         {0x0a, 0xf6},
1125         {0x0b, 0xf7},
1126         {0x0c, 0x8c},
1127         {0x0d, 0x8b},
1128         {0x0e, 0xf1},
1129         {0x0f, 0x08},
1130
1131         {0x10, 0x09},
1132         {0x11, 0xfd},
1133         {0x12, 0xf8},
1134         {0x13, 0xe4},
1135         {0x14, 0xe5},
1136         {0x15, 0x9c},
1137         {0x16, 0x9d},
1138         {0x17, 0xf0},
1139         {0x18, 0xe8},
1140         {0x19, 0xe9},
1141         {0x1a, 0x8d},
1142         {0x1b, 0x8a},
1143         {0x1c, 0xed},
1144         {0x1d, 0x0d},
1145         {0x1e, 0x95},
1146         {0x1f, 0x96},
1147   
1148         {0x20, 0xe6},
1149         {0x21, 0xe7},
1150         {0x22, 0x9e},
1151         {0x23, 0x9f},
1152         {0x24, 0xea},
1153         {0x25, 0xeb},
1154         {0x26, 0x8e},
1155         {0x27, 0x99},
1156         {0x28, 0x94},
1157         {0x29, 0xec},
1158         {0x2a, 0x80},
1159         {0x2b, 0x81},
1160         {0x2c, 0x82},
1161         {0x2d, 0x83},
1162         {0x2e, 0x84},
1163         {0x2f, 0x85},
1164   
1165         {0x30, 0x86},
1166         {0x31, 0x87},
1167         {0x32, 0x88},
1168         {0x33, 0x97},
1169         {0x34, 0xe0},
1170         {0x35, 0x20},
1171         {0x36, 0x98},
1172         {0x37, 0x91},
1173         {0x38, 0x99},
1174         {0x39, 0xee},
1175         {0x3a, 0xe1},
1176         {0x3b, 0xe2},
1177         {0x3c, 0xe3},
1178         {0x3d, 0xef},
1179         {0x3e, 0x93},
1180         {0x3f, 0x8f},
1181
1182         {0x40, 0x92}, 
1183         
1184         {0x42, 0x9a},
1185         {0x43, 0x90},
1186         {0x44, 0x9b},
1187         {0x45, 0x0d},
1188         
1189         {0x48, 0x130},
1190         {0x49, 0x132},
1191         {0x4a, 0x131},
1192         {0x4b, 0x134},
1193         {0x4c, 0x133},
1194         {0x4d, 0x136},
1195         {0x4e, 0x135},
1196         {0x4f, 0x138},
1197   
1198         {0x50, 0x137},
1199         {0x51, 0x139},
1200
1201         {0x57, 0x12e},
1202         {0x58, 0x12d},
1203         {0xffff, 0xffff}
1204 };
1205
1206 const struct key_tbl_t kana_key_16beta[] = {
1207         {0x01, 0x1b},
1208         {0x02, 0xc7},
1209         {0x03, 0xcc},
1210         {0x04, 0xb1},
1211         {0x05, 0xb3},
1212         {0x06, 0xb4},
1213         {0x07, 0xb5},
1214         {0x08, 0xd4},
1215         {0x09, 0xd5},
1216         {0x0a, 0xd6},
1217         {0x0b, 0xdc},
1218         {0x0c, 0xce},
1219         {0x0d, 0xcd},
1220         {0x0e, 0xb0},
1221         {0x0f, 0x08},
1222         
1223         {0x10, 0x09},
1224         {0x11, 0xc0},
1225         {0x12, 0xc3},
1226         {0x13, 0xb2},
1227         {0x14, 0xbd},
1228         {0x15, 0xb6},
1229         {0x16, 0xdd},
1230         {0x17, 0xc5},
1231         {0x18, 0xc6},
1232         {0x19, 0xd7},
1233         {0x1a, 0xbe},
1234         {0x1b, 0xde},
1235         {0x1c, 0xdf},
1236         {0x1d, 0x0d},
1237         {0x1e, 0xc1},
1238         {0x1f, 0xc4},
1239         
1240         {0x20, 0xbc},
1241         {0x21, 0xca},
1242         {0x22, 0xb7},
1243         {0x23, 0xb8},
1244         {0x24, 0xcf},
1245         {0x25, 0xc9},
1246         {0x26, 0xd8},
1247         {0x27, 0xda},
1248         {0x28, 0xb9},
1249         {0x29, 0xd1},
1250         {0x2a, 0xc2},
1251         {0x2b, 0xbb},
1252         {0x2c, 0xbf},
1253         {0x2d, 0xcb},
1254         {0x2e, 0xba},
1255         {0x2f, 0xd0},
1256                   
1257         {0x30, 0xd3},
1258         {0x31, 0xc8},
1259         {0x32, 0xd9},
1260         {0x33, 0xd2},
1261         {0x34, 0xdb},
1262         {0x35, 0x20},
1263         {0x36, 0x2a},
1264         {0x37, 0x2f},
1265         {0x38, 0x2b},
1266         {0x39, 0x2d},
1267         {0x3a, 0x37},
1268         {0x3b, 0x38},
1269         {0x3c, 0x39},
1270         {0x3d, 0x3d},
1271         {0x3e, 0x34},
1272         {0x3f, 0x35},
1273                   
1274         {0x40, 0x36},
1275         {0x41, 0x2c},
1276         {0x42, 0x31},
1277         {0x43, 0x32},
1278         {0x44, 0x33},
1279         {0x45, 0x0d},
1280         {0x46, 0x30},
1281         {0x47, 0x2e},
1282   
1283         {0x48, 0x110},
1284         {0x49, 0x112},
1285         {0x4a, 0x111},
1286         {0x4b, 0x114},
1287         {0x4c, 0x113},
1288         {0x4d, 0x116},
1289         {0x4e, 0x115},
1290         {0x4f, 0x118},
1291         
1292         {0x50, 0x117},
1293         {0x51, 0x119},
1294         {0x57, 0x10e},
1295         {0x58, 0x10d},
1296         
1297         {0x5d, 0x0101},
1298         {0x5e, 0x0102},
1299         {0x5f, 0x0103},
1300         {0x60, 0x0104},
1301         {0x61, 0x0105},
1302         {0x62, 0x0106},
1303         {0x63, 0x0107},
1304         {0x64, 0x0108},
1305         {0x65, 0x0109},
1306         {0x66, 0x010a},
1307
1308         {0xffff, 0xffff}
1309 };
1310
1311 const struct key_tbl_t kana_shift_key_16beta[] = {
1312         {0x01, 0x1b},
1313         {0x04, 0xa7},
1314         {0x05, 0xa9},
1315         {0x06, 0xaa},
1316         {0x07, 0xab},
1317         {0x08, 0xac},
1318         {0x09, 0xad},
1319         {0x0a, 0xae},
1320         {0x0b, 0xa6},
1321         {0x0f, 0x08},
1322         
1323         {0x10, 0x09},
1324         {0x13, 0xa8},
1325         {0x1c, 0xa2},
1326         {0x1d, 0x0d},
1327         
1328         {0x29, 0xa3},
1329         {0x2a, 0xaf},
1330         
1331         {0x31, 0xa4},
1332         {0x32, 0xa1},
1333         {0x33, 0xa5},
1334         
1335         {0x35, 0x20},
1336         {0x36, 0x2a},
1337         {0x37, 0x2f},
1338         {0x38, 0x2b},
1339         {0x39, 0x2d},
1340         {0x3a, 0x37},
1341         {0x3b, 0x38},
1342         {0x3c, 0x39},
1343         {0x3d, 0x3d},
1344         {0x3e, 0x34},
1345         {0x3f, 0x35},
1346         
1347         {0x40, 0x36},
1348         {0x41, 0x2c},
1349         {0x42, 0x31},
1350         {0x43, 0x32},
1351         {0x44, 0x33},
1352         {0x45, 0x0d},
1353         {0x46, 0x30},
1354         {0x47, 0x2e},
1355   
1356         {0x48, 0x110},
1357         {0x49, 0x112},
1358         {0x4a, 0x111},
1359         {0x4b, 0x114},
1360         {0x4c, 0x113},
1361         {0x4d, 0x116},
1362         {0x4e, 0x115},
1363         {0x4f, 0x118},
1364
1365         {0x50, 0x117},
1366         {0x51, 0x119},
1367         {0x57, 0x10e},
1368         {0x58, 0x10d},
1369         
1370         {0xffff, 0xffff}
1371 };
1372 #endif // _FM77AV_VARIANTS
1373 }
1374
1375 #endif // _FM7_KEYBOARD_TABLES_H