summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2007-04-04 00:16:11 +0000
committerJens Arnold <amiconn@rockbox.org>2007-04-04 00:16:11 +0000
commit5a6968918800d64062fa03deae530886aaa42db7 (patch)
tree6055ceb960b2caf179268e4ed27e3fd59731934d /tools
parent61350bf91cbe18c5a6d390c1d0140326031703e1 (diff)
downloadrockbox-5a6968918800d64062fa03deae530886aaa42db7.tar.gz
rockbox-5a6968918800d64062fa03deae530886aaa42db7.zip
Replace obsolete generate_rocklatin tool with player_unifont tool.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13014 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'tools')
-rw-r--r--tools/Makefile4
-rwxr-xr-xtools/configure2
-rw-r--r--tools/generate_rocklatin.c747
-rw-r--r--tools/player_unifont.c778
4 files changed, 781 insertions, 750 deletions
diff --git a/tools/Makefile b/tools/Makefile
index d957f75327..a25447c20e 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -53,8 +53,8 @@ convbdf: convbdf.c
53codepages: codepages.c codepage_tables.c 53codepages: codepages.c codepage_tables.c
54 $(SILENT)$(CC) -g $+ -o $@ 54 $(SILENT)$(CC) -g $+ -o $@
55 55
56generate_rocklatin: generate_rocklatin.c ../firmware/drivers/lcd-player-charset.c 56player_unifont: player_unifont.c ../firmware/drivers/lcd-charset-player.c
57 $(SILENT)$(CC) -DHAVE_LCD_CHARCELLS -D__CONFIG_H__ -I../firmware/export $+ -o $@ 57 $(SILENT)$(CC) -DARCHOS_PLAYER -D__PCTOOL__ -I../firmware/export $+ -o $@
58 58
59uclpack: 59uclpack:
60 $(SILENT)$(MAKE) -C ucl 60 $(SILENT)$(MAKE) -C ucl
diff --git a/tools/configure b/tools/configure
index 0341a29e85..86f0db4425 100755
--- a/tools/configure
+++ b/tools/configure
@@ -661,7 +661,7 @@ EOF
661 661
662 # toolset is the tools within the tools directory that we build for 662 # toolset is the tools within the tools directory that we build for
663 # this particular target. 663 # this particular target.
664 toolset="$toolset scramble descramble sh2d uclpack" 664 toolset="$toolset scramble descramble sh2d player_unifont uclpack"
665 665
666 # Note: the convbdf is present in the toolset just because: 1) the 666 # Note: the convbdf is present in the toolset just because: 1) the
667 # firmware/Makefile assumes it is present always, and 2) we will need it when we 667 # firmware/Makefile assumes it is present always, and 2) we will need it when we
diff --git a/tools/generate_rocklatin.c b/tools/generate_rocklatin.c
deleted file mode 100644
index 2736f0d7c3..0000000000
--- a/tools/generate_rocklatin.c
+++ /dev/null
@@ -1,747 +0,0 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2003 by Kjell Ericson
11 *
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
14 *
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
17 *
18 ****************************************************************************/
19
20#include <stdio.h>
21#include <stdlib.h>
22#include <string.h>
23
24#define CHAR_WIDTH 8
25#define CHAR_HEIGHT 8
26
27#define BITMAP_WIDTH ((CHAR_WIDTH)*17)
28#define BITMAP_HEIGHT ((CHAR_HEIGHT)*17)
29
30#define SIZE 2
31
32unsigned int bitmap[BITMAP_WIDTH][BITMAP_HEIGHT];
33
34extern unsigned char extended_font_player[256][8];
35
36extern unsigned char font_new_player[256][5];
37extern unsigned char font_old_player[256][5];
38
39extern unsigned short new_lcd_rocklatin1_to_xlcd[];
40extern unsigned short old_lcd_rocklatin1_to_xlcd[];
41extern unsigned char lcd_player_extended_lcd_to_rocklatin1[];
42
43unsigned char (* font)[256][5];
44unsigned short *rocklatin;
45
46char show_subst=0;
47char show_hardware=0;
48char shadow_show_hardware=0;
49
50void set_pixel(int x, int y, int col)
51{
52 bitmap[x][y]=col;
53}
54
55void draw_extended_char(unsigned char chr, int x, int y)
56{
57 int x2, y2;
58 unsigned char *data;
59 short mapped_char;
60 int col=0;
61
62 data=extended_font_player[chr];
63 col=0xf00000;
64
65 for (x2=0; x2<5; x2++) {
66 for (y2=0; y2<7; y2++) {
67 if (data[y2]&((1<<4)>>x2))
68 set_pixel(x+x2, y+y2, col);
69 else
70 set_pixel(x+x2, y+y2, 0xc0c0c0);
71 }
72 }
73}
74
75
76void draw_char(unsigned char chr, int x, int y)
77{
78 int x2, y2;
79 unsigned char *data;
80 short mapped_char;
81 int col=0;
82
83 if (show_hardware)
84 mapped_char=chr;
85 else {
86 mapped_char=rocklatin[chr];
87 if (chr<=0x20 && mapped_char==0xff)
88 mapped_char=rocklatin[' '];
89 }
90 if (mapped_char>=512) {
91 if (show_subst) {
92 chr=lcd_player_extended_lcd_to_rocklatin1[mapped_char-512];
93 mapped_char=rocklatin[chr];
94 data=(*font)[mapped_char];
95 } else {
96 draw_extended_char(mapped_char-512, x, y);
97 return;
98 }
99 col=0xf00000;
100 } else if (mapped_char<256) {
101 data=(*font)[mapped_char];
102 } else if (mapped_char>=256) {
103 mapped_char=mapped_char-256;
104 }
105
106 for (x2=0; x2<5; x2++) {
107 for (y2=0; y2<7; y2++) {
108 if (data[x2]&(1<<y2))
109 set_pixel(x+x2, y+y2, col);
110 else
111 set_pixel(x+x2, y+y2, 0xc0c0c0);
112 }
113 }
114}
115
116int main (int argc, char** argv)
117{
118 int x, y;
119 int loop;
120 char *filename;
121 FILE *fp;
122
123 printf("This tool will generate gif-pictures that reflect the current "
124 "rocklatin1 charset of the Player.\nThis tool is compiled with "
125 "the source, so don't forget to 'make' it before starting.\n"
126 "This tool will generate pnm-pictures that then automatically is "
127 "converted to gif pictures using the 'convert' tool of "
128 "ImageMagick.\n"
129 "The generated gif-pictures shall then be copied to www/docs.\n");
130
131 for (loop=0; loop<6; loop++) {
132 switch (loop) {
133 case 0:
134 font=&font_old_player;
135 rocklatin=old_lcd_rocklatin1_to_xlcd;
136 filename="lcd_old.gif";
137 show_subst=0;
138 show_hardware=0;
139 break;
140 case 1:
141 font=&font_new_player;
142 rocklatin=new_lcd_rocklatin1_to_xlcd;
143 filename="lcd_new.gif";
144 show_subst=0;
145 show_hardware=0;
146 break;
147 case 2:
148 font=&font_old_player;
149 rocklatin=old_lcd_rocklatin1_to_xlcd;
150 filename="lcd_old_subst.gif";
151 show_subst=1;
152 show_hardware=0;
153 break;
154 case 3:
155 font=&font_new_player;
156 rocklatin=new_lcd_rocklatin1_to_xlcd;
157 filename="lcd_new_subst.gif";
158 show_subst=1;
159 show_hardware=0;
160 break;
161 case 4:
162 font=&font_old_player;
163 rocklatin=old_lcd_rocklatin1_to_xlcd;
164 filename="lcd_old_hw.gif";
165 show_subst=1;
166 show_hardware=1;
167 break;
168 case 5:
169 font=&font_new_player;
170 rocklatin=new_lcd_rocklatin1_to_xlcd;
171 filename="lcd_new_hw.gif";
172 show_subst=1;
173 show_hardware=1;
174 break;
175 default:
176 printf("Not in loop!\n");
177 exit(0);
178 }
179 fp=fopen("tmp.pnm", "wb");
180 if (!fp) {
181 printf("Error opening %s!\n", filename);
182 exit(0);
183 }
184 memset(bitmap, 255, sizeof(bitmap));
185
186 fprintf(fp, "P3\n#PNM showing a picture of the Rocklatin charset\n");
187
188 fprintf(fp, "%d %d\n255\n", BITMAP_HEIGHT*SIZE, BITMAP_WIDTH*SIZE);
189
190 shadow_show_hardware=show_hardware;
191 show_hardware=0;
192 for (x=0; x<16; x++) {
193 draw_char(x+(x<10?'0':'A'-10), CHAR_WIDTH+CHAR_WIDTH*x+1, 0);
194 draw_char(x+(x<10?'0':'A'-10), 1, CHAR_WIDTH+CHAR_WIDTH*x);
195 }
196 show_hardware=shadow_show_hardware;
197
198 for (x=0; x<16; x++) {
199 for (y=0; y<16; y++) {
200 draw_char(x+y*16, CHAR_WIDTH+CHAR_WIDTH*x+1, y*CHAR_HEIGHT+CHAR_HEIGHT);
201 }
202 }
203
204 for (y=0; y<BITMAP_HEIGHT; y++) {
205 int i, z;
206 for (i=0; i<SIZE; i++) {
207 for (x=0; x<BITMAP_WIDTH; x++) {
208 unsigned int col=bitmap[x][y];
209 if (y<CHAR_HEIGHT || x<CHAR_WIDTH) {
210 col=0xffffffff-col;
211 }
212 for (z=0; z<SIZE; z++) {
213 fprintf(fp, "%d ", (col>>16)&255);
214 fprintf(fp, "%d ", (col>>8)&255);
215 fprintf(fp, "%d ", (col)&255);
216 }
217 }
218 fprintf(fp, "\n");
219 }
220 }
221 fclose(fp);
222 {
223 char buffer[200];
224 sprintf(buffer, "convert tmp.pnm %s", filename);
225 system(buffer);
226 system("rm tmp.pnm");
227 }
228 }
229}
230
231unsigned char font_new_player[256][5] = {
232 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 00 */
233 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 01 */
234 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 02 */
235 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 03 */
236 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 04 */
237 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 05 */
238 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 06 */
239 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 07 */
240 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 08 */
241 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 09 */
242 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0a */
243 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0b */
244 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0c */
245 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0d */
246 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0e */
247 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0f */
248 { 0x3e, 0x1c, 0x1c, 0x08, 0x08 }, /* 10 */
249 { 0x08, 0x08, 0x1c, 0x1c, 0x3e }, /* 11 */
250 { 0x02, 0x04, 0x08, 0x10, 0x20 }, /* 12 */
251 { 0x00, 0x4f, 0x00, 0x4f, 0x00 }, /* 13 */
252 { 0x06, 0x0f, 0x7f, 0x01, 0x7f }, /* 14 */
253 { 0x48, 0x56, 0x55, 0x35, 0x09 }, /* 15 */
254 { 0x0c, 0x0c, 0x0c, 0x0c, 0x0c }, /* 16 */
255 { 0x10, 0x38, 0x54, 0x10, 0x1f }, /* 17 */
256 { 0x04, 0x02, 0x7f, 0x02, 0x04 }, /* 18 */
257 { 0x10, 0x20, 0x7f, 0x20, 0x10 }, /* 19 */
258 { 0x7f, 0x3e, 0x1c, 0x08, 0x7f }, /* 1a */
259 { 0x7f, 0x08, 0x1c, 0x3e, 0x7f }, /* 1b */
260 { 0x7f, 0x08, 0x2a, 0x1c, 0x08 }, /* 1c */
261 { 0x08, 0x1c, 0x2a, 0x08, 0x7f }, /* 1d */
262 { 0x02, 0x0e, 0x3e, 0x0e, 0x02 }, /* 1e */
263 { 0x20, 0x38, 0x3e, 0x38, 0x20 }, /* 1f */
264 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 20 */
265 { 0x00, 0x00, 0x4f, 0x00, 0x00 }, /* 21 */
266 { 0x00, 0x07, 0x00, 0x07, 0x00 }, /* 22 */
267 { 0x14, 0x7f, 0x14, 0x7f, 0x14 }, /* 23 */
268 { 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, /* 24 */
269 { 0x23, 0x13, 0x08, 0x64, 0x62 }, /* 25 */
270 { 0x36, 0x49, 0x55, 0x22, 0x50 }, /* 26 */
271 { 0x00, 0x05, 0x03, 0x00, 0x00 }, /* 27 */
272 { 0x00, 0x1c, 0x22, 0x41, 0x00 }, /* 28 */
273 { 0x00, 0x41, 0x22, 0x1c, 0x00 }, /* 29 */
274 { 0x14, 0x08, 0x3e, 0x08, 0x14 }, /* 2a */
275 { 0x08, 0x08, 0x3e, 0x08, 0x08 }, /* 2b */
276 { 0x00, 0x50, 0x30, 0x00, 0x00 }, /* 2c */
277 { 0x08, 0x08, 0x08, 0x08, 0x08 }, /* 2d */
278 { 0x00, 0x30, 0x30, 0x00, 0x00 }, /* 2e */
279 { 0x20, 0x10, 0x08, 0x04, 0x02 }, /* 2f */
280 { 0x3e, 0x51, 0x49, 0x45, 0x3e }, /* 30 */
281 { 0x00, 0x42, 0x7f, 0x40, 0x00 }, /* 31 */
282 { 0x42, 0x61, 0x51, 0x49, 0x46 }, /* 32 */
283 { 0x21, 0x41, 0x45, 0x4b, 0x31 }, /* 33 */
284 { 0x18, 0x14, 0x12, 0x7f, 0x10 }, /* 34 */
285 { 0x27, 0x45, 0x45, 0x45, 0x39 }, /* 35 */
286 { 0x3c, 0x4a, 0x49, 0x49, 0x30 }, /* 36 */
287 { 0x01, 0x01, 0x71, 0x0d, 0x03 }, /* 37 */
288 { 0x36, 0x49, 0x49, 0x49, 0x36 }, /* 38 */
289 { 0x06, 0x49, 0x49, 0x29, 0x1e }, /* 39 */
290 { 0x00, 0x36, 0x36, 0x00, 0x00 }, /* 3a */
291 { 0x00, 0x5b, 0x3b, 0x00, 0x00 }, /* 3b */
292 { 0x08, 0x14, 0x22, 0x41, 0x00 }, /* 3c */
293 { 0x14, 0x14, 0x14, 0x14, 0x14 }, /* 3d */
294 { 0x00, 0x41, 0x22, 0x14, 0x08 }, /* 3e */
295 { 0x02, 0x01, 0x51, 0x09, 0x06 }, /* 3f */
296 { 0x32, 0x49, 0x79, 0x41, 0x3e }, /* 40 */
297 { 0x7e, 0x11, 0x11, 0x11, 0x7e }, /* 41 */
298 { 0x7f, 0x49, 0x49, 0x49, 0x36 }, /* 42 */
299 { 0x3e, 0x41, 0x41, 0x41, 0x22 }, /* 43 */
300 { 0x7f, 0x41, 0x41, 0x22, 0x1c }, /* 44 */
301 { 0x7f, 0x49, 0x49, 0x49, 0x41 }, /* 45 */
302 { 0x7f, 0x09, 0x09, 0x09, 0x01 }, /* 46 */
303 { 0x3e, 0x41, 0x49, 0x49, 0x7a }, /* 47 */
304 { 0x7f, 0x08, 0x08, 0x08, 0x7f }, /* 48 */
305 { 0x00, 0x41, 0x7f, 0x41, 0x00 }, /* 49 */
306 { 0x20, 0x41, 0x41, 0x3f, 0x01 }, /* 4a */
307 { 0x7f, 0x08, 0x14, 0x22, 0x41 }, /* 4b */
308 { 0x7f, 0x40, 0x40, 0x40, 0x40 }, /* 4c */
309 { 0x7f, 0x02, 0x0c, 0x02, 0x7f }, /* 4d */
310 { 0x7f, 0x04, 0x08, 0x10, 0x7f }, /* 4e */
311 { 0x3e, 0x41, 0x41, 0x41, 0x3e }, /* 4f */
312 { 0x7f, 0x09, 0x09, 0x09, 0x06 }, /* 50 */
313 { 0x3e, 0x41, 0x41, 0x21, 0x5e }, /* 51 */
314 { 0x7f, 0x09, 0x19, 0x29, 0x46 }, /* 52 */
315 { 0x26, 0x49, 0x49, 0x49, 0x32 }, /* 53 */
316 { 0x01, 0x01, 0x7f, 0x01, 0x01 }, /* 54 */
317 { 0x3f, 0x40, 0x40, 0x40, 0x3f }, /* 55 */
318 { 0x1f, 0x20, 0x40, 0x20, 0x1f }, /* 56 */
319 { 0x3f, 0x40, 0x38, 0x40, 0x3f }, /* 57 */
320 { 0x63, 0x14, 0x08, 0x14, 0x63 }, /* 58 */
321 { 0x03, 0x04, 0x78, 0x04, 0x03 }, /* 59 */
322 { 0x61, 0x51, 0x49, 0x45, 0x43 }, /* 5a */
323 { 0x00, 0x7f, 0x41, 0x41, 0x00 }, /* 5b */
324 { 0x15, 0x16, 0x7c, 0x16, 0x15 }, /* 5c */
325 { 0x00, 0x41, 0x41, 0x7f, 0x00 }, /* 5d */
326 { 0x04, 0x02, 0x01, 0x02, 0x04 }, /* 5e */
327 { 0x40, 0x40, 0x40, 0x40, 0x40 }, /* 5f */
328 { 0x00, 0x01, 0x02, 0x04, 0x00 }, /* 60 */
329 { 0x20, 0x54, 0x54, 0x54, 0x78 }, /* 61 */
330 { 0x7f, 0x48, 0x44, 0x44, 0x38 }, /* 62 */
331 { 0x38, 0x44, 0x44, 0x44, 0x20 }, /* 63 */
332 { 0x38, 0x44, 0x44, 0x48, 0x7f }, /* 64 */
333 { 0x38, 0x54, 0x54, 0x54, 0x18 }, /* 65 */
334 { 0x08, 0x7e, 0x09, 0x01, 0x02 }, /* 66 */
335 { 0x0c, 0x52, 0x52, 0x52, 0x3e }, /* 67 */
336 { 0x7f, 0x08, 0x04, 0x04, 0x78 }, /* 68 */
337 { 0x00, 0x44, 0x7d, 0x40, 0x00 }, /* 69 */
338 { 0x20, 0x40, 0x44, 0x3d, 0x00 }, /* 6a */
339 { 0x7f, 0x10, 0x28, 0x44, 0x00 }, /* 6b */
340 { 0x00, 0x41, 0x7f, 0x40, 0x00 }, /* 6c */
341 { 0x7c, 0x04, 0x18, 0x04, 0x78 }, /* 6d */
342 { 0x7c, 0x08, 0x04, 0x04, 0x78 }, /* 6e */
343 { 0x38, 0x44, 0x44, 0x44, 0x38 }, /* 6f */
344 { 0x7c, 0x14, 0x14, 0x14, 0x08 }, /* 70 */
345 { 0x08, 0x14, 0x14, 0x18, 0x7c }, /* 71 */
346 { 0x7c, 0x08, 0x04, 0x04, 0x08 }, /* 72 */
347 { 0x48, 0x54, 0x54, 0x54, 0x20 }, /* 73 */
348 { 0x04, 0x3f, 0x44, 0x40, 0x20 }, /* 74 */
349 { 0x3c, 0x40, 0x40, 0x20, 0x7c }, /* 75 */
350 { 0x1c, 0x20, 0x40, 0x20, 0x1c }, /* 76 */
351 { 0x3c, 0x40, 0x30, 0x40, 0x3c }, /* 77 */
352 { 0x44, 0x28, 0x10, 0x28, 0x44 }, /* 78 */
353 { 0x4c, 0x50, 0x50, 0x50, 0x3c }, /* 79 */
354 { 0x44, 0x64, 0x54, 0x4c, 0x44 }, /* 7a */
355 { 0x00, 0x08, 0x36, 0x41, 0x00 }, /* 7b */
356 { 0x00, 0x00, 0x7f, 0x00, 0x00 }, /* 7c */
357 { 0x00, 0x41, 0x36, 0x08, 0x00 }, /* 7d */
358 { 0x08, 0x08, 0x2a, 0x1c, 0x08 }, /* 7e */
359 { 0x08, 0x1c, 0x2a, 0x08, 0x08 }, /* 7f */
360 { 0x40, 0x40, 0x40, 0x40, 0x40 }, /* 80 */
361 { 0x60, 0x60, 0x60, 0x60, 0x60 }, /* 81 */
362 { 0x70, 0x70, 0x70, 0x70, 0x70 }, /* 82 */
363 { 0x78, 0x78, 0x78, 0x78, 0x78 }, /* 83 */
364 { 0x7c, 0x7c, 0x7c, 0x7c, 0x7c }, /* 84 */
365 { 0x7e, 0x7e, 0x7e, 0x7e, 0x7e }, /* 85 */
366 { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f }, /* 86 */
367 { 0x08, 0x2a, 0x1c, 0x2a, 0x08 }, /* 87 */
368 { 0x7f, 0x00, 0x00, 0x00, 0x7f }, /* 88 */
369 { 0x7f, 0x7f, 0x00, 0x00, 0x7f }, /* 89 */
370 { 0x7f, 0x7f, 0x7f, 0x00, 0x7f }, /* 8a */
371 { 0x00, 0x7f, 0x00, 0x00, 0x00 }, /* 8b */
372 { 0x00, 0x7f, 0x7f, 0x00, 0x00 }, /* 8c */
373 { 0x00, 0x7f, 0x7f, 0x7f, 0x00 }, /* 8d */
374 { 0x00, 0x7f, 0x7f, 0x7f, 0x7f }, /* 8e */
375 { 0x3e, 0x3e, 0x3e, 0x3e, 0x3e }, /* 8f */
376 { 0x1c, 0x3e, 0x3e, 0x3e, 0x1c }, /* 90 */
377 { 0x7f, 0x41, 0x41, 0x41, 0x7f }, /* 91 */
378 { 0x7f, 0x5b, 0x41, 0x5f, 0x7f }, /* 92 */
379 { 0x7f, 0x4d, 0x55, 0x59, 0x7f }, /* 93 */
380 { 0x20, 0x40, 0x3c, 0x04, 0x04 }, /* 94 */
381 { 0x44, 0x44, 0x5f, 0x44, 0x44 }, /* 95 */
382 { 0x22, 0x14, 0x08, 0x14, 0x22 }, /* 96 */
383 { 0x08, 0x08, 0x2a, 0x08, 0x08 }, /* 97 */
384 { 0x45, 0x29, 0x11, 0x29, 0x45 }, /* 98 */
385 { 0x1d, 0x15, 0x17, 0x00, 0x00 }, /* 99 */
386 { 0x15, 0x15, 0x1f, 0x00, 0x00 }, /* 9a */
387 { 0x17, 0x08, 0x74, 0x56, 0x5d }, /* 9b */
388 { 0x17, 0x08, 0x24, 0x32, 0x79 }, /* 9c */
389 { 0x35, 0x1f, 0x28, 0x34, 0x7a }, /* 9d */
390 { 0x08, 0x14, 0x2a, 0x14, 0x22 }, /* 9e */
391 { 0x22, 0x14, 0x2a, 0x14, 0x08 }, /* 9f */
392 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* a0 */
393 { 0x70, 0x50, 0x70, 0x00, 0x00 }, /* a1 */
394 { 0x00, 0x00, 0x0f, 0x01, 0x01 }, /* a2 */
395 { 0x40, 0x40, 0x78, 0x00, 0x00 }, /* a3 */
396 { 0x10, 0x20, 0x40, 0x00, 0x00 }, /* a4 */
397 { 0x00, 0x18, 0x18, 0x00, 0x00 }, /* a5 */
398 { 0x0a, 0x0a, 0x4a, 0x2a, 0x1e }, /* a6 */
399 { 0x04, 0x44, 0x34, 0x14, 0x0c }, /* a7 */
400 { 0x20, 0x10, 0x78, 0x04, 0x00 }, /* a8 */
401 { 0x18, 0x08, 0x4c, 0x48, 0x38 }, /* a9 */
402 { 0x48, 0x48, 0x78, 0x48, 0x48 }, /* aa */
403 { 0x48, 0x28, 0x18, 0x7c, 0x08 }, /* ab */
404 { 0x08, 0x7c, 0x08, 0x28, 0x18 }, /* ac */
405 { 0x40, 0x48, 0x48, 0x78, 0x40 }, /* ad */
406 { 0x54, 0x54, 0x54, 0x7c, 0x00 }, /* ae */
407 { 0x18, 0x00, 0x58, 0x40, 0x38 }, /* af */
408 { 0x08, 0x08, 0x08, 0x08, 0x08 }, /* b0 */
409 { 0x01, 0x41, 0x3d, 0x09, 0x07 }, /* b1 */
410 { 0x10, 0x08, 0x7c, 0x02, 0x01 }, /* b2 */
411 { 0x0e, 0x02, 0x43, 0x22, 0x1e }, /* b3 */
412 { 0x42, 0x42, 0x7e, 0x42, 0x42 }, /* b4 */
413 { 0x22, 0x12, 0x0a, 0x7f, 0x02 }, /* b5 */
414 { 0x42, 0x3f, 0x02, 0x42, 0x3e }, /* b6 */
415 { 0x0a, 0x0a, 0x7f, 0x0a, 0x0a }, /* b7 */
416 { 0x08, 0x46, 0x42, 0x22, 0x1e }, /* b8 */
417 { 0x04, 0x03, 0x42, 0x3e, 0x02 }, /* b9 */
418 { 0x42, 0x42, 0x42, 0x42, 0x7e }, /* ba */
419 { 0x02, 0x07, 0x42, 0x3f, 0x02 }, /* bb */
420 { 0x4a, 0x4a, 0x40, 0x20, 0x10 }, /* bc */
421 { 0x42, 0x22, 0x12, 0x2a, 0x46 }, /* bd */
422 { 0x02, 0x3f, 0x42, 0x4a, 0x46 }, /* be */
423 { 0x06, 0x48, 0x40, 0x20, 0x1e }, /* bf */
424 { 0x08, 0x46, 0x4a, 0x32, 0x1e }, /* c0 */
425 { 0x0a, 0x4a, 0x3e, 0x09, 0x08 }, /* c1 */
426 { 0x0e, 0x00, 0x4e, 0x20, 0x1e }, /* c2 */
427 { 0x04, 0x45, 0x3d, 0x05, 0x04 }, /* c3 */
428 { 0x00, 0x7f, 0x08, 0x10, 0x00 }, /* c4 */
429 { 0x44, 0x24, 0x1f, 0x04, 0x04 }, /* c5 */
430 { 0x40, 0x42, 0x42, 0x42, 0x40 }, /* c6 */
431 { 0x42, 0x2a, 0x12, 0x2a, 0x06 }, /* c7 */
432 { 0x22, 0x12, 0x7b, 0x16, 0x22 }, /* c8 */
433 { 0x00, 0x40, 0x20, 0x1f, 0x00 }, /* c9 */
434 { 0x78, 0x00, 0x02, 0x04, 0x78 }, /* ca */
435 { 0x3f, 0x44, 0x44, 0x44, 0x44 }, /* cb */
436 { 0x02, 0x42, 0x42, 0x22, 0x1e }, /* cc */
437 { 0x04, 0x02, 0x04, 0x08, 0x30 }, /* cd */
438 { 0x32, 0x02, 0x7f, 0x02, 0x32 }, /* ce */
439 { 0x02, 0x12, 0x22, 0x52, 0x0e }, /* cf */
440 { 0x00, 0x2a, 0x2a, 0x2a, 0x40 }, /* d0 */
441 { 0x38, 0x24, 0x22, 0x20, 0x70 }, /* d1 */
442 { 0x40, 0x28, 0x10, 0x28, 0x06 }, /* d2 */
443 { 0x0a, 0x3e, 0x4a, 0x4a, 0x4a }, /* d3 */
444 { 0x04, 0x7f, 0x04, 0x14, 0x0c }, /* d4 */
445 { 0x40, 0x42, 0x42, 0x7e, 0x40 }, /* d5 */
446 { 0x4a, 0x4a, 0x4a, 0x4a, 0x7e }, /* d6 */
447 { 0x04, 0x05, 0x45, 0x25, 0x1c }, /* d7 */
448 { 0x1f, 0x40, 0x20, 0x1f, 0x00 }, /* d8 */
449 { 0x7c, 0x00, 0x7e, 0x40, 0x30 }, /* d9 */
450 { 0x7e, 0x40, 0x20, 0x10, 0x08 }, /* da */
451 { 0x7f, 0x41, 0x41, 0x41, 0x7f }, /* db */
452 { 0x0e, 0x02, 0x42, 0x22, 0x1e }, /* dc */
453 { 0x42, 0x42, 0x40, 0x20, 0x18 }, /* dd */
454 { 0x02, 0x04, 0x01, 0x02, 0x00 }, /* de */
455 { 0x07, 0x05, 0x07, 0x00, 0x00 }, /* df */
456 { 0x38, 0x44, 0x48, 0x30, 0x4c }, /* e0 */
457 { 0x7c, 0x2a, 0x2a, 0x2a, 0x14 }, /* e1 */
458 { 0x02, 0x4c, 0x30, 0x0c, 0x02 }, /* e2 */
459 { 0x44, 0x3c, 0x04, 0x7c, 0x44 }, /* e3 */
460 { 0x63, 0x55, 0x49, 0x41, 0x41 }, /* e4 */
461 { 0x38, 0x44, 0x4c, 0x54, 0x24 }, /* e5 */
462 { 0x40, 0x3e, 0x10, 0x10, 0x1e }, /* e6 */
463 { 0x04, 0x04, 0x3c, 0x44, 0x44 }, /* e7 */
464 { 0x49, 0x55, 0x7f, 0x55, 0x49 }, /* e8 */
465 { 0x3c, 0x4a, 0x4a, 0x4a, 0x3c }, /* e9 */
466 { 0x58, 0x64, 0x04, 0x64, 0x58 }, /* ea */
467 { 0x3a, 0x45, 0x45, 0x45, 0x39 }, /* eb */
468 { 0x60, 0x50, 0x20, 0x50, 0x30 }, /* ec */
469 { 0x08, 0x54, 0x3e, 0x15, 0x08 }, /* ed */
470 { 0x14, 0x2a, 0x2a, 0x2a, 0x00 }, /* ee */
471 { 0x7c, 0x0a, 0x09, 0x09, 0x06 }, /* ef */
472 { 0x08, 0x04, 0x08, 0x10, 0x08 }, /* f0 */
473 { 0x14, 0x0a, 0x14, 0x28, 0x14 }, /* f1 */
474 { 0x24, 0x3b, 0x2a, 0x7e, 0x2a }, /* f2 */
475 { 0x40, 0x3f, 0x15, 0x15, 0x7f }, /* f3 */
476 { 0x46, 0x20, 0x1f, 0x20, 0x46 }, /* f4 */
477 { 0x24, 0x14, 0x7f, 0x18, 0x24 }, /* f5 */
478 { 0x24, 0x14, 0x7f, 0x14, 0x24 }, /* f6 */
479 { 0x44, 0x6a, 0x79, 0x6a, 0x44 }, /* f7 */
480 { 0x40, 0x44, 0x7f, 0x44, 0x40 }, /* f8 */
481 { 0x7f, 0x49, 0x49, 0x49, 0x7f }, /* f9 */
482 { 0x14, 0x14, 0x7c, 0x14, 0x12 }, /* fa */
483 { 0x44, 0x3c, 0x14, 0x14, 0x74 }, /* fb */
484 { 0x7c, 0x14, 0x1c, 0x14, 0x7c }, /* fc */
485 { 0x2a, 0x55, 0x2a, 0x55, 0x2a }, /* fd */
486 { 0x55, 0x2a, 0x55, 0x2a, 0x55 }, /* fe */
487 { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f } /* ff */
488};
489
490unsigned char font_old_player[256][5] = {
491 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 00 */
492 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 01 */
493 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 02 */
494 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 03 */
495 { 0x3e, 0x41, 0x5d, 0x55, 0x1e }, /* 04 */
496 { 0x48, 0x7e, 0x49, 0x49, 0x42 }, /* 05 */
497 { 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, /* 06 */
498 { 0x15, 0x16, 0x7c, 0x16, 0x15 }, /* 07 */
499 { 0x38, 0x55, 0x56, 0x54, 0x18 }, /* 08 */
500 { 0x38, 0x54, 0x56, 0x55, 0x18 }, /* 09 */
501 { 0x38, 0x41, 0x42, 0x20, 0x78 }, /* 0a */
502 { 0x00, 0x49, 0x7a, 0x40, 0x00 }, /* 0b */
503 { 0x30, 0x49, 0x4a, 0x48, 0x30 }, /* 0c */
504 { 0x0e, 0x51, 0x51, 0x71, 0x11 }, /* 0d */
505 { 0x1f, 0x10, 0x7c, 0x14, 0x04 }, /* 0e */
506 { 0x5c, 0x32, 0x2a, 0x26, 0x1d }, /* 0f */
507 { 0x18, 0x64, 0x3c, 0x26, 0x18 }, /* 10 */
508 { 0x0f, 0x09, 0x7d, 0x34, 0x5c }, /* 11 */
509 { 0x70, 0x2a, 0x2d, 0x2a, 0x70 }, /* 12 */
510 { 0x20, 0x52, 0x55, 0x52, 0x78 }, /* 13 */
511 { 0x60, 0x58, 0x46, 0x58, 0x60 }, /* 14 */
512 { 0x40, 0x40, 0x40, 0x40, 0x40 }, /* 15 */
513 { 0x1c, 0x55, 0x7f, 0x55, 0x1c }, /* 16 */
514 { 0x7f, 0x01, 0x01, 0x01, 0x07 }, /* 17 */
515 { 0x70, 0x0c, 0x03, 0x0c, 0x70 }, /* 18 */
516 { 0x4e, 0x71, 0x01, 0x71, 0x4e }, /* 19 */
517 { 0x01, 0x7f, 0x01, 0x7f, 0x01 }, /* 1a */
518 { 0x0f, 0x10, 0x7f, 0x10, 0x0f }, /* 1b */
519 { 0x41, 0x63, 0x55, 0x49, 0x41 }, /* 1c */
520 { 0x3e, 0x49, 0x49, 0x49, 0x3e }, /* 1d */
521 { 0x63, 0x49, 0x49, 0x49, 0x63 }, /* 1e */
522 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 1f */
523 { 0x7e, 0x09, 0x7f, 0x49, 0x49 }, /* 20 */
524 { 0x24, 0x54, 0x78, 0x54, 0x58 }, /* 21 */
525 { 0x7e, 0x01, 0x25, 0x26, 0x18 }, /* 22 */
526 { 0x7c, 0x54, 0x56, 0x45, 0x44 }, /* 23 */
527 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 24 */
528 { 0x00, 0x00, 0x5f, 0x00, 0x00 }, /* 25 */
529 { 0x05, 0x03, 0x00, 0x05, 0x03 }, /* 26 */
530 { 0x14, 0x7f, 0x14, 0x7f, 0x14 }, /* 27 */
531 { 0x22, 0x1c, 0x14, 0x1c, 0x22 }, /* 28 */
532 { 0x23, 0x13, 0x08, 0x64, 0x62 }, /* 29 */
533 { 0x36, 0x49, 0x56, 0x20, 0x58 }, /* 2a */
534 { 0x00, 0x05, 0x03, 0x00, 0x00 }, /* 2b */
535 { 0x00, 0x1c, 0x22, 0x41, 0x00 }, /* 2c */
536 { 0x00, 0x41, 0x22, 0x1c, 0x00 }, /* 2d */
537 { 0x22, 0x14, 0x7f, 0x14, 0x22 }, /* 2e */
538 { 0x08, 0x08, 0x3e, 0x08, 0x08 }, /* 2f */
539 { 0x00, 0x50, 0x30, 0x00, 0x00 }, /* 30 */
540 { 0x08, 0x08, 0x08, 0x08, 0x08 }, /* 31 */
541 { 0x00, 0x30, 0x30, 0x00, 0x00 }, /* 32 */
542 { 0x20, 0x10, 0x08, 0x04, 0x02 }, /* 33 */
543 { 0x3e, 0x41, 0x41, 0x41, 0x3e }, /* 34 */
544 { 0x00, 0x42, 0x7f, 0x40, 0x00 }, /* 35 */
545 { 0x42, 0x61, 0x51, 0x49, 0x46 }, /* 36 */
546 { 0x21, 0x41, 0x45, 0x4b, 0x31 }, /* 37 */
547 { 0x18, 0x14, 0x12, 0x7f, 0x10 }, /* 38 */
548 { 0x27, 0x45, 0x45, 0x45, 0x39 }, /* 39 */
549 { 0x3c, 0x4a, 0x49, 0x49, 0x30 }, /* 3a */
550 { 0x01, 0x01, 0x71, 0x0d, 0x03 }, /* 3b */
551 { 0x36, 0x49, 0x49, 0x49, 0x36 }, /* 3c */
552 { 0x06, 0x49, 0x49, 0x29, 0x1e }, /* 3d */
553 { 0x00, 0x36, 0x36, 0x00, 0x00 }, /* 3e */
554 { 0x00, 0x56, 0x36, 0x00, 0x00 }, /* 3f */
555 { 0x08, 0x1c, 0x36, 0x63, 0x41 }, /* 40 */
556 { 0x14, 0x14, 0x14, 0x14, 0x14 }, /* 41 */
557 { 0x41, 0x63, 0x36, 0x1c, 0x08 }, /* 42 */
558 { 0x02, 0x01, 0x51, 0x09, 0x06 }, /* 43 */
559 { 0x00, 0x00, 0x7d, 0x00, 0x00 }, /* 44 */
560 { 0x7c, 0x12, 0x11, 0x12, 0x7c }, /* 45 */
561 { 0x7f, 0x49, 0x49, 0x49, 0x36 }, /* 46 */
562 { 0x3e, 0x41, 0x41, 0x41, 0x22 }, /* 47 */
563 { 0x7f, 0x41, 0x41, 0x22, 0x1c }, /* 48 */
564 { 0x7f, 0x49, 0x49, 0x49, 0x41 }, /* 49 */
565 { 0x7f, 0x09, 0x09, 0x09, 0x01 }, /* 4a */
566 { 0x3e, 0x41, 0x49, 0x49, 0x38 }, /* 4b */
567 { 0x7f, 0x08, 0x08, 0x08, 0x7f }, /* 4c */
568 { 0x00, 0x41, 0x7f, 0x41, 0x00 }, /* 4d */
569 { 0x20, 0x41, 0x41, 0x3f, 0x01 }, /* 4e */
570 { 0x7f, 0x08, 0x14, 0x22, 0x41 }, /* 4f */
571 { 0x7f, 0x40, 0x40, 0x40, 0x40 }, /* 50 */
572 { 0x7f, 0x02, 0x04, 0x02, 0x7f }, /* 51 */
573 { 0x7f, 0x04, 0x08, 0x10, 0x7f }, /* 52 */
574 { 0x3e, 0x41, 0x41, 0x41, 0x3e }, /* 53 */
575 { 0x7f, 0x09, 0x09, 0x09, 0x06 }, /* 54 */
576 { 0x3e, 0x41, 0x41, 0x21, 0x5e }, /* 55 */
577 { 0x7f, 0x09, 0x19, 0x29, 0x46 }, /* 56 */
578 { 0x26, 0x49, 0x49, 0x49, 0x32 }, /* 57 */
579 { 0x01, 0x01, 0x7f, 0x01, 0x01 }, /* 58 */
580 { 0x3f, 0x40, 0x40, 0x40, 0x3f }, /* 59 */
581 { 0x1f, 0x20, 0x40, 0x20, 0x1f }, /* 5a */
582 { 0x3f, 0x40, 0x20, 0x40, 0x3f }, /* 5b */
583 { 0x63, 0x14, 0x08, 0x14, 0x63 }, /* 5c */
584 { 0x03, 0x04, 0x78, 0x04, 0x03 }, /* 5d */
585 { 0x61, 0x51, 0x49, 0x45, 0x43 }, /* 5e */
586 { 0x70, 0x29, 0x24, 0x29, 0x70 }, /* 5f */
587 { 0x38, 0x45, 0x44, 0x45, 0x38 }, /* 60 */
588 { 0x7a, 0x09, 0x11, 0x22, 0x79 }, /* 61 */
589 { 0x3c, 0x41, 0x40, 0x41, 0x3c }, /* 62 */
590 { 0x0a, 0x55, 0x55, 0x55, 0x28 }, /* 63 */
591 { 0x30, 0x48, 0x45, 0x40, 0x20 }, /* 64 */
592 { 0x20, 0x54, 0x54, 0x54, 0x78 }, /* 65 */
593 { 0x7f, 0x44, 0x44, 0x44, 0x38 }, /* 66 */
594 { 0x38, 0x44, 0x44, 0x44, 0x44 }, /* 67 */
595 { 0x38, 0x44, 0x44, 0x44, 0x7f }, /* 68 */
596 { 0x38, 0x54, 0x54, 0x54, 0x58 }, /* 69 */
597 { 0x00, 0x04, 0x7e, 0x05, 0x05 }, /* 6a */
598 { 0x08, 0x54, 0x54, 0x54, 0x3c }, /* 6b */
599 { 0x7f, 0x08, 0x04, 0x04, 0x78 }, /* 6c */
600 { 0x00, 0x44, 0x7d, 0x40, 0x00 }, /* 6d */
601 { 0x20, 0x40, 0x44, 0x3d, 0x00 }, /* 6e */
602 { 0x00, 0x7f, 0x10, 0x28, 0x44 }, /* 6f */
603 { 0x00, 0x41, 0x7f, 0x40, 0x00 }, /* 70 */
604 { 0x7c, 0x04, 0x78, 0x04, 0x78 }, /* 71 */
605 { 0x7c, 0x08, 0x04, 0x04, 0x78 }, /* 72 */
606 { 0x38, 0x44, 0x44, 0x44, 0x38 }, /* 73 */
607 { 0x7c, 0x14, 0x14, 0x14, 0x08 }, /* 74 */
608 { 0x08, 0x14, 0x14, 0x14, 0x7c }, /* 75 */
609 { 0x00, 0x7c, 0x08, 0x04, 0x04 }, /* 76 */
610 { 0x48, 0x54, 0x54, 0x54, 0x20 }, /* 77 */
611 { 0x00, 0x04, 0x3f, 0x44, 0x44 }, /* 78 */
612 { 0x3c, 0x40, 0x40, 0x20, 0x7c }, /* 79 */
613 { 0x1c, 0x20, 0x40, 0x20, 0x1c }, /* 7a */
614 { 0x3c, 0x40, 0x20, 0x40, 0x3c }, /* 7b */
615 { 0x44, 0x28, 0x10, 0x28, 0x44 }, /* 7c */
616 { 0x4c, 0x50, 0x50, 0x50, 0x3c }, /* 7d */
617 { 0x44, 0x64, 0x54, 0x4c, 0x44 }, /* 7e */
618 { 0x20, 0x55, 0x54, 0x55, 0x78 }, /* 7f */
619 { 0x30, 0x4a, 0x48, 0x4a, 0x30 }, /* 80 */
620 { 0x7a, 0x11, 0x09, 0x0a, 0x71 }, /* 81 */
621 { 0x38, 0x42, 0x40, 0x22, 0x78 }, /* 82 */
622 { 0x20, 0x55, 0x56, 0x54, 0x78 }, /* 83 */
623 { 0x0c, 0x12, 0x52, 0x32, 0x12 }, /* 84 */
624 { 0x20, 0x00, 0x20, 0x00, 0x20 }, /* 85 */
625 { 0x10, 0x18, 0x1c, 0x18, 0x10 }, /* 86 */
626 { 0x04, 0x0c, 0x1c, 0x0c, 0x04 }, /* 87 */
627 { 0x08, 0x1c, 0x3e, 0x7f, 0x00 }, /* 88 */
628 { 0x00, 0x7f, 0x3e, 0x1c, 0x08 }, /* 89 */
629 { 0x7f, 0x03, 0x03, 0x06, 0x06 }, /* 8a */
630 { 0x55, 0x2a, 0x55, 0x2a, 0x55 }, /* 8b */
631 { 0x78, 0x15, 0x16, 0x14, 0x78 }, /* 8c */
632 { 0x78, 0x14, 0x16, 0x15, 0x78 }, /* 8d */
633 { 0x78, 0x16, 0x15, 0x16, 0x78 }, /* 8e */
634 { 0x7a, 0x15, 0x15, 0x16, 0x79 }, /* 8f */
635 { 0x7c, 0x55, 0x56, 0x54, 0x44 }, /* 90 */
636 { 0x7c, 0x56, 0x55, 0x46, 0x44 }, /* 91 */
637 { 0x7c, 0x55, 0x54, 0x45, 0x44 }, /* 92 */
638 { 0x00, 0x45, 0x7e, 0x44, 0x00 }, /* 93 */
639 { 0x00, 0x44, 0x7e, 0x45, 0x00 }, /* 94 */
640 { 0x08, 0x7f, 0x49, 0x22, 0x1c }, /* 95 */
641 { 0x38, 0x45, 0x46, 0x44, 0x38 }, /* 96 */
642 { 0x38, 0x44, 0x46, 0x45, 0x38 }, /* 97 */
643 { 0x38, 0x46, 0x45, 0x46, 0x38 }, /* 98 */
644 { 0x3a, 0x45, 0x45, 0x46, 0x39 }, /* 99 */
645 { 0x3c, 0x41, 0x42, 0x40, 0x3c }, /* 9a */
646 { 0x3c, 0x40, 0x42, 0x41, 0x3c }, /* 9b */
647 { 0x20, 0x54, 0x56, 0x55, 0x78 }, /* 9c */
648 { 0x20, 0x56, 0x55, 0x56, 0x78 }, /* 9d */
649 { 0x22, 0x55, 0x55, 0x56, 0x79 }, /* 9e */
650 { 0x38, 0x56, 0x55, 0x56, 0x18 }, /* 9f */
651 { 0x38, 0x55, 0x54, 0x55, 0x18 }, /* a0 */
652 { 0x00, 0x48, 0x7a, 0x41, 0x00 }, /* a1 */
653 { 0x00, 0x4a, 0x79, 0x42, 0x00 }, /* a2 */
654 { 0x00, 0x49, 0x78, 0x41, 0x00 }, /* a3 */
655 { 0x30, 0x48, 0x4a, 0x49, 0x30 }, /* a4 */
656 { 0x30, 0x4a, 0x49, 0x4a, 0x30 }, /* a5 */
657 { 0x32, 0x49, 0x49, 0x4a, 0x31 }, /* a6 */
658 { 0x38, 0x40, 0x42, 0x21, 0x78 }, /* a7 */
659 { 0x18, 0x24, 0x67, 0x24, 0x24 }, /* a8 */
660 { 0x00, 0x00, 0x00, 0x7f, 0x41 }, /* a9 */
661 { 0x00, 0x7d, 0x0a, 0x05, 0x04 }, /* aa */
662 { 0x38, 0x45, 0x46, 0x45, 0x44 }, /* ab */
663 { 0x48, 0x55, 0x56, 0x55, 0x20 }, /* ac */
664 { 0x38, 0x55, 0x56, 0x55, 0x18 }, /* ad */
665 { 0x38, 0x42, 0x45, 0x22, 0x78 }, /* ae */
666 { 0x0c, 0x50, 0x52, 0x51, 0x3c }, /* af */
667 { 0x30, 0x4a, 0x4a, 0x7f, 0x02 }, /* b0 */
668 { 0x38, 0x44, 0x46, 0x45, 0x44 }, /* b1 */
669 { 0x0e, 0x15, 0x75, 0x55, 0x06 }, /* b2 */
670 { 0x08, 0x15, 0x15, 0x75, 0x5e }, /* b3 */
671 { 0x44, 0x64, 0x55, 0x4c, 0x44 }, /* b4 */
672 { 0x44, 0x64, 0x56, 0x4d, 0x44 }, /* b5 */
673 { 0x48, 0x54, 0x56, 0x55, 0x20 }, /* b6 */
674 { 0x7c, 0x08, 0x06, 0x05, 0x78 }, /* b7 */
675 { 0x00, 0x49, 0x7f, 0x44, 0x00 }, /* b8 */
676 { 0x1c, 0x5e, 0x6f, 0x5e, 0x1c }, /* b9 */
677 { 0x7c, 0x09, 0x06, 0x05, 0x78 }, /* ba */
678 { 0x08, 0x3f, 0x48, 0x48, 0x03 }, /* bb */
679 { 0x38, 0x44, 0x7f, 0x00, 0x03 }, /* bc */
680 { 0x44, 0x65, 0x56, 0x4d, 0x44 }, /* bd */
681 { 0x02, 0x01, 0x01, 0x01, 0x01 }, /* be */
682 { 0x02, 0x01, 0x01, 0x01, 0x7d }, /* bf */
683 { 0x41, 0x41, 0x41, 0x41, 0x42 }, /* c0 */
684 { 0x39, 0x45, 0x55, 0x55, 0x31 }, /* c1 */
685 { 0x09, 0x55, 0x55, 0x55, 0x3d }, /* c2 */
686 { 0x02, 0x55, 0x75, 0x15, 0x08 }, /* c3 */
687 { 0x04, 0x2a, 0x6a, 0x2a, 0x10 }, /* c4 */
688 { 0x00, 0x44, 0x7d, 0x44, 0x00 }, /* c5 */
689 { 0x00, 0x44, 0x7c, 0x40, 0x00 }, /* c6 */
690 { 0x3c, 0x42, 0x41, 0x42, 0x3d }, /* c7 */
691 { 0x3a, 0x45, 0x44, 0x46, 0x39 }, /* c8 */
692 { 0x3a, 0x41, 0x40, 0x22, 0x79 }, /* c9 */
693 { 0x32, 0x49, 0x48, 0x4a, 0x31 }, /* ca */
694 { 0x20, 0x40, 0x40, 0x40, 0x5f }, /* cb */
695 { 0x5f, 0x40, 0x40, 0x40, 0x20 }, /* cc */
696 { 0x0e, 0x1e, 0x3c, 0x1e, 0x0e }, /* cd */
697 { 0x41, 0x7f, 0x00, 0x00, 0x00 }, /* ce */
698 { 0x32, 0x39, 0x25, 0x39, 0x32 }, /* cf */
699 { 0x22, 0x41, 0x0e, 0x49, 0x2a }, /* d0 */
700 { 0x42, 0x41, 0x41, 0x41, 0x41 }, /* d1 */
701 { 0x1c, 0x14, 0x14, 0x22, 0x7f }, /* d2 */
702 { 0x7e, 0x79, 0x49, 0x79, 0x7e }, /* d3 */
703 { 0x00, 0x08, 0x30, 0x0c, 0x02 }, /* d4 */
704 { 0x14, 0x36, 0x77, 0x36, 0x14 }, /* d5 */
705 { 0x00, 0x7c, 0x7c, 0x7f, 0x00 }, /* d6 */
706 { 0x7f, 0x7f, 0x00, 0x41, 0x41 }, /* d7 */
707 { 0x41, 0x41, 0x00, 0x41, 0x41 }, /* d8 */
708 { 0x00, 0x02, 0x5f, 0x62, 0x22 }, /* d9 */
709 { 0x7f, 0x7f, 0x00, 0x7f, 0x7f }, /* da */
710 { 0x08, 0x1c, 0x3e, 0x1c, 0x08 }, /* db */
711 { 0x7c, 0x4c, 0x54, 0x4c, 0x7c }, /* dc */
712 { 0x08, 0x7b, 0x3f, 0x7b, 0x08 }, /* dd */
713 { 0x00, 0x50, 0x20, 0x50, 0x00 }, /* de */
714 { 0x60, 0x60, 0x60, 0x60, 0x60 }, /* df */
715 { 0x70, 0x70, 0x70, 0x70, 0x70 }, /* e0 */
716 { 0x78, 0x78, 0x78, 0x78, 0x78 }, /* e1 */
717 { 0x7c, 0x7c, 0x7c, 0x7c, 0x7c }, /* e2 */
718 { 0x7e, 0x7e, 0x7e, 0x7e, 0x7e }, /* e3 */
719 { 0x00, 0x00, 0x70, 0x08, 0x04 }, /* e4 */
720 { 0x00, 0x3e, 0x41, 0x1c, 0x22 }, /* e5 */
721 { 0x5e, 0x52, 0x72, 0x52, 0x5e }, /* e6 */
722 { 0x20, 0x10, 0x0a, 0x06, 0x0e }, /* e7 */
723 { 0x02, 0x04, 0x28, 0x30, 0x38 }, /* e8 */
724 { 0x20, 0x55, 0x56, 0x56, 0x79 }, /* e9 */
725 { 0x01, 0x01, 0x01, 0x01, 0x02 }, /* ea */
726 { 0x04, 0x08, 0x70, 0x00, 0x00 }, /* eb */
727 { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f }, /* ec */
728 { 0x7f, 0x63, 0x55, 0x49, 0x51 }, /* ed */
729 { 0x01, 0x01, 0x01, 0x01, 0x01 }, /* ee */
730 { 0x7f, 0x01, 0x01, 0x01, 0x01 }, /* ef */
731 { 0x70, 0x78, 0x6c, 0x06, 0x06 }, /* f0 */
732 { 0x17, 0x15, 0x7d, 0x48, 0x48 }, /* f1 */
733 { 0x52, 0x7a, 0x42, 0x06, 0x7c }, /* f2 */
734 { 0x25, 0x35, 0x29, 0x01, 0x7e }, /* f3 */
735 { 0x00, 0x00, 0x07, 0x08, 0x10 }, /* f4 */
736 { 0x20, 0x40, 0x40, 0x40, 0x40 }, /* f5 */
737 { 0x40, 0x40, 0x40, 0x40, 0x20 }, /* f6 */
738 { 0x10, 0x08, 0x07, 0x00, 0x00 }, /* f7 */
739 { 0x30, 0x48, 0x45, 0x43, 0x47 }, /* f8 */
740 { 0x7c, 0x46, 0x67, 0x46, 0x7c }, /* f9 */
741 { 0x55, 0x55, 0x41, 0x7f, 0x03 }, /* fa */
742 { 0x1c, 0x36, 0x36, 0x36, 0x1c }, /* fb */
743 { 0x60, 0x7c, 0x02, 0x31, 0x3f }, /* fc */
744 { 0x51, 0x49, 0x55, 0x63, 0x7f }, /* fd */
745 { 0x7f, 0x60, 0x60, 0x00, 0x00 }, /* fe */
746 { 0x7f, 0x03, 0x03, 0x00, 0x00 } /* ff */
747};
diff --git a/tools/player_unifont.c b/tools/player_unifont.c
new file mode 100644
index 0000000000..2b5121d501
--- /dev/null
+++ b/tools/player_unifont.c
@@ -0,0 +1,778 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2007 by Jens Arnold
11 * Based on the work of Kjell Ericson
12 *
13 * All files in this archive are subject to the GNU General Public License.
14 * See the file COPYING in the source tree root for full license agreement.
15 *
16 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
17 * KIND, either express or implied.
18 *
19 ****************************************************************************/
20
21#include <stdio.h>
22#include <stdlib.h>
23#include <stdbool.h>
24#include <string.h>
25#include "lcd-charcell.h"
26
27#define CHAR_WIDTH 8
28#define CHAR_HEIGHT 8
29#define BITMAP_WIDTH (CHAR_WIDTH*(16+3))
30#define SIZE 2
31
32#define CHAR_BG_STD 0xc0c0c0
33#define CHAR_BG_ALT 0x808080
34#define CHAR_FG_STD 0x000000
35#define CHAR_FG_ALT 0xf00000
36
37static unsigned char font_player_newlcd[256][7] = {
38 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 00 */
39 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 01 */
40 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 02 */
41 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 03 */
42 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 04 */
43 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 05 */
44 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 06 */
45 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 07 */
46 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 08 */
47 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 09 */
48 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0a */
49 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0b */
50 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0c */
51 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0d */
52 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0e */
53 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0f */
54 { 0x00, 0x10, 0x1c, 0x1f, 0x1c, 0x10, 0x00 }, /* 10 */
55 { 0x00, 0x01, 0x07, 0x1f, 0x07, 0x01, 0x00 }, /* 11 */
56 { 0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00 }, /* 12 */
57 { 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x0a }, /* 13 */
58 { 0x0f, 0x1d, 0x1d, 0x0d, 0x05, 0x05, 0x05 }, /* 14 */
59 { 0x07, 0x08, 0x0e, 0x11, 0x0e, 0x02, 0x1c }, /* 15 */
60 { 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00 }, /* 16 */
61 { 0x01, 0x01, 0x05, 0x09, 0x1f, 0x08, 0x04 }, /* 17 */
62 { 0x04, 0x0e, 0x15, 0x04, 0x04, 0x04, 0x04 }, /* 18 */
63 { 0x04, 0x04, 0x04, 0x04, 0x15, 0x0e, 0x04 }, /* 19 */
64 { 0x11, 0x19, 0x1d, 0x1f, 0x1d, 0x19, 0x11 }, /* 1a */
65 { 0x11, 0x13, 0x17, 0x1f, 0x17, 0x13, 0x11 }, /* 1b */
66 { 0x10, 0x14, 0x12, 0x1f, 0x12, 0x14, 0x10 }, /* 1c */
67 { 0x01, 0x05, 0x09, 0x1f, 0x09, 0x05, 0x01 }, /* 1d */
68 { 0x00, 0x1f, 0x0e, 0x0e, 0x04, 0x04, 0x00 }, /* 1e */
69 { 0x00, 0x04, 0x04, 0x0e, 0x0e, 0x1f, 0x00 }, /* 1f */
70 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 20 */
71 { 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x04 }, /* 21 */
72 { 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x00 }, /* 22 */
73 { 0x0a, 0x0a, 0x1f, 0x0a, 0x1f, 0x0a, 0x0a }, /* 23 */
74 { 0x04, 0x0f, 0x14, 0x0e, 0x05, 0x1e, 0x04 }, /* 24 */
75 { 0x18, 0x19, 0x02, 0x04, 0x08, 0x13, 0x03 }, /* 25 */
76 { 0x0c, 0x12, 0x14, 0x08, 0x15, 0x12, 0x0d }, /* 26 */
77 { 0x0c, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00 }, /* 27 */
78 { 0x02, 0x04, 0x08, 0x08, 0x08, 0x04, 0x02 }, /* 28 */
79 { 0x08, 0x04, 0x02, 0x02, 0x02, 0x04, 0x08 }, /* 29 */
80 { 0x00, 0x04, 0x15, 0x0e, 0x15, 0x04, 0x00 }, /* 2a */
81 { 0x00, 0x04, 0x04, 0x1f, 0x04, 0x04, 0x00 }, /* 2b */
82 { 0x00, 0x00, 0x00, 0x00, 0x0c, 0x04, 0x08 }, /* 2c */
83 { 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00 }, /* 2d */
84 { 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00 }, /* 2e */
85 { 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x00 }, /* 2f */
86 { 0x0e, 0x11, 0x13, 0x15, 0x19, 0x11, 0x0e }, /* 30 */
87 { 0x04, 0x0c, 0x04, 0x04, 0x04, 0x04, 0x0e }, /* 31 */
88 { 0x0e, 0x11, 0x01, 0x02, 0x04, 0x08, 0x1f }, /* 32 */
89 { 0x1f, 0x02, 0x04, 0x02, 0x01, 0x11, 0x0e }, /* 33 */
90 { 0x02, 0x06, 0x0a, 0x12, 0x1f, 0x02, 0x02 }, /* 34 */
91 { 0x1f, 0x10, 0x1e, 0x01, 0x01, 0x11, 0x0e }, /* 35 */
92 { 0x06, 0x08, 0x10, 0x1e, 0x11, 0x11, 0x0e }, /* 36 */
93 { 0x1f, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04 }, /* 37 */
94 { 0x0e, 0x11, 0x11, 0x0e, 0x11, 0x11, 0x0e }, /* 38 */
95 { 0x0e, 0x11, 0x11, 0x0f, 0x01, 0x02, 0x0c }, /* 39 */
96 { 0x00, 0x0c, 0x0c, 0x00, 0x0c, 0x0c, 0x00 }, /* 3a */
97 { 0x0c, 0x0c, 0x00, 0x0c, 0x0c, 0x04, 0x08 }, /* 3b */
98 { 0x02, 0x04, 0x08, 0x10, 0x08, 0x04, 0x02 }, /* 3c */
99 { 0x00, 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x00 }, /* 3d */
100 { 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08 }, /* 3e */
101 { 0x0e, 0x11, 0x01, 0x02, 0x04, 0x00, 0x04 }, /* 3f */
102 { 0x0e, 0x11, 0x01, 0x0d, 0x15, 0x15, 0x0e }, /* 40 */
103 { 0x0e, 0x11, 0x11, 0x11, 0x1f, 0x11, 0x11 }, /* 41 */
104 { 0x1e, 0x11, 0x11, 0x1e, 0x11, 0x11, 0x1e }, /* 42 */
105 { 0x0e, 0x11, 0x10, 0x10, 0x10, 0x11, 0x0e }, /* 43 */
106 { 0x1c, 0x12, 0x11, 0x11, 0x11, 0x12, 0x1c }, /* 44 */
107 { 0x1f, 0x10, 0x10, 0x1e, 0x10, 0x10, 0x1f }, /* 45 */
108 { 0x1f, 0x10, 0x10, 0x1e, 0x10, 0x10, 0x10 }, /* 46 */
109 { 0x0e, 0x11, 0x10, 0x17, 0x11, 0x11, 0x0f }, /* 47 */
110 { 0x11, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x11 }, /* 48 */
111 { 0x0e, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0e }, /* 49 */
112 { 0x0f, 0x02, 0x02, 0x02, 0x02, 0x12, 0x0c }, /* 4a */
113 { 0x11, 0x12, 0x14, 0x18, 0x14, 0x12, 0x11 }, /* 4b */
114 { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f }, /* 4c */
115 { 0x11, 0x1b, 0x15, 0x15, 0x11, 0x11, 0x11 }, /* 4d */
116 { 0x11, 0x11, 0x19, 0x15, 0x13, 0x11, 0x11 }, /* 4e */
117 { 0x0e, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e }, /* 4f */
118 { 0x1e, 0x11, 0x11, 0x1e, 0x10, 0x10, 0x10 }, /* 50 */
119 { 0x0e, 0x11, 0x11, 0x11, 0x11, 0x12, 0x0d }, /* 51 */
120 { 0x1e, 0x11, 0x11, 0x1e, 0x14, 0x12, 0x11 }, /* 52 */
121 { 0x0e, 0x11, 0x10, 0x0e, 0x01, 0x11, 0x0e }, /* 53 */
122 { 0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 }, /* 54 */
123 { 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e }, /* 55 */
124 { 0x11, 0x11, 0x11, 0x11, 0x11, 0x0a, 0x04 }, /* 56 */
125 { 0x11, 0x11, 0x11, 0x15, 0x15, 0x15, 0x0a }, /* 57 */
126 { 0x11, 0x11, 0x0a, 0x04, 0x0a, 0x11, 0x11 }, /* 58 */
127 { 0x11, 0x11, 0x0a, 0x04, 0x04, 0x04, 0x04 }, /* 59 */
128 { 0x1f, 0x01, 0x02, 0x04, 0x08, 0x10, 0x1f }, /* 5a */
129 { 0x0e, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0e }, /* 5b */
130 { 0x11, 0x0a, 0x1f, 0x04, 0x1f, 0x04, 0x04 }, /* 5c */
131 { 0x0e, 0x02, 0x02, 0x02, 0x02, 0x02, 0x0e }, /* 5d */
132 { 0x04, 0x0a, 0x11, 0x00, 0x00, 0x00, 0x00 }, /* 5e */
133 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f }, /* 5f */
134 { 0x08, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00 }, /* 60 */
135 { 0x00, 0x00, 0x0e, 0x01, 0x0f, 0x11, 0x0f }, /* 61 */
136 { 0x10, 0x10, 0x16, 0x19, 0x11, 0x11, 0x1e }, /* 62 */
137 { 0x00, 0x00, 0x0e, 0x10, 0x10, 0x11, 0x0e }, /* 63 */
138 { 0x01, 0x01, 0x0d, 0x13, 0x11, 0x11, 0x0f }, /* 64 */
139 { 0x00, 0x00, 0x0e, 0x11, 0x1f, 0x10, 0x0e }, /* 65 */
140 { 0x06, 0x09, 0x08, 0x1c, 0x08, 0x08, 0x08 }, /* 66 */
141 { 0x00, 0x0f, 0x11, 0x11, 0x0f, 0x01, 0x0e }, /* 67 */
142 { 0x10, 0x10, 0x16, 0x19, 0x11, 0x11, 0x11 }, /* 68 */
143 { 0x04, 0x00, 0x0c, 0x04, 0x04, 0x04, 0x0e }, /* 69 */
144 { 0x02, 0x00, 0x06, 0x02, 0x02, 0x12, 0x0c }, /* 6a */
145 { 0x10, 0x10, 0x12, 0x14, 0x18, 0x14, 0x12 }, /* 6b */
146 { 0x0c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0e }, /* 6c */
147 { 0x00, 0x00, 0x1a, 0x15, 0x15, 0x11, 0x11 }, /* 6d */
148 { 0x00, 0x00, 0x16, 0x19, 0x11, 0x11, 0x11 }, /* 6e */
149 { 0x00, 0x00, 0x0e, 0x11, 0x11, 0x11, 0x0e }, /* 6f */
150 { 0x00, 0x00, 0x1e, 0x11, 0x1e, 0x10, 0x10 }, /* 70 */
151 { 0x00, 0x00, 0x0d, 0x13, 0x0f, 0x01, 0x01 }, /* 71 */
152 { 0x00, 0x00, 0x16, 0x19, 0x10, 0x10, 0x10 }, /* 72 */
153 { 0x00, 0x00, 0x0e, 0x10, 0x0e, 0x01, 0x1e }, /* 73 */
154 { 0x08, 0x08, 0x1c, 0x08, 0x08, 0x09, 0x06 }, /* 74 */
155 { 0x00, 0x00, 0x11, 0x11, 0x11, 0x13, 0x0d }, /* 75 */
156 { 0x00, 0x00, 0x11, 0x11, 0x11, 0x0a, 0x04 }, /* 76 */
157 { 0x00, 0x00, 0x11, 0x11, 0x15, 0x15, 0x0a }, /* 77 */
158 { 0x00, 0x00, 0x11, 0x0a, 0x04, 0x0a, 0x11 }, /* 78 */
159 { 0x00, 0x00, 0x11, 0x11, 0x0f, 0x01, 0x1e }, /* 79 */
160 { 0x00, 0x00, 0x1f, 0x02, 0x04, 0x08, 0x1f }, /* 7a */
161 { 0x02, 0x04, 0x04, 0x08, 0x04, 0x04, 0x02 }, /* 7b */
162 { 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 }, /* 7c */
163 { 0x08, 0x04, 0x04, 0x02, 0x04, 0x04, 0x08 }, /* 7d */
164 { 0x00, 0x04, 0x02, 0x1f, 0x02, 0x04, 0x00 }, /* 7e */
165 { 0x00, 0x04, 0x08, 0x1f, 0x08, 0x04, 0x00 }, /* 7f */
166 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f }, /* 80 */
167 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f }, /* 81 */
168 { 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f }, /* 82 */
169 { 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f }, /* 83 */
170 { 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f }, /* 84 */
171 { 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f }, /* 85 */
172 { 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f }, /* 86 */
173 { 0x00, 0x0a, 0x04, 0x1f, 0x04, 0x0a, 0x00 }, /* 87 */
174 { 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11 }, /* 88 */
175 { 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19 }, /* 89 */
176 { 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d }, /* 8a */
177 { 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 }, /* 8b */
178 { 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c }, /* 8c */
179 { 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e }, /* 8d */
180 { 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f }, /* 8e */
181 { 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00 }, /* 8f */
182 { 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x0e, 0x00 }, /* 90 */
183 { 0x1f, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1f }, /* 91 */
184 { 0x1f, 0x1b, 0x13, 0x1b, 0x1b, 0x11, 0x1f }, /* 92 */
185 { 0x1f, 0x11, 0x1d, 0x1b, 0x17, 0x11, 0x1f }, /* 93 */
186 { 0x00, 0x00, 0x07, 0x04, 0x04, 0x14, 0x08 }, /* 94 */
187 { 0x04, 0x04, 0x1f, 0x04, 0x04, 0x00, 0x1f }, /* 95 */
188 { 0x00, 0x11, 0x0a, 0x04, 0x0a, 0x11, 0x00 }, /* 96 */
189 { 0x00, 0x04, 0x00, 0x1f, 0x00, 0x04, 0x00 }, /* 97 */
190 { 0x1f, 0x00, 0x11, 0x0a, 0x04, 0x0a, 0x11 }, /* 98 */
191 { 0x1c, 0x04, 0x1c, 0x10, 0x1c, 0x00, 0x00 }, /* 99 */
192 { 0x1c, 0x04, 0x1c, 0x04, 0x1c, 0x00, 0x00 }, /* 9a */
193 { 0x11, 0x12, 0x17, 0x09, 0x17, 0x04, 0x07 }, /* 9b */
194 { 0x11, 0x12, 0x14, 0x09, 0x13, 0x07, 0x01 }, /* 9c */
195 { 0x18, 0x09, 0x1a, 0x0d, 0x1b, 0x17, 0x01 }, /* 9d */
196 { 0x00, 0x05, 0x0a, 0x14, 0x0a, 0x05, 0x00 }, /* 9e */
197 { 0x00, 0x14, 0x0a, 0x05, 0x0a, 0x14, 0x00 }, /* 9f */
198 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* a0 */
199 { 0x00, 0x00, 0x00, 0x00, 0x1c, 0x14, 0x1c }, /* a1 */
200 { 0x07, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00 }, /* a2 */
201 { 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x1c }, /* a3 */
202 { 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x04 }, /* a4 */
203 { 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00 }, /* a5 */
204 { 0x00, 0x1f, 0x01, 0x1f, 0x01, 0x02, 0x04 }, /* a6 */
205 { 0x00, 0x00, 0x1f, 0x01, 0x06, 0x04, 0x08 }, /* a7 */
206 { 0x00, 0x00, 0x02, 0x04, 0x0c, 0x14, 0x04 }, /* a8 */
207 { 0x00, 0x00, 0x04, 0x1f, 0x11, 0x01, 0x06 }, /* a9 */
208 { 0x00, 0x00, 0x00, 0x1f, 0x04, 0x04, 0x1f }, /* aa */
209 { 0x00, 0x00, 0x02, 0x1f, 0x06, 0x0a, 0x12 }, /* ab */
210 { 0x00, 0x00, 0x08, 0x1f, 0x09, 0x0a, 0x08 }, /* ac */
211 { 0x00, 0x00, 0x00, 0x0e, 0x02, 0x02, 0x1f }, /* ad */
212 { 0x00, 0x00, 0x1e, 0x02, 0x1e, 0x02, 0x1e }, /* ae */
213 { 0x00, 0x00, 0x00, 0x15, 0x15, 0x01, 0x06 }, /* af */
214 { 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00 }, /* b0 */
215 { 0x1f, 0x01, 0x05, 0x06, 0x04, 0x04, 0x08 }, /* b1 */
216 { 0x01, 0x02, 0x04, 0x0c, 0x14, 0x04, 0x04 }, /* b2 */
217 { 0x04, 0x1f, 0x11, 0x11, 0x01, 0x02, 0x04 }, /* b3 */
218 { 0x00, 0x1f, 0x04, 0x04, 0x04, 0x04, 0x1f }, /* b4 */
219 { 0x02, 0x1f, 0x02, 0x06, 0x0a, 0x12, 0x02 }, /* b5 */
220 { 0x08, 0x1f, 0x09, 0x09, 0x09, 0x09, 0x12 }, /* b6 */
221 { 0x04, 0x1f, 0x04, 0x1f, 0x04, 0x04, 0x04 }, /* b7 */
222 { 0x00, 0x0f, 0x09, 0x11, 0x01, 0x02, 0x0c }, /* b8 */
223 { 0x08, 0x0f, 0x12, 0x02, 0x02, 0x02, 0x04 }, /* b9 */
224 { 0x00, 0x1f, 0x01, 0x01, 0x01, 0x01, 0x1f }, /* ba */
225 { 0x0a, 0x1f, 0x0a, 0x02, 0x02, 0x02, 0x04 }, /* bb */
226 { 0x00, 0x18, 0x00, 0x18, 0x01, 0x02, 0x1c }, /* bc */
227 { 0x00, 0x1f, 0x01, 0x02, 0x04, 0x0a, 0x11 }, /* bd */
228 { 0x08, 0x1f, 0x09, 0x0a, 0x08, 0x08, 0x07 }, /* be */
229 { 0x00, 0x11, 0x11, 0x09, 0x01, 0x02, 0x0c }, /* bf */
230 { 0x00, 0x0f, 0x09, 0x15, 0x03, 0x02, 0x0c }, /* c0 */
231 { 0x02, 0x1c, 0x04, 0x1f, 0x04, 0x04, 0x08 }, /* c1 */
232 { 0x00, 0x15, 0x15, 0x15, 0x01, 0x02, 0x04 }, /* c2 */
233 { 0x0e, 0x00, 0x1f, 0x04, 0x04, 0x04, 0x08 }, /* c3 */
234 { 0x08, 0x08, 0x08, 0x0c, 0x0a, 0x08, 0x08 }, /* c4 */
235 { 0x04, 0x04, 0x1f, 0x04, 0x04, 0x08, 0x10 }, /* c5 */
236 { 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x1f }, /* c6 */
237 { 0x00, 0x1f, 0x01, 0x0a, 0x04, 0x0a, 0x10 }, /* c7 */
238 { 0x04, 0x1f, 0x02, 0x04, 0x0e, 0x15, 0x04 }, /* c8 */
239 { 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x08 }, /* c9 */
240 { 0x00, 0x04, 0x02, 0x11, 0x11, 0x11, 0x11 }, /* ca */
241 { 0x10, 0x10, 0x1f, 0x10, 0x10, 0x10, 0x0f }, /* cb */
242 { 0x00, 0x1f, 0x01, 0x01, 0x01, 0x02, 0x0c }, /* cc */
243 { 0x00, 0x08, 0x14, 0x02, 0x01, 0x01, 0x00 }, /* cd */
244 { 0x04, 0x1f, 0x04, 0x04, 0x15, 0x15, 0x04 }, /* ce */
245 { 0x00, 0x1f, 0x01, 0x01, 0x0a, 0x04, 0x02 }, /* cf */
246 { 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x01 }, /* d0 */
247 { 0x00, 0x04, 0x08, 0x10, 0x11, 0x1f, 0x01 }, /* d1 */
248 { 0x00, 0x01, 0x01, 0x0a, 0x04, 0x0a, 0x10 }, /* d2 */
249 { 0x00, 0x1f, 0x08, 0x1f, 0x08, 0x08, 0x07 }, /* d3 */
250 { 0x08, 0x08, 0x1f, 0x09, 0x0a, 0x08, 0x08 }, /* d4 */
251 { 0x00, 0x0e, 0x02, 0x02, 0x02, 0x02, 0x1f }, /* d5 */
252 { 0x00, 0x1f, 0x01, 0x1f, 0x01, 0x01, 0x1f }, /* d6 */
253 { 0x0e, 0x00, 0x1f, 0x01, 0x01, 0x02, 0x04 }, /* d7 */
254 { 0x12, 0x12, 0x12, 0x12, 0x12, 0x04, 0x08 }, /* d8 */
255 { 0x00, 0x04, 0x14, 0x14, 0x15, 0x15, 0x16 }, /* d9 */
256 { 0x00, 0x10, 0x10, 0x11, 0x12, 0x14, 0x18 }, /* da */
257 { 0x1f, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1f }, /* db */
258 { 0x00, 0x1f, 0x11, 0x11, 0x01, 0x02, 0x04 }, /* dc */
259 { 0x00, 0x18, 0x00, 0x01, 0x01, 0x02, 0x1c }, /* dd */
260 { 0x04, 0x12, 0x08, 0x00, 0x00, 0x00, 0x00 }, /* de */
261 { 0x1c, 0x14, 0x1c, 0x00, 0x00, 0x00, 0x00 }, /* df */
262 { 0x00, 0x00, 0x09, 0x15, 0x12, 0x12, 0x0d }, /* e0 */
263 { 0x00, 0x0e, 0x11, 0x1e, 0x11, 0x1e, 0x10 }, /* e1 */
264 { 0x00, 0x11, 0x0a, 0x0a, 0x04, 0x04, 0x08 }, /* e2 */
265 { 0x00, 0x00, 0x1f, 0x0a, 0x0a, 0x0a, 0x13 }, /* e3 */
266 { 0x1f, 0x10, 0x08, 0x04, 0x08, 0x10, 0x1f }, /* e4 */
267 { 0x00, 0x00, 0x0f, 0x14, 0x12, 0x11, 0x0e }, /* e5 */
268 { 0x00, 0x09, 0x09, 0x09, 0x0f, 0x08, 0x10 }, /* e6 */
269 { 0x00, 0x00, 0x1f, 0x04, 0x04, 0x04, 0x03 }, /* e7 */
270 { 0x1f, 0x04, 0x0e, 0x15, 0x0e, 0x04, 0x1f }, /* e8 */
271 { 0x00, 0x0e, 0x11, 0x1f, 0x11, 0x11, 0x0e }, /* e9 */
272 { 0x00, 0x00, 0x0e, 0x11, 0x11, 0x0a, 0x1b }, /* ea */
273 { 0x0f, 0x10, 0x0e, 0x11, 0x11, 0x11, 0x0e }, /* eb */
274 { 0x00, 0x00, 0x00, 0x00, 0x0b, 0x15, 0x1a }, /* ec */
275 { 0x02, 0x04, 0x0e, 0x15, 0x0e, 0x04, 0x08 }, /* ed */
276 { 0x00, 0x0e, 0x10, 0x0e, 0x10, 0x0e, 0x00 }, /* ee */
277 { 0x06, 0x09, 0x11, 0x1e, 0x10, 0x10, 0x10 }, /* ef */
278 { 0x00, 0x00, 0x08, 0x15, 0x02, 0x00, 0x00 }, /* f0 */
279 { 0x00, 0x08, 0x15, 0x0a, 0x15, 0x02, 0x00 }, /* f1 */
280 { 0x08, 0x0f, 0x12, 0x0f, 0x0a, 0x1f, 0x02 }, /* f2 */
281 { 0x0f, 0x09, 0x0f, 0x09, 0x0f, 0x09, 0x11 }, /* f3 */
282 { 0x04, 0x15, 0x15, 0x04, 0x04, 0x0a, 0x11 }, /* f4 */
283 { 0x04, 0x04, 0x1d, 0x06, 0x0e, 0x15, 0x04 }, /* f5 */
284 { 0x04, 0x04, 0x1f, 0x04, 0x0e, 0x15, 0x04 }, /* f6 */
285 { 0x04, 0x0a, 0x11, 0x0e, 0x04, 0x0e, 0x1f }, /* f7 */
286 { 0x04, 0x04, 0x0e, 0x04, 0x04, 0x04, 0x1f }, /* f8 */
287 { 0x1f, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x1f }, /* f9 */
288 { 0x00, 0x01, 0x1e, 0x04, 0x1f, 0x04, 0x04 }, /* fa */
289 { 0x00, 0x00, 0x1f, 0x08, 0x0f, 0x09, 0x11 }, /* fb */
290 { 0x00, 0x00, 0x1f, 0x15, 0x1f, 0x11, 0x11 }, /* fc */
291 { 0x0a, 0x15, 0x0a, 0x15, 0x0a, 0x15, 0x0a }, /* fd */
292 { 0x15, 0x0a, 0x15, 0x0a, 0x15, 0x0a, 0x15 }, /* fe */
293 { 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f }, /* ff */
294};
295static unsigned char font_player_oldlcd[256][7] = {
296 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 00 */
297 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 01 */
298 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 02 */
299 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 03 */
300 { 0x0e, 0x11, 0x17, 0x15, 0x17, 0x10, 0x0e }, /* 04 */
301 { 0x06, 0x09, 0x08, 0x1e, 0x08, 0x08, 0x1f }, /* 05 */
302 { 0x04, 0x0f, 0x14, 0x0e, 0x05, 0x1e, 0x04 }, /* 06 */
303 { 0x11, 0x0a, 0x1f, 0x04, 0x1f, 0x04, 0x04 }, /* 07 */
304 { 0x08, 0x04, 0x0e, 0x11, 0x1f, 0x10, 0x0e }, /* 08 */
305 { 0x02, 0x04, 0x0e, 0x11, 0x1f, 0x10, 0x0e }, /* 09 */
306 { 0x08, 0x04, 0x00, 0x11, 0x11, 0x13, 0x0d }, /* 0a */
307 { 0x08, 0x04, 0x00, 0x0c, 0x04, 0x04, 0x0e }, /* 0b */
308 { 0x08, 0x04, 0x00, 0x0e, 0x11, 0x11, 0x0e }, /* 0c */
309 { 0x0f, 0x10, 0x10, 0x10, 0x0f, 0x02, 0x0e }, /* 0d */
310 { 0x10, 0x10, 0x17, 0x14, 0x1e, 0x04, 0x04 }, /* 0e */
311 { 0x01, 0x0e, 0x13, 0x15, 0x19, 0x0e, 0x10 }, /* 0f */
312 { 0x00, 0x02, 0x0e, 0x15, 0x15, 0x0e, 0x08 }, /* 10 */
313 { 0x1c, 0x10, 0x17, 0x1d, 0x07, 0x06, 0x05 }, /* 11 */
314 { 0x04, 0x0a, 0x04, 0x0e, 0x11, 0x1f, 0x11 }, /* 12 */
315 { 0x04, 0x0a, 0x04, 0x01, 0x0f, 0x11, 0x0f }, /* 13 */
316 { 0x00, 0x04, 0x04, 0x0a, 0x0a, 0x11, 0x1f }, /* 14 */
317 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f }, /* 15 */
318 { 0x0e, 0x04, 0x1f, 0x15, 0x1f, 0x04, 0x0e }, /* 16 */
319 { 0x1f, 0x11, 0x11, 0x10, 0x10, 0x10, 0x10 }, /* 17 */
320 { 0x04, 0x04, 0x0a, 0x0a, 0x11, 0x11, 0x11 }, /* 18 */
321 { 0x0e, 0x11, 0x11, 0x11, 0x0a, 0x0a, 0x1b }, /* 19 */
322 { 0x1f, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a }, /* 1a */
323 { 0x15, 0x15, 0x15, 0x15, 0x0e, 0x04, 0x04 }, /* 1b */
324 { 0x1f, 0x08, 0x04, 0x02, 0x04, 0x08, 0x1f }, /* 1c */
325 { 0x0e, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x0e }, /* 1d */
326 { 0x1f, 0x11, 0x00, 0x0e, 0x00, 0x11, 0x1f }, /* 1e */
327 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 1f */
328 { 0x0f, 0x14, 0x14, 0x1f, 0x14, 0x14, 0x17 }, /* 20 */
329 { 0x00, 0x00, 0x1a, 0x05, 0x0f, 0x14, 0x0f }, /* 21 */
330 { 0x0c, 0x12, 0x16, 0x11, 0x11, 0x16, 0x10 }, /* 22 */
331 { 0x02, 0x04, 0x1f, 0x10, 0x1c, 0x10, 0x1f }, /* 23 */
332 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 24 */
333 { 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x04 }, /* 25 */
334 { 0x1b, 0x09, 0x12, 0x00, 0x00, 0x00, 0x00 }, /* 26 */
335 { 0x0a, 0x0a, 0x1f, 0x0a, 0x1f, 0x0a, 0x0a }, /* 27 */
336 { 0x00, 0x11, 0x0e, 0x0a, 0x0e, 0x11, 0x00 }, /* 28 */
337 { 0x18, 0x19, 0x02, 0x04, 0x08, 0x13, 0x03 }, /* 29 */
338 { 0x08, 0x14, 0x14, 0x09, 0x15, 0x12, 0x0d }, /* 2a */
339 { 0x0c, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00 }, /* 2b */
340 { 0x02, 0x04, 0x08, 0x08, 0x08, 0x04, 0x02 }, /* 2c */
341 { 0x08, 0x04, 0x02, 0x02, 0x02, 0x04, 0x08 }, /* 2d */
342 { 0x04, 0x15, 0x0e, 0x04, 0x0e, 0x15, 0x04 }, /* 2e */
343 { 0x00, 0x04, 0x04, 0x1f, 0x04, 0x04, 0x00 }, /* 2f */
344 { 0x00, 0x00, 0x00, 0x00, 0x0c, 0x04, 0x08 }, /* 30 */
345 { 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00 }, /* 31 */
346 { 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00 }, /* 32 */
347 { 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x00 }, /* 33 */
348 { 0x0e, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e }, /* 34 */
349 { 0x04, 0x0c, 0x04, 0x04, 0x04, 0x04, 0x0e }, /* 35 */
350 { 0x0e, 0x11, 0x01, 0x02, 0x04, 0x08, 0x1f }, /* 36 */
351 { 0x1f, 0x02, 0x04, 0x02, 0x01, 0x11, 0x0e }, /* 37 */
352 { 0x02, 0x06, 0x0a, 0x12, 0x1f, 0x02, 0x02 }, /* 38 */
353 { 0x1f, 0x10, 0x1e, 0x01, 0x01, 0x11, 0x0e }, /* 39 */
354 { 0x06, 0x08, 0x10, 0x1e, 0x11, 0x11, 0x0e }, /* 3a */
355 { 0x1f, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04 }, /* 3b */
356 { 0x0e, 0x11, 0x11, 0x0e, 0x11, 0x11, 0x0e }, /* 3c */
357 { 0x0e, 0x11, 0x11, 0x0f, 0x01, 0x02, 0x0c }, /* 3d */
358 { 0x00, 0x0c, 0x0c, 0x00, 0x0c, 0x0c, 0x00 }, /* 3e */
359 { 0x00, 0x0c, 0x0c, 0x00, 0x0c, 0x04, 0x08 }, /* 3f */
360 { 0x03, 0x06, 0x0c, 0x18, 0x0c, 0x06, 0x03 }, /* 40 */
361 { 0x00, 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x00 }, /* 41 */
362 { 0x18, 0x0c, 0x06, 0x03, 0x06, 0x0c, 0x18 }, /* 42 */
363 { 0x0e, 0x11, 0x01, 0x02, 0x04, 0x00, 0x04 }, /* 43 */
364 { 0x04, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04 }, /* 44 */
365 { 0x04, 0x0a, 0x11, 0x11, 0x1f, 0x11, 0x11 }, /* 45 */
366 { 0x1e, 0x11, 0x11, 0x1e, 0x11, 0x11, 0x1e }, /* 46 */
367 { 0x0e, 0x11, 0x10, 0x10, 0x10, 0x11, 0x0e }, /* 47 */
368 { 0x1c, 0x12, 0x11, 0x11, 0x11, 0x12, 0x1c }, /* 48 */
369 { 0x1f, 0x10, 0x10, 0x1e, 0x10, 0x10, 0x1f }, /* 49 */
370 { 0x1f, 0x10, 0x10, 0x1e, 0x10, 0x10, 0x10 }, /* 4a */
371 { 0x0e, 0x10, 0x10, 0x17, 0x11, 0x11, 0x0e }, /* 4b */
372 { 0x11, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x11 }, /* 4c */
373 { 0x0e, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0e }, /* 4d */
374 { 0x0f, 0x02, 0x02, 0x02, 0x02, 0x12, 0x0c }, /* 4e */
375 { 0x11, 0x12, 0x14, 0x18, 0x14, 0x12, 0x11 }, /* 4f */
376 { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f }, /* 50 */
377 { 0x11, 0x1b, 0x15, 0x11, 0x11, 0x11, 0x11 }, /* 51 */
378 { 0x11, 0x11, 0x19, 0x15, 0x13, 0x11, 0x11 }, /* 52 */
379 { 0x0e, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e }, /* 53 */
380 { 0x1e, 0x11, 0x11, 0x1e, 0x10, 0x10, 0x10 }, /* 54 */
381 { 0x0e, 0x11, 0x11, 0x11, 0x11, 0x12, 0x0d }, /* 55 */
382 { 0x1e, 0x11, 0x11, 0x1e, 0x14, 0x12, 0x11 }, /* 56 */
383 { 0x0e, 0x11, 0x10, 0x0e, 0x01, 0x11, 0x0e }, /* 57 */
384 { 0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 }, /* 58 */
385 { 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e }, /* 59 */
386 { 0x11, 0x11, 0x11, 0x11, 0x11, 0x0a, 0x04 }, /* 5a */
387 { 0x11, 0x11, 0x11, 0x11, 0x11, 0x15, 0x0a }, /* 5b */
388 { 0x11, 0x11, 0x0a, 0x04, 0x0a, 0x11, 0x11 }, /* 5c */
389 { 0x11, 0x11, 0x0a, 0x04, 0x04, 0x04, 0x04 }, /* 5d */
390 { 0x1f, 0x01, 0x02, 0x04, 0x08, 0x10, 0x1f }, /* 5e */
391 { 0x0a, 0x00, 0x04, 0x0a, 0x11, 0x1f, 0x11 }, /* 5f */
392 { 0x0a, 0x00, 0x0e, 0x11, 0x11, 0x11, 0x0e }, /* 60 */
393 { 0x0d, 0x12, 0x00, 0x19, 0x15, 0x13, 0x11 }, /* 61 */
394 { 0x0a, 0x00, 0x11, 0x11, 0x11, 0x11, 0x0e }, /* 62 */
395 { 0x0e, 0x10, 0x0e, 0x11, 0x0e, 0x01, 0x0e }, /* 63 */
396 { 0x04, 0x00, 0x04, 0x08, 0x10, 0x11, 0x0e }, /* 64 */
397 { 0x00, 0x00, 0x0e, 0x01, 0x0f, 0x11, 0x0f }, /* 65 */
398 { 0x10, 0x10, 0x1e, 0x11, 0x11, 0x11, 0x1e }, /* 66 */
399 { 0x00, 0x00, 0x0f, 0x10, 0x10, 0x10, 0x0f }, /* 67 */
400 { 0x01, 0x01, 0x0f, 0x11, 0x11, 0x11, 0x0f }, /* 68 */
401 { 0x00, 0x00, 0x0e, 0x11, 0x1f, 0x10, 0x0f }, /* 69 */
402 { 0x03, 0x04, 0x0f, 0x04, 0x04, 0x04, 0x04 }, /* 6a */
403 { 0x00, 0x00, 0x0f, 0x11, 0x0f, 0x01, 0x0e }, /* 6b */
404 { 0x10, 0x10, 0x16, 0x19, 0x11, 0x11, 0x11 }, /* 6c */
405 { 0x04, 0x00, 0x0c, 0x04, 0x04, 0x04, 0x0e }, /* 6d */
406 { 0x02, 0x00, 0x06, 0x02, 0x02, 0x12, 0x0c }, /* 6e */
407 { 0x08, 0x08, 0x09, 0x0a, 0x0c, 0x0a, 0x09 }, /* 6f */
408 { 0x0c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0e }, /* 70 */
409 { 0x00, 0x00, 0x1a, 0x15, 0x15, 0x15, 0x15 }, /* 71 */
410 { 0x00, 0x00, 0x16, 0x19, 0x11, 0x11, 0x11 }, /* 72 */
411 { 0x00, 0x00, 0x0e, 0x11, 0x11, 0x11, 0x0e }, /* 73 */
412 { 0x00, 0x00, 0x1e, 0x11, 0x1e, 0x10, 0x10 }, /* 74 */
413 { 0x00, 0x00, 0x0f, 0x11, 0x0f, 0x01, 0x01 }, /* 75 */
414 { 0x00, 0x00, 0x0b, 0x0c, 0x08, 0x08, 0x08 }, /* 76 */
415 { 0x00, 0x00, 0x0e, 0x10, 0x0e, 0x01, 0x1e }, /* 77 */
416 { 0x04, 0x04, 0x0f, 0x04, 0x04, 0x04, 0x03 }, /* 78 */
417 { 0x00, 0x00, 0x11, 0x11, 0x11, 0x13, 0x0d }, /* 79 */
418 { 0x00, 0x00, 0x11, 0x11, 0x11, 0x0a, 0x04 }, /* 7a */
419 { 0x00, 0x00, 0x11, 0x11, 0x11, 0x15, 0x0a }, /* 7b */
420 { 0x00, 0x00, 0x11, 0x0a, 0x04, 0x0a, 0x11 }, /* 7c */
421 { 0x00, 0x00, 0x11, 0x11, 0x0f, 0x01, 0x1e }, /* 7d */
422 { 0x00, 0x00, 0x1f, 0x02, 0x04, 0x08, 0x1f }, /* 7e */
423 { 0x0a, 0x00, 0x0e, 0x01, 0x0f, 0x11, 0x0f }, /* 7f */
424 { 0x00, 0x0a, 0x00, 0x0e, 0x11, 0x11, 0x0e }, /* 80 */
425 { 0x0d, 0x12, 0x00, 0x16, 0x19, 0x11, 0x11 }, /* 81 */
426 { 0x00, 0x0a, 0x00, 0x11, 0x11, 0x13, 0x0d }, /* 82 */
427 { 0x08, 0x04, 0x0e, 0x01, 0x0f, 0x11, 0x0f }, /* 83 */
428 { 0x00, 0x0f, 0x10, 0x10, 0x0f, 0x02, 0x04 }, /* 84 */
429 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00 }, /* 85 */
430 { 0x00, 0x00, 0x04, 0x0e, 0x1f, 0x00, 0x00 }, /* 86 */
431 { 0x00, 0x00, 0x1f, 0x0e, 0x04, 0x00, 0x00 }, /* 87 */
432 { 0x02, 0x06, 0x0e, 0x1e, 0x0e, 0x06, 0x02 }, /* 88 */
433 { 0x08, 0x0c, 0x0e, 0x0f, 0x0e, 0x0c, 0x08 }, /* 89 */
434 { 0x1c, 0x1f, 0x13, 0x10, 0x10, 0x10, 0x10 }, /* 8a */
435 { 0x15, 0x0a, 0x15, 0x0a, 0x15, 0x0a, 0x15 }, /* 8b */
436 { 0x08, 0x04, 0x0e, 0x11, 0x1f, 0x11, 0x11 }, /* 8c */
437 { 0x02, 0x04, 0x0e, 0x11, 0x1f, 0x11, 0x11 }, /* 8d */
438 { 0x04, 0x0a, 0x0e, 0x11, 0x1f, 0x11, 0x11 }, /* 8e */
439 { 0x0d, 0x12, 0x0e, 0x11, 0x1f, 0x11, 0x11 }, /* 8f */
440 { 0x08, 0x04, 0x1f, 0x10, 0x1e, 0x10, 0x1f }, /* 90 */
441 { 0x04, 0x0a, 0x1f, 0x10, 0x1c, 0x10, 0x1f }, /* 91 */
442 { 0x0a, 0x00, 0x1f, 0x10, 0x1c, 0x10, 0x1f }, /* 92 */
443 { 0x08, 0x04, 0x0e, 0x04, 0x04, 0x04, 0x0e }, /* 93 */
444 { 0x02, 0x04, 0x0e, 0x04, 0x04, 0x04, 0x0e }, /* 94 */
445 { 0x0c, 0x0a, 0x09, 0x1d, 0x09, 0x0a, 0x0c }, /* 95 */
446 { 0x08, 0x04, 0x0e, 0x11, 0x11, 0x11, 0x0e }, /* 96 */
447 { 0x02, 0x04, 0x0e, 0x11, 0x11, 0x11, 0x0e }, /* 97 */
448 { 0x04, 0x0a, 0x0e, 0x11, 0x11, 0x11, 0x0e }, /* 98 */
449 { 0x0d, 0x12, 0x0e, 0x11, 0x11, 0x11, 0x0e }, /* 99 */
450 { 0x08, 0x04, 0x11, 0x11, 0x11, 0x11, 0x0e }, /* 9a */
451 { 0x02, 0x04, 0x11, 0x11, 0x11, 0x11, 0x0e }, /* 9b */
452 { 0x02, 0x04, 0x0e, 0x01, 0x0f, 0x11, 0x0f }, /* 9c */
453 { 0x04, 0x0a, 0x0e, 0x01, 0x0f, 0x11, 0x0f }, /* 9d */
454 { 0x0d, 0x12, 0x0e, 0x01, 0x0f, 0x11, 0x0f }, /* 9e */
455 { 0x04, 0x0a, 0x0e, 0x11, 0x1f, 0x10, 0x0e }, /* 9f */
456 { 0x0a, 0x00, 0x0e, 0x11, 0x1f, 0x10, 0x0e }, /* a0 */
457 { 0x02, 0x04, 0x00, 0x0c, 0x04, 0x04, 0x0e }, /* a1 */
458 { 0x04, 0x0a, 0x00, 0x0c, 0x04, 0x04, 0x0e }, /* a2 */
459 { 0x0a, 0x00, 0x00, 0x0c, 0x04, 0x04, 0x0e }, /* a3 */
460 { 0x02, 0x04, 0x00, 0x0e, 0x11, 0x11, 0x0e }, /* a4 */
461 { 0x04, 0x0a, 0x00, 0x0e, 0x11, 0x11, 0x0e }, /* a5 */
462 { 0x0d, 0x12, 0x00, 0x0e, 0x11, 0x11, 0x0e }, /* a6 */
463 { 0x02, 0x04, 0x00, 0x11, 0x11, 0x13, 0x0d }, /* a7 */
464 { 0x04, 0x04, 0x0f, 0x10, 0x10, 0x0f, 0x04 }, /* a8 */
465 { 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03 }, /* a9 */
466 { 0x0a, 0x04, 0x0b, 0x0c, 0x08, 0x08, 0x08 }, /* aa */
467 { 0x0a, 0x04, 0x0f, 0x10, 0x10, 0x10, 0x0f }, /* ab */
468 { 0x0a, 0x04, 0x0e, 0x10, 0x0e, 0x01, 0x1e }, /* ac */
469 { 0x0a, 0x04, 0x0e, 0x11, 0x1f, 0x10, 0x0e }, /* ad */
470 { 0x04, 0x0a, 0x04, 0x11, 0x11, 0x13, 0x0d }, /* ae */
471 { 0x02, 0x04, 0x11, 0x11, 0x0f, 0x01, 0x0e }, /* af */
472 { 0x02, 0x0f, 0x02, 0x0e, 0x12, 0x12, 0x0e }, /* b0 */
473 { 0x02, 0x04, 0x0f, 0x10, 0x10, 0x10, 0x0f }, /* b1 */
474 { 0x0e, 0x11, 0x1f, 0x10, 0x0e, 0x04, 0x06 }, /* b2 */
475 { 0x0e, 0x01, 0x0f, 0x11, 0x0f, 0x02, 0x03 }, /* b3 */
476 { 0x04, 0x00, 0x1f, 0x02, 0x04, 0x08, 0x1f }, /* b4 */
477 { 0x02, 0x04, 0x1f, 0x02, 0x04, 0x08, 0x1f }, /* b5 */
478 { 0x02, 0x04, 0x0e, 0x10, 0x0e, 0x01, 0x1e }, /* b6 */
479 { 0x02, 0x04, 0x16, 0x19, 0x11, 0x11, 0x11 }, /* b7 */
480 { 0x0c, 0x04, 0x06, 0x0c, 0x04, 0x04, 0x0e }, /* b8 */
481 { 0x04, 0x0e, 0x1f, 0x1f, 0x1b, 0x04, 0x0e }, /* b9 */
482 { 0x0a, 0x04, 0x16, 0x19, 0x11, 0x11, 0x11 }, /* ba */
483 { 0x09, 0x09, 0x08, 0x1e, 0x08, 0x08, 0x06 }, /* bb */
484 { 0x05, 0x05, 0x0c, 0x14, 0x14, 0x14, 0x0c }, /* bc */
485 { 0x0a, 0x04, 0x1f, 0x02, 0x04, 0x08, 0x1f }, /* bd */
486 { 0x0f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* be */
487 { 0x0f, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01 }, /* bf */
488 { 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1f }, /* c0 */
489 { 0x1f, 0x00, 0x0e, 0x10, 0x17, 0x11, 0x0e }, /* c1 */
490 { 0x1f, 0x00, 0x0f, 0x11, 0x0f, 0x01, 0x0e }, /* c2 */
491 { 0x0e, 0x10, 0x0e, 0x01, 0x0e, 0x04, 0x0c }, /* c3 */
492 { 0x00, 0x0e, 0x10, 0x0e, 0x01, 0x0e, 0x04 }, /* c4 */
493 { 0x04, 0x00, 0x0e, 0x04, 0x04, 0x04, 0x0e }, /* c5 */
494 { 0x00, 0x00, 0x0c, 0x04, 0x04, 0x04, 0x0e }, /* c6 */
495 { 0x05, 0x0a, 0x11, 0x11, 0x11, 0x11, 0x0e }, /* c7 */
496 { 0x09, 0x12, 0x0e, 0x11, 0x11, 0x11, 0x0e }, /* c8 */
497 { 0x09, 0x12, 0x00, 0x11, 0x11, 0x13, 0x0d }, /* c9 */
498 { 0x09, 0x12, 0x00, 0x0e, 0x11, 0x11, 0x0e }, /* ca */
499 { 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x0f }, /* cb */
500 { 0x10, 0x10, 0x10, 0x10, 0x10, 0x01, 0x1e }, /* cc */
501 { 0x00, 0x1b, 0x1f, 0x1f, 0x0e, 0x04, 0x00 }, /* cd */
502 { 0x18, 0x08, 0x08, 0x08, 0x08, 0x08, 0x18 }, /* ce */
503 { 0x0e, 0x11, 0x04, 0x0a, 0x1b, 0x1f, 0x00 }, /* cf */
504 { 0x0a, 0x15, 0x04, 0x07, 0x00, 0x11, 0x0a }, /* d0 */
505 { 0x0f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1f }, /* d1 */
506 { 0x01, 0x03, 0x1d, 0x11, 0x1d, 0x03, 0x01 }, /* d2 */
507 { 0x0e, 0x11, 0x11, 0x1f, 0x1b, 0x1b, 0x1f }, /* d3 */
508 { 0x00, 0x01, 0x02, 0x0a, 0x04, 0x04, 0x00 }, /* d4 */
509 { 0x04, 0x0e, 0x1f, 0x00, 0x1f, 0x0e, 0x04 }, /* d5 */
510 { 0x02, 0x02, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e }, /* d6 */
511 { 0x1b, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1b }, /* d7 */
512 { 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b }, /* d8 */
513 { 0x04, 0x0f, 0x04, 0x04, 0x04, 0x03, 0x06 }, /* d9 */
514 { 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b }, /* da */
515 { 0x00, 0x04, 0x0e, 0x1f, 0x0e, 0x04, 0x00 }, /* db */
516 { 0x00, 0x00, 0x1f, 0x1b, 0x15, 0x11, 0x1f }, /* dc */
517 { 0x0e, 0x0e, 0x04, 0x1f, 0x0e, 0x0e, 0x0a }, /* dd */
518 { 0x00, 0x00, 0x00, 0x00, 0x0a, 0x04, 0x0a }, /* de */
519 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f }, /* df */
520 { 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f }, /* e0 */
521 { 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f }, /* e1 */
522 { 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f }, /* e2 */
523 { 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f }, /* e3 */
524 { 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04 }, /* e4 */
525 { 0x04, 0x09, 0x0a, 0x0a, 0x0a, 0x09, 0x04 }, /* e5 */
526 { 0x00, 0x1f, 0x11, 0x11, 0x1f, 0x04, 0x1f }, /* e6 */
527 { 0x00, 0x07, 0x03, 0x05, 0x08, 0x10, 0x00 }, /* e7 */
528 { 0x00, 0x10, 0x08, 0x05, 0x03, 0x07, 0x00 }, /* e8 */
529 { 0x09, 0x06, 0x0e, 0x01, 0x0f, 0x11, 0x0f }, /* e9 */
530 { 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ea */
531 { 0x00, 0x00, 0x10, 0x08, 0x04, 0x04, 0x04 }, /* eb */
532 { 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f }, /* ec */
533 { 0x1f, 0x18, 0x14, 0x12, 0x15, 0x18, 0x1f }, /* ed */
534 { 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ee */
535 { 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10 }, /* ef */
536 { 0x00, 0x03, 0x07, 0x0c, 0x18, 0x1c, 0x1c }, /* f0 */
537 { 0x1c, 0x10, 0x1c, 0x07, 0x1c, 0x04, 0x07 }, /* f1 */
538 { 0x00, 0x1e, 0x03, 0x09, 0x19, 0x09, 0x1d }, /* f2 */
539 { 0x1e, 0x01, 0x19, 0x05, 0x09, 0x1d, 0x01 }, /* f3 */
540 { 0x04, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00 }, /* f4 */
541 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0f }, /* f5 */
542 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e }, /* f6 */
543 { 0x04, 0x04, 0x04, 0x08, 0x10, 0x00, 0x00 }, /* f7 */
544 { 0x07, 0x03, 0x05, 0x08, 0x10, 0x10, 0x0f }, /* f8 */
545 { 0x04, 0x0e, 0x1f, 0x11, 0x11, 0x15, 0x1f }, /* f9 */
546 { 0x1f, 0x03, 0x1a, 0x02, 0x1a, 0x02, 0x1e }, /* fa */
547 { 0x00, 0x0e, 0x1f, 0x11, 0x1f, 0x0e, 0x00 }, /* fb */
548 { 0x03, 0x05, 0x09, 0x09, 0x0b, 0x1b, 0x18 }, /* fc */
549 { 0x1f, 0x03, 0x05, 0x09, 0x15, 0x03, 0x1f }, /* fd */
550 { 0x10, 0x10, 0x10, 0x10, 0x10, 0x1c, 0x1c }, /* fe */
551 { 0x1c, 0x1c, 0x10, 0x10, 0x10, 0x10, 0x10 }, /* ff */
552};
553
554static unsigned char (*font_player)[256][7];
555
556static unsigned bitmap[BITMAP_WIDTH][CHAR_HEIGHT];
557static bool show_subst, show_hardware;
558static bool newlcd;
559
560bool is_new_player(void)
561{
562 return newlcd;
563}
564
565static void draw_pattern(int fg, int bg, int x, const unsigned char *pattern)
566{
567 int x2, y2;
568
569 for (y2 = 0; y2 < 7; y2++)
570 {
571 unsigned data = pattern[y2];
572
573 for (x2 = 0; x2 < 5; x2++)
574 bitmap[x+x2][y2] = (data & (0x10 >> x2)) ? fg : bg;
575 }
576}
577
578static void draw_hexdigit(int x, int digit)
579{
580 int x2, y2;
581
582 draw_pattern(CHAR_FG_STD, CHAR_BG_STD, x + 1,
583 font_player_newlcd[digit+(digit<10?'0':'A'-10)]);
584
585 for (y2 = 0; y2 < CHAR_HEIGHT; y2++)
586 for (x2 = 0; x2 < CHAR_WIDTH; x2++)
587 bitmap[x+x2][y2] ^= 0xffffff;
588}
589
590static void flush_bitmap(FILE *fp)
591{
592 int x, y;
593
594 for (y = 0; y < CHAR_HEIGHT; y++)
595 {
596 int i, z;
597
598 for (i = 0; i < SIZE; i++)
599 {
600 for (x = 0; x < BITMAP_WIDTH; x++)
601 {
602 unsigned int col = bitmap[x][y];
603
604 for (z = 0; z < SIZE; z++)
605 {
606 fprintf(fp, "%d %d %d ", (col >> 16) & 255,
607 (col >> 8) & 255, (col) & 255);
608 }
609 }
610 fprintf(fp, "\n");
611 }
612 }
613}
614
615
616int main(int argc, char **argv)
617{
618 int x, y;
619 int i, lines, block, oldblock;
620 int loop;
621 char *filename;
622 FILE *fp;
623
624 printf("This tool will generate gif-pictures that reflect the current "
625 "unicode charset of the Player.\n");
626
627 for (loop = 0; loop < 6; loop++)
628 {
629 switch (loop)
630 {
631 case 0:
632 font_player = &font_player_oldlcd;
633 newlcd = false;
634 lcd_charset_init();
635 filename = "lcd_old.gif";
636 show_subst = false;
637 show_hardware = false;
638 break;
639 case 1:
640 font_player = &font_player_newlcd;
641 newlcd = true;
642 lcd_charset_init();
643 filename = "lcd_new.gif";
644 show_subst = false;
645 show_hardware = false;
646 break;
647 case 2:
648 font_player = &font_player_oldlcd;
649 newlcd = false;
650 lcd_charset_init();
651 filename = "lcd_old_subst.gif";
652 show_subst = true;
653 show_hardware = false;
654 break;
655 case 3:
656 font_player = &font_player_newlcd;
657 newlcd = true;
658 lcd_charset_init();
659 filename = "lcd_new_subst.gif";
660 show_subst = true;
661 show_hardware = false;
662 break;
663 case 4:
664 font_player = &font_player_oldlcd;
665 xchar_info = NULL;
666 xchar_info_size = 256;
667 filename = "lcd_old_hw.gif";
668 show_subst = true;
669 show_hardware = true;
670 break;
671 case 5:
672 font_player = &font_player_newlcd;
673 xchar_info = NULL;
674 xchar_info_size = 256;
675 filename = "lcd_new_hw.gif";
676 show_subst = true;
677 show_hardware = true;
678 break;
679 default:
680 printf("Not in loop!\n");
681 exit(0);
682 }
683 fp = fopen("tmp.pnm", "wb");
684 if (!fp)
685 {
686 printf("Error opening %s!\n", filename);
687 exit(0);
688 }
689 if (show_hardware)
690 {
691 /* hardware mapping is always 16 lines */
692 lines = 16;
693 }
694 else
695 {
696 /* count lines */
697 for (lines = 0, oldblock = -1, i = 0; i < xchar_info_size; i++)
698 {
699 block = xchar_info[i].ucs >> 4;
700 if (block != oldblock)
701 {
702 lines++;
703 oldblock = block;
704 }
705 }
706 }
707 fprintf(fp, "P3\n#PNM showing a picture of the Player unicode charset\n");
708 fprintf(fp, "%d %d\n255\n", BITMAP_WIDTH*SIZE, CHAR_HEIGHT*SIZE*(lines+1));
709
710 memset(bitmap, 255, sizeof(bitmap));
711 for (x = 0; x < 16; x++)
712 {
713 draw_hexdigit(3*CHAR_WIDTH + x * CHAR_WIDTH, x);
714 }
715
716 for (oldblock = -1, i = 0; i < xchar_info_size; i++)
717 {
718 block = show_hardware ? (i >> 4) : (xchar_info[i].ucs >> 4);
719 if (block != oldblock)
720 {
721 flush_bitmap(fp);
722 memset(bitmap, 255, sizeof(bitmap));
723 draw_hexdigit(0, (block >> 8) & 0xf);
724 draw_hexdigit(CHAR_WIDTH, (block >> 4) & 0xf);
725 draw_hexdigit(2*CHAR_WIDTH, block & 0xf);
726 oldblock = block;
727 }
728 if (show_hardware)
729 {
730 draw_pattern(CHAR_FG_STD, CHAR_BG_STD,
731 3*CHAR_WIDTH+1 + (i & 0xf) * CHAR_WIDTH,
732 (*font_player)[i]);
733 }
734 else
735 {
736 if (xchar_info[i].priority == 0)
737 {
738 draw_pattern(CHAR_FG_STD, CHAR_BG_STD,
739 3*CHAR_WIDTH+1
740 + (xchar_info[i].ucs & 0xf) * CHAR_WIDTH,
741 (*font_player)[xchar_info[i].hw_char]);
742 }
743 else
744 {
745 if (show_subst)
746 {
747 draw_pattern(CHAR_FG_ALT, CHAR_BG_STD,
748 3*CHAR_WIDTH+1
749 + (xchar_info[i].ucs & 0xf) * CHAR_WIDTH,
750 (*font_player)[xchar_info[i].hw_char]);
751 }
752 else
753 {
754 if ((xchar_info[i].glyph & 0x8000) == 0)
755 draw_pattern(CHAR_FG_ALT, CHAR_BG_STD,
756 3*CHAR_WIDTH+1
757 + (xchar_info[i].ucs & 0xf) * CHAR_WIDTH,
758 xfont_fixed[xchar_info[i].glyph]);
759 else
760 draw_pattern(CHAR_FG_STD, CHAR_BG_ALT,
761 3*CHAR_WIDTH+1
762 + (xchar_info[i].ucs & 0xf) * CHAR_WIDTH,
763 font_player_newlcd[' ']);
764 }
765 }
766 }
767 }
768 flush_bitmap(fp);
769 fclose(fp);
770 {
771 char buffer[200];
772
773 sprintf(buffer, "convert tmp.pnm %s", filename);
774 system(buffer);
775 system("rm tmp.pnm");
776 }
777 }
778}