1 /* Hey EMACS -*- linux-c -*- */
2 /* $Id$ */
3 
4 /*  libticalcs - Ti Calculator library, a part of the TiLP project
5  *  Copyright (C) 1999-2005  Romain Li�vin
6  *
7  *  This program is free software; you can redistribute it and/or modify
8  *  it under the terms of the GNU General Public License as published by
9  *  the Free Software Foundation; either version 2 of the License, or
10  *  (at your option) any later version.
11  *
12  *  This program is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *  GNU General Public License for more details.
16  *
17  *  You should have received a copy of the GNU General Public License
18  *  along with this program; if not, write to the Free Software Foundation,
19  *  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21 
22 #include "ticalcs.h"
23 
24 /*
25   Conversion of an PC scancode into an TI scancode.
26   This array use UniCode character set on PC side (16 bits chars) as an index.
27   The TI character set is the same as PC one from 0x00 to 0x7F and from 0xC0 to 0xFF.
28 
29   These codes can be found in the section B of the french manual
30   From 0x00 to 0xff, Unicode codes.
31   From 0x0100, I have put proprietary TI scancodes.
32 
33   The array can be used in reverse order too, at least for the first column...
34 */
35 const OldCalcKeys_ TI92P_KEYS[] =
36 {
37 /* 0x00, 0-15 */
38   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
39   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
40   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
41   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
42   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
43   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
44   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
45   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
46   {"<-", "BS", 257, "BS", 257, "INS", 4353, "DEL", 8449, "", 0},
47   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
48   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
49   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
50   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
51   {"ENTER", "CR", 13, "CR", 13, "APPROX", 8205, "ENTRY", 4109, "",
52    0},
53   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
54   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
55 /* 0x10, 16-31 */
56   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
57   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
58   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
59   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
60   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
61   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
62   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
63   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
64   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
65   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
66   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
67   {"ESC", "ESC", 264, "ESC", 264, "QUIT", 4360, "", 8456, "", 0},
68   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
69   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
70   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
71   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
72 /* 0x20, 32-47 */
73   {"SPACE", "", 32, "", 32, "", 32, "", 8224, "", 0},
74   {"!", "!", 33, "", 0, "", 0, "", 0, "", 0},
75   {"\"", "\"", 34, "", 0, "", 0, "", 0, "", 0},
76   {"#", "#", 35, "", 0, "", 0, "", 0, "", 0},
77   {"$", "$", 36, "", 0, "", 0, "", 0, "", 0},
78   {"%", "%", 37, "", 0, "", 0, "", 0, "", 0},
79   {"&", "&", 38, "", 0, "", 0, "", 0, "", 0},
80   {"'", "'", 39, "", 0, "", 0, "", 0, "", 0},
81   {"(", "(", 40, "(", 40, "{", 123, "", 8232, "", 0},
82   {")", ")", 41, ")", 41, "}", 125, "", 8233, "", 0},
83   {"*", "*", 42, "*", 42, "\214", 4138, "", 8234, "", 0},
84   {"+", "+", 43, "+", 43, "CHAR", 4139, "Contrast+", 0, "", 0},
85   {",", ",", 44, ",", 44, "[", 91, "", 8236, "", 0},
86   {"-", "-", 45, "-", 45, "VAR-LINK", 4141, "Contrast-", 0, "", 0},
87   {".", ".", 46, ".", 46, ">", 62, "", 8238, "", 0},
88   {"/", "/", 47, "/", 47, "]", 93, "", 8239, "", 0},
89 /* 0x30, 48-63 */
90   {"0", "0", 48, "0", 48, "<", 60, "", 8240, "", 0},
91   {"1", "1", 49, "1", 49, "E", 149, "", 8241, "", 0},
92   {"2", "2", 50, "2", 50, "CATALOG", 4146, "", 8242, "", 0},
93   {"3", "3", 51, "3", 51, "CUSTOM", 4147, "", 8243, "", 0},
94   {"4", "4", 52, "4", 52, "\132", 4148, "", 8244, "", 0},
95   {"5", "5", 53, "5", 53, "MATH", 4149, "", 8245, "", 0},
96   {"6", "6", 54, "6", 54, "MEM", 4150, "", 8246, "", 0},
97   {"7", "7", 55, "7", 55, "VAR-LINK", 4151, "", 8247, "", 0},
98   {"8", "8", 56, "8", 56, "\189", 4152, "", 8248, "", 0},
99   {"9", "9", 57, "9", 57, "\133", 4153, "", 8249, "", 0},
100   {":", ":", 58, "", 0, "", 0, "", 0, "", 0},
101   {";", ";", 59, "", 0, "", 0, "", 0, "", 0},
102   {"<", "<", 60, "", 0, "", 0, "", 0, "", 0},
103   {"=", "=", 61, "=", 61, "\\", 92, "", 8253, "", 0},
104   {">", ">", 62, "", 0, "", 0, "", 0, "", 0},
105   {"?", "?", 63, "", 0, "", 0, "", 0, "", 0},
106 /* 0x40, 64-79 */
107   {"@", "@", 64, "", 0, "", 0, "", 0, "", 0},
108   {"A", "A", 65, "A", 65, "Table3", 0, "", 8257, "", 0},
109   {"B", "B", 66, "B", 66, "'", 39, "", 8258, "", 0},
110   {"C", "C", 67, "C", 67, "Table4", 0, "COPY", 8259, "", 0},
111   {"D", "D", 68, "D", 68, "\176", 176, "", 8260, "", 0},
112   {"E", "E", 69, "E", 69, "Table5", 0, "WINDOW", 8261, "", 0},
113   {"F", "F", 70, "F", 70, "\208", 159, "FORMAT", 8262, "", 0},
114   {"G", "G", 71, "G", 71, "Table6", 0, "", 8263, "", 0},
115   {"H", "H", 72, "H", 72, "&", 38, "", 8264, "", 0},
116   {"I", "I", 73, "I", 73, "\151", 151, "", 8265, "", 0},
117   {"J", "J", 74, "J", 74, "\165", 190, "", 8266, "", 0},
118   {"K", "K", 75, "K", 75, "|", 124, "", 8267, "", 0},
119   {"L", "L", 76, "L", 76, "\"", 34, "", 8268, "", 0},
120   {"M", "M", 77, "M", 77, ";", 59, "", 8269, "", 0},
121   {"N", "N", 78, "N", 78, "Table7", 0, "NEW", 8270, "", 0},
122   {"O", "O", 79, "O", 79, "Table8", 0, "OPEN", 8271, "", 0},
123 /* 0x50, 80-95 */
124   {"P", "P", 80, "P", 80, "_", 95, "", 8272, "", 0},
125   {"Q", "Q", 81, "Q", 81, "?", 63, "HOME", 8273, "", 0},
126   {"R", "R", 82, "R", 82, "@", 64, "GRAPH", 8274, "", 0},
127   {"S", "S", 83, "S", 83, "\223", 223, "SAVE", 8275, "", 0},
128   {"T", "T", 84, "T", 84, "#", 35, "TblSet", 8276, "", 0},
129   {"U", "U", 85, "U", 85, "Table9", 0, "", 8277, "", 0},
130   {"V", "V", 86, "V", 86, "\157", 157, "PASTE", 8278, "", 0},
131   {"W", "W", 87, "W", 87, "!", 33, "Y=", 8279, "", 0},
132   {"X", "X", 88, "X", 88, "\169", 169, "CUT", 8280, "", 0},
133   {"Y", "Y", 89, "Y", 89, "\18", 18, "TABLE", 8281, "", 0},
134   {"Z", "Z", 90, "Z", 90, "CapsLock", 0, "", 8282, "", 0},
135   {"[", "[", 91, "", 0, "", 0, "", 0, "", 0},
136   {"\\", "\\", 92, "", 0, "", 0, "", 0, "", 0},
137   {"]", "]", 93, "", 0, "", 0, "", 0, "", 0},
138   {"^", "^", 94, "^", 94, "\140", 140, "", 8286, "", 0},
139   {"_", "_", 95, "", 0, "", 0, "", 0, "", 0},
140 /* 0x60, 96-111 */
141   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
142   {"a", "a", 97, "A", 65, "Table3", 0, "", 8257, "", 0},
143   {"b", "b", 98, "B", 66, "'", 39, "", 8258, "", 0},
144   {"c", "c", 99, "C", 67, "Table4", 0, "COPY", 8259, "", 0},
145   {"d", "d", 100, "D", 68, "\176", 176, "", 8260, "", 0},
146   {"e", "e", 101, "E", 69, "Table5", 0, "WINDOW", 8261, "", 0},
147   {"f", "f", 102, "F", 70, "\208", 159, "FORMAT", 8262, "", 0},
148   {"g", "g", 103, "G", 71, "Table6", 0, "", 8263, "", 0},
149   {"h", "h", 104, "H", 72, "&", 38, "", 8264, "", 0},
150   {"i", "i", 105, "I", 73, "\151", 151, "", 8265, "", 0},
151   {"j", "j", 106, "J", 74, "\165", 190, "", 8266, "", 0},
152   {"k", "k", 107, "K", 75, "|", 124, "", 8267, "", 0},
153   {"l", "l", 108, "L", 76, "\"", 34, "", 8268, "", 0},
154   {"m", "m", 109, "M", 77, ";", 59, "", 8269, "", 0},
155   {"n", "n", 110, "N", 78, "Table7", 0, "NEW", 8270, "", 0},
156   {"o", "o", 111, "O", 79, "Table8", 0, "OPEN", 8271, "", 0},
157 /* 0x70, 112 */
158   {"p", "p", 112, "P", 80, "_", 95, "", 8272, "", 0},
159   {"q", "q", 113, "Q", 81, "?", 63, "HOME", 8273, "", 0},
160   {"r", "r", 114, "R", 82, "@", 64, "GRAPH", 8274, "", 0},
161   {"s", "s", 115, "S", 83, "\223", 223, "SAVE", 8275, "", 0},
162   {"t", "t", 116, "T", 84, "#", 35, "TblSet", 8276, "", 0},
163   {"u", "u", 117, "U", 85, "Table9", 0, "", 8277, "", 0},
164   {"v", "v", 118, "V", 86, "\157", 157, "PASTE", 8278, "", 0},
165   {"w", "w", 119, "W", 87, "!", 33, "Y=", 8279, "", 0},
166   {"x", "x", 120, "X", 88, "\169", 169, "CUT", 8280, "", 0},
167   {"y", "y", 121, "Y", 89, "\18", 18, "TABLE", 8281, "", 0},
168   {"z", "z", 122, "Z", 90, "CapsLock", 0, "", 8282, "", 0},
169   {"{", "{", 0, "", 0, "", 0, "", 0, "", 0},
170   {"|", "|", 0, "", 0, "", 0, "", 0, "", 0},
171   {"}", "}", 0, "", 0, "", 0, "", 0, "", 0},
172   {"~", "~", 126, "", 0, "", 0, "", 0, "", 0},
173   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
174 /* 0x80, 128 */
175   {"\128", "\128", 128, "", 0, "", 0, "", 0, "", 0},
176   {"\129", "\129", 129, "", 0, "", 0, "", 0, "", 0},
177   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
178   {"\131", "\131", 131, "\130", 130, "", 0, "", 0, "", 0},
179   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
180   {"\133", "\133", 133, "\132", 132, "", 0, "", 0, "", 0},
181   {"\134", "\134", 134, "", 0, "", 0, "", 0, "", 0},
182   {"\135", "\135", 135, "", 0, "", 0, "", 0, "", 0},
183   {"\136", "\136", 136, "\136", 136, ":", 58, "", 8328, "", 0},
184   {"\137", "\137", 137, "", 0, "", 0, "", 0, "", 0},
185   {"\138", "\138", 138, "", 0, "", 0, "", 0, "", 0},
186   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
187   {"\140", "\140", 140, "\139", 139, "", 0, "", 0, "", 0},
188   {"\141", "\141", 141, "", 0, "", 0, "", 0, "", 0},
189   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
190   {"\143", "\143", 143, "\142", 142, "", 0, "", 0, "", 0},
191 /* 0x90, 144 */
192   {"\144", "\144", 144, "", 0, "", 0, "", 0, "", 0},
193   {"\145", "\145", 145, "", 0, "", 0, "", 0, "", 0},
194   {"\146", "\146", 146, "", 0, "", 0, "", 0, "", 0},
195   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
196   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
197   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
198   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
199   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
200   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
201   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
202   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
203   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
204   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
205   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
206   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
207   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
208 /* 0xA0, 160 */
209   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
210   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
211   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
212   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
213   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
214   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
215   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
216   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
217   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
218   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
219   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
220   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
221   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
222   {"\173", "\173", 173, "\173", 173, "ANS", 4372, "", 8365, "", 0},
223   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
224   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
225 /* 0xB0, 176 */
226   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
227   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
228   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
229   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
230   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
231   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
232   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
233   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
234   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
235   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
236   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
237   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
238   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
239   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
240   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
241   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
242 /* 0xC0, 192 */
243   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
244   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
245   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
246   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
247   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
248   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
249   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
250   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
251   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
252   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
253   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
254   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
255   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
256   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
257   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
258   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
259 /* 0xD0, 208 */
260   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
261   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
262   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
263   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
264   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
265   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
266   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
267   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
268   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
269   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
270   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
271   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
272   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
273   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
274   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
275   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
276 /* 0xE0, 224 */
277   {"\xe0", "\xe0", 224, "\192", 192, "", 0, "", 0, "", 0}, /* agrave */
278   {"\225", "\225", 225, "\193", 193, "", 0, "", 0, "", 0},
279   {"\xe2", "\xe2", 226, "\194", 194, "", 0, "", 0, "", 0}, /* acirc */
280   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
281   {"\xe4", "\xe4", 228, "\196", 196, "", 0, "", 0, "", 0}, /* auml */
282   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
283   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
284   {"\xe7", "\xe7", 231, "\199", 199, "", 0, "", 0, "", 0}, /* ccedil */
285   {"\xe8", "\xe8", 232, "\200", 200, "", 0, "", 0, "", 0}, /* egrave */
286   {"\xe9", "\xe9", 233, "\201", 201, "", 0, "", 0, "", 0}, /* eacute */
287   {"\xea", "\xea", 234, "\202", 202, "", 0, "", 0, "", 0}, /* ecirc */
288   {"\xeb", "\xeb", 235, "\203", 203, "", 0, "", 0, "", 0}, /* euml */
289   {"\236", "\236", 236, "\204", 204, "", 0, "", 0, "", 0},
290   {"\237", "\237", 237, "\205", 205, "", 0, "", 0, "", 0},
291   {"\xee", "\xee", 238, "\206", 206, "", 0, "", 0, "", 0}, /* icirc */
292   {"\xef", "\xef", 239, "\207", 207, "", 0, "", 0, "", 0}, /* iuml */
293 /* 0xF0, 240-255 */
294   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
295   {"\xf1", "\xf1", 241, "\209", 209, "", 0, "", 0, "", 0}, /* ntilde */
296   {"\242", "\242", 242, "\210", 210, "", 0, "", 0, "", 0},
297   {"\243", "\243", 243, "\211", 211, "", 0, "", 0, "", 0},
298   {"\xf4", "\xf4", 244, "\212", 212, "", 0, "", 0, "", 0}, /* ocirc */
299   {"\xf5", "\xf5", 245, "", 0, "", 0, "", 0, "", 0}, /* otilde */
300   {"\xf6", "\xf6", 246, "\214", 214, "", 0, "", 0, "", 0}, /* ouml */
301   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
302   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
303   {"\xf9", "\xf9", 249, "\217", 217, "", 0, "", 0, "", 0}, /* ugrave */
304   {"\250", "\250", 250, "\221", 221, "", 0, "", 0, "", 0},
305   {"\xfb", "\xfb", 251, "\219", 219, "", 0, "", 0, "", 0}, /* ucirc */
306   {"\xfc", "\xfc", 252, "\220", 220, "", 0, "", 0, "", 0}, /* uuml */
307   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
308   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
309   {"\xff", "\xff", 255, "", 0, "", 0, "", 0, "", 0}, /* yuml */
310 /* 0x100, 256 */
311   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
312   {"<-", "BS", 257, "BS", 257, "INS", 4353, "DEL", 8449, "", 0},
313   {"STO->", "STO->", 258, "STO->", 258, "RCL", 4354, "", 8450, "", 0},
314   {"SIN", "SIN", 259, "SIN", 259, "SIN\200", 4355, "", 8451, "", 0},
315   {"COS", "COS", 260, "COS", 260, "COS\200", 4356, "", 8452, "", 0},
316   {"TAN", "TAN", 261, "TAN", 261, "TAN\200", 4357, "", 8453, "", 0},
317   {"LN", "LN", 262, "LN", 262, "e^x", 4358, "", 8454, "", 0},
318   {"CLEAR", "CLEAR", 263, "CLEAR", 263, "CLEAR", 263, "", 8455, "", 0},
319   {"ESC", "ESC", 264, "ESC", 264, "QUIT", 4360, "", 8456, "", 0},
320   {"APPS", "APPS", 265, "APPS", 265, "SWITCH", 4361, "", 8457, "", 0},
321   {"MODE", "MODE", 266, "MODE", 266, "MODE", 266, "", 8458, "", 0},
322   {"ON", "ON", 267, "OFF", 267, "OFF", 267, "", 0, "", 0},
323   {"F1", "F1", 268, "F1", 268, "F1", 8460, "", 0, "", 0},
324   {"F2", "F2", 269, "F2", 269, "F2", 8461, "", 0, "", 0},
325   {"F3", "F3", 270, "F3", 270, "F3", 8462, "", 0, "", 0},
326   {"F4", "F4", 271, "F4", 271, "F4", 8463, "", 0, "", 0},
327 /* 0x110,272 */
328   {"F5", "F5", 272, "F5", 272, "F5", 8464, "", 0, "", 0},
329   {"F6", "F6", 273, "F6", 273, "F6", 8465, "", 0, "", 0},
330   {"F7", "F7", 274, "F7", 274, "F7", 8466, "", 0, "", 0},
331   {"F8", "F8", 275, "F8", 275, "F8", 8467, "", 0, "", 0},
332   {"CHS?", "CHS?", 276, "", 0, "", 0, "", 0, "", 0},
333   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
334   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
335   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
336   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
337   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
338   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
339   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
340   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
341   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
342   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
343   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
344 /* 0x120, 288 */
345   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
346   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
347   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
348   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
349   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
350   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
351   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
352   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
353   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
354   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
355   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
356   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
357   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
358   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
359   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
360   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
361 /* 0x130, 304 */
362   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
363   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
364   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
365   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
366   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
367   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
368   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
369   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
370   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
371   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
372   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
373   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
374   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
375   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
376   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
377   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
378 /* 0x140, 320 */
379   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
380   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
381   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
382   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
383   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
384   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
385   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
386   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
387   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
388   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
389   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
390   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
391   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
392   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
393   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
394   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
395 /* 0x150, 336 */
396   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
397   {"LEFT", "LEFT", 337, "LEFT", 16721, "LEFT", 4433, "LEFT", 8529, "", 0},
398   {"UP", "UP", 338, "UP", 16722, "UP", 4434, "UP", 8530, "", 0},
399   {"LEFT-UP", "LEFT-UP", 339, "LEFT-UP", 339, "LEFT-UP", 339, "LEFT-UP", 339, "", 0},
400   {"RIGHT", "RIGHT", 340, "RIGHT", 16724, "RIGHT", 4436, "RIGHT", 8532, "", 0},
401   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
402   {"RIGHT-UP", "RIGHT-UP", 342, "RIGHT-UP", 0, "RIGHT-UP", 0, "RIGHT-UP", 0, "", 0},
403   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
404   {"DOWN", "DOWN", 344, "DOWN", 16728, "DOWN", 4440, "DOWN", 8536, "", 0},
405   {"LEFT-DOWN", "LEFT-DOWN", 345, "LEFT-DOWN", 345, "LEFT-DOWN", 345, "LEFT-DOWN", 345, "", 0},
406   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
407   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
408   {"RIGHT-DOWN", "RIGHT-DOWN", 348, "RIGHT-DOWN", 348, "RIGHT-DOWN", 348, "RIGHT-DOWN", 348, "", 0},
409   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
410   {"", "", 0, "", 0, "", 0, "", 0, "", 0},
411   {"", "", 0, "", 0, "", 0, "", 0, "", 0}
412 /* 0x160 */
413 };
414