OSDN Git Service

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