Base: LCDproc 0.5.2
[lcdproc-de200c.git] / server / drivers / hd44780-charmap.h
blobc75eb491e4b4201f5cfe9429bdc03d682b6d06f7
1 /*
2 * Character mapping for HD44780 devices by Mark Haemmerling <mail@markh.de>.
4 * Translates ISO 8859-1 to any HD44780 charset.
6 * Charmap selector (C) 2006 Pillon Matteo <matteo.pillon@email.it>
8 * This file is released under the GNU General Public License.
9 * Refer to the COPYING file distributed with this package.
13 * HD44780 table
15 * Initial table taken from lcd.o Linux kernel driver by
16 * Nils Faerber <nilsf@users.sourceforge.net>. Thanks!
18 * HD44780 charset reference: http://markh.de/hd44780-charset.png
20 * The following translations are being performed:
21 * - map umlaut accent characters to the corresponding umlaut characters
22 * - map other accent characters to the characters without accents
23 * - map beta (=sharp s), micro and Yen
25 * Alternative mappings:
26 * - #112 ("p") -> #240 (large "p"), orig. mapped -> #112
27 * - #113 ("q") -> #241 (large "q"), orig. mapped -> #113
29 * HD44780 misses backslash
33 const unsigned char HD44780_charmap[] = {
34 /* #0 */
35 0, 1, 2, 3, 4, 5, 6, 7,
36 8, 9, 10, 11, 12, 13, 14, 15,
37 16, 17, 18, 19, 20, 21, 22, 23,
38 24, 25, 26, 27, 28, 29, 30, 31,
39 /* #32 */
40 32, 33, 34, 35, 36, 37, 38, 39,
41 40, 41, 42, 43, 44, 45, 46, 47,
42 48, 49, 50, 51, 52, 53, 54, 55,
43 56, 57, 58, 59, 60, 61, 62, 63,
44 /* #64 */
45 64, 65, 66, 67, 68, 69, 70, 71,
46 72, 73, 74, 75, 76, 77, 78, 79,
47 80, 81, 82, 83, 84, 85, 86, 87,
48 88, 89, 90, 91, 47, 93, 94, 95,
49 /* #96 */
50 96, 97, 98, 99, 100, 101, 102, 103,
51 104, 105, 106, 107, 108, 109, 110, 111,
52 112, 113, 114, 115, 116, 117, 118, 119,
53 120, 121, 122, 123, 124, 125, 126, 127,
54 /* #128 */
55 128, 129, 130, 131, 132, 133, 134, 135,
56 136, 137, 138, 139, 140, 141, 142, 143,
57 144, 145, 146, 147, 148, 149, 150, 151,
58 152, 153, 154, 155, 156, 157, 158, 159,
59 /* #160 */
60 160, 33, 236, 237, 164, 92, 124, 167,
61 34, 169, 170, 171, 172, 173, 174, 175,
62 223, 177, 178, 179, 39, 249, 247, 165,
63 44, 185, 186, 187, 188, 189, 190, 63,
64 /* #192 */
65 65, 65, 65, 65, 225, 65, 65, 67,
66 69, 69, 69, 69, 73, 73, 73, 73,
67 68, 78, 79, 79, 79, 79, 239, 120,
68 48, 85, 85, 85, 245, 89, 240, 226,
69 /* #224 */
70 97, 97, 97, 97, 225, 97, 97, 99,
71 101, 101, 101, 101, 105, 105, 105, 105,
72 111, 110, 111, 111, 111, 111, 239, 253,
73 48, 117, 117, 117, 245, 121, 240, 255
77 * Electronic Assembly's KS0073 based LCDs table
78 * http://www.lcd-module.de/eng/pdf/doma/dip204-4e.pdf
80 * This map is more similar to a ISO-8859-15, but with fractions from
81 * ISO-8859-1 (0xBC, 0xBD).
83 * ~ (126) is mapped to right arrow, even though it exists, for
84 * compatibility with some clients. 127 is left arrow.
86 * There's no backtick, substituded with '.
88 * | is substituted with another similar charachter as the code is
89 * used by some serial drivers.
91 * Charset of the display offers a nice set of icons, they are mapped
92 * from 128 to 159. I mapped these intervals to, in order: 16-28,
93 * 140-151, 180-182, 187, 207, 222, 224.
95 * (C) 2006 Pillon Matteo <matteo.pillon@email.it>
99 const unsigned char EA_KS0073_charmap[] = {
100 /* #0 */
101 0, 1, 2, 3, 4, 5, 6, 7,
102 8, 9, 10, 11, 12, 13, 14, 15,
103 16, 17, 18, 19, 20, 21, 22, 23,
104 24, 25, 26, 27, 28, 29, 30, 31,
105 /* #32 */
106 32, 33, 34, 35, 36, 37, 38, 39,
107 40, 41, 42, 43, 44, 45, 46, 47,
108 48, 49, 50, 51, 52, 53, 54, 55,
109 56, 57, 58, 59, 60, 61, 62, 63,
110 /* #64 */
111 64, 65, 66, 67, 68, 69, 70, 71,
112 72, 73, 74, 75, 76, 77, 78, 79,
113 80, 81, 82, 83, 84, 85, 86, 87,
114 88, 89, 90, 250, 251, 252, 29, 196,
115 /* #96 */
116 39, 97, 98, 99, 100, 101, 102, 103,
117 104, 105, 106, 107, 108, 109, 110, 111,
118 112, 113, 114, 115, 116, 117, 118, 119,
119 120, 121, 122, 253, 218, 255, 223, 225,
120 /* #128 */
121 16, 17, 18, 19, 20, 21, 22, 23,
122 24, 25, 26, 27, 28, 140, 141, 142,
123 143, 144, 145, 146, 147, 148, 149, 150,
124 151, 180, 181, 182, 187, 207, 222, 224,
125 /* #160 */
126 160, 64, 177, 161, 36, 163, 243, 95,
127 248, 67, 170, 20, 172, 173, 82, 175,
128 128, 140, 130, 131, 249, 143, 182, 221,
129 244, 129, 128, 21, 139, 138, 190, 96,
130 /* #192 */
131 174, 226, 174, 174, 91, 174, 188, 169,
132 197, 191, 198, 69, 73, 73, 73, 73,
133 68, 93, 168, 228, 236, 79, 92, 120,
134 171, 238, 229, 238, 94, 230, 178, 190,
135 /* #224 */
136 127, 231, 175, 175, 123, 175, 189, 200,
137 164, 165, 199, 101, 167, 232, 105, 105,
138 111, 125, 168, 233, 237, 111, 124, 58,
139 172, 166, 234, 239, 126, 235, 178, 255
143 * Character mapping by Frank Jepsen <vdr_at_jepsennet.de>.
147 const unsigned char SED1278F_0B_charmap[] = {
148 /* 0 ( '^@') */ 0,
149 /* 1 ( '^A') */ 1,
150 /* 2 ( '^B') */ 2,
151 /* 3 ( '^C') */ 3,
152 /* 4 ( '^D') */ 4,
153 /* 5 ( '^E') */ 5,
154 /* 6 ( '^F') */ 6,
155 /* 7 ( '^G') */ 7,
156 /* 8 ( '^H') */ 8,
157 /* 9 ( '' ) */ 32,
158 /* 10 ( '' ) */ 32,
159 /* 11 ( '^K') */ 32,
160 /* 12 ( '^L') */ 32,
161 /* 13 ( '^M') */ 32,
162 /* 14 ( '^N') */ 14,
163 /* 15 ( '^O') */ 15,
164 /* 16 ( '^P') */ 16,
165 /* 17 ( '^Q') */ 17,
166 /* 18 ( '^R') */ 18,
167 /* 19 ( '^S') */ 19,
168 /* 20 ( '^T') */ 20,
169 /* 21 ( '^U') */ 21,
170 /* 22 ( '^V') */ 22,
171 /* 23 ( '^W') */ 23,
172 /* 24 ( '^X') */ 24,
173 /* 25 ( '^Y') */ 25,
174 /* 26 ( '^Z') */ 26,
175 /* 27 ( '^[') */ 27,
176 /* 28 ( '^\') */ 28,
177 /* 29 ( '^]') */ 29,
178 /* 30 ( '^^') */ 30,
179 /* 31 ( '^_') */ 31,
180 /* 32 ( ' ' ) */ 32,
181 /* 33 ( '!' ) */ 33,
182 /* 34 ( '"' ) */ 39,
183 /* 35 ( '#' ) */ 35,
184 /* 36 ( '$' ) */ 36,
185 /* 37 ( '%' ) */ 37,
186 /* 38 ( '&' ) */ 38,
187 /* 39 ( ''' ) */ 39,
188 /* 40 ( '(' ) */ 40,
189 /* 41 ( ')' ) */ 41,
190 /* 42 ( '*' ) */ 42,
191 /* 43 ( '+' ) */ 43,
192 /* 44 ( ',' ) */ 44,
193 /* 45 ( '-' ) */ 45,
194 /* 46 ( '.' ) */ 46,
195 /* 47 ( '/' ) */ 47,
196 /* 48 ( '0' ) */ 48,
197 /* 49 ( '1' ) */ 49,
198 /* 50 ( '2' ) */ 50,
199 /* 51 ( '3' ) */ 51,
200 /* 52 ( '4' ) */ 52,
201 /* 53 ( '5' ) */ 53,
202 /* 54 ( '6' ) */ 54,
203 /* 55 ( '7' ) */ 55,
204 /* 56 ( '8' ) */ 56,
205 /* 57 ( '9' ) */ 57,
206 /* 58 ( ':' ) */ 58,
207 /* 59 ( ';' ) */ 59,
208 /* 60 ( '<' ) */ 60,
209 /* 61 ( '=' ) */ 61,
210 /* 62 ( '>' ) */ 62,
211 /* 63 ( '?' ) */ 63,
212 /* 64 ( '@' ) */ 64,
213 /* 65 ( 'A' ) */ 65,
214 /* 66 ( 'B' ) */ 66,
215 /* 67 ( 'C' ) */ 67,
216 /* 68 ( 'D' ) */ 68,
217 /* 69 ( 'E' ) */ 69,
218 /* 70 ( 'F' ) */ 70,
219 /* 71 ( 'G' ) */ 71,
220 /* 72 ( 'H' ) */ 72,
221 /* 73 ( 'I' ) */ 73,
222 /* 74 ( 'J' ) */ 74,
223 /* 75 ( 'K' ) */ 75,
224 /* 76 ( 'L' ) */ 76,
225 /* 77 ( 'M' ) */ 77,
226 /* 78 ( 'N' ) */ 78,
227 /* 79 ( 'O' ) */ 79,
228 /* 80 ( 'P' ) */ 80,
229 /* 81 ( 'Q' ) */ 81,
230 /* 82 ( 'R' ) */ 82,
231 /* 83 ( 'S' ) */ 83,
232 /* 84 ( 'T' ) */ 84,
233 /* 85 ( 'U' ) */ 85,
234 /* 86 ( 'V' ) */ 86,
235 /* 87 ( 'W' ) */ 87,
236 /* 88 ( 'X' ) */ 88,
237 /* 89 ( 'Y' ) */ 89,
238 /* 90 ( 'Z' ) */ 90,
239 /* 91 ( '[' ) */ 91,
240 /* 92 ( '\' ) */ 92,
241 /* 93 ( ']' ) */ 93,
242 /* 94 ( '^' ) */ 94,
243 /* 95 ( '_' ) */ 95,
244 /* 96 ( '`' ) */ 96,
245 /* 97 ( 'a' ) */ 97,
246 /* 98 ( 'b' ) */ 98,
247 /* 99 ( 'c' ) */ 99,
248 /* 100 ( 'd' ) */ 100,
249 /* 101 ( 'e' ) */ 101,
250 /* 102 ( 'f' ) */ 102,
251 /* 103 ( 'g' ) */ 103,
252 /* 104 ( 'h' ) */ 104,
253 /* 105 ( 'i' ) */ 105,
254 /* 106 ( 'j' ) */ 106,
255 /* 107 ( 'k' ) */ 107,
256 /* 108 ( 'l' ) */ 108,
257 /* 109 ( 'm' ) */ 109,
258 /* 110 ( 'n' ) */ 110,
259 /* 111 ( 'o' ) */ 111,
260 /* 112 ( 'p' ) */ 112,
261 /* 113 ( 'q' ) */ 113,
262 /* 114 ( 'r' ) */ 114,
263 /* 115 ( 's' ) */ 115,
264 /* 116 ( 't' ) */ 116,
265 /* 117 ( 'u' ) */ 117,
266 /* 118 ( 'v' ) */ 118,
267 /* 119 ( 'w' ) */ 119,
268 /* 120 ( 'x' ) */ 120,
269 /* 121 ( 'y' ) */ 121,
270 /* 122 ( 'z' ) */ 122,
271 /* 123 ( '{' ) */ 123,
272 /* 124 ( '|' ) */ 124,
273 /* 125 ( '}' ) */ 125,
274 /* 126 ( '~' ) */ 126,
275 /* 127 ( '^?') */ 127,
276 /* 128 ( '~@') */ 64,
277 /* 129 ( '~A') */ 65,
278 /* 130 ( '~B') */ 66,
279 /* 131 ( '~C') */ 67,
280 /* 132 ( '~D') */ 68,
281 /* 133 ( '~E') */ 69,
282 /* 134 ( '~F') */ 70,
283 /* 135 ( '~G') */ 71,
284 /* 136 ( '~H') */ 72,
285 /* 137 ( '~I') */ 73,
286 /* 138 ( '~J') */ 74,
287 /* 139 ( '~K') */ 75,
288 /* 140 ( '~L') */ 76,
289 /* 141 ( '~M') */ 77,
290 /* 142 ( '~N') */ 78,
291 /* 143 ( '~O') */ 79,
292 /* 144 ( '~P') */ 80,
293 /* 145 ( '~Q') */ 81,
294 /* 146 ( '~R') */ 82,
295 /* 147 ( '~S') */ 83,
296 /* 148 ( '~T') */ 84,
297 /* 149 ( '~U') */ 85,
298 /* 150 ( '~V') */ 86,
299 /* 151 ( '~W') */ 87,
300 /* 152 ( '~X') */ 88,
301 /* 153 ( '~Y') */ 89,
302 /* 154 ( '~Z') */ 90,
303 /* 155 ( '~[') */ 91,
304 /* 156 ( '~\') */ 92,
305 /* 157 ( '~]') */ 93,
306 /* 158 ( '~^') */ 94,
307 /* 159 ( '~_') */ 95,
308 /* 160 ( '| ') */ 124,
309 /* 161 ( '¡' ) */ 169,
310 /* 162 ( '¢' ) */ 164,
311 /* 163 ( '£' ) */ 166,
312 /* 164 ( '¤' ) */ 175,
313 /* 165 ( '¥' ) */ 166,
314 /* 166 ( '¦' ) */ 124,
315 /* 167 ( '§' ) */ 210,
316 /* 168 ( '¨' ) */ 177,
317 /* 169 ( '©' ) */ 207,
318 /* 170 ( 'ª' ) */ 178,
319 /* 171 ( '«' ) */ 187,
320 /* 172 ( '¬' ) */ 44,
321 /* 173 ( '­' ) */ 44,
322 /* 174 ( '®' ) */ 206,
323 /* 175 ( '¯' ) */ 191,
324 /* 176 ( '°' ) */ 178,
325 /* 177 ( '±' ) */ 16,
326 /* 178 ( '²' ) */ 30,
327 /* 179 ( '³' ) */ 31,
328 /* 180 ( '´' ) */ 180,
329 /* 181 ( 'µ' ) */ 234,
330 /* 182 ( '¶' ) */ 211,
331 /* 183 ( '·' ) */ 205,
332 /* 184 ( '¸' ) */ 44,
333 /* 185 ( '¹' ) */ 180,
334 /* 186 ( 'º' ) */ 178,
335 /* 187 ( '»' ) */ 188,
336 /* 188 ( '¼' ) */ 182,
337 /* 189 ( '½' ) */ 181,
338 /* 190 ( '¾' ) */ 245,
339 /* 191 ( '¿' ) */ 159,
340 /* 192 ( 'À' ) */ 65,
341 /* 193 ( 'Á' ) */ 65,
342 /* 194 ( 'Â' ) */ 65,
343 /* 195 ( 'Ã' ) */ 170,
344 /* 196 ( 'Ä' ) */ 142,
345 /* 197 ( 'Å' ) */ 143,
346 /* 198 ( 'Æ' ) */ 146,
347 /* 199 ( 'Ç' ) */ 128,
348 /* 200 ( 'È' ) */ 69,
349 /* 201 ( 'É' ) */ 144,
350 /* 202 ( 'Ê' ) */ 69,
351 /* 203 ( 'Ë' ) */ 69,
352 /* 204 ( 'Ì' ) */ 73,
353 /* 205 ( 'Í' ) */ 73,
354 /* 206 ( 'Î' ) */ 73,
355 /* 207 ( 'Ï' ) */ 73,
356 /* 208 ( 'Ð' ) */ 245,
357 /* 209 ( 'Ñ' ) */ 156,
358 /* 210 ( 'Ò' ) */ 79,
359 /* 211 ( 'Ó' ) */ 79,
360 /* 212 ( 'Ô' ) */ 79,
361 /* 213 ( 'Õ' ) */ 172,
362 /* 214 ( 'Ö' ) */ 153,
363 /* 215 ( '×' ) */ 183,
364 /* 216 ( 'Ø' ) */ 174,
365 /* 217 ( 'Ù' ) */ 85,
366 /* 218 ( 'Ú' ) */ 85,
367 /* 219 ( 'Û' ) */ 85,
368 /* 220 ( 'Ü' ) */ 154,
369 /* 221 ( 'Ý' ) */ 89,
370 /* 222 ( 'Þ' ) */ 220,
371 /* 223 ( 'ß' ) */ 224,
372 /* 224 ( 'à' ) */ 133,
373 /* 225 ( 'á' ) */ 160,
374 /* 226 ( 'â' ) */ 131,
375 /* 227 ( 'ã' ) */ 171,
376 /* 228 ( 'ä' ) */ 132,
377 /* 229 ( 'å' ) */ 134,
378 /* 230 ( 'æ' ) */ 145,
379 /* 231 ( 'ç' ) */ 135,
380 /* 232 ( 'è' ) */ 138,
381 /* 233 ( 'é' ) */ 130,
382 /* 234 ( 'ê' ) */ 136,
383 /* 235 ( 'ë' ) */ 137,
384 /* 236 ( 'ì' ) */ 141,
385 /* 237 ( 'í' ) */ 161,
386 /* 238 ( 'î' ) */ 140,
387 /* 239 ( 'ï' ) */ 139,
388 /* 240 ( 'ð' ) */ 32,
389 /* 241 ( 'ñ' ) */ 155,
390 /* 242 ( 'ò' ) */ 149,
391 /* 243 ( 'ó' ) */ 162,
392 /* 244 ( 'ô' ) */ 147,
393 /* 245 ( 'õ' ) */ 173,
394 /* 246 ( 'ö' ) */ 148,
395 /* 247 ( '÷' ) */ 184,
396 /* 248 ( 'ø' ) */ 175,
397 /* 249 ( 'ù' ) */ 151,
398 /* 250 ( 'ú' ) */ 163,
399 /* 251 ( 'û' ) */ 150,
400 /* 252 ( 'ü' ) */ 129,
401 /* 253 ( 'ý' ) */ 121,
402 /* 254 ( 'þ' ) */ 32,
403 /* 255 ( 'ÿ' ) */ 253
406 #define MAX_CHARMAP_NAME_LENGHT 16
408 struct charmap {
409 char name[MAX_CHARMAP_NAME_LENGHT];
410 const unsigned char *charmap;
413 const struct charmap available_charmaps[] = {
414 { "hd44780_default", HD44780_charmap },
415 { "ea_ks0073", EA_KS0073_charmap },
416 { "sed1278f_0b", SED1278F_0B_charmap }