summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/Makefile10
-rw-r--r--firmware/X5x8.bdf1967
-rw-r--r--firmware/X5x8.c2853
-rw-r--r--firmware/drivers/lcd.c95
-rw-r--r--firmware/drivers/lcd.h7
-rw-r--r--firmware/font.c339
-rw-r--r--firmware/font.h53
-rw-r--r--firmware/fonts/clR6x8.bdf2895
-rw-r--r--firmware/loadfont.c212
9 files changed, 3224 insertions, 5207 deletions
diff --git a/firmware/Makefile b/firmware/Makefile
index 24f5b46614..a5ce323be9 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -19,6 +19,7 @@ SYSTEM_FONT = fonts/alt6x10.bdf
19 19
20# store output files in this directory: 20# store output files in this directory:
21OBJDIR = . 21OBJDIR = .
22TOOLSDIR = ../tools
22 23
23CFLAGS = -W -Wall -O -m1 -nostdlib -ffreestanding -Wstrict-prototypes $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) 24CFLAGS = -W -Wall -O -m1 -nostdlib -ffreestanding -Wstrict-prototypes $(INCLUDES) $(TARGET) $(EXTRA_DEFINES)
24 25
@@ -38,9 +39,8 @@ DIRS = $(subst $(DEPS),".",$(DEPDIRS))
38 39
39OUTPUT = $(OBJDIR)/librockbox.a 40OUTPUT = $(OBJDIR)/librockbox.a
40 41
41 42ifeq (RECORDER,$(findstring RECORDER, $(CFLAGS)))
42ifeq (LOADABLE_FONTS,$(findstring LOADABLE_FONTS, $(CFLAGS))) 43 OBJS += $(OBJDIR)/sysfont.o
43 EXTRA_TARGETS = $(OBJDIR)/system.ajf
44endif 44endif
45 45
46all: $(OUTPUT) $(EXTRA_TARGETS) 46all: $(OUTPUT) $(EXTRA_TARGETS)
@@ -70,6 +70,10 @@ clean:
70$(OBJDIR)/thread.o: thread.c thread.h 70$(OBJDIR)/thread.o: thread.c thread.h
71 $(CC) -c -O -fomit-frame-pointer $(CFLAGS) $< -o $@ 71 $(CC) -c -O -fomit-frame-pointer $(CFLAGS) $< -o $@
72 72
73$(OBJDIR)/sysfont.o: fonts/clR6x8.bdf
74 $(TOOLSDIR)/convbdf -c -o $(OBJDIR)/sysfont.c $<
75 $(CC) $(CFLAGS) -c $(OBJDIR)/sysfont.c -o $@
76
73$(OBJDIR)/$(DEPS)/%.d: %.c 77$(OBJDIR)/$(DEPS)/%.d: %.c
74 @$(SHELL) -c 'for d in $(DEPDIRS); do { if [ ! -d $(OBJDIR)/$$d ]; then mkdir $(OBJDIR)/$$d; fi; }; done' 78 @$(SHELL) -c 'for d in $(DEPDIRS); do { if [ ! -d $(OBJDIR)/$$d ]; then mkdir $(OBJDIR)/$$d; fi; }; done'
75 @echo "Updating dependencies for $<" 79 @echo "Updating dependencies for $<"
diff --git a/firmware/X5x8.bdf b/firmware/X5x8.bdf
deleted file mode 100644
index adb452a3ee..0000000000
--- a/firmware/X5x8.bdf
+++ /dev/null
@@ -1,1967 +0,0 @@
1STARTFONT 2.1
2COMMENT $Xorg: 5x8.bdf,v 1.3 2000/08/18 15:17:39 xorgcvs Exp $
3COMMENT Copyright 1989 Cognition Corp.
4COMMENT
5COMMENT Permission to use, copy, modify, and distribute this software and its
6COMMENT documentation for any purpose and without fee is hereby granted,
7COMMENT provided that the above copyright notice appear in all copies and that
8COMMENT both that copyright notice and this permission notice appear in
9COMMENT supporting documentation, and that the name of Cognition Corp. not be
10COMMENT used in advertising or publicity pertaining to distribution of the
11COMMENT software without specific, written prior permission. Cognition Corp.
12COMMENT makes no representations about the suitability of this software for any
13COMMENT purpose. It is provided "as is" without express or implied warranty.
14COMMENT
15COMMENT COGNITION CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
16COMMENT INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
17COMMENT EVENT SHALL COGNITION CORP. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
18COMMENT CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
19COMMENT USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
20COMMENT OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
21COMMENT PERFORMANCE OF THIS SOFTWARE.
22FONT -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO646.1991-IRV
23SIZE 11 75 75
24FONTBOUNDINGBOX 5 8 0 0
25STARTPROPERTIES 19
26FONTNAME_REGISTRY ""
27FOUNDRY "Misc"
28FAMILY_NAME "Fixed"
29WEIGHT_NAME "Medium"
30SLANT "R"
31SETWIDTH_NAME "Normal"
32ADD_STYLE_NAME ""
33PIXEL_SIZE 8
34POINT_SIZE 80
35RESOLUTION_X 75
36RESOLUTION_Y 75
37SPACING "C"
38AVERAGE_WIDTH 50
39CHARSET_REGISTRY "ISO646.1991"
40CHARSET_ENCODING "IRV"
41FONT_DESCENT 1
42FONT_ASCENT 7
43COPYRIGHT "Copyright 1989 by Cognition Corp."
44DEFAULT_CHAR 0
45ENDPROPERTIES
46CHARS 128
47STARTCHAR C000
48ENCODING 0
49SWIDTH 1 0
50DWIDTH 5 0
51BBX 5 8 0 -1
52BITMAP
5300
5400
5500
5600
5700
5800
5900
6000
61ENDCHAR
62STARTCHAR C001
63ENCODING 1
64SWIDTH 1 0
65DWIDTH 5 0
66BBX 5 8 0 -1
67BITMAP
6800
6920
7070
71f8
7270
7320
7400
7500
76ENDCHAR
77STARTCHAR C002
78ENCODING 2
79SWIDTH 1 0
80DWIDTH 5 0
81BBX 5 8 0 -1
82BITMAP
8300
8428
8550
8628
8750
8828
8950
9028
91ENDCHAR
92STARTCHAR C003
93ENCODING 3
94SWIDTH 1 0
95DWIDTH 5 0
96BBX 5 8 0 -1
97BITMAP
9850
9950
10070
10150
10250
10338
10410
10510
106ENDCHAR
107STARTCHAR C004
108ENCODING 4
109SWIDTH 1 0
110DWIDTH 5 0
111BBX 5 8 0 -1
112BITMAP
113e0
11480
115c0
116b8
117a0
11830
11920
12020
121ENDCHAR
122STARTCHAR C005
123ENCODING 5
124SWIDTH 1 0
125DWIDTH 5 0
126BBX 5 8 0 -1
127BITMAP
12860
12980
13060
13100
13230
13328
13430
13528
136ENDCHAR
137STARTCHAR C006
138ENCODING 6
139SWIDTH 1 0
140DWIDTH 5 0
141BBX 5 8 0 -1
142BITMAP
14380
14480
14580
146e0
14738
14820
14930
15020
151ENDCHAR
152STARTCHAR C007
153ENCODING 7
154SWIDTH 1 0
155DWIDTH 5 0
156BBX 5 8 0 -1
157BITMAP
15800
15920
16050
16120
16200
16300
16400
16500
166ENDCHAR
167STARTCHAR C010
168ENCODING 8
169SWIDTH 1 0
170DWIDTH 5 0
171BBX 5 8 0 -1
172BITMAP
17300
17420
17570
17620
17700
17870
17900
18000
181ENDCHAR
182STARTCHAR C011
183ENCODING 9
184SWIDTH 1 0
185DWIDTH 5 0
186BBX 5 8 0 -1
187BITMAP
18890
189d0
190b0
19190
19220
19320
19420
19538
196ENDCHAR
197STARTCHAR C012
198ENCODING 10
199SWIDTH 1 0
200DWIDTH 5 0
201BBX 5 8 0 -1
202BITMAP
203a0
204a0
205a0
20640
20738
20810
20910
21010
211ENDCHAR
212STARTCHAR C013
213ENCODING 11
214SWIDTH 1 0
215DWIDTH 5 0
216BBX 5 8 0 -1
217BITMAP
21820
21920
22020
221e0
22200
22300
22400
22500
226ENDCHAR
227STARTCHAR C014
228ENCODING 12
229SWIDTH 1 0
230DWIDTH 5 0
231BBX 5 8 0 -1
232BITMAP
23300
23400
23500
236e0
23720
23820
23920
24020
241ENDCHAR
242STARTCHAR C015
243ENCODING 13
244SWIDTH 1 0
245DWIDTH 5 0
246BBX 5 8 0 -1
247BITMAP
24800
24900
25000
25138
25220
25320
25420
25520
256ENDCHAR
257STARTCHAR C016
258ENCODING 14
259SWIDTH 1 0
260DWIDTH 5 0
261BBX 5 8 0 -1
262BITMAP
26320
26420
26520
26638
26700
26800
26900
27000
271ENDCHAR
272STARTCHAR C017
273ENCODING 15
274SWIDTH 1 0
275DWIDTH 5 0
276BBX 5 8 0 -1
277BITMAP
27820
27920
28020
281f8
28220
28320
28420
28520
286ENDCHAR
287STARTCHAR C020
288ENCODING 16
289SWIDTH 1 0
290DWIDTH 5 0
291BBX 5 8 0 -1
292BITMAP
29300
294f8
29500
29600
29700
29800
29900
30000
301ENDCHAR
302STARTCHAR C021
303ENCODING 17
304SWIDTH 1 0
305DWIDTH 5 0
306BBX 5 8 0 -1
307BITMAP
30800
30900
310f8
31100
31200
31300
31400
31500
316ENDCHAR
317STARTCHAR C022
318ENCODING 18
319SWIDTH 1 0
320DWIDTH 5 0
321BBX 5 8 0 -1
322BITMAP
32300
32400
32500
326f8
32700
32800
32900
33000
331ENDCHAR
332STARTCHAR C023
333ENCODING 19
334SWIDTH 1 0
335DWIDTH 5 0
336BBX 5 8 0 -1
337BITMAP
33800
33900
34000
34100
342f8
34300
34400
34500
346ENDCHAR
347STARTCHAR C024
348ENCODING 20
349SWIDTH 1 0
350DWIDTH 5 0
351BBX 5 8 0 -1
352BITMAP
35300
35400
35500
35600
35700
358f8
35900
36000
361ENDCHAR
362STARTCHAR C025
363ENCODING 21
364SWIDTH 1 0
365DWIDTH 5 0
366BBX 5 8 0 -1
367BITMAP
36820
36920
37020
37138
37220
37320
37420
37520
376ENDCHAR
377STARTCHAR C026
378ENCODING 22
379SWIDTH 1 0
380DWIDTH 5 0
381BBX 5 8 0 -1
382BITMAP
38320
38420
38520
386e0
38720
38820
38920
39020
391ENDCHAR
392STARTCHAR C027
393ENCODING 23
394SWIDTH 1 0
395DWIDTH 5 0
396BBX 5 8 0 -1
397BITMAP
39820
39920
40020
401f8
40200
40300
40400
40500
406ENDCHAR
407STARTCHAR C030
408ENCODING 24
409SWIDTH 1 0
410DWIDTH 5 0
411BBX 5 8 0 -1
412BITMAP
41300
41400
41500
416f8
41720
41820
41920
42020
421ENDCHAR
422STARTCHAR C031
423ENCODING 25
424SWIDTH 1 0
425DWIDTH 5 0
426BBX 5 8 0 -1
427BITMAP
42820
42920
43020
43120
43220
43320
43420
43520
436ENDCHAR
437STARTCHAR C032
438ENCODING 26
439SWIDTH 1 0
440DWIDTH 5 0
441BBX 5 8 0 -1
442BITMAP
44300
44410
44520
44640
44720
44810
44970
45000
451ENDCHAR
452STARTCHAR C033
453ENCODING 27
454SWIDTH 1 0
455DWIDTH 5 0
456BBX 5 8 0 -1
457BITMAP
45800
45940
46020
46110
46220
46340
46470
46500
466ENDCHAR
467STARTCHAR C034
468ENCODING 28
469SWIDTH 1 0
470DWIDTH 5 0
471BBX 5 8 0 -1
472BITMAP
47300
474f8
47550
47650
47750
47850
47900
48000
481ENDCHAR
482STARTCHAR C035
483ENCODING 29
484SWIDTH 1 0
485DWIDTH 5 0
486BBX 5 8 0 -1
487BITMAP
48800
48910
490f8
49120
492f8
49340
49400
49500
496ENDCHAR
497STARTCHAR C036
498ENCODING 30
499SWIDTH 1 0
500DWIDTH 5 0
501BBX 5 8 0 -1
502BITMAP
50300
50430
50548
506e0
50740
50848
509b0
51000
511ENDCHAR
512STARTCHAR C037
513ENCODING 31
514SWIDTH 1 0
515DWIDTH 5 0
516BBX 5 8 0 -1
517BITMAP
51800
51900
52000
52120
52200
52300
52400
52500
526ENDCHAR
527STARTCHAR C040
528ENCODING 32
529SWIDTH 1 0
530DWIDTH 5 0
531BBX 5 8 0 -1
532BITMAP
53300
53400
53500
53600
53700
53800
53900
54000
541ENDCHAR
542STARTCHAR !
543ENCODING 33
544SWIDTH 1 0
545DWIDTH 5 0
546BBX 5 8 0 -1
547BITMAP
54800
54920
55020
55120
55220
55300
55420
55500
556ENDCHAR
557STARTCHAR "
558ENCODING 34
559SWIDTH 1 0
560DWIDTH 5 0
561BBX 5 8 0 -1
562BITMAP
56300
56450
56550
56650
56700
56800
56900
57000
571ENDCHAR
572STARTCHAR #
573ENCODING 35
574SWIDTH 1 0
575DWIDTH 5 0
576BBX 5 8 0 -1
577BITMAP
57850
57950
580f8
58150
582f8
58350
58450
58500
586ENDCHAR
587STARTCHAR $
588ENCODING 36
589SWIDTH 1 0
590DWIDTH 5 0
591BBX 5 8 0 -1
592BITMAP
59320
59470
595a0
59670
59728
59870
59920
60000
601ENDCHAR
602STARTCHAR %
603ENCODING 37
604SWIDTH 1 0
605DWIDTH 5 0
606BBX 5 8 0 -1
607BITMAP
60800
60940
61050
61120
61250
61310
61400
61500
616ENDCHAR
617STARTCHAR &
618ENCODING 38
619SWIDTH 1 0
620DWIDTH 5 0
621BBX 5 8 0 -1
622BITMAP
62320
62450
62550
62620
62750
62850
62928
63000
631ENDCHAR
632STARTCHAR '
633ENCODING 39
634SWIDTH 1 0
635DWIDTH 5 0
636BBX 5 8 0 -1
637BITMAP
63800
63930
64020
64140
64200
64300
64400
64500
646ENDCHAR
647STARTCHAR (
648ENCODING 40
649SWIDTH 1 0
650DWIDTH 5 0
651BBX 5 8 0 -1
652BITMAP
65300
65410
65520
65620
65720
65810
65900
66000
661ENDCHAR
662STARTCHAR )
663ENCODING 41
664SWIDTH 1 0
665DWIDTH 5 0
666BBX 5 8 0 -1
667BITMAP
66800
66940
67020
67120
67220
67340
67400
67500
676ENDCHAR
677STARTCHAR *
678ENCODING 42
679SWIDTH 1 0
680DWIDTH 5 0
681BBX 5 8 0 -1
682BITMAP
68300
68448
68530
68678
68730
68848
68900
69000
691ENDCHAR
692STARTCHAR +
693ENCODING 43
694SWIDTH 1 0
695DWIDTH 5 0
696BBX 5 8 0 -1
697BITMAP
69800
69920
70020
701f8
70220
70320
70400
70500
706ENDCHAR
707STARTCHAR ,
708ENCODING 44
709SWIDTH 1 0
710DWIDTH 5 0
711BBX 5 8 0 -1
712BITMAP
71300
71400
71500
71600
71730
71820
71940
72000
721ENDCHAR
722STARTCHAR -
723ENCODING 45
724SWIDTH 1 0
725DWIDTH 5 0
726BBX 5 8 0 -1
727BITMAP
72800
72900
73000
73100
73278
73300
73400
73500
736ENDCHAR
737STARTCHAR .
738ENCODING 46
739SWIDTH 1 0
740DWIDTH 5 0
741BBX 5 8 0 -1
742BITMAP
74300
74400
74500
74600
74720
74870
74920
75000
751ENDCHAR
752STARTCHAR /
753ENCODING 47
754SWIDTH 1 0
755DWIDTH 5 0
756BBX 5 8 0 -1
757BITMAP
75800
75908
76008
76110
76220
76340
76440
76500
766ENDCHAR
767STARTCHAR 0
768ENCODING 48
769SWIDTH 1 0
770DWIDTH 5 0
771BBX 5 8 0 -1
772BITMAP
77300
77420
77550
77650
77750
77850
77920
78000
781ENDCHAR
782STARTCHAR 1
783ENCODING 49
784SWIDTH 1 0
785DWIDTH 5 0
786BBX 5 8 0 -1
787BITMAP
78800
78920
79060
79120
79220
79320
79470
79500
796ENDCHAR
797STARTCHAR 2
798ENCODING 50
799SWIDTH 1 0
800DWIDTH 5 0
801BBX 5 8 0 -1
802BITMAP
80300
80430
80548
80608
80730
80840
80978
81000
811ENDCHAR
812STARTCHAR 3
813ENCODING 51
814SWIDTH 1 0
815DWIDTH 5 0
816BBX 5 8 0 -1
817BITMAP
81800
81930
82048
82110
82208
82348
82430
82500
826ENDCHAR
827STARTCHAR 4
828ENCODING 52
829SWIDTH 1 0
830DWIDTH 5 0
831BBX 5 8 0 -1
832BITMAP
83300
83410
83530
83650
83778
83810
83910
84000
841ENDCHAR
842STARTCHAR 5
843ENCODING 53
844SWIDTH 1 0
845DWIDTH 5 0
846BBX 5 8 0 -1
847BITMAP
84800
84978
85040
85170
85208
85348
85430
85500
856ENDCHAR
857STARTCHAR 6
858ENCODING 54
859SWIDTH 1 0
860DWIDTH 5 0
861BBX 5 8 0 -1
862BITMAP
86300
86430
86540
86650
86768
86848
86930
87000
871ENDCHAR
872STARTCHAR 7
873ENCODING 55
874SWIDTH 1 0
875DWIDTH 5 0
876BBX 5 8 0 -1
877BITMAP
87800
87978
88008
88110
88210
88320
88420
88500
886ENDCHAR
887STARTCHAR 8
888ENCODING 56
889SWIDTH 1 0
890DWIDTH 5 0
891BBX 5 8 0 -1
892BITMAP
89300
89430
89548
89630
89748
89848
89930
90000
901ENDCHAR
902STARTCHAR 9
903ENCODING 57
904SWIDTH 1 0
905DWIDTH 5 0
906BBX 5 8 0 -1
907BITMAP
90800
90930
91048
91158
91228
91308
91430
91500
916ENDCHAR
917STARTCHAR :
918ENCODING 58
919SWIDTH 1 0
920DWIDTH 5 0
921BBX 5 8 0 -1
922BITMAP
92300
92430
92530
92600
92730
92830
92900
93000
931ENDCHAR
932STARTCHAR ;
933ENCODING 59
934SWIDTH 1 0
935DWIDTH 5 0
936BBX 5 8 0 -1
937BITMAP
93800
93930
94030
94100
94230
94320
94440
94500
946ENDCHAR
947STARTCHAR <
948ENCODING 60
949SWIDTH 1 0
950DWIDTH 5 0
951BBX 5 8 0 -1
952BITMAP
95300
95410
95520
95640
95740
95820
95910
96000
961ENDCHAR
962STARTCHAR =
963ENCODING 61
964SWIDTH 1 0
965DWIDTH 5 0
966BBX 5 8 0 -1
967BITMAP
96800
96900
97070
97100
97270
97300
97400
97500
976ENDCHAR
977STARTCHAR >
978ENCODING 62
979SWIDTH 1 0
980DWIDTH 5 0
981BBX 5 8 0 -1
982BITMAP
98300
98440
98520
98610
98710
98820
98940
99000
991ENDCHAR
992STARTCHAR ?
993ENCODING 63
994SWIDTH 1 0
995DWIDTH 5 0
996BBX 5 8 0 -1
997BITMAP
99800
99920
100050
100110
100220
100300
100420
100500
1006ENDCHAR
1007STARTCHAR @
1008ENCODING 64
1009SWIDTH 1 0
1010DWIDTH 5 0
1011BBX 5 8 0 -1
1012BITMAP
101330
101448
101598
1016a8
1017a8
101890
101940
102030
1021ENDCHAR
1022STARTCHAR A
1023ENCODING 65
1024SWIDTH 1 0
1025DWIDTH 5 0
1026BBX 5 8 0 -1
1027BITMAP
102800
102930
103048
103148
103278
103348
103448
103500
1036ENDCHAR
1037STARTCHAR B
1038ENCODING 66
1039SWIDTH 1 0
1040DWIDTH 5 0
1041BBX 5 8 0 -1
1042BITMAP
104300
104470
104548
104670
104748
104848
104970
105000
1051ENDCHAR
1052STARTCHAR C
1053ENCODING 67
1054SWIDTH 1 0
1055DWIDTH 5 0
1056BBX 5 8 0 -1
1057BITMAP
105800
105930
106048
106140
106240
106348
106430
106500
1066ENDCHAR
1067STARTCHAR D
1068ENCODING 68
1069SWIDTH 1 0
1070DWIDTH 5 0
1071BBX 5 8 0 -1
1072BITMAP
107300
107470
107548
107648
107748
107848
107970
108000
1081ENDCHAR
1082STARTCHAR E
1083ENCODING 69
1084SWIDTH 1 0
1085DWIDTH 5 0
1086BBX 5 8 0 -1
1087BITMAP
108800
108978
109040
109170
109240
109340
109478
109500
1096ENDCHAR
1097STARTCHAR F
1098ENCODING 70
1099SWIDTH 1 0
1100DWIDTH 5 0
1101BBX 5 8 0 -1
1102BITMAP
110300
110478
110540
110670
110740
110840
110940
111000
1111ENDCHAR
1112STARTCHAR G
1113ENCODING 71
1114SWIDTH 1 0
1115DWIDTH 5 0
1116BBX 5 8 0 -1
1117BITMAP
111800
111930
112048
112140
112258
112348
112430
112500
1126ENDCHAR
1127STARTCHAR H
1128ENCODING 72
1129SWIDTH 1 0
1130DWIDTH 5 0
1131BBX 5 8 0 -1
1132BITMAP
113300
113448
113548
113678
113748
113848
113948
114000
1141ENDCHAR
1142STARTCHAR I
1143ENCODING 73
1144SWIDTH 1 0
1145DWIDTH 5 0
1146BBX 5 8 0 -1
1147BITMAP
114800
114970
115020
115120
115220
115320
115470
115500
1156ENDCHAR
1157STARTCHAR J
1158ENCODING 74
1159SWIDTH 1 0
1160DWIDTH 5 0
1161BBX 5 8 0 -1
1162BITMAP
116300
116438
116508
116608
116708
116848
116930
117000
1171ENDCHAR
1172STARTCHAR K
1173ENCODING 75
1174SWIDTH 1 0
1175DWIDTH 5 0
1176BBX 5 8 0 -1
1177BITMAP
117800
117948
118050
118160
118250
118350
118448
118500
1186ENDCHAR
1187STARTCHAR L
1188ENCODING 76
1189SWIDTH 1 0
1190DWIDTH 5 0
1191BBX 5 8 0 -1
1192BITMAP
119300
119440
119540
119640
119740
119840
119970
120000
1201ENDCHAR
1202STARTCHAR M
1203ENCODING 77
1204SWIDTH 1 0
1205DWIDTH 5 0
1206BBX 5 8 0 -1
1207BITMAP
120800
120948
121078
121178
121248
121348
121448
121500
1216ENDCHAR
1217STARTCHAR N
1218ENCODING 78
1219SWIDTH 1 0
1220DWIDTH 5 0
1221BBX 5 8 0 -1
1222BITMAP
122300
122448
122568
122678
122758
122858
122948
123000
1231ENDCHAR
1232STARTCHAR O
1233ENCODING 79
1234SWIDTH 1 0
1235DWIDTH 5 0
1236BBX 5 8 0 -1
1237BITMAP
123800
123930
124048
124148
124248
124348
124430
124500
1246ENDCHAR
1247STARTCHAR P
1248ENCODING 80
1249SWIDTH 1 0
1250DWIDTH 5 0
1251BBX 5 8 0 -1
1252BITMAP
125300
125470
125548
125648
125770
125840
125940
126000
1261ENDCHAR
1262STARTCHAR Q
1263ENCODING 81
1264SWIDTH 1 0
1265DWIDTH 5 0
1266BBX 5 8 0 -1
1267BITMAP
126800
126930
127048
127148
127268
127358
127430
127508
1276ENDCHAR
1277STARTCHAR R
1278ENCODING 82
1279SWIDTH 1 0
1280DWIDTH 5 0
1281BBX 5 8 0 -1
1282BITMAP
128300
128470
128548
128648
128770
128858
128948
129000
1291ENDCHAR
1292STARTCHAR S
1293ENCODING 83
1294SWIDTH 1 0
1295DWIDTH 5 0
1296BBX 5 8 0 -1
1297BITMAP
129800
129930
130048
130120
130210
130348
130430
130500
1306ENDCHAR
1307STARTCHAR T
1308ENCODING 84
1309SWIDTH 1 0
1310DWIDTH 5 0
1311BBX 5 8 0 -1
1312BITMAP
131300
1314f8
131520
131620
131720
131820
131920
132000
1321ENDCHAR
1322STARTCHAR U
1323ENCODING 85
1324SWIDTH 1 0
1325DWIDTH 5 0
1326BBX 5 8 0 -1
1327BITMAP
132800
132948
133048
133148
133248
133348
133430
133500
1336ENDCHAR
1337STARTCHAR V
1338ENCODING 86
1339SWIDTH 1 0
1340DWIDTH 5 0
1341BBX 5 8 0 -1
1342BITMAP
134300
134448
134548
134648
134748
134830
134930
135000
1351ENDCHAR
1352STARTCHAR W
1353ENCODING 87
1354SWIDTH 1 0
1355DWIDTH 5 0
1356BBX 5 8 0 -1
1357BITMAP
135800
135948
136048
136148
136278
136378
136448
136500
1366ENDCHAR
1367STARTCHAR X
1368ENCODING 88
1369SWIDTH 1 0
1370DWIDTH 5 0
1371BBX 5 8 0 -1
1372BITMAP
137300
137448
137548
137630
137730
137848
137948
138000
1381ENDCHAR
1382STARTCHAR Y
1383ENCODING 89
1384SWIDTH 1 0
1385DWIDTH 5 0
1386BBX 5 8 0 -1
1387BITMAP
138800
138988
139088
139150
139220
139320
139420
139500
1396ENDCHAR
1397STARTCHAR Z
1398ENCODING 90
1399SWIDTH 1 0
1400DWIDTH 5 0
1401BBX 5 8 0 -1
1402BITMAP
140300
140478
140508
140610
140720
140840
140978
141000
1411ENDCHAR
1412STARTCHAR [
1413ENCODING 91
1414SWIDTH 1 0
1415DWIDTH 5 0
1416BBX 5 8 0 -1
1417BITMAP
141800
141970
142040
142140
142240
142340
142470
142500
1426ENDCHAR
1427STARTCHAR \
1428ENCODING 92
1429SWIDTH 1 0
1430DWIDTH 5 0
1431BBX 5 8 0 -1
1432BITMAP
143300
143440
143540
143620
143710
143808
143908
144000
1441ENDCHAR
1442STARTCHAR ]
1443ENCODING 93
1444SWIDTH 1 0
1445DWIDTH 5 0
1446BBX 5 8 0 -1
1447BITMAP
144800
144970
145010
145110
145210
145310
145470
145500
1456ENDCHAR
1457STARTCHAR ^
1458ENCODING 94
1459SWIDTH 1 0
1460DWIDTH 5 0
1461BBX 5 8 0 -1
1462BITMAP
146300
146420
146550
146650
146700
146800
146900
147000
1471ENDCHAR
1472STARTCHAR _
1473ENCODING 95
1474SWIDTH 1 0
1475DWIDTH 5 0
1476BBX 5 8 0 -1
1477BITMAP
147800
147900
148000
148100
148200
148300
148400
148578
1486ENDCHAR
1487STARTCHAR `
1488ENCODING 96
1489SWIDTH 1 0
1490DWIDTH 5 0
1491BBX 5 8 0 -1
1492BITMAP
149300
149460
149540
149620
149700
149800
149900
150000
1501ENDCHAR
1502STARTCHAR a
1503ENCODING 97
1504SWIDTH 1 0
1505DWIDTH 5 0
1506BBX 5 8 0 -1
1507BITMAP
150800
150900
151000
151128
151258
151358
151428
151500
1516ENDCHAR
1517STARTCHAR b
1518ENCODING 98
1519SWIDTH 1 0
1520DWIDTH 5 0
1521BBX 5 8 0 -1
1522BITMAP
152300
152440
152540
152670
152748
152848
152970
153000
1531ENDCHAR
1532STARTCHAR c
1533ENCODING 99
1534SWIDTH 1 0
1535DWIDTH 5 0
1536BBX 5 8 0 -1
1537BITMAP
153800
153900
154000
154130
154240
154340
154430
154500
1546ENDCHAR
1547STARTCHAR d
1548ENCODING 100
1549SWIDTH 1 0
1550DWIDTH 5 0
1551BBX 5 8 0 -1
1552BITMAP
155300
155408
155508
155628
155758
155858
155928
156000
1561ENDCHAR
1562STARTCHAR e
1563ENCODING 101
1564SWIDTH 1 0
1565DWIDTH 5 0
1566BBX 5 8 0 -1
1567BITMAP
156800
156900
157000
157130
157278
157340
157430
157500
1576ENDCHAR
1577STARTCHAR f
1578ENCODING 102
1579SWIDTH 1 0
1580DWIDTH 5 0
1581BBX 5 8 0 -1
1582BITMAP
158300
158410
158528
158620
158770
158820
158920
159000
1591ENDCHAR
1592STARTCHAR g
1593ENCODING 103
1594SWIDTH 1 0
1595DWIDTH 5 0
1596BBX 5 8 0 -1
1597BITMAP
159800
159900
160000
160130
160248
160338
160408
160530
1606ENDCHAR
1607STARTCHAR h
1608ENCODING 104
1609SWIDTH 1 0
1610DWIDTH 5 0
1611BBX 5 8 0 -1
1612BITMAP
161300
161440
161540
161670
161748
161848
161948
162000
1621ENDCHAR
1622STARTCHAR i
1623ENCODING 105
1624SWIDTH 1 0
1625DWIDTH 5 0
1626BBX 5 8 0 -1
1627BITMAP
162800
162920
163000
163160
163220
163320
163470
163500
1636ENDCHAR
1637STARTCHAR j
1638ENCODING 106
1639SWIDTH 1 0
1640DWIDTH 5 0
1641BBX 5 8 0 -1
1642BITMAP
164300
164410
164500
164610
164710
164810
164950
165020
1651ENDCHAR
1652STARTCHAR k
1653ENCODING 107
1654SWIDTH 1 0
1655DWIDTH 5 0
1656BBX 5 8 0 -1
1657BITMAP
165800
165940
166040
166148
166270
166348
166448
166500
1666ENDCHAR
1667STARTCHAR l
1668ENCODING 108
1669SWIDTH 1 0
1670DWIDTH 5 0
1671BBX 5 8 0 -1
1672BITMAP
167300
167460
167520
167620
167720
167820
167970
168000
1681ENDCHAR
1682STARTCHAR m
1683ENCODING 109
1684SWIDTH 1 0
1685DWIDTH 5 0
1686BBX 5 8 0 -1
1687BITMAP
168800
168900
169000
169150
1692a8
1693a8
169488
169500
1696ENDCHAR
1697STARTCHAR n
1698ENCODING 110
1699SWIDTH 1 0
1700DWIDTH 5 0
1701BBX 5 8 0 -1
1702BITMAP
170300
170400
170500
170670
170748
170848
170948
171000
1711ENDCHAR
1712STARTCHAR o
1713ENCODING 111
1714SWIDTH 1 0
1715DWIDTH 5 0
1716BBX 5 8 0 -1
1717BITMAP
171800
171900
172000
172130
172248
172348
172430
172500
1726ENDCHAR
1727STARTCHAR p
1728ENCODING 112
1729SWIDTH 1 0
1730DWIDTH 5 0
1731BBX 5 8 0 -1
1732BITMAP
173300
173400
173500
173670
173748
173870
173940
174040
1741ENDCHAR
1742STARTCHAR q
1743ENCODING 113
1744SWIDTH 1 0
1745DWIDTH 5 0
1746BBX 5 8 0 -1
1747BITMAP
174800
174900
175000
175138
175248
175338
175408
175508
1756ENDCHAR
1757STARTCHAR r
1758ENCODING 114
1759SWIDTH 1 0
1760DWIDTH 5 0
1761BBX 5 8 0 -1
1762BITMAP
176300
176400
176500
176650
176768
176840
176940
177000
1771ENDCHAR
1772STARTCHAR s
1773ENCODING 115
1774SWIDTH 1 0
1775DWIDTH 5 0
1776BBX 5 8 0 -1
1777BITMAP
177800
177900
178000
178170
178260
178310
178470
178500
1786ENDCHAR
1787STARTCHAR t
1788ENCODING 116
1789SWIDTH 1 0
1790DWIDTH 5 0
1791BBX 5 8 0 -1
1792BITMAP
179300
179420
179520
179670
179720
179828
179910
180000
1801ENDCHAR
1802STARTCHAR u
1803ENCODING 117
1804SWIDTH 1 0
1805DWIDTH 5 0
1806BBX 5 8 0 -1
1807BITMAP
180800
180900
181000
181148
181248
181348
181438
181500
1816ENDCHAR
1817STARTCHAR v
1818ENCODING 118
1819SWIDTH 1 0
1820DWIDTH 5 0
1821BBX 5 8 0 -1
1822BITMAP
182300
182400
182500
182650
182750
182850
182920
183000
1831ENDCHAR
1832STARTCHAR w
1833ENCODING 119
1834SWIDTH 1 0
1835DWIDTH 5 0
1836BBX 5 8 0 -1
1837BITMAP
183800
183900
184000
184188
1842a8
1843a8
184470
184500
1846ENDCHAR
1847STARTCHAR x
1848ENCODING 120
1849SWIDTH 1 0
1850DWIDTH 5 0
1851BBX 5 8 0 -1
1852BITMAP
185300
185400
185500
185648
185730
185830
185948
186000
1861ENDCHAR
1862STARTCHAR y
1863ENCODING 121
1864SWIDTH 1 0
1865DWIDTH 5 0
1866BBX 5 8 0 -1
1867BITMAP
186800
186900
187000
187148
187248
187338
187448
187530
1876ENDCHAR
1877STARTCHAR z
1878ENCODING 122
1879SWIDTH 1 0
1880DWIDTH 5 0
1881BBX 5 8 0 -1
1882BITMAP
188300
188400
188500
188678
188710
188820
188978
189000
1891ENDCHAR
1892STARTCHAR {
1893ENCODING 123
1894SWIDTH 1 0
1895DWIDTH 5 0
1896BBX 5 8 0 -1
1897BITMAP
189818
189920
190010
190160
190210
190320
190418
190500
1906ENDCHAR
1907STARTCHAR |
1908ENCODING 124
1909SWIDTH 1 0
1910DWIDTH 5 0
1911BBX 5 8 0 -1
1912BITMAP
191300
191420
191520
191620
191720
191820
191920
192000
1921ENDCHAR
1922STARTCHAR }
1923ENCODING 125
1924SWIDTH 1 0
1925DWIDTH 5 0
1926BBX 5 8 0 -1
1927BITMAP
192860
192910
193020
193118
193220
193310
193460
193500
1936ENDCHAR
1937STARTCHAR ~
1938ENCODING 126
1939SWIDTH 1 0
1940DWIDTH 5 0
1941BBX 5 8 0 -1
1942BITMAP
194300
194428
194550
194600
194700
194800
194900
195000
1951ENDCHAR
1952STARTCHAR C177
1953ENCODING 127
1954SWIDTH 1 0
1955DWIDTH 5 0
1956BBX 5 8 0 -1
1957BITMAP
195800
195900
196000
196100
196200
196300
196400
196500
1966ENDCHAR
1967ENDFONT
diff --git a/firmware/X5x8.c b/firmware/X5x8.c
deleted file mode 100644
index 6422cc892d..0000000000
--- a/firmware/X5x8.c
+++ /dev/null
@@ -1,2853 +0,0 @@
1/* Generated by convbdf on Tue Sep 10 11:31:14 MDT 2002. */
2#include "config.h"
3#if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR)
4#include "font.h"
5
6/* Font information:
7
8 name: -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO646.1991-IRV
9 pixel size: 8
10 ascent: 7
11 descent: 1
12*/
13
14/* Font character bitmap data. */
15static MWIMAGEBITS X5x8_bits[] = {
16
17/* Character (0x00):
18 bbw=5, bbh=8, bbx=0, bby=-1, width=5
19 +----------------+
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 +----------------+ */
290x0000,
300x0000,
310x0000,
320x0000,
330x0000,
340x0000,
350x0000,
360x0000,
37
38/* Character (0x01):
39 bbw=5, bbh=8, bbx=0, bby=-1, width=5
40 +----------------+
41 | |
42 | * |
43 | *** |
44 |***** |
45 | *** |
46 | * |
47 | |
48 | |
49 +----------------+ */
500x0000,
510x2000,
520x7000,
530xf800,
540x7000,
550x2000,
560x0000,
570x0000,
58
59/* Character (0x02):
60 bbw=5, bbh=8, bbx=0, bby=-1, width=5
61 +----------------+
62 | |
63 | * * |
64 | * * |
65 | * * |
66 | * * |
67 | * * |
68 | * * |
69 | * * |
70 +----------------+ */
710x0000,
720x2800,
730x5000,
740x2800,
750x5000,
760x2800,
770x5000,
780x2800,
79
80/* Character (0x03):
81 bbw=5, bbh=8, bbx=0, bby=-1, width=5
82 +----------------+
83 | * * |
84 | * * |
85 | *** |
86 | * * |
87 | * * |
88 | *** |
89 | * |
90 | * |
91 +----------------+ */
920x5000,
930x5000,
940x7000,
950x5000,
960x5000,
970x3800,
980x1000,
990x1000,
100
101/* Character (0x04):
102 bbw=5, bbh=8, bbx=0, bby=-1, width=5
103 +----------------+
104 |*** |
105 |* |
106 |** |
107 |* *** |
108 |* * |
109 | ** |
110 | * |
111 | * |
112 +----------------+ */
1130xe000,
1140x8000,
1150xc000,
1160xb800,
1170xa000,
1180x3000,
1190x2000,
1200x2000,
121
122/* Character (0x05):
123 bbw=5, bbh=8, bbx=0, bby=-1, width=5
124 +----------------+
125 | ** |
126 |* |
127 | ** |
128 | |
129 | ** |
130 | * * |
131 | ** |
132 | * * |
133 +----------------+ */
1340x6000,
1350x8000,
1360x6000,
1370x0000,
1380x3000,
1390x2800,
1400x3000,
1410x2800,
142
143/* Character (0x06):
144 bbw=5, bbh=8, bbx=0, bby=-1, width=5
145 +----------------+
146 |* |
147 |* |
148 |* |
149 |*** |
150 | *** |
151 | * |
152 | ** |
153 | * |
154 +----------------+ */
1550x8000,
1560x8000,
1570x8000,
1580xe000,
1590x3800,
1600x2000,
1610x3000,
1620x2000,
163
164/* Character (0x07):
165 bbw=5, bbh=8, bbx=0, bby=-1, width=5
166 +----------------+
167 | |
168 | * |
169 | * * |
170 | * |
171 | |
172 | |
173 | |
174 | |
175 +----------------+ */
1760x0000,
1770x2000,
1780x5000,
1790x2000,
1800x0000,
1810x0000,
1820x0000,
1830x0000,
184
185/* Character (0x08):
186 bbw=5, bbh=8, bbx=0, bby=-1, width=5
187 +----------------+
188 | |
189 | * |
190 | *** |
191 | * |
192 | |
193 | *** |
194 | |
195 | |
196 +----------------+ */
1970x0000,
1980x2000,
1990x7000,
2000x2000,
2010x0000,
2020x7000,
2030x0000,
2040x0000,
205
206/* Character (0x09):
207 bbw=5, bbh=8, bbx=0, bby=-1, width=5
208 +----------------+
209 |* * |
210 |** * |
211 |* ** |
212 |* * |
213 | * |
214 | * |
215 | * |
216 | *** |
217 +----------------+ */
2180x9000,
2190xd000,
2200xb000,
2210x9000,
2220x2000,
2230x2000,
2240x2000,
2250x3800,
226
227/* Character (0x0a):
228 bbw=5, bbh=8, bbx=0, bby=-1, width=5
229 +----------------+
230 |* * |
231 |* * |
232 |* * |
233 | * |
234 | *** |
235 | * |
236 | * |
237 | * |
238 +----------------+ */
2390xa000,
2400xa000,
2410xa000,
2420x4000,
2430x3800,
2440x1000,
2450x1000,
2460x1000,
247
248/* Character (0x0b):
249 bbw=5, bbh=8, bbx=0, bby=-1, width=5
250 +----------------+
251 | * |
252 | * |
253 | * |
254 |*** |
255 | |
256 | |
257 | |
258 | |
259 +----------------+ */
2600x2000,
2610x2000,
2620x2000,
2630xe000,
2640x0000,
2650x0000,
2660x0000,
2670x0000,
268
269/* Character (0x0c):
270 bbw=5, bbh=8, bbx=0, bby=-1, width=5
271 +----------------+
272 | |
273 | |
274 | |
275 |*** |
276 | * |
277 | * |
278 | * |
279 | * |
280 +----------------+ */
2810x0000,
2820x0000,
2830x0000,
2840xe000,
2850x2000,
2860x2000,
2870x2000,
2880x2000,
289
290/* Character (0x0d):
291 bbw=5, bbh=8, bbx=0, bby=-1, width=5
292 +----------------+
293 | |
294 | |
295 | |
296 | *** |
297 | * |
298 | * |
299 | * |
300 | * |
301 +----------------+ */
3020x0000,
3030x0000,
3040x0000,
3050x3800,
3060x2000,
3070x2000,
3080x2000,
3090x2000,
310
311/* Character (0x0e):
312 bbw=5, bbh=8, bbx=0, bby=-1, width=5
313 +----------------+
314 | * |
315 | * |
316 | * |
317 | *** |
318 | |
319 | |
320 | |
321 | |
322 +----------------+ */
3230x2000,
3240x2000,
3250x2000,
3260x3800,
3270x0000,
3280x0000,
3290x0000,
3300x0000,
331
332/* Character (0x0f):
333 bbw=5, bbh=8, bbx=0, bby=-1, width=5
334 +----------------+
335 | * |
336 | * |
337 | * |
338 |***** |
339 | * |
340 | * |
341 | * |
342 | * |
343 +----------------+ */
3440x2000,
3450x2000,
3460x2000,
3470xf800,
3480x2000,
3490x2000,
3500x2000,
3510x2000,
352
353/* Character (0x10):
354 bbw=5, bbh=8, bbx=0, bby=-1, width=5
355 +----------------+
356 | |
357 |***** |
358 | |
359 | |
360 | |
361 | |
362 | |
363 | |
364 +----------------+ */
3650x0000,
3660xf800,
3670x0000,
3680x0000,
3690x0000,
3700x0000,
3710x0000,
3720x0000,
373
374/* Character (0x11):
375 bbw=5, bbh=8, bbx=0, bby=-1, width=5
376 +----------------+
377 | |
378 | |
379 |***** |
380 | |
381 | |
382 | |
383 | |
384 | |
385 +----------------+ */
3860x0000,
3870x0000,
3880xf800,
3890x0000,
3900x0000,
3910x0000,
3920x0000,
3930x0000,
394
395/* Character (0x12):
396 bbw=5, bbh=8, bbx=0, bby=-1, width=5
397 +----------------+
398 | |
399 | |
400 | |
401 |***** |
402 | |
403 | |
404 | |
405 | |
406 +----------------+ */
4070x0000,
4080x0000,
4090x0000,
4100xf800,
4110x0000,
4120x0000,
4130x0000,
4140x0000,
415
416/* Character (0x13):
417 bbw=5, bbh=8, bbx=0, bby=-1, width=5
418 +----------------+
419 | |
420 | |
421 | |
422 | |
423 |***** |
424 | |
425 | |
426 | |
427 +----------------+ */
4280x0000,
4290x0000,
4300x0000,
4310x0000,
4320xf800,
4330x0000,
4340x0000,
4350x0000,
436
437/* Character (0x14):
438 bbw=5, bbh=8, bbx=0, bby=-1, width=5
439 +----------------+
440 | |
441 | |
442 | |
443 | |
444 | |
445 |***** |
446 | |
447 | |
448 +----------------+ */
4490x0000,
4500x0000,
4510x0000,
4520x0000,
4530x0000,
4540xf800,
4550x0000,
4560x0000,
457
458/* Character (0x15):
459 bbw=5, bbh=8, bbx=0, bby=-1, width=5
460 +----------------+
461 | * |
462 | * |
463 | * |
464 | *** |
465 | * |
466 | * |
467 | * |
468 | * |
469 +----------------+ */
4700x2000,
4710x2000,
4720x2000,
4730x3800,
4740x2000,
4750x2000,
4760x2000,
4770x2000,
478
479/* Character (0x16):
480 bbw=5, bbh=8, bbx=0, bby=-1, width=5
481 +----------------+
482 | * |
483 | * |
484 | * |
485 |*** |
486 | * |
487 | * |
488 | * |
489 | * |
490 +----------------+ */
4910x2000,
4920x2000,
4930x2000,
4940xe000,
4950x2000,
4960x2000,
4970x2000,
4980x2000,
499
500/* Character (0x17):
501 bbw=5, bbh=8, bbx=0, bby=-1, width=5
502 +----------------+
503 | * |
504 | * |
505 | * |
506 |***** |
507 | |
508 | |
509 | |
510 | |
511 +----------------+ */
5120x2000,
5130x2000,
5140x2000,
5150xf800,
5160x0000,
5170x0000,
5180x0000,
5190x0000,
520
521/* Character (0x18):
522 bbw=5, bbh=8, bbx=0, bby=-1, width=5
523 +----------------+
524 | |
525 | |
526 | |
527 |***** |
528 | * |
529 | * |
530 | * |
531 | * |
532 +----------------+ */
5330x0000,
5340x0000,
5350x0000,
5360xf800,
5370x2000,
5380x2000,
5390x2000,
5400x2000,
541
542/* Character (0x19):
543 bbw=5, bbh=8, bbx=0, bby=-1, width=5
544 +----------------+
545 | * |
546 | * |
547 | * |
548 | * |
549 | * |
550 | * |
551 | * |
552 | * |
553 +----------------+ */
5540x2000,
5550x2000,
5560x2000,
5570x2000,
5580x2000,
5590x2000,
5600x2000,
5610x2000,
562
563/* Character (0x1a):
564 bbw=5, bbh=8, bbx=0, bby=-1, width=5
565 +----------------+
566 | |
567 | * |
568 | * |
569 | * |
570 | * |
571 | * |
572 | *** |
573 | |
574 +----------------+ */
5750x0000,
5760x1000,
5770x2000,
5780x4000,
5790x2000,
5800x1000,
5810x7000,
5820x0000,
583
584/* Character (0x1b):
585 bbw=5, bbh=8, bbx=0, bby=-1, width=5
586 +----------------+
587 | |
588 | * |
589 | * |
590 | * |
591 | * |
592 | * |
593 | *** |
594 | |
595 +----------------+ */
5960x0000,
5970x4000,
5980x2000,
5990x1000,
6000x2000,
6010x4000,
6020x7000,
6030x0000,
604
605/* Character (0x1c):
606 bbw=5, bbh=8, bbx=0, bby=-1, width=5
607 +----------------+
608 | |
609 |***** |
610 | * * |
611 | * * |
612 | * * |
613 | * * |
614 | |
615 | |
616 +----------------+ */
6170x0000,
6180xf800,
6190x5000,
6200x5000,
6210x5000,
6220x5000,
6230x0000,
6240x0000,
625
626/* Character (0x1d):
627 bbw=5, bbh=8, bbx=0, bby=-1, width=5
628 +----------------+
629 | |
630 | * |
631 |***** |
632 | * |
633 |***** |
634 | * |
635 | |
636 | |
637 +----------------+ */
6380x0000,
6390x1000,
6400xf800,
6410x2000,
6420xf800,
6430x4000,
6440x0000,
6450x0000,
646
647/* Character (0x1e):
648 bbw=5, bbh=8, bbx=0, bby=-1, width=5
649 +----------------+
650 | |
651 | ** |
652 | * * |
653 |*** |
654 | * |
655 | * * |
656 |* ** |
657 | |
658 +----------------+ */
6590x0000,
6600x3000,
6610x4800,
6620xe000,
6630x4000,
6640x4800,
6650xb000,
6660x0000,
667
668/* Character (0x1f):
669 bbw=5, bbh=8, bbx=0, bby=-1, width=5
670 +----------------+
671 | |
672 | |
673 | |
674 | * |
675 | |
676 | |
677 | |
678 | |
679 +----------------+ */
6800x0000,
6810x0000,
6820x0000,
6830x2000,
6840x0000,
6850x0000,
6860x0000,
6870x0000,
688
689/* Character (0x20):
690 bbw=5, bbh=8, bbx=0, bby=-1, width=5
691 +----------------+
692 | |
693 | |
694 | |
695 | |
696 | |
697 | |
698 | |
699 | |
700 +----------------+ */
7010x0000,
7020x0000,
7030x0000,
7040x0000,
7050x0000,
7060x0000,
7070x0000,
7080x0000,
709
710/* Character (0x21):
711 bbw=5, bbh=8, bbx=0, bby=-1, width=5
712 +----------------+
713 | |
714 | * |
715 | * |
716 | * |
717 | * |
718 | |
719 | * |
720 | |
721 +----------------+ */
7220x0000,
7230x2000,
7240x2000,
7250x2000,
7260x2000,
7270x0000,
7280x2000,
7290x0000,
730
731/* Character (0x22):
732 bbw=5, bbh=8, bbx=0, bby=-1, width=5
733 +----------------+
734 | |
735 | * * |
736 | * * |
737 | * * |
738 | |
739 | |
740 | |
741 | |
742 +----------------+ */
7430x0000,
7440x5000,
7450x5000,
7460x5000,
7470x0000,
7480x0000,
7490x0000,
7500x0000,
751
752/* Character (0x23):
753 bbw=5, bbh=8, bbx=0, bby=-1, width=5
754 +----------------+
755 | * * |
756 | * * |
757 |***** |
758 | * * |
759 |***** |
760 | * * |
761 | * * |
762 | |
763 +----------------+ */
7640x5000,
7650x5000,
7660xf800,
7670x5000,
7680xf800,
7690x5000,
7700x5000,
7710x0000,
772
773/* Character (0x24):
774 bbw=5, bbh=8, bbx=0, bby=-1, width=5
775 +----------------+
776 | * |
777 | *** |
778 |* * |
779 | *** |
780 | * * |
781 | *** |
782 | * |
783 | |
784 +----------------+ */
7850x2000,
7860x7000,
7870xa000,
7880x7000,
7890x2800,
7900x7000,
7910x2000,
7920x0000,
793
794/* Character (0x25):
795 bbw=5, bbh=8, bbx=0, bby=-1, width=5
796 +----------------+
797 | |
798 | * |
799 | * * |
800 | * |
801 | * * |
802 | * |
803 | |
804 | |
805 +----------------+ */
8060x0000,
8070x4000,
8080x5000,
8090x2000,
8100x5000,
8110x1000,
8120x0000,
8130x0000,
814
815/* Character (0x26):
816 bbw=5, bbh=8, bbx=0, bby=-1, width=5
817 +----------------+
818 | * |
819 | * * |
820 | * * |
821 | * |
822 | * * |
823 | * * |
824 | * * |
825 | |
826 +----------------+ */
8270x2000,
8280x5000,
8290x5000,
8300x2000,
8310x5000,
8320x5000,
8330x2800,
8340x0000,
835
836/* Character (0x27):
837 bbw=5, bbh=8, bbx=0, bby=-1, width=5
838 +----------------+
839 | |
840 | ** |
841 | * |
842 | * |
843 | |
844 | |
845 | |
846 | |
847 +----------------+ */
8480x0000,
8490x3000,
8500x2000,
8510x4000,
8520x0000,
8530x0000,
8540x0000,
8550x0000,
856
857/* Character (0x28):
858 bbw=5, bbh=8, bbx=0, bby=-1, width=5
859 +----------------+
860 | |
861 | * |
862 | * |
863 | * |
864 | * |
865 | * |
866 | |
867 | |
868 +----------------+ */
8690x0000,
8700x1000,
8710x2000,
8720x2000,
8730x2000,
8740x1000,
8750x0000,
8760x0000,
877
878/* Character (0x29):
879 bbw=5, bbh=8, bbx=0, bby=-1, width=5
880 +----------------+
881 | |
882 | * |
883 | * |
884 | * |
885 | * |
886 | * |
887 | |
888 | |
889 +----------------+ */
8900x0000,
8910x4000,
8920x2000,
8930x2000,
8940x2000,
8950x4000,
8960x0000,
8970x0000,
898
899/* Character (0x2a):
900 bbw=5, bbh=8, bbx=0, bby=-1, width=5
901 +----------------+
902 | |
903 | * * |
904 | ** |
905 | **** |
906 | ** |
907 | * * |
908 | |
909 | |
910 +----------------+ */
9110x0000,
9120x4800,
9130x3000,
9140x7800,
9150x3000,
9160x4800,
9170x0000,
9180x0000,
919
920/* Character (0x2b):
921 bbw=5, bbh=8, bbx=0, bby=-1, width=5
922 +----------------+
923 | |
924 | * |
925 | * |
926 |***** |
927 | * |
928 | * |
929 | |
930 | |
931 +----------------+ */
9320x0000,
9330x2000,
9340x2000,
9350xf800,
9360x2000,
9370x2000,
9380x0000,
9390x0000,
940
941/* Character (0x2c):
942 bbw=5, bbh=8, bbx=0, bby=-1, width=5
943 +----------------+
944 | |
945 | |
946 | |
947 | |
948 | ** |
949 | * |
950 | * |
951 | |
952 +----------------+ */
9530x0000,
9540x0000,
9550x0000,
9560x0000,
9570x3000,
9580x2000,
9590x4000,
9600x0000,
961
962/* Character (0x2d):
963 bbw=5, bbh=8, bbx=0, bby=-1, width=5
964 +----------------+
965 | |
966 | |
967 | |
968 | |
969 | **** |
970 | |
971 | |
972 | |
973 +----------------+ */
9740x0000,
9750x0000,
9760x0000,
9770x0000,
9780x7800,
9790x0000,
9800x0000,
9810x0000,
982
983/* Character (0x2e):
984 bbw=5, bbh=8, bbx=0, bby=-1, width=5
985 +----------------+
986 | |
987 | |
988 | |
989 | |
990 | * |
991 | *** |
992 | * |
993 | |
994 +----------------+ */
9950x0000,
9960x0000,
9970x0000,
9980x0000,
9990x2000,
10000x7000,
10010x2000,
10020x0000,
1003
1004/* Character (0x2f):
1005 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1006 +----------------+
1007 | |
1008 | * |
1009 | * |
1010 | * |
1011 | * |
1012 | * |
1013 | * |
1014 | |
1015 +----------------+ */
10160x0000,
10170x0800,
10180x0800,
10190x1000,
10200x2000,
10210x4000,
10220x4000,
10230x0000,
1024
1025/* Character (0x30):
1026 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1027 +----------------+
1028 | |
1029 | * |
1030 | * * |
1031 | * * |
1032 | * * |
1033 | * * |
1034 | * |
1035 | |
1036 +----------------+ */
10370x0000,
10380x2000,
10390x5000,
10400x5000,
10410x5000,
10420x5000,
10430x2000,
10440x0000,
1045
1046/* Character (0x31):
1047 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1048 +----------------+
1049 | |
1050 | * |
1051 | ** |
1052 | * |
1053 | * |
1054 | * |
1055 | *** |
1056 | |
1057 +----------------+ */
10580x0000,
10590x2000,
10600x6000,
10610x2000,
10620x2000,
10630x2000,
10640x7000,
10650x0000,
1066
1067/* Character (0x32):
1068 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1069 +----------------+
1070 | |
1071 | ** |
1072 | * * |
1073 | * |
1074 | ** |
1075 | * |
1076 | **** |
1077 | |
1078 +----------------+ */
10790x0000,
10800x3000,
10810x4800,
10820x0800,
10830x3000,
10840x4000,
10850x7800,
10860x0000,
1087
1088/* Character (0x33):
1089 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1090 +----------------+
1091 | |
1092 | ** |
1093 | * * |
1094 | * |
1095 | * |
1096 | * * |
1097 | ** |
1098 | |
1099 +----------------+ */
11000x0000,
11010x3000,
11020x4800,
11030x1000,
11040x0800,
11050x4800,
11060x3000,
11070x0000,
1108
1109/* Character (0x34):
1110 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1111 +----------------+
1112 | |
1113 | * |
1114 | ** |
1115 | * * |
1116 | **** |
1117 | * |
1118 | * |
1119 | |
1120 +----------------+ */
11210x0000,
11220x1000,
11230x3000,
11240x5000,
11250x7800,
11260x1000,
11270x1000,
11280x0000,
1129
1130/* Character (0x35):
1131 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1132 +----------------+
1133 | |
1134 | **** |
1135 | * |
1136 | *** |
1137 | * |
1138 | * * |
1139 | ** |
1140 | |
1141 +----------------+ */
11420x0000,
11430x7800,
11440x4000,
11450x7000,
11460x0800,
11470x4800,
11480x3000,
11490x0000,
1150
1151/* Character (0x36):
1152 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1153 +----------------+
1154 | |
1155 | ** |
1156 | * |
1157 | * * |
1158 | ** * |
1159 | * * |
1160 | ** |
1161 | |
1162 +----------------+ */
11630x0000,
11640x3000,
11650x4000,
11660x5000,
11670x6800,
11680x4800,
11690x3000,
11700x0000,
1171
1172/* Character (0x37):
1173 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1174 +----------------+
1175 | |
1176 | **** |
1177 | * |
1178 | * |
1179 | * |
1180 | * |
1181 | * |
1182 | |
1183 +----------------+ */
11840x0000,
11850x7800,
11860x0800,
11870x1000,
11880x1000,
11890x2000,
11900x2000,
11910x0000,
1192
1193/* Character (0x38):
1194 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1195 +----------------+
1196 | |
1197 | ** |
1198 | * * |
1199 | ** |
1200 | * * |
1201 | * * |
1202 | ** |
1203 | |
1204 +----------------+ */
12050x0000,
12060x3000,
12070x4800,
12080x3000,
12090x4800,
12100x4800,
12110x3000,
12120x0000,
1213
1214/* Character (0x39):
1215 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1216 +----------------+
1217 | |
1218 | ** |
1219 | * * |
1220 | * ** |
1221 | * * |
1222 | * |
1223 | ** |
1224 | |
1225 +----------------+ */
12260x0000,
12270x3000,
12280x4800,
12290x5800,
12300x2800,
12310x0800,
12320x3000,
12330x0000,
1234
1235/* Character (0x3a):
1236 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1237 +----------------+
1238 | |
1239 | ** |
1240 | ** |
1241 | |
1242 | ** |
1243 | ** |
1244 | |
1245 | |
1246 +----------------+ */
12470x0000,
12480x3000,
12490x3000,
12500x0000,
12510x3000,
12520x3000,
12530x0000,
12540x0000,
1255
1256/* Character (0x3b):
1257 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1258 +----------------+
1259 | |
1260 | ** |
1261 | ** |
1262 | |
1263 | ** |
1264 | * |
1265 | * |
1266 | |
1267 +----------------+ */
12680x0000,
12690x3000,
12700x3000,
12710x0000,
12720x3000,
12730x2000,
12740x4000,
12750x0000,
1276
1277/* Character (0x3c):
1278 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1279 +----------------+
1280 | |
1281 | * |
1282 | * |
1283 | * |
1284 | * |
1285 | * |
1286 | * |
1287 | |
1288 +----------------+ */
12890x0000,
12900x1000,
12910x2000,
12920x4000,
12930x4000,
12940x2000,
12950x1000,
12960x0000,
1297
1298/* Character (0x3d):
1299 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1300 +----------------+
1301 | |
1302 | |
1303 | *** |
1304 | |
1305 | *** |
1306 | |
1307 | |
1308 | |
1309 +----------------+ */
13100x0000,
13110x0000,
13120x7000,
13130x0000,
13140x7000,
13150x0000,
13160x0000,
13170x0000,
1318
1319/* Character (0x3e):
1320 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1321 +----------------+
1322 | |
1323 | * |
1324 | * |
1325 | * |
1326 | * |
1327 | * |
1328 | * |
1329 | |
1330 +----------------+ */
13310x0000,
13320x4000,
13330x2000,
13340x1000,
13350x1000,
13360x2000,
13370x4000,
13380x0000,
1339
1340/* Character (0x3f):
1341 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1342 +----------------+
1343 | |
1344 | * |
1345 | * * |
1346 | * |
1347 | * |
1348 | |
1349 | * |
1350 | |
1351 +----------------+ */
13520x0000,
13530x2000,
13540x5000,
13550x1000,
13560x2000,
13570x0000,
13580x2000,
13590x0000,
1360
1361/* Character (0x40):
1362 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1363 +----------------+
1364 | ** |
1365 | * * |
1366 |* ** |
1367 |* * * |
1368 |* * * |
1369 |* * |
1370 | * |
1371 | ** |
1372 +----------------+ */
13730x3000,
13740x4800,
13750x9800,
13760xa800,
13770xa800,
13780x9000,
13790x4000,
13800x3000,
1381
1382/* Character (0x41):
1383 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1384 +----------------+
1385 | |
1386 | ** |
1387 | * * |
1388 | * * |
1389 | **** |
1390 | * * |
1391 | * * |
1392 | |
1393 +----------------+ */
13940x0000,
13950x3000,
13960x4800,
13970x4800,
13980x7800,
13990x4800,
14000x4800,
14010x0000,
1402
1403/* Character (0x42):
1404 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1405 +----------------+
1406 | |
1407 | *** |
1408 | * * |
1409 | *** |
1410 | * * |
1411 | * * |
1412 | *** |
1413 | |
1414 +----------------+ */
14150x0000,
14160x7000,
14170x4800,
14180x7000,
14190x4800,
14200x4800,
14210x7000,
14220x0000,
1423
1424/* Character (0x43):
1425 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1426 +----------------+
1427 | |
1428 | ** |
1429 | * * |
1430 | * |
1431 | * |
1432 | * * |
1433 | ** |
1434 | |
1435 +----------------+ */
14360x0000,
14370x3000,
14380x4800,
14390x4000,
14400x4000,
14410x4800,
14420x3000,
14430x0000,
1444
1445/* Character (0x44):
1446 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1447 +----------------+
1448 | |
1449 | *** |
1450 | * * |
1451 | * * |
1452 | * * |
1453 | * * |
1454 | *** |
1455 | |
1456 +----------------+ */
14570x0000,
14580x7000,
14590x4800,
14600x4800,
14610x4800,
14620x4800,
14630x7000,
14640x0000,
1465
1466/* Character (0x45):
1467 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1468 +----------------+
1469 | |
1470 | **** |
1471 | * |
1472 | *** |
1473 | * |
1474 | * |
1475 | **** |
1476 | |
1477 +----------------+ */
14780x0000,
14790x7800,
14800x4000,
14810x7000,
14820x4000,
14830x4000,
14840x7800,
14850x0000,
1486
1487/* Character (0x46):
1488 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1489 +----------------+
1490 | |
1491 | **** |
1492 | * |
1493 | *** |
1494 | * |
1495 | * |
1496 | * |
1497 | |
1498 +----------------+ */
14990x0000,
15000x7800,
15010x4000,
15020x7000,
15030x4000,
15040x4000,
15050x4000,
15060x0000,
1507
1508/* Character (0x47):
1509 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1510 +----------------+
1511 | |
1512 | ** |
1513 | * * |
1514 | * |
1515 | * ** |
1516 | * * |
1517 | ** |
1518 | |
1519 +----------------+ */
15200x0000,
15210x3000,
15220x4800,
15230x4000,
15240x5800,
15250x4800,
15260x3000,
15270x0000,
1528
1529/* Character (0x48):
1530 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1531 +----------------+
1532 | |
1533 | * * |
1534 | * * |
1535 | **** |
1536 | * * |
1537 | * * |
1538 | * * |
1539 | |
1540 +----------------+ */
15410x0000,
15420x4800,
15430x4800,
15440x7800,
15450x4800,
15460x4800,
15470x4800,
15480x0000,
1549
1550/* Character (0x49):
1551 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1552 +----------------+
1553 | |
1554 | *** |
1555 | * |
1556 | * |
1557 | * |
1558 | * |
1559 | *** |
1560 | |
1561 +----------------+ */
15620x0000,
15630x7000,
15640x2000,
15650x2000,
15660x2000,
15670x2000,
15680x7000,
15690x0000,
1570
1571/* Character (0x4a):
1572 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1573 +----------------+
1574 | |
1575 | *** |
1576 | * |
1577 | * |
1578 | * |
1579 | * * |
1580 | ** |
1581 | |
1582 +----------------+ */
15830x0000,
15840x3800,
15850x0800,
15860x0800,
15870x0800,
15880x4800,
15890x3000,
15900x0000,
1591
1592/* Character (0x4b):
1593 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1594 +----------------+
1595 | |
1596 | * * |
1597 | * * |
1598 | ** |
1599 | * * |
1600 | * * |
1601 | * * |
1602 | |
1603 +----------------+ */
16040x0000,
16050x4800,
16060x5000,
16070x6000,
16080x5000,
16090x5000,
16100x4800,
16110x0000,
1612
1613/* Character (0x4c):
1614 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1615 +----------------+
1616 | |
1617 | * |
1618 | * |
1619 | * |
1620 | * |
1621 | * |
1622 | *** |
1623 | |
1624 +----------------+ */
16250x0000,
16260x4000,
16270x4000,
16280x4000,
16290x4000,
16300x4000,
16310x7000,
16320x0000,
1633
1634/* Character (0x4d):
1635 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1636 +----------------+
1637 | |
1638 | * * |
1639 | **** |
1640 | **** |
1641 | * * |
1642 | * * |
1643 | * * |
1644 | |
1645 +----------------+ */
16460x0000,
16470x4800,
16480x7800,
16490x7800,
16500x4800,
16510x4800,
16520x4800,
16530x0000,
1654
1655/* Character (0x4e):
1656 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1657 +----------------+
1658 | |
1659 | * * |
1660 | ** * |
1661 | **** |
1662 | * ** |
1663 | * ** |
1664 | * * |
1665 | |
1666 +----------------+ */
16670x0000,
16680x4800,
16690x6800,
16700x7800,
16710x5800,
16720x5800,
16730x4800,
16740x0000,
1675
1676/* Character (0x4f):
1677 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1678 +----------------+
1679 | |
1680 | ** |
1681 | * * |
1682 | * * |
1683 | * * |
1684 | * * |
1685 | ** |
1686 | |
1687 +----------------+ */
16880x0000,
16890x3000,
16900x4800,
16910x4800,
16920x4800,
16930x4800,
16940x3000,
16950x0000,
1696
1697/* Character (0x50):
1698 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1699 +----------------+
1700 | |
1701 | *** |
1702 | * * |
1703 | * * |
1704 | *** |
1705 | * |
1706 | * |
1707 | |
1708 +----------------+ */
17090x0000,
17100x7000,
17110x4800,
17120x4800,
17130x7000,
17140x4000,
17150x4000,
17160x0000,
1717
1718/* Character (0x51):
1719 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1720 +----------------+
1721 | |
1722 | ** |
1723 | * * |
1724 | * * |
1725 | ** * |
1726 | * ** |
1727 | ** |
1728 | * |
1729 +----------------+ */
17300x0000,
17310x3000,
17320x4800,
17330x4800,
17340x6800,
17350x5800,
17360x3000,
17370x0800,
1738
1739/* Character (0x52):
1740 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1741 +----------------+
1742 | |
1743 | *** |
1744 | * * |
1745 | * * |
1746 | *** |
1747 | * ** |
1748 | * * |
1749 | |
1750 +----------------+ */
17510x0000,
17520x7000,
17530x4800,
17540x4800,
17550x7000,
17560x5800,
17570x4800,
17580x0000,
1759
1760/* Character (0x53):
1761 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1762 +----------------+
1763 | |
1764 | ** |
1765 | * * |
1766 | * |
1767 | * |
1768 | * * |
1769 | ** |
1770 | |
1771 +----------------+ */
17720x0000,
17730x3000,
17740x4800,
17750x2000,
17760x1000,
17770x4800,
17780x3000,
17790x0000,
1780
1781/* Character (0x54):
1782 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1783 +----------------+
1784 | |
1785 |***** |
1786 | * |
1787 | * |
1788 | * |
1789 | * |
1790 | * |
1791 | |
1792 +----------------+ */
17930x0000,
17940xf800,
17950x2000,
17960x2000,
17970x2000,
17980x2000,
17990x2000,
18000x0000,
1801
1802/* Character (0x55):
1803 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1804 +----------------+
1805 | |
1806 | * * |
1807 | * * |
1808 | * * |
1809 | * * |
1810 | * * |
1811 | ** |
1812 | |
1813 +----------------+ */
18140x0000,
18150x4800,
18160x4800,
18170x4800,
18180x4800,
18190x4800,
18200x3000,
18210x0000,
1822
1823/* Character (0x56):
1824 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1825 +----------------+
1826 | |
1827 | * * |
1828 | * * |
1829 | * * |
1830 | * * |
1831 | ** |
1832 | ** |
1833 | |
1834 +----------------+ */
18350x0000,
18360x4800,
18370x4800,
18380x4800,
18390x4800,
18400x3000,
18410x3000,
18420x0000,
1843
1844/* Character (0x57):
1845 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1846 +----------------+
1847 | |
1848 | * * |
1849 | * * |
1850 | * * |
1851 | **** |
1852 | **** |
1853 | * * |
1854 | |
1855 +----------------+ */
18560x0000,
18570x4800,
18580x4800,
18590x4800,
18600x7800,
18610x7800,
18620x4800,
18630x0000,
1864
1865/* Character (0x58):
1866 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1867 +----------------+
1868 | |
1869 | * * |
1870 | * * |
1871 | ** |
1872 | ** |
1873 | * * |
1874 | * * |
1875 | |
1876 +----------------+ */
18770x0000,
18780x4800,
18790x4800,
18800x3000,
18810x3000,
18820x4800,
18830x4800,
18840x0000,
1885
1886/* Character (0x59):
1887 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1888 +----------------+
1889 | |
1890 |* * |
1891 |* * |
1892 | * * |
1893 | * |
1894 | * |
1895 | * |
1896 | |
1897 +----------------+ */
18980x0000,
18990x8800,
19000x8800,
19010x5000,
19020x2000,
19030x2000,
19040x2000,
19050x0000,
1906
1907/* Character (0x5a):
1908 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1909 +----------------+
1910 | |
1911 | **** |
1912 | * |
1913 | * |
1914 | * |
1915 | * |
1916 | **** |
1917 | |
1918 +----------------+ */
19190x0000,
19200x7800,
19210x0800,
19220x1000,
19230x2000,
19240x4000,
19250x7800,
19260x0000,
1927
1928/* Character (0x5b):
1929 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1930 +----------------+
1931 | |
1932 | *** |
1933 | * |
1934 | * |
1935 | * |
1936 | * |
1937 | *** |
1938 | |
1939 +----------------+ */
19400x0000,
19410x7000,
19420x4000,
19430x4000,
19440x4000,
19450x4000,
19460x7000,
19470x0000,
1948
1949/* Character (0x5c):
1950 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1951 +----------------+
1952 | |
1953 | * |
1954 | * |
1955 | * |
1956 | * |
1957 | * |
1958 | * |
1959 | |
1960 +----------------+ */
19610x0000,
19620x4000,
19630x4000,
19640x2000,
19650x1000,
19660x0800,
19670x0800,
19680x0000,
1969
1970/* Character (0x5d):
1971 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1972 +----------------+
1973 | |
1974 | *** |
1975 | * |
1976 | * |
1977 | * |
1978 | * |
1979 | *** |
1980 | |
1981 +----------------+ */
19820x0000,
19830x7000,
19840x1000,
19850x1000,
19860x1000,
19870x1000,
19880x7000,
19890x0000,
1990
1991/* Character (0x5e):
1992 bbw=5, bbh=8, bbx=0, bby=-1, width=5
1993 +----------------+
1994 | |
1995 | * |
1996 | * * |
1997 | * * |
1998 | |
1999 | |
2000 | |
2001 | |
2002 +----------------+ */
20030x0000,
20040x2000,
20050x5000,
20060x5000,
20070x0000,
20080x0000,
20090x0000,
20100x0000,
2011
2012/* Character (0x5f):
2013 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2014 +----------------+
2015 | |
2016 | |
2017 | |
2018 | |
2019 | |
2020 | |
2021 | |
2022 | **** |
2023 +----------------+ */
20240x0000,
20250x0000,
20260x0000,
20270x0000,
20280x0000,
20290x0000,
20300x0000,
20310x7800,
2032
2033/* Character (0x60):
2034 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2035 +----------------+
2036 | |
2037 | ** |
2038 | * |
2039 | * |
2040 | |
2041 | |
2042 | |
2043 | |
2044 +----------------+ */
20450x0000,
20460x6000,
20470x4000,
20480x2000,
20490x0000,
20500x0000,
20510x0000,
20520x0000,
2053
2054/* Character (0x61):
2055 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2056 +----------------+
2057 | |
2058 | |
2059 | |
2060 | * * |
2061 | * ** |
2062 | * ** |
2063 | * * |
2064 | |
2065 +----------------+ */
20660x0000,
20670x0000,
20680x0000,
20690x2800,
20700x5800,
20710x5800,
20720x2800,
20730x0000,
2074
2075/* Character (0x62):
2076 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2077 +----------------+
2078 | |
2079 | * |
2080 | * |
2081 | *** |
2082 | * * |
2083 | * * |
2084 | *** |
2085 | |
2086 +----------------+ */
20870x0000,
20880x4000,
20890x4000,
20900x7000,
20910x4800,
20920x4800,
20930x7000,
20940x0000,
2095
2096/* Character (0x63):
2097 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2098 +----------------+
2099 | |
2100 | |
2101 | |
2102 | ** |
2103 | * |
2104 | * |
2105 | ** |
2106 | |
2107 +----------------+ */
21080x0000,
21090x0000,
21100x0000,
21110x3000,
21120x4000,
21130x4000,
21140x3000,
21150x0000,
2116
2117/* Character (0x64):
2118 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2119 +----------------+
2120 | |
2121 | * |
2122 | * |
2123 | * * |
2124 | * ** |
2125 | * ** |
2126 | * * |
2127 | |
2128 +----------------+ */
21290x0000,
21300x0800,
21310x0800,
21320x2800,
21330x5800,
21340x5800,
21350x2800,
21360x0000,
2137
2138/* Character (0x65):
2139 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2140 +----------------+
2141 | |
2142 | |
2143 | |
2144 | ** |
2145 | **** |
2146 | * |
2147 | ** |
2148 | |
2149 +----------------+ */
21500x0000,
21510x0000,
21520x0000,
21530x3000,
21540x7800,
21550x4000,
21560x3000,
21570x0000,
2158
2159/* Character (0x66):
2160 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2161 +----------------+
2162 | |
2163 | * |
2164 | * * |
2165 | * |
2166 | *** |
2167 | * |
2168 | * |
2169 | |
2170 +----------------+ */
21710x0000,
21720x1000,
21730x2800,
21740x2000,
21750x7000,
21760x2000,
21770x2000,
21780x0000,
2179
2180/* Character (0x67):
2181 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2182 +----------------+
2183 | |
2184 | |
2185 | |
2186 | ** |
2187 | * * |
2188 | *** |
2189 | * |
2190 | ** |
2191 +----------------+ */
21920x0000,
21930x0000,
21940x0000,
21950x3000,
21960x4800,
21970x3800,
21980x0800,
21990x3000,
2200
2201/* Character (0x68):
2202 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2203 +----------------+
2204 | |
2205 | * |
2206 | * |
2207 | *** |
2208 | * * |
2209 | * * |
2210 | * * |
2211 | |
2212 +----------------+ */
22130x0000,
22140x4000,
22150x4000,
22160x7000,
22170x4800,
22180x4800,
22190x4800,
22200x0000,
2221
2222/* Character (0x69):
2223 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2224 +----------------+
2225 | |
2226 | * |
2227 | |
2228 | ** |
2229 | * |
2230 | * |
2231 | *** |
2232 | |
2233 +----------------+ */
22340x0000,
22350x2000,
22360x0000,
22370x6000,
22380x2000,
22390x2000,
22400x7000,
22410x0000,
2242
2243/* Character (0x6a):
2244 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2245 +----------------+
2246 | |
2247 | * |
2248 | |
2249 | * |
2250 | * |
2251 | * |
2252 | * * |
2253 | * |
2254 +----------------+ */
22550x0000,
22560x1000,
22570x0000,
22580x1000,
22590x1000,
22600x1000,
22610x5000,
22620x2000,
2263
2264/* Character (0x6b):
2265 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2266 +----------------+
2267 | |
2268 | * |
2269 | * |
2270 | * * |
2271 | *** |
2272 | * * |
2273 | * * |
2274 | |
2275 +----------------+ */
22760x0000,
22770x4000,
22780x4000,
22790x4800,
22800x7000,
22810x4800,
22820x4800,
22830x0000,
2284
2285/* Character (0x6c):
2286 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2287 +----------------+
2288 | |
2289 | ** |
2290 | * |
2291 | * |
2292 | * |
2293 | * |
2294 | *** |
2295 | |
2296 +----------------+ */
22970x0000,
22980x6000,
22990x2000,
23000x2000,
23010x2000,
23020x2000,
23030x7000,
23040x0000,
2305
2306/* Character (0x6d):
2307 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2308 +----------------+
2309 | |
2310 | |
2311 | |
2312 | * * |
2313 |* * * |
2314 |* * * |
2315 |* * |
2316 | |
2317 +----------------+ */
23180x0000,
23190x0000,
23200x0000,
23210x5000,
23220xa800,
23230xa800,
23240x8800,
23250x0000,
2326
2327/* Character (0x6e):
2328 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2329 +----------------+
2330 | |
2331 | |
2332 | |
2333 | *** |
2334 | * * |
2335 | * * |
2336 | * * |
2337 | |
2338 +----------------+ */
23390x0000,
23400x0000,
23410x0000,
23420x7000,
23430x4800,
23440x4800,
23450x4800,
23460x0000,
2347
2348/* Character (0x6f):
2349 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2350 +----------------+
2351 | |
2352 | |
2353 | |
2354 | ** |
2355 | * * |
2356 | * * |
2357 | ** |
2358 | |
2359 +----------------+ */
23600x0000,
23610x0000,
23620x0000,
23630x3000,
23640x4800,
23650x4800,
23660x3000,
23670x0000,
2368
2369/* Character (0x70):
2370 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2371 +----------------+
2372 | |
2373 | |
2374 | |
2375 | *** |
2376 | * * |
2377 | *** |
2378 | * |
2379 | * |
2380 +----------------+ */
23810x0000,
23820x0000,
23830x0000,
23840x7000,
23850x4800,
23860x7000,
23870x4000,
23880x4000,
2389
2390/* Character (0x71):
2391 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2392 +----------------+
2393 | |
2394 | |
2395 | |
2396 | *** |
2397 | * * |
2398 | *** |
2399 | * |
2400 | * |
2401 +----------------+ */
24020x0000,
24030x0000,
24040x0000,
24050x3800,
24060x4800,
24070x3800,
24080x0800,
24090x0800,
2410
2411/* Character (0x72):
2412 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2413 +----------------+
2414 | |
2415 | |
2416 | |
2417 | * * |
2418 | ** * |
2419 | * |
2420 | * |
2421 | |
2422 +----------------+ */
24230x0000,
24240x0000,
24250x0000,
24260x5000,
24270x6800,
24280x4000,
24290x4000,
24300x0000,
2431
2432/* Character (0x73):
2433 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2434 +----------------+
2435 | |
2436 | |
2437 | |
2438 | *** |
2439 | ** |
2440 | * |
2441 | *** |
2442 | |
2443 +----------------+ */
24440x0000,
24450x0000,
24460x0000,
24470x7000,
24480x6000,
24490x1000,
24500x7000,
24510x0000,
2452
2453/* Character (0x74):
2454 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2455 +----------------+
2456 | |
2457 | * |
2458 | * |
2459 | *** |
2460 | * |
2461 | * * |
2462 | * |
2463 | |
2464 +----------------+ */
24650x0000,
24660x2000,
24670x2000,
24680x7000,
24690x2000,
24700x2800,
24710x1000,
24720x0000,
2473
2474/* Character (0x75):
2475 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2476 +----------------+
2477 | |
2478 | |
2479 | |
2480 | * * |
2481 | * * |
2482 | * * |
2483 | *** |
2484 | |
2485 +----------------+ */
24860x0000,
24870x0000,
24880x0000,
24890x4800,
24900x4800,
24910x4800,
24920x3800,
24930x0000,
2494
2495/* Character (0x76):
2496 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2497 +----------------+
2498 | |
2499 | |
2500 | |
2501 | * * |
2502 | * * |
2503 | * * |
2504 | * |
2505 | |
2506 +----------------+ */
25070x0000,
25080x0000,
25090x0000,
25100x5000,
25110x5000,
25120x5000,
25130x2000,
25140x0000,
2515
2516/* Character (0x77):
2517 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2518 +----------------+
2519 | |
2520 | |
2521 | |
2522 |* * |
2523 |* * * |
2524 |* * * |
2525 | *** |
2526 | |
2527 +----------------+ */
25280x0000,
25290x0000,
25300x0000,
25310x8800,
25320xa800,
25330xa800,
25340x7000,
25350x0000,
2536
2537/* Character (0x78):
2538 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2539 +----------------+
2540 | |
2541 | |
2542 | |
2543 | * * |
2544 | ** |
2545 | ** |
2546 | * * |
2547 | |
2548 +----------------+ */
25490x0000,
25500x0000,
25510x0000,
25520x4800,
25530x3000,
25540x3000,
25550x4800,
25560x0000,
2557
2558/* Character (0x79):
2559 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2560 +----------------+
2561 | |
2562 | |
2563 | |
2564 | * * |
2565 | * * |
2566 | *** |
2567 | * * |
2568 | ** |
2569 +----------------+ */
25700x0000,
25710x0000,
25720x0000,
25730x4800,
25740x4800,
25750x3800,
25760x4800,
25770x3000,
2578
2579/* Character (0x7a):
2580 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2581 +----------------+
2582 | |
2583 | |
2584 | |
2585 | **** |
2586 | * |
2587 | * |
2588 | **** |
2589 | |
2590 +----------------+ */
25910x0000,
25920x0000,
25930x0000,
25940x7800,
25950x1000,
25960x2000,
25970x7800,
25980x0000,
2599
2600/* Character (0x7b):
2601 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2602 +----------------+
2603 | ** |
2604 | * |
2605 | * |
2606 | ** |
2607 | * |
2608 | * |
2609 | ** |
2610 | |
2611 +----------------+ */
26120x1800,
26130x2000,
26140x1000,
26150x6000,
26160x1000,
26170x2000,
26180x1800,
26190x0000,
2620
2621/* Character (0x7c):
2622 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2623 +----------------+
2624 | |
2625 | * |
2626 | * |
2627 | * |
2628 | * |
2629 | * |
2630 | * |
2631 | |
2632 +----------------+ */
26330x0000,
26340x2000,
26350x2000,
26360x2000,
26370x2000,
26380x2000,
26390x2000,
26400x0000,
2641
2642/* Character (0x7d):
2643 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2644 +----------------+
2645 | ** |
2646 | * |
2647 | * |
2648 | ** |
2649 | * |
2650 | * |
2651 | ** |
2652 | |
2653 +----------------+ */
26540x6000,
26550x1000,
26560x2000,
26570x1800,
26580x2000,
26590x1000,
26600x6000,
26610x0000,
2662
2663/* Character (0x7e):
2664 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2665 +----------------+
2666 | |
2667 | * * |
2668 | * * |
2669 | |
2670 | |
2671 | |
2672 | |
2673 | |
2674 +----------------+ */
26750x0000,
26760x2800,
26770x5000,
26780x0000,
26790x0000,
26800x0000,
26810x0000,
26820x0000,
2683
2684/* Character (0x7f):
2685 bbw=5, bbh=8, bbx=0, bby=-1, width=5
2686 +----------------+
2687 | |
2688 | |
2689 | |
2690 | |
2691 | |
2692 | |
2693 | |
2694 | |
2695 +----------------+ */
26960x0000,
26970x0000,
26980x0000,
26990x0000,
27000x0000,
27010x0000,
27020x0000,
27030x0000,
2704};
2705
2706/* Character->glyph mapping. */
2707static unsigned long X5x8_offset[] = {
2708 0, /* (0x00) */
2709 8, /* (0x01) */
2710 16, /* (0x02) */
2711 24, /* (0x03) */
2712 32, /* (0x04) */
2713 40, /* (0x05) */
2714 48, /* (0x06) */
2715 56, /* (0x07) */
2716 64, /* (0x08) */
2717 72, /* (0x09) */
2718 80, /* (0x0a) */
2719 88, /* (0x0b) */
2720 96, /* (0x0c) */
2721 104, /* (0x0d) */
2722 112, /* (0x0e) */
2723 120, /* (0x0f) */
2724 128, /* (0x10) */
2725 136, /* (0x11) */
2726 144, /* (0x12) */
2727 152, /* (0x13) */
2728 160, /* (0x14) */
2729 168, /* (0x15) */
2730 176, /* (0x16) */
2731 184, /* (0x17) */
2732 192, /* (0x18) */
2733 200, /* (0x19) */
2734 208, /* (0x1a) */
2735 216, /* (0x1b) */
2736 224, /* (0x1c) */
2737 232, /* (0x1d) */
2738 240, /* (0x1e) */
2739 248, /* (0x1f) */
2740 256, /* (0x20) */
2741 264, /* (0x21) */
2742 272, /* (0x22) */
2743 280, /* (0x23) */
2744 288, /* (0x24) */
2745 296, /* (0x25) */
2746 304, /* (0x26) */
2747 312, /* (0x27) */
2748 320, /* (0x28) */
2749 328, /* (0x29) */
2750 336, /* (0x2a) */
2751 344, /* (0x2b) */
2752 352, /* (0x2c) */
2753 360, /* (0x2d) */
2754 368, /* (0x2e) */
2755 376, /* (0x2f) */
2756 384, /* (0x30) */
2757 392, /* (0x31) */
2758 400, /* (0x32) */
2759 408, /* (0x33) */
2760 416, /* (0x34) */
2761 424, /* (0x35) */
2762 432, /* (0x36) */
2763 440, /* (0x37) */
2764 448, /* (0x38) */
2765 456, /* (0x39) */
2766 464, /* (0x3a) */
2767 472, /* (0x3b) */
2768 480, /* (0x3c) */
2769 488, /* (0x3d) */
2770 496, /* (0x3e) */
2771 504, /* (0x3f) */
2772 512, /* (0x40) */
2773 520, /* (0x41) */
2774 528, /* (0x42) */
2775 536, /* (0x43) */
2776 544, /* (0x44) */
2777 552, /* (0x45) */
2778 560, /* (0x46) */
2779 568, /* (0x47) */
2780 576, /* (0x48) */
2781 584, /* (0x49) */
2782 592, /* (0x4a) */
2783 600, /* (0x4b) */
2784 608, /* (0x4c) */
2785 616, /* (0x4d) */
2786 624, /* (0x4e) */
2787 632, /* (0x4f) */
2788 640, /* (0x50) */
2789 648, /* (0x51) */
2790 656, /* (0x52) */
2791 664, /* (0x53) */
2792 672, /* (0x54) */
2793 680, /* (0x55) */
2794 688, /* (0x56) */
2795 696, /* (0x57) */
2796 704, /* (0x58) */
2797 712, /* (0x59) */
2798 720, /* (0x5a) */
2799 728, /* (0x5b) */
2800 736, /* (0x5c) */
2801 744, /* (0x5d) */
2802 752, /* (0x5e) */
2803 760, /* (0x5f) */
2804 768, /* (0x60) */
2805 776, /* (0x61) */
2806 784, /* (0x62) */
2807 792, /* (0x63) */
2808 800, /* (0x64) */
2809 808, /* (0x65) */
2810 816, /* (0x66) */
2811 824, /* (0x67) */
2812 832, /* (0x68) */
2813 840, /* (0x69) */
2814 848, /* (0x6a) */
2815 856, /* (0x6b) */
2816 864, /* (0x6c) */
2817 872, /* (0x6d) */
2818 880, /* (0x6e) */
2819 888, /* (0x6f) */
2820 896, /* (0x70) */
2821 904, /* (0x71) */
2822 912, /* (0x72) */
2823 920, /* (0x73) */
2824 928, /* (0x74) */
2825 936, /* (0x75) */
2826 944, /* (0x76) */
2827 952, /* (0x77) */
2828 960, /* (0x78) */
2829 968, /* (0x79) */
2830 976, /* (0x7a) */
2831 984, /* (0x7b) */
2832 992, /* (0x7c) */
2833 1000, /* (0x7d) */
2834 1008, /* (0x7e) */
2835 1016, /* (0x7f) */
2836};
2837
2838/* Exported structure definition. */
2839MWCFONT font_X5x8 = {
2840 "X5x8",
2841 5,
2842 8,
2843 7,
2844 0,
2845 128,
2846 X5x8_bits,
2847 X5x8_offset,
2848 0, /* fixed width*/
2849 0,
2850 sizeof(X5x8_bits)/sizeof(MWIMAGEBITS),
2851};
2852#endif /* HAVE_LCD_BITMAP */
2853
diff --git a/firmware/drivers/lcd.c b/firmware/drivers/lcd.c
index 8abc638175..2293191139 100644
--- a/firmware/drivers/lcd.c
+++ b/firmware/drivers/lcd.c
@@ -547,7 +547,6 @@ void lcd_set_contrast(int val)
547 */ 547 */
548unsigned char lcd_framebuffer[LCD_WIDTH][LCD_HEIGHT/8]; 548unsigned char lcd_framebuffer[LCD_WIDTH][LCD_HEIGHT/8];
549 549
550static int font=0;
551static int xmargin=0; 550static int xmargin=0;
552static int ymargin=0; 551static int ymargin=0;
553 552
@@ -661,11 +660,6 @@ void lcd_clear_display (void)
661#endif 660#endif
662} 661}
663 662
664void lcd_setfont(int newfont)
665{
666 font = newfont;
667}
668
669void lcd_setmargins(int x, int y) 663void lcd_setmargins(int x, int y)
670{ 664{
671 xmargin = x; 665 xmargin = x;
@@ -682,10 +676,11 @@ int lcd_getymargin(void)
682 return ymargin; 676 return ymargin;
683} 677}
684 678
679static int curfont = FONT_SYSFIXED;
680
685/* 681/*
686 * Put a string at specified character position 682 * Put a string at specified character position
687 */ 683 */
688//FIXME require font parameter
689void lcd_puts(int x, int y, unsigned char *str) 684void lcd_puts(int x, int y, unsigned char *str)
690{ 685{
691 int xpos,ypos,w,h; 686 int xpos,ypos,w,h;
@@ -707,10 +702,10 @@ void lcd_puts(int x, int y, unsigned char *str)
707 if(!str || !str[0]) 702 if(!str || !str[0])
708 return; 703 return;
709 704
710 lcd_getstringsize(str, font, &w, &h); 705 lcd_getstringsize(str, curfont, &w, &h);
711 xpos = xmargin + x*w / strlen(str); //FIXME why strlen? 706 xpos = xmargin + x*w / strlen(str);
712 ypos = ymargin + y*h; 707 ypos = ymargin + y*h;
713 lcd_putsxy( xpos, ypos, str, font); 708 lcd_putsxy( xpos, ypos, str, curfont);
714 lcd_clearrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h); 709 lcd_clearrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h);
715#if defined(SIMULATOR) && defined(HAVE_LCD_CHARCELLS) 710#if defined(SIMULATOR) && defined(HAVE_LCD_CHARCELLS)
716 /* this function is being used when simulating a charcell LCD and 711 /* this function is being used when simulating a charcell LCD and
@@ -719,6 +714,80 @@ void lcd_puts(int x, int y, unsigned char *str)
719#endif 714#endif
720} 715}
721 716
717/* set current font*/
718void lcd_setfont(int newfont)
719{
720 curfont = newfont;
721}
722
723/*
724 * Return width and height of a given font.
725 */
726void lcd_getfontsize(int font, int *width, int *height)
727{
728 struct font* pf = font_get(font);
729
730 *width = pf->maxwidth;
731 *height = pf->height;
732}
733
734
735/*
736 * Return width and height of a given font.
737 */
738int lcd_getstringsize(unsigned char *str, int font, int *w, int *h)
739{
740 struct font* pf = font_get(font);
741 int ch;
742 int width = 0;
743
744 while((ch = *str++)) {
745 /* check input range*/
746 if (ch < pf->firstchar || ch >= pf->firstchar+pf->size)
747 ch = pf->defaultchar;
748 ch -= pf->firstchar;
749
750 /* get proportional width and glyph bits*/
751 width += pf->width? pf->width[ch]: pf->maxwidth;
752 }
753 *w = width;
754 *h = pf->height;
755
756 return width;
757}
758
759/*
760 * Put a string at specified bit position
761 */
762void lcd_putsxy(int x, int y, unsigned char *str, int font)
763{
764 int ch;
765 struct font* pf = font_get(font);
766
767 while (((ch = *str++) != '\0')) {
768 bitmap_t *bits;
769 int width;
770
771 /* check input range*/
772 if (ch < pf->firstchar || ch >= pf->firstchar+pf->size)
773 ch = pf->defaultchar;
774 ch -= pf->firstchar;
775
776 /* get proportional width and glyph bits*/
777 width = pf->width ? pf->width[ch] : pf->maxwidth;
778 if (x + width > LCD_WIDTH)
779 break;
780
781 /* no partial-height drawing for now...*/
782 if (y + pf->height > LCD_HEIGHT)
783 break;
784 bits = pf->bits + (pf->offset ? pf->offset[ch] : (pf->height * ch));
785
786 lcd_bitmap((unsigned char *)bits, x, y, width, pf->height, true);
787 x += width;
788 }
789}
790
722/* 791/*
723 * Display a bitmap at (x, y), size (nx, ny) 792 * Display a bitmap at (x, y), size (nx, ny)
724 * clear is true to clear destination area first 793 * clear is true to clear destination area first
@@ -1038,14 +1107,14 @@ void lcd_puts_scroll(int x, int y, unsigned char* string )
1038 unsigned char ch[2]; 1107 unsigned char ch[2];
1039 int w, h; 1108 int w, h;
1040 int width, height; 1109 int width, height;
1041 lcd_getfontsize(font, &width, &height); 1110 lcd_getfontsize(curfont, &width, &height);
1042 1111
1043 ch[1] = 0; /* zero terminate */ 1112 ch[1] = 0; /* zero terminate */
1044 ch[0] = string[0]; 1113 ch[0] = string[0];
1045 width = 0; 1114 width = 0;
1046 s->space = 0; 1115 s->space = 0;
1047 while ( ch[0] && 1116 while ( ch[0] &&
1048 (width + lcd_getstringsize(ch, 0, &w, &h) < 1117 (width + lcd_getstringsize(ch, curfont, &w, &h) <
1049 (LCD_WIDTH - x*8))) { 1118 (LCD_WIDTH - x*8))) {
1050 width += w; 1119 width += w;
1051 s->space++; 1120 s->space++;
@@ -1058,7 +1127,7 @@ void lcd_puts_scroll(int x, int y, unsigned char* string )
1058 1127
1059#ifdef HAVE_LCD_BITMAP 1128#ifdef HAVE_LCD_BITMAP
1060 s->space += 2; 1129 s->space += 2;
1061 lcd_getstringsize(string,0,&w,&h); 1130 lcd_getstringsize(string,curfont,&w,&h);
1062 if ( w > LCD_WIDTH - xmargin ) { 1131 if ( w > LCD_WIDTH - xmargin ) {
1063#else 1132#else
1064 if ( s->textlen > s->space ) { 1133 if ( s->textlen > s->space ) {
diff --git a/firmware/drivers/lcd.h b/firmware/drivers/lcd.h
index 8c89d4c057..388f31c1cf 100644
--- a/firmware/drivers/lcd.h
+++ b/firmware/drivers/lcd.h
@@ -99,9 +99,6 @@ extern void lcd_double_height (bool on);
99 */ 99 */
100extern unsigned char lcd_framebuffer[LCD_WIDTH][LCD_HEIGHT/8]; 100extern unsigned char lcd_framebuffer[LCD_WIDTH][LCD_HEIGHT/8];
101 101
102extern void lcd_putsxy(int x, int y, unsigned char *string, int font);
103extern void lcd_setfont(int font);
104extern void lcd_getfontsize(int font, int *width, int *height);
105extern void lcd_setmargins(int xmargin, int ymargin); 102extern void lcd_setmargins(int xmargin, int ymargin);
106extern int lcd_getxmargin(void); 103extern int lcd_getxmargin(void);
107extern int lcd_getymargin(void); 104extern int lcd_getymargin(void);
@@ -118,6 +115,10 @@ extern void lcd_clearpixel(int x, int y);
118extern void lcd_invertpixel(int x, int y); 115extern void lcd_invertpixel(int x, int y);
119extern void lcd_roll(int pixels); 116extern void lcd_roll(int pixels);
120 117
118extern void lcd_setfont(int font);
119extern void lcd_getfontsize(int font, int *width, int *height);
120extern void lcd_putsxy(int x, int y, unsigned char *string, int font);
121
121#endif /* CHARCELLS / BITMAP */ 122#endif /* CHARCELLS / BITMAP */
122 123
123extern int lcd_getstringsize(unsigned char *str, int font, int *w, int *h); 124extern int lcd_getstringsize(unsigned char *str, int font, int *w, int *h);
diff --git a/firmware/font.c b/firmware/font.c
index e9c70cd64e..72c7085b7a 100644
--- a/firmware/font.c
+++ b/firmware/font.c
@@ -30,165 +30,257 @@
30#include <string.h> 30#include <string.h>
31#include "lcd.h" 31#include "lcd.h"
32#include "font.h" 32#include "font.h"
33#include "file.h"
33#include "debug.h" 34#include "debug.h"
34#include "panic.h" 35#include "panic.h"
35 36
36/* available compiled-in fonts*/ 37#ifndef O_BINARY
37extern MWCFONT font_X5x8; 38#define O_BINARY 0
38/*extern MWCFONT font_X6x9; */ 39#endif
39/*extern MWCFONT font_courB08; */ 40
40/*extern MWCFONT font_timR08; */ 41/* compiled-in font */
42extern struct font sysfont;
41 43
42/* structure filled in by rbf_load_font*/ 44/* structure filled in by font_load */
43static MWCFONT font_UI; 45static struct font font_ui;
44 46
45/* system font table, in order of FONT_xxx definition*/ 47/* system font table, in order of FONT_xxx definition */
46struct corefont sysfonts[MAXFONTS] = { 48static struct font* sysfonts[MAXFONTS] = { &sysfont, &font_ui };
47 { &font_X5x8, NULL }, /* compiled-in FONT_SYSFIXED*/
48 { &font_UI, "/system.fnt" }, /* loaded FONT_UI*/
49 { NULL, NULL }, /* no FONT_MP3*/
50};
51 49
52static void rotate_font_bits(PMWCFONT pf); 50/* static buffer allocation structures */
53static void rotleft(unsigned char *dst, MWIMAGEBITS *src, unsigned int width, 51static unsigned char mbuf[MAX_FONT_SIZE];
54 unsigned int height); 52static unsigned char *freeptr = mbuf;
53static unsigned char *fileptr;
54static unsigned char *eofptr;
55 55
56void 56static void rotate_font_bits(struct font* pf);
57font_init(void) 57static void rotleft(unsigned char *dst,
58 bitmap_t *src,
59 unsigned int width,
60 unsigned int height);
61
62void font_init(void)
58{ 63{
59 struct corefont *cfp; 64 rotate_font_bits(&sysfont);
60 65 memset(&font_ui, 0, sizeof(struct font));
61 for (cfp=sysfonts; cfp < &sysfonts[MAXFONTS]; ++cfp) { 66}
62 if (cfp->pf && cfp->diskname) {
63 cfp->pf = rbf_load_font(cfp->diskname, cfp->pf);
64#if defined(DEBUG) || defined(SIMULATOR)
65 if (!cfp->pf)
66 DEBUGF("Font load failed: %s\n", cfp->diskname);
67#endif
68 }
69 67
70 /* one-time rotate font bits to rockbox format*/ 68static int readshort(unsigned short *sp)
71 if (cfp->pf && cfp->pf->height) 69{
72 rotate_font_bits(cfp->pf); 70 unsigned short s;
73 } 71
72 s = *fileptr++ & 0xff;
73 *sp = (*fileptr++ << 8) | s;
74 return (fileptr <= eofptr);
74} 75}
75 76
76/* 77static int readlong(unsigned long *lp)
77 * Return a pointer to an incore font structure.
78 * If the requested font isn't loaded/compiled-in,
79 * decrement the font number and try again.
80 */
81PMWCFONT
82getfont(int font)
83{ 78{
84 PMWCFONT pf; 79 unsigned long l;
85 80
86 if (font >= MAXFONTS) 81 l = *fileptr++ & 0xff;
87 font = 0; 82 l |= *fileptr++ << 8;
88 while (1) { 83 l |= *fileptr++ << 16;
89 pf = sysfonts[font].pf; 84 *lp = (*fileptr++ << 24) | l;
90 if (pf && pf->height) 85 return (fileptr <= eofptr);
91 return pf;
92 if (--font < 0)
93 panicf("No font!");
94 }
95} 86}
96 87
97/* 88/* read count bytes*/
98 * Return width and height of a given font. 89static int readstr(char *buf, int count)
99 */
100void lcd_getfontsize(int font, int *width, int *height)
101{ 90{
102 PMWCFONT pf = getfont(font); 91 int n = count;
103 92
104 *width = pf->maxwidth; 93 while (--n >= 0)
105 *height = pf->height; 94 *buf++ = *fileptr++;
95 return (fileptr <= eofptr)? count: 0;
106} 96}
107 97
108/* 98/* read totlen bytes, return NUL terminated string*/
109 * Return width and height of a given font. 99/* may write 1 past buf[totlen]; removes blank pad*/
110 */ 100static int readstrpad(char *buf, int totlen)
111//FIXME rename to font_gettextsize, add baseline
112int
113lcd_getstringsize(unsigned char *str, int font, int *w, int *h)
114{ 101{
115 PMWCFONT pf = getfont(font); 102 char *p = buf;
116 int ch; 103 int n = totlen;
117 int width = 0; 104
118 105 while (--n >= 0)
119 while((ch = *str++)) { 106 *p++ = *fileptr++;
120 /* check input range*/ 107 if (fileptr > eofptr)
121 if (ch < pf->firstchar || ch >= pf->firstchar+pf->size) 108 return 0;
122 ch = pf->defaultchar; 109
123 ch -= pf->firstchar; 110 p = &buf[totlen];
124 111 *p-- = 0;
125 /* get proportional width and glyph bits*/ 112 while (*p == ' ' && p >= buf)
126 width += pf->width? pf->width[ch]: pf->maxwidth; 113 *p-- = '\0';
114 return totlen;
115}
116
117/* read and load font into incore font structure*/
118struct font* font_load(char *path)
119{
120 int fd, filesize;
121 unsigned short maxwidth, height, ascent, pad;
122 unsigned long firstchar, defaultchar, size;
123 unsigned long i, nbits, noffset, nwidth;
124 char version[4+1];
125 char copyright[256+1];
126 struct font* pf = &font_ui;
127
128 memset(pf, 0, sizeof(struct font));
129
130 /* open and read entire font file*/
131 fd = open(path, O_RDONLY|O_BINARY);
132 if (fd < 0) {
133 DEBUGF("Can't open font: %s\n", path);
134 return NULL;
135 }
136
137 /* currently, font loading replaces earlier font allocation*/
138 freeptr = (unsigned char *)(((int)mbuf + 3) & ~3);
139
140 fileptr = freeptr;
141 filesize = read(fd, fileptr, MAX_FONT_SIZE);
142 eofptr = fileptr + filesize;
143
144 /* no need for multiple font loads currently*/
145 /*freeptr += filesize;*/
146 /*freeptr = (unsigned char *)(freeptr + 3) & ~3;*/ /* pad freeptr*/
147
148 close(fd);
149 if (filesize == MAX_FONT_SIZE) {
150 DEBUGF("Font %s too large: %d\n", path, filesize);
151 return NULL;
127 } 152 }
128 *w = width;
129 *h = pf->height;
130 153
131 return width; 154 /* read magic and version #*/
155 memset(version, 0, sizeof(version));
156 if (readstr(version, 4) != 4)
157 return NULL;
158 if (strcmp(version, VERSION) != 0)
159 return NULL;
160
161 /* internal font name*/
162 pf->name = fileptr;
163 if (readstrpad(pf->name, 64) != 64)
164 return NULL;
165
166 /* copyright, not currently stored*/
167 if (readstrpad(copyright, 256) != 256)
168 return NULL;
169
170 /* font info*/
171 if (!readshort(&maxwidth))
172 return NULL;
173 pf->maxwidth = maxwidth;
174 if (!readshort(&height))
175 return NULL;
176 pf->height = height;
177 if (!readshort(&ascent))
178 return NULL;
179 pf->ascent = ascent;
180 if (!readshort(&pad))
181 return NULL;
182 if (!readlong(&firstchar))
183 return NULL;
184 pf->firstchar = firstchar;
185 if (!readlong(&defaultchar))
186 return NULL;
187 pf->defaultchar = defaultchar;
188 if (!readlong(&size))
189 return NULL;
190 pf->size = size;
191
192 /* get variable font data sizes*/
193 /* # words of bitmap_t*/
194 if (!readlong(&nbits))
195 return NULL;
196 pf->bits_size = nbits;
197
198 /* # longs of offset*/
199 if (!readlong(&noffset))
200 return NULL;
201
202 /* # bytes of width*/
203 if (!readlong(&nwidth))
204 return NULL;
205
206 /* variable font data*/
207 pf->bits = (bitmap_t *)fileptr;
208 for (i=0; i<nbits; ++i)
209 if (!readshort(&pf->bits[i]))
210 return NULL;
211 /* pad to longword boundary*/
212 fileptr = (unsigned char *)(((int)fileptr + 3) & ~3);
213
214 if (noffset) {
215 pf->offset = (unsigned long *)fileptr;
216 for (i=0; i<noffset; ++i)
217 if (!readlong(&pf->offset[i]))
218 return NULL;
219 }
220 else
221 pf->offset = NULL;
222
223 if (nwidth) {
224 pf->width = (unsigned char *)fileptr;
225 fileptr += nwidth*sizeof(unsigned char);
226 }
227 else
228 pf->width = NULL;
229
230 if (fileptr > eofptr)
231 return NULL;
232
233 /* one-time rotate font bits to rockbox format*/
234 rotate_font_bits(pf);
235
236 return pf; /* success!*/
132} 237}
133 238
134/* 239/*
135 * Put a string at specified bit position 240 * Return a pointer to an incore font structure.
241 * If the requested font isn't loaded/compiled-in,
242 * decrement the font number and try again.
136 */ 243 */
137//FIXME rename font_putsxy? 244struct font* font_get(int font)
138void
139lcd_putsxy(int x, int y, unsigned char *str, int font)
140{ 245{
141 int ch; 246 struct font* pf;
142 PMWCFONT pf = getfont(font); 247
143 248 if (font >= MAXFONTS)
144 while (((ch = *str++) != '\0')) { 249 font = 0;
145 MWIMAGEBITS *bits; 250
146 int width; 251 while (1) {
147 252 pf = sysfonts[font];
148 /* check input range*/ 253 if (pf && pf->height)
149 if (ch < pf->firstchar || ch >= pf->firstchar+pf->size) 254 return pf;
150 ch = pf->defaultchar; 255 if (--font < 0)
151 ch -= pf->firstchar; 256 panicf("No font!");
152
153 /* get proportional width and glyph bits*/
154 width = pf->width? pf->width[ch]: pf->maxwidth;
155 if (x + width > LCD_WIDTH)
156 break;
157
158 /* no partial-height drawing for now...*/
159 if (y + pf->height > LCD_HEIGHT)
160 break;
161 bits = pf->bits + (pf->offset? pf->offset[ch]: (pf->height * ch));
162
163 lcd_bitmap((unsigned char *)bits, x, y, width, pf->height, true);
164 x += width;
165 } 257 }
166} 258}
167 259
168/* convert font bitmap data inplace to rockbox format*/ 260/* convert font bitmap data inplace to rockbox format*/
169static void 261static void rotate_font_bits(struct font* pf)
170rotate_font_bits(PMWCFONT pf)
171{ 262{
172 int i; 263 int i;
173 int defaultchar = pf->defaultchar - pf->firstchar; 264 unsigned long defaultchar = pf->defaultchar - pf->firstchar;
174 int did_defaultchar = 0; 265 bool did_defaultchar = false;
175 unsigned char buf[256]; 266 unsigned char buf[256];
176 267
177 for (i=0; i<pf->size; ++i) { 268 for (i=0; i<pf->size; ++i) {
178 MWIMAGEBITS *bits = pf->bits + 269 bitmap_t *bits = pf->bits +
179 (pf->offset? pf->offset[i]: (pf->height * i)); 270 (pf->offset ? pf->offset[i] : (pf->height * i));
180 int width = pf->width? pf->width[i]: pf->maxwidth; 271 int width = pf->width? pf->width[i]: pf->maxwidth;
181 int src_bytes = MWIMAGE_BYTES(width) * pf->height; 272 int src_bytes = BITMAP_BYTES(width) * pf->height;
182 273
183 /* 274 /*
184 * Due to the way the offset map works, 275 * Due to the way the offset map works,
185 * non-mapped characters are mapped to the default 276 * non-mapped characters are mapped to the default
186 * character, and shouldn't be rotated twice. 277 * character, and shouldn't be rotated twice.
187 */ 278 */
188 if (i == defaultchar) { 279
280 if (pf->offset && pf->offset[i] == defaultchar) {
189 if (did_defaultchar) 281 if (did_defaultchar)
190 continue; 282 continue;
191 did_defaultchar = 1; 283 did_defaultchar = true;
192 } 284 }
193 285
194 /* rotate left for lcd_bitmap function input*/ 286 /* rotate left for lcd_bitmap function input*/
@@ -200,16 +292,15 @@ rotate_font_bits(PMWCFONT pf)
200} 292}
201 293
202/* 294/*
203 * Take an MWIMAGEBITS bitmap and convert to Rockbox format. 295 * Take an bitmap_t bitmap and convert to Rockbox format.
204 * Used for converting font glyphs for the time being. 296 * Used for converting font glyphs for the time being.
205 * Can use for standard X11 and Win32 images as well. 297 * Can use for standard X11 and Win32 images as well.
206 * 298 *
207 * Doing it this way keeps fonts in standard formats, 299 * Doing it this way keeps fonts in standard formats,
208 * as well as keeping Rockbox hw bitmap format. 300 * as well as keeping Rockbox hw bitmap format.
209 */ 301 */
210static void 302static void rotleft(unsigned char *dst, bitmap_t *src, unsigned int width,
211rotleft(unsigned char *dst, MWIMAGEBITS *src, unsigned int width, 303 unsigned int height)
212 unsigned int height)
213{ 304{
214 unsigned int i,j; 305 unsigned int i,j;
215 unsigned int dst_col = 0; /* destination column*/ 306 unsigned int dst_col = 0; /* destination column*/
@@ -221,17 +312,17 @@ rotleft(unsigned char *dst, MWIMAGEBITS *src, unsigned int width,
221 dst_linelen = (height-1)/8+1; 312 dst_linelen = (height-1)/8+1;
222 313
223 /* calc words of input image*/ 314 /* calc words of input image*/
224 src_words = MWIMAGE_WORDS(width) * height; 315 src_words = BITMAP_WORDS(width) * height;
225 316
226 /* clear background*/ 317 /* clear background*/
227 memset(dst, 0, dst_linelen*width); 318 memset(dst, 0, dst_linelen*width);
228 319
229 for (i=0; i < src_words; i++) { 320 for (i=0; i < src_words; i++) {
230 MWIMAGEBITS srcmap; /* current src input bit*/ 321 bitmap_t srcmap; /* current src input bit*/
231 MWIMAGEBITS dstmap; /* current dst output bit*/ 322 bitmap_t dstmap; /* current dst output bit*/
232 323
233 /* calc src input bit*/ 324 /* calc src input bit*/
234 srcmap = 1 << (sizeof(MWIMAGEBITS)*8-1); 325 srcmap = 1 << (sizeof(bitmap_t)*8-1);
235 326
236 /* calc dst output bit*/ 327 /* calc dst output bit*/
237 if (i>0 && (i%8==0)) { 328 if (i>0 && (i%8==0)) {
@@ -244,9 +335,9 @@ rotleft(unsigned char *dst, MWIMAGEBITS *src, unsigned int width,
244 for(j=0; j < width; j++) { 335 for(j=0; j < width; j++) {
245 336
246 /* calc input bitmask*/ 337 /* calc input bitmask*/
247 MWIMAGEBITS bit = srcmap >> j; 338 bitmap_t bit = srcmap >> j;
248 if (bit==0) { 339 if (bit==0) {
249 srcmap = 1 << (sizeof(MWIMAGEBITS)*8-1); 340 srcmap = 1 << (sizeof(bitmap_t)*8-1);
250 bit = srcmap >> (j % 16); 341 bit = srcmap >> (j % 16);
251 } 342 }
252 343
diff --git a/firmware/font.h b/firmware/font.h
index 645848ee18..44b975bb78 100644
--- a/firmware/font.h
+++ b/firmware/font.h
@@ -38,13 +38,14 @@
38 * must be available at system startup. 38 * must be available at system startup.
39 * Fonts are specified in firmware/font.c. 39 * Fonts are specified in firmware/font.c.
40 */ 40 */
41#define FONT_SYSFIXED 0 /* system fixed pitch font*/ 41enum {
42#define FONT_UI 1 /* system porportional font*/ 42 FONT_SYSFIXED, /* system fixed pitch font*/
43#define FONT_MP3 2 /* font used for mp3 info*/ 43 FONT_UI, /* system porportional font*/
44#define MAXFONTS 3 /* max # fonts*/ 44 MAXFONTS
45};
45 46
46/* 47/*
47 * .fnt (.rbf) loadable font file format definition 48 * .fnt loadable font file format definition
48 * 49 *
49 * format len description 50 * format len description
50 * ------------------------- ---- ------------------------------ 51 * ------------------------- ---- ------------------------------
@@ -70,54 +71,42 @@
70/* loadable font magic and version #*/ 71/* loadable font magic and version #*/
71#define VERSION "RB11" 72#define VERSION "RB11"
72 73
73/* MWIMAGEBITS helper macros*/ 74typedef unsigned short bitmap_t; /* bitmap image unit size*/
74#define MWIMAGE_WORDS(x) (((x)+15)/16) /* image size in words*/
75#define MWIMAGE_BYTES(x) (MWIMAGE_WORDS(x)*sizeof(MWIMAGEBITS))
76#define MWIMAGE_BITSPERIMAGE (sizeof(MWIMAGEBITS) * 8)
77#define MWIMAGE_BITVALUE(n) ((MWIMAGEBITS) (((MWIMAGEBITS) 1) << (n)))
78#define MWIMAGE_FIRSTBIT (MWIMAGE_BITVALUE(MWIMAGE_BITSPERIMAGE - 1))
79#define MWIMAGE_TESTBIT(m) ((m) & MWIMAGE_FIRSTBIT)
80#define MWIMAGE_SHIFTBIT(m) ((MWIMAGEBITS) ((m) << 1))
81 75
82typedef unsigned short MWIMAGEBITS; /* bitmap image unit size*/ 76/* bitmap_t helper macros*/
77#define BITMAP_WORDS(x) (((x)+15)/16) /* image size in words*/
78#define BITMAP_BYTES(x) (BITMAP_WORDS(x)*sizeof(bitmap_t))
79#define BITMAP_BITSPERIMAGE (sizeof(bitmap_t) * 8)
80#define BITMAP_BITVALUE(n) ((bitmap_t) (((bitmap_t) 1) << (n)))
81#define BITMAP_FIRSTBIT (BITMAP_BITVALUE(BITMAP_BITSPERIMAGE - 1))
82#define BITMAP_TESTBIT(m) ((m) & BITMAP_FIRSTBIT)
83#define BITMAP_SHIFTBIT(m) ((bitmap_t) ((m) << 1))
83 84
84/* builtin C-based proportional/fixed font structure */ 85/* builtin C-based proportional/fixed font structure */
85/* based on The Microwindows Project http://microwindows.org */ 86/* based on The Microwindows Project http://microwindows.org */
86typedef struct { 87struct font {
87 char * name; /* font name*/ 88 char * name; /* font name*/
88 int maxwidth; /* max width in pixels*/ 89 int maxwidth; /* max width in pixels*/
89 unsigned int height; /* height in pixels*/ 90 unsigned int height; /* height in pixels*/
90 int ascent; /* ascent (baseline) height*/ 91 int ascent; /* ascent (baseline) height*/
91 int firstchar; /* first character in bitmap*/ 92 int firstchar; /* first character in bitmap*/
92 int size; /* font size in glyphs*/ 93 int size; /* font size in glyphs*/
93 MWIMAGEBITS *bits; /* 16-bit right-padded bitmap data*/ 94 bitmap_t *bits; /* 16-bit right-padded bitmap data*/
94 unsigned long *offset; /* offsets into bitmap data*/ 95 unsigned long *offset; /* offsets into bitmap data*/
95 unsigned char *width; /* character widths or NULL if fixed*/ 96 unsigned char *width; /* character widths or NULL if fixed*/
96 int defaultchar; /* default char (not glyph index)*/ 97 int defaultchar; /* default char (not glyph index)*/
97 long bits_size; /* # words of MWIMAGEBITS bits*/ 98 long bits_size; /* # words of bitmap_t bits*/
98#if 0
99 char * facename; /* facename of font*/
100 char * copyright; /* copyright info for loadable fonts*/
101#endif
102} MWCFONT, *PMWCFONT;
103
104/* structure for rockbox startup font selection*/
105struct corefont {
106 PMWCFONT pf; /* compiled-in or loaded font*/
107 char *diskname; /* diskname if not compiled-in*/
108}; 99};
109 100
110extern struct corefont sysfonts[MAXFONTS];
111
112/* font routines*/ 101/* font routines*/
113PMWCFONT getfont(int font);
114PMWCFONT rbf_load_font(char *path, PMWCFONT pf);
115
116void font_init(void); 102void font_init(void);
103struct font* font_load(char *path);
104struct font* font_get(int font);
117 105
118#else /* HAVE_LCD_BITMAP */ 106#else /* HAVE_LCD_BITMAP */
119 107
120#define font_init() 108#define font_init()
109#define font_load(x)
121 110
122#endif 111#endif
123 112
diff --git a/firmware/fonts/clR6x8.bdf b/firmware/fonts/clR6x8.bdf
new file mode 100644
index 0000000000..7216efa806
--- /dev/null
+++ b/firmware/fonts/clR6x8.bdf
@@ -0,0 +1,2895 @@
1STARTFONT 2.1
2COMMENT $XConsortium: clR6x8.bdf,v 1.2 94/04/11 12:08:36 gildea Exp $
3COMMENT
4COMMENT Copyright 1989 Dale Schumacher, dal@syntel.mn.org
5COMMENT 399 Beacon Ave.
6COMMENT St. Paul, MN 55104-3527
7COMMENT
8COMMENT Permission to use, copy, modify, and distribute this software and
9COMMENT its documentation for any purpose and without fee is hereby
10COMMENT granted, provided that the above copyright notice appear in all
11COMMENT copies and that both that copyright notice and this permission
12COMMENT notice appear in supporting documentation, and that the name of
13COMMENT Dale Schumacher not be used in advertising or publicity pertaining to
14COMMENT distribution of the software without specific, written prior
15COMMENT permission. Dale Schumacher makes no representations about the
16COMMENT suitability of this software for any purpose. It is provided "as
17COMMENT is" without express or implied warranty.
18COMMENT
19FONT -Schumacher-Clean-Medium-R-Normal--8-80-75-75-C-60-ISO646.1991-IRV
20SIZE 8 75 75
21FONTBOUNDINGBOX 6 8 0 -1
22STARTPROPERTIES 20
23FONTNAME_REGISTRY ""
24FOUNDRY "Schumacher"
25FAMILY_NAME "Clean"
26WEIGHT_NAME "Medium"
27SLANT "R"
28SETWIDTH_NAME "Normal"
29ADD_STYLE_NAME ""
30PIXEL_SIZE 8
31POINT_SIZE 80
32RESOLUTION_X 75
33RESOLUTION_Y 75
34SPACING "C"
35AVERAGE_WIDTH 60
36CHARSET_REGISTRY "ISO646.1991"
37CHARSET_ENCODING "IRV"
38FONT_ASCENT 7
39FONT_DESCENT 1
40DEFAULT_CHAR 0
41COPYRIGHT "Copyright 1989 Dale Schumacher."
42_XMBDFED_INFO "Edited with xmbdfed 4.5."
43ENDPROPERTIES
44CHARS 190
45STARTCHAR space
46ENCODING 32
47SWIDTH 720 0
48DWIDTH 6 0
49BBX 6 8 0 -1
50BITMAP
5100
5200
5300
5400
5500
5600
5700
5800
59ENDCHAR
60STARTCHAR exclamation mark
61ENCODING 33
62SWIDTH 720 0
63DWIDTH 6 0
64BBX 6 8 0 -1
65BITMAP
6610
6710
6810
6910
7010
7100
7210
7300
74ENDCHAR
75STARTCHAR double quote
76ENCODING 34
77SWIDTH 720 0
78DWIDTH 6 0
79BBX 6 8 0 -1
80BITMAP
8128
8228
8300
8400
8500
8600
8700
8800
89ENDCHAR
90STARTCHAR hash
91ENCODING 35
92SWIDTH 720 0
93DWIDTH 6 0
94BBX 6 8 0 -1
95BITMAP
9600
9728
987C
9928
1007C
10128
10200
10300
104ENDCHAR
105STARTCHAR dollar sign
106ENCODING 36
107SWIDTH 720 0
108DWIDTH 6 0
109BBX 6 8 0 -1
110BITMAP
11110
1123C
11350
11438
11514
11678
11710
11800
119ENDCHAR
120STARTCHAR percent sign
121ENCODING 37
122SWIDTH 720 0
123DWIDTH 6 0
124BBX 6 8 0 -1
125BITMAP
12660
12764
12808
12910
13020
1314C
1320C
13300
134ENDCHAR
135STARTCHAR ampersand
136ENCODING 38
137SWIDTH 720 0
138DWIDTH 6 0
139BBX 6 8 0 -1
140BITMAP
14130
14248
14348
14430
14554
14648
14734
14800
149ENDCHAR
150STARTCHAR apostrophe
151ENCODING 39
152SWIDTH 720 0
153DWIDTH 6 0
154BBX 6 8 0 -1
155BITMAP
15610
15720
15800
15900
16000
16100
16200
16300
164ENDCHAR
165STARTCHAR open bracket
166ENCODING 40
167SWIDTH 720 0
168DWIDTH 6 0
169BBX 6 8 0 -1
170BITMAP
17104
17208
17310
17410
17510
17608
17704
17800
179ENDCHAR
180STARTCHAR close bracket
181ENCODING 41
182SWIDTH 720 0
183DWIDTH 6 0
184BBX 6 8 0 -1
185BITMAP
18640
18720
18810
18910
19010
19120
19240
19300
194ENDCHAR
195STARTCHAR asterisk
196ENCODING 42
197SWIDTH 720 0
198DWIDTH 6 0
199BBX 6 8 0 -1
200BITMAP
20100
20210
20354
20438
20554
20610
20700
20800
209ENDCHAR
210STARTCHAR plus sign
211ENCODING 43
212SWIDTH 720 0
213DWIDTH 6 0
214BBX 6 8 0 -1
215BITMAP
21600
21710
21810
2197C
22010
22110
22200
22300
224ENDCHAR
225STARTCHAR comma
226ENCODING 44
227SWIDTH 720 0
228DWIDTH 6 0
229BBX 6 8 0 -1
230BITMAP
23100
23200
23300
23400
23500
23610
23710
23820
239ENDCHAR
240STARTCHAR minus sign
241ENCODING 45
242SWIDTH 720 0
243DWIDTH 6 0
244BBX 6 8 0 -1
245BITMAP
24600
24700
24800
2497C
25000
25100
25200
25300
254ENDCHAR
255STARTCHAR full stop
256ENCODING 46
257SWIDTH 720 0
258DWIDTH 6 0
259BBX 6 8 0 -1
260BITMAP
26100
26200
26300
26400
26500
26610
26710
26800
269ENDCHAR
270STARTCHAR slash
271ENCODING 47
272SWIDTH 720 0
273DWIDTH 6 0
274BBX 6 8 0 -1
275BITMAP
27604
27704
27808
27908
28010
28110
28220
28320
284ENDCHAR
285STARTCHAR digit zero
286ENCODING 48
287SWIDTH 720 0
288DWIDTH 6 0
289BBX 6 8 0 -1
290BITMAP
29138
29244
2934C
29454
29564
29644
29738
29800
299ENDCHAR
300STARTCHAR digit one
301ENCODING 49
302SWIDTH 720 0
303DWIDTH 6 0
304BBX 6 8 0 -1
305BITMAP
30610
30730
30810
30910
31010
31110
31210
31300
314ENDCHAR
315STARTCHAR digit two
316ENCODING 50
317SWIDTH 720 0
318DWIDTH 6 0
319BBX 6 8 0 -1
320BITMAP
32138
32244
32304
32408
32510
32620
3277C
32800
329ENDCHAR
330STARTCHAR digit three
331ENCODING 51
332SWIDTH 720 0
333DWIDTH 6 0
334BBX 6 8 0 -1
335BITMAP
33638
33744
33804
33918
34004
34144
34238
34300
344ENDCHAR
345STARTCHAR digit four
346ENCODING 52
347SWIDTH 720 0
348DWIDTH 6 0
349BBX 6 8 0 -1
350BITMAP
35108
35218
35328
35448
3557C
35608
35708
35800
359ENDCHAR
360STARTCHAR digit five
361ENCODING 53
362SWIDTH 720 0
363DWIDTH 6 0
364BBX 6 8 0 -1
365BITMAP
3667C
36740
36878
36904
37004
37144
37238
37300
374ENDCHAR
375STARTCHAR digit six
376ENCODING 54
377SWIDTH 720 0
378DWIDTH 6 0
379BBX 6 8 0 -1
380BITMAP
38118
38220
38340
38478
38544
38644
38738
38800
389ENDCHAR
390STARTCHAR digit seven
391ENCODING 55
392SWIDTH 720 0
393DWIDTH 6 0
394BBX 6 8 0 -1
395BITMAP
3967C
39744
39804
39908
40008
40110
40210
40300
404ENDCHAR
405STARTCHAR digit eight
406ENCODING 56
407SWIDTH 720 0
408DWIDTH 6 0
409BBX 6 8 0 -1
410BITMAP
41138
41244
41344
41438
41544
41644
41738
41800
419ENDCHAR
420STARTCHAR digit nine
421ENCODING 57
422SWIDTH 720 0
423DWIDTH 6 0
424BBX 6 8 0 -1
425BITMAP
42638
42744
42844
4293C
43004
43108
43230
43300
434ENDCHAR
435STARTCHAR colon
436ENCODING 58
437SWIDTH 720 0
438DWIDTH 6 0
439BBX 6 8 0 -1
440BITMAP
44100
44210
44310
44400
44500
44610
44710
44800
449ENDCHAR
450STARTCHAR semicolon
451ENCODING 59
452SWIDTH 720 0
453DWIDTH 6 0
454BBX 6 8 0 -1
455BITMAP
45600
45710
45810
45900
46000
46110
46210
46320
464ENDCHAR
465STARTCHAR less-than sign
466ENCODING 60
467SWIDTH 720 0
468DWIDTH 6 0
469BBX 6 8 0 -1
470BITMAP
47100
4720C
47330
474C0
47530
4760C
47700
47800
479ENDCHAR
480STARTCHAR equal sign
481ENCODING 61
482SWIDTH 720 0
483DWIDTH 6 0
484BBX 6 8 0 -1
485BITMAP
48600
48700
4887C
48900
4907C
49100
49200
49300
494ENDCHAR
495STARTCHAR greater-than sign
496ENCODING 62
497SWIDTH 720 0
498DWIDTH 6 0
499BBX 6 8 0 -1
500BITMAP
50100
502C0
50330
5040C
50530
506C0
50700
50800
509ENDCHAR
510STARTCHAR question mark
511ENCODING 63
512SWIDTH 720 0
513DWIDTH 6 0
514BBX 6 8 0 -1
515BITMAP
51638
51744
51804
51908
52010
52100
52210
52300
524ENDCHAR
525STARTCHAR commercial at
526ENCODING 64
527SWIDTH 720 0
528DWIDTH 6 0
529BBX 6 8 0 -1
530BITMAP
53138
53244
5335C
5345C
53558
53640
53738
53800
539ENDCHAR
540STARTCHAR A
541ENCODING 65
542SWIDTH 720 0
543DWIDTH 6 0
544BBX 6 8 0 -1
545BITMAP
54610
54728
54844
54944
5507C
55144
55244
55300
554ENDCHAR
555STARTCHAR B
556ENCODING 66
557SWIDTH 720 0
558DWIDTH 6 0
559BBX 6 8 0 -1
560BITMAP
56178
56244
56344
56478
56544
56644
56778
56800
569ENDCHAR
570STARTCHAR C
571ENCODING 67
572SWIDTH 720 0
573DWIDTH 6 0
574BBX 6 8 0 -1
575BITMAP
57638
57744
57840
57940
58040
58144
58238
58300
584ENDCHAR
585STARTCHAR D
586ENCODING 68
587SWIDTH 720 0
588DWIDTH 6 0
589BBX 6 8 0 -1
590BITMAP
59170
59248
59344
59444
59544
59648
59770
59800
599ENDCHAR
600STARTCHAR E
601ENCODING 69
602SWIDTH 720 0
603DWIDTH 6 0
604BBX 6 8 0 -1
605BITMAP
6067C
60740
60840
60978
61040
61140
6127C
61300
614ENDCHAR
615STARTCHAR F
616ENCODING 70
617SWIDTH 720 0
618DWIDTH 6 0
619BBX 6 8 0 -1
620BITMAP
6217C
62240
62340
62478
62540
62640
62740
62800
629ENDCHAR
630STARTCHAR G
631ENCODING 71
632SWIDTH 720 0
633DWIDTH 6 0
634BBX 6 8 0 -1
635BITMAP
63638
63744
63840
6394C
64044
64144
6423C
64300
644ENDCHAR
645STARTCHAR H
646ENCODING 72
647SWIDTH 720 0
648DWIDTH 6 0
649BBX 6 8 0 -1
650BITMAP
65144
65244
65344
6547C
65544
65644
65744
65800
659ENDCHAR
660STARTCHAR I
661ENCODING 73
662SWIDTH 720 0
663DWIDTH 6 0
664BBX 6 8 0 -1
665BITMAP
6667C
66710
66810
66910
67010
67110
6727C
67300
674ENDCHAR
675STARTCHAR J
676ENCODING 74
677SWIDTH 720 0
678DWIDTH 6 0
679BBX 6 8 0 -1
680BITMAP
6811C
68204
68304
68404
68544
68644
68738
68800
689ENDCHAR
690STARTCHAR K
691ENCODING 75
692SWIDTH 720 0
693DWIDTH 6 0
694BBX 6 8 0 -1
695BITMAP
69644
69748
69850
69960
70050
70148
70244
70300
704ENDCHAR
705STARTCHAR L
706ENCODING 76
707SWIDTH 720 0
708DWIDTH 6 0
709BBX 6 8 0 -1
710BITMAP
71140
71240
71340
71440
71540
71640
7177C
71800
719ENDCHAR
720STARTCHAR M
721ENCODING 77
722SWIDTH 720 0
723DWIDTH 6 0
724BBX 6 8 0 -1
725BITMAP
72644
7276C
72854
72954
73044
73144
73244
73300
734ENDCHAR
735STARTCHAR N
736ENCODING 78
737SWIDTH 720 0
738DWIDTH 6 0
739BBX 6 8 0 -1
740BITMAP
74144
74264
74364
74454
7454C
7464C
74744
74800
749ENDCHAR
750STARTCHAR O
751ENCODING 79
752SWIDTH 720 0
753DWIDTH 6 0
754BBX 6 8 0 -1
755BITMAP
75638
75744
75844
75944
76044
76144
76238
76300
764ENDCHAR
765STARTCHAR P
766ENCODING 80
767SWIDTH 720 0
768DWIDTH 6 0
769BBX 6 8 0 -1
770BITMAP
77178
77244
77344
77478
77540
77640
77740
77800
779ENDCHAR
780STARTCHAR Q
781ENCODING 81
782SWIDTH 720 0
783DWIDTH 6 0
784BBX 6 8 0 -1
785BITMAP
78638
78744
78844
78944
79044
79144
79238
7930C
794ENDCHAR
795STARTCHAR R
796ENCODING 82
797SWIDTH 720 0
798DWIDTH 6 0
799BBX 6 8 0 -1
800BITMAP
80178
80244
80344
80478
80550
80648
80744
80800
809ENDCHAR
810STARTCHAR S
811ENCODING 83
812SWIDTH 720 0
813DWIDTH 6 0
814BBX 6 8 0 -1
815BITMAP
81638
81744
81840
81938
82004
82144
82238
82300
824ENDCHAR
825STARTCHAR T
826ENCODING 84
827SWIDTH 720 0
828DWIDTH 6 0
829BBX 6 8 0 -1
830BITMAP
8317C
83210
83310
83410
83510
83610
83710
83800
839ENDCHAR
840STARTCHAR U
841ENCODING 85
842SWIDTH 720 0
843DWIDTH 6 0
844BBX 6 8 0 -1
845BITMAP
84644
84744
84844
84944
85044
85144
85238
85300
854ENDCHAR
855STARTCHAR V
856ENCODING 86
857SWIDTH 720 0
858DWIDTH 6 0
859BBX 6 8 0 -1
860BITMAP
86144
86244
86344
86428
86528
86610
86710
86800
869ENDCHAR
870STARTCHAR W
871ENCODING 87
872SWIDTH 720 0
873DWIDTH 6 0
874BBX 6 8 0 -1
875BITMAP
87644
87744
87844
87954
88054
8816C
88244
88300
884ENDCHAR
885STARTCHAR X
886ENCODING 88
887SWIDTH 720 0
888DWIDTH 6 0
889BBX 6 8 0 -1
890BITMAP
89144
89244
89328
89410
89528
89644
89744
89800
899ENDCHAR
900STARTCHAR Y
901ENCODING 89
902SWIDTH 720 0
903DWIDTH 6 0
904BBX 6 8 0 -1
905BITMAP
90644
90744
90828
90910
91010
91110
91210
91300
914ENDCHAR
915STARTCHAR Z
916ENCODING 90
917SWIDTH 720 0
918DWIDTH 6 0
919BBX 6 8 0 -1
920BITMAP
9217C
92204
92308
92410
92520
92640
9277C
92800
929ENDCHAR
930STARTCHAR left square bracket
931ENCODING 91
932SWIDTH 720 0
933DWIDTH 6 0
934BBX 6 8 0 -1
935BITMAP
9361C
93710
93810
93910
94010
94110
9421C
94300
944ENDCHAR
945STARTCHAR backslash
946ENCODING 92
947SWIDTH 720 0
948DWIDTH 6 0
949BBX 6 8 0 -1
950BITMAP
95120
95220
95310
95410
95508
95608
95704
95804
959ENDCHAR
960STARTCHAR right square bracket
961ENCODING 93
962SWIDTH 720 0
963DWIDTH 6 0
964BBX 6 8 0 -1
965BITMAP
96670
96710
96810
96910
97010
97110
97270
97300
974ENDCHAR
975STARTCHAR circumflex accent
976ENCODING 94
977SWIDTH 720 0
978DWIDTH 6 0
979BBX 6 8 0 -1
980BITMAP
98110
98228
98344
98400
98500
98600
98700
98800
989ENDCHAR
990STARTCHAR underscore
991ENCODING 95
992SWIDTH 720 0
993DWIDTH 6 0
994BBX 6 8 0 -1
995BITMAP
99600
99700
99800
99900
100000
100100
1002FC
100300
1004ENDCHAR
1005STARTCHAR grave accent
1006ENCODING 96
1007SWIDTH 720 0
1008DWIDTH 6 0
1009BBX 6 8 0 -1
1010BITMAP
101110
101208
101300
101400
101500
101600
101700
101800
1019ENDCHAR
1020STARTCHAR a
1021ENCODING 97
1022SWIDTH 720 0
1023DWIDTH 6 0
1024BBX 6 8 0 -1
1025BITMAP
102600
102700
10283C
102944
103044
10314C
103234
103300
1034ENDCHAR
1035STARTCHAR b
1036ENCODING 98
1037SWIDTH 720 0
1038DWIDTH 6 0
1039BBX 6 8 0 -1
1040BITMAP
104140
104240
104378
104444
104544
104644
104778
104800
1049ENDCHAR
1050STARTCHAR c
1051ENCODING 99
1052SWIDTH 720 0
1053DWIDTH 6 0
1054BBX 6 8 0 -1
1055BITMAP
105600
105700
10583C
105940
106040
106140
10623C
106300
1064ENDCHAR
1065STARTCHAR d
1066ENCODING 100
1067SWIDTH 720 0
1068DWIDTH 6 0
1069BBX 6 8 0 -1
1070BITMAP
107104
107204
10733C
107444
107544
107644
10773C
107800
1079ENDCHAR
1080STARTCHAR e
1081ENCODING 101
1082SWIDTH 720 0
1083DWIDTH 6 0
1084BBX 6 8 0 -1
1085BITMAP
108600
108700
108838
108944
10907C
109140
109238
109300
1094ENDCHAR
1095STARTCHAR f
1096ENCODING 102
1097SWIDTH 720 0
1098DWIDTH 6 0
1099BBX 6 8 0 -1
1100BITMAP
11011C
110220
110378
110420
110520
110620
110720
110800
1109ENDCHAR
1110STARTCHAR g
1111ENCODING 103
1112SWIDTH 720 0
1113DWIDTH 6 0
1114BBX 6 8 0 -1
1115BITMAP
111600
111700
11183C
111944
112044
11213C
112204
112338
1124ENDCHAR
1125STARTCHAR h
1126ENCODING 104
1127SWIDTH 720 0
1128DWIDTH 6 0
1129BBX 6 8 0 -1
1130BITMAP
113140
113240
113378
113444
113544
113644
113744
113800
1139ENDCHAR
1140STARTCHAR i
1141ENCODING 105
1142SWIDTH 720 0
1143DWIDTH 6 0
1144BBX 6 8 0 -1
1145BITMAP
114610
114700
114830
114910
115010
115110
115238
115300
1154ENDCHAR
1155STARTCHAR j
1156ENCODING 106
1157SWIDTH 720 0
1158DWIDTH 6 0
1159BBX 6 8 0 -1
1160BITMAP
116108
116200
116338
116408
116508
116608
116708
116870
1169ENDCHAR
1170STARTCHAR k
1171ENCODING 107
1172SWIDTH 720 0
1173DWIDTH 6 0
1174BBX 6 8 0 -1
1175BITMAP
117640
117740
117848
117950
118060
118150
118248
118300
1184ENDCHAR
1185STARTCHAR l
1186ENCODING 108
1187SWIDTH 720 0
1188DWIDTH 6 0
1189BBX 6 8 0 -1
1190BITMAP
119130
119210
119310
119410
119510
119610
119738
119800
1199ENDCHAR
1200STARTCHAR m
1201ENCODING 109
1202SWIDTH 720 0
1203DWIDTH 6 0
1204BBX 6 8 0 -1
1205BITMAP
120600
120700
120868
120954
121054
121154
121244
121300
1214ENDCHAR
1215STARTCHAR n
1216ENCODING 110
1217SWIDTH 720 0
1218DWIDTH 6 0
1219BBX 6 8 0 -1
1220BITMAP
122100
122200
122358
122464
122544
122644
122744
122800
1229ENDCHAR
1230STARTCHAR o
1231ENCODING 111
1232SWIDTH 720 0
1233DWIDTH 6 0
1234BBX 6 8 0 -1
1235BITMAP
123600
123700
123838
123944
124044
124144
124238
124300
1244ENDCHAR
1245STARTCHAR p
1246ENCODING 112
1247SWIDTH 720 0
1248DWIDTH 6 0
1249BBX 6 8 0 -1
1250BITMAP
125100
125200
125378
125444
125544
125644
125778
125840
1259ENDCHAR
1260STARTCHAR q
1261ENCODING 113
1262SWIDTH 720 0
1263DWIDTH 6 0
1264BBX 6 8 0 -1
1265BITMAP
126600
126700
12683C
126944
127044
127144
12723C
127304
1274ENDCHAR
1275STARTCHAR r
1276ENCODING 114
1277SWIDTH 720 0
1278DWIDTH 6 0
1279BBX 6 8 0 -1
1280BITMAP
128100
128200
128358
128460
128540
128640
128740
128800
1289ENDCHAR
1290STARTCHAR s
1291ENCODING 115
1292SWIDTH 720 0
1293DWIDTH 6 0
1294BBX 6 8 0 -1
1295BITMAP
129600
129700
12983C
129940
130038
130104
130278
130300
1304ENDCHAR
1305STARTCHAR t
1306ENCODING 116
1307SWIDTH 720 0
1308DWIDTH 6 0
1309BBX 6 8 0 -1
1310BITMAP
131110
131210
13137C
131410
131510
131610
13170C
131800
1319ENDCHAR
1320STARTCHAR u
1321ENCODING 117
1322SWIDTH 720 0
1323DWIDTH 6 0
1324BBX 6 8 0 -1
1325BITMAP
132600
132700
132844
132944
133044
13314C
133234
133300
1334ENDCHAR
1335STARTCHAR v
1336ENCODING 118
1337SWIDTH 720 0
1338DWIDTH 6 0
1339BBX 6 8 0 -1
1340BITMAP
134100
134200
134344
134444
134528
134628
134710
134800
1349ENDCHAR
1350STARTCHAR w
1351ENCODING 119
1352SWIDTH 720 0
1353DWIDTH 6 0
1354BBX 6 8 0 -1
1355BITMAP
135600
135700
135844
135954
136054
136154
136228
136300
1364ENDCHAR
1365STARTCHAR x
1366ENCODING 120
1367SWIDTH 720 0
1368DWIDTH 6 0
1369BBX 6 8 0 -1
1370BITMAP
137100
137200
137344
137428
137510
137628
137744
137800
1379ENDCHAR
1380STARTCHAR y
1381ENCODING 121
1382SWIDTH 720 0
1383DWIDTH 6 0
1384BBX 6 8 0 -1
1385BITMAP
138600
138700
138844
138944
139044
13913C
139204
139338
1394ENDCHAR
1395STARTCHAR z
1396ENCODING 122
1397SWIDTH 720 0
1398DWIDTH 6 0
1399BBX 6 8 0 -1
1400BITMAP
140100
140200
14037C
140408
140510
140620
14077C
140800
1409ENDCHAR
1410STARTCHAR left curly bracket
1411ENCODING 123
1412SWIDTH 720 0
1413DWIDTH 6 0
1414BBX 6 8 0 -1
1415BITMAP
141604
141708
141808
141910
142008
142108
142204
142300
1424ENDCHAR
1425STARTCHAR pipe symbol
1426ENCODING 124
1427SWIDTH 720 0
1428DWIDTH 6 0
1429BBX 6 8 0 -1
1430BITMAP
143110
143210
143310
143410
143510
143610
143710
143800
1439ENDCHAR
1440STARTCHAR right curly bracket
1441ENCODING 125
1442SWIDTH 720 0
1443DWIDTH 6 0
1444BBX 6 8 0 -1
1445BITMAP
144640
144720
144820
144910
145020
145120
145240
145300
1454ENDCHAR
1455STARTCHAR tilde
1456ENCODING 126
1457SWIDTH 720 0
1458DWIDTH 6 0
1459BBX 6 8 0 -1
1460BITMAP
146120
146254
146308
146400
146500
146600
146700
146800
1469ENDCHAR
1470STARTCHAR inverted exclamation
1471ENCODING 161
1472SWIDTH 720 0
1473DWIDTH 6 0
1474BBX 6 8 0 -1
1475BITMAP
147610
147700
147810
147910
148010
148110
148210
148300
1484ENDCHAR
1485STARTCHAR cent sign
1486ENCODING 162
1487SWIDTH 720 0
1488DWIDTH 6 0
1489BBX 6 8 0 -1
1490BITMAP
149100
149210
14933C
149450
149550
14963C
149710
149800
1499ENDCHAR
1500STARTCHAR pound sign
1501ENCODING 163
1502SWIDTH 720 0
1503DWIDTH 6 0
1504BBX 6 8 0 -1
1505BITMAP
150618
150724
150820
150978
151020
151120
15127C
151300
1514ENDCHAR
1515STARTCHAR euro sign
1516ENCODING 164
1517SWIDTH 720 0
1518DWIDTH 6 0
1519BBX 6 8 0 -1
1520BITMAP
15211C
152220
152378
152420
152578
152620
15271C
152800
1529ENDCHAR
1530STARTCHAR yen sign
1531ENCODING 165
1532SWIDTH 720 0
1533DWIDTH 6 0
1534BBX 6 8 0 -1
1535BITMAP
153644
153744
153828
15397C
154010
15417C
154210
154300
1544ENDCHAR
1545STARTCHAR broken bar
1546ENCODING 166
1547SWIDTH 720 0
1548DWIDTH 6 0
1549BBX 6 8 0 -1
1550BITMAP
155110
155210
155310
155400
155510
155610
155710
155800
1559ENDCHAR
1560STARTCHAR section sign
1561ENCODING 167
1562SWIDTH 720 0
1563DWIDTH 6 0
1564BBX 6 8 0 -1
1565BITMAP
156618
156724
156830
156948
157030
157190
157260
157300
1574ENDCHAR
1575STARTCHAR dieresis
1576ENCODING 168
1577SWIDTH 720 0
1578DWIDTH 6 0
1579BBX 6 8 0 -1
1580BITMAP
158144
158200
158300
158400
158500
158600
158700
158800
1589ENDCHAR
1590STARTCHAR copyright sign
1591ENCODING 169
1592SWIDTH 720 0
1593DWIDTH 6 0
1594BBX 6 8 0 -1
1595BITMAP
159630
159748
1598B4
1599A4
1600B4
160148
160230
160300
1604ENDCHAR
1605STARTCHAR feminine ordinal
1606ENCODING 170
1607SWIDTH 720 0
1608DWIDTH 6 0
1609BBX 6 8 0 -1
1610BITMAP
16113C
161244
161344
16144C
161534
161600
16177C
161800
1619ENDCHAR
1620STARTCHAR guillemot left
1621ENCODING 171
1622SWIDTH 720 0
1623DWIDTH 6 0
1624BBX 6 8 0 -1
1625BITMAP
162600
162700
162824
162948
163024
163100
163200
163300
1634ENDCHAR
1635STARTCHAR not sign
1636ENCODING 172
1637SWIDTH 720 0
1638DWIDTH 6 0
1639BBX 6 8 0 -1
1640BITMAP
164100
164200
164300
164478
164508
164600
164700
164800
1649ENDCHAR
1650STARTCHAR soft hyphen
1651ENCODING 173
1652SWIDTH 720 0
1653DWIDTH 6 0
1654BBX 6 8 0 -1
1655BITMAP
165600
165700
165800
165900
166000
166100
166200
166300
1664ENDCHAR
1665STARTCHAR registered trademark
1666ENCODING 174
1667SWIDTH 720 0
1668DWIDTH 6 0
1669BBX 6 8 0 -1
1670BITMAP
167130
167248
1673B4
1674B4
1675AC
167648
167730
167800
1679ENDCHAR
1680STARTCHAR macron
1681ENCODING 175
1682SWIDTH 720 0
1683DWIDTH 6 0
1684BBX 6 8 0 -1
1685BITMAP
16867C
168700
168800
168900
169000
169100
169200
169300
1694ENDCHAR
1695STARTCHAR degree sign
1696ENCODING 176
1697SWIDTH 720 0
1698DWIDTH 6 0
1699BBX 6 8 0 -1
1700BITMAP
170138
170228
170338
170400
170500
170600
170700
170800
1709ENDCHAR
1710STARTCHAR plus or minus
1711ENCODING 177
1712SWIDTH 720 0
1713DWIDTH 6 0
1714BBX 6 8 0 -1
1715BITMAP
171610
171710
17187C
171910
172010
172100
17227C
172300
1724ENDCHAR
1725STARTCHAR superscript 2
1726ENCODING 178
1727SWIDTH 720 0
1728DWIDTH 6 0
1729BBX 6 8 0 -1
1730BITMAP
173110
173228
173308
173410
173538
173600
173700
173800
1739ENDCHAR
1740STARTCHAR superscript 3
1741ENCODING 179
1742SWIDTH 720 0
1743DWIDTH 6 0
1744BBX 6 8 0 -1
1745BITMAP
174630
174708
174830
174908
175030
175100
175200
175300
1754ENDCHAR
1755STARTCHAR spacing acute
1756ENCODING 180
1757SWIDTH 720 0
1758DWIDTH 6 0
1759BBX 6 8 0 -1
1760BITMAP
176110
176220
176300
176400
176500
176600
176700
176800
1769ENDCHAR
1770STARTCHAR micro sign
1771ENCODING 181
1772SWIDTH 720 0
1773DWIDTH 6 0
1774BBX 6 8 0 -1
1775BITMAP
177600
177700
177848
177948
178048
178148
178274
178340
1784ENDCHAR
1785STARTCHAR paragraph sign
1786ENCODING 182
1787SWIDTH 720 0
1788DWIDTH 6 0
1789BBX 6 8 0 -1
1790BITMAP
17913C
179254
179354
179454
179534
179614
179714
179800
1799ENDCHAR
1800STARTCHAR middle dot
1801ENCODING 183
1802SWIDTH 720 0
1803DWIDTH 6 0
1804BBX 6 8 0 -1
1805BITMAP
180600
180700
180800
180910
181000
181100
181200
181300
1814ENDCHAR
1815STARTCHAR cedilla
1816ENCODING 184
1817SWIDTH 720 0
1818DWIDTH 6 0
1819BBX 6 8 0 -1
1820BITMAP
182100
182200
182300
182400
182500
182600
182710
182830
1829ENDCHAR
1830STARTCHAR suprtscript 1
1831ENCODING 185
1832SWIDTH 720 0
1833DWIDTH 6 0
1834BBX 6 8 0 -1
1835BITMAP
183610
183730
183810
183910
184010
184100
184200
184300
1844ENDCHAR
1845STARTCHAR masculine ordinal
1846ENCODING 186
1847SWIDTH 720 0
1848DWIDTH 6 0
1849BBX 6 8 0 -1
1850BITMAP
185138
185244
185344
185444
185538
185600
18577C
185800
1859ENDCHAR
1860STARTCHAR guillemot right
1861ENCODING 187
1862SWIDTH 720 0
1863DWIDTH 6 0
1864BBX 6 8 0 -1
1865BITMAP
186600
186700
186848
186924
187048
187100
187200
187300
1874ENDCHAR
1875STARTCHAR one quarter
1876ENCODING 188
1877SWIDTH 720 0
1878DWIDTH 6 0
1879BBX 6 8 0 -1
1880BITMAP
188100
188200
188300
188400
188500
188600
188700
188800
1889ENDCHAR
1890STARTCHAR one half
1891ENCODING 189
1892SWIDTH 720 0
1893DWIDTH 6 0
1894BBX 6 8 0 -1
1895BITMAP
189600
189700
189800
189900
190000
190100
190200
190300
1904ENDCHAR
1905STARTCHAR three quarters
1906ENCODING 190
1907SWIDTH 720 0
1908DWIDTH 6 0
1909BBX 6 8 0 -1
1910BITMAP
191100
191200
191300
191400
191500
191600
191700
191800
1919ENDCHAR
1920STARTCHAR inverted question
1921ENCODING 191
1922SWIDTH 720 0
1923DWIDTH 6 0
1924BBX 6 8 0 -1
1925BITMAP
192610
192700
192810
192908
193004
193144
193238
193300
1934ENDCHAR
1935STARTCHAR large A, grave accent
1936ENCODING 192
1937SWIDTH 720 0
1938DWIDTH 6 0
1939BBX 6 8 0 -1
1940BITMAP
194120
194210
194310
194428
194544
19467C
194744
194800
1949ENDCHAR
1950STARTCHAR large A, acute accent
1951ENCODING 193
1952SWIDTH 720 0
1953DWIDTH 6 0
1954BBX 6 8 0 -1
1955BITMAP
195610
195720
195810
195928
196044
19617C
196244
196300
1964ENDCHAR
1965STARTCHAR large A, circumflex accent
1966ENCODING 194
1967SWIDTH 720 0
1968DWIDTH 6 0
1969BBX 6 8 0 -1
1970BITMAP
197138
197244
197310
197428
197544
19767C
197744
197800
1979ENDCHAR
1980STARTCHAR large A, tilde
1981ENCODING 195
1982SWIDTH 720 0
1983DWIDTH 6 0
1984BBX 6 8 0 -1
1985BITMAP
198624
198758
198810
198928
199044
19917C
199244
199300
1994ENDCHAR
1995STARTCHAR large A, dieresis
1996ENCODING 196
1997SWIDTH 720 0
1998DWIDTH 6 0
1999BBX 6 8 0 -1
2000BITMAP
200144
200210
200328
200444
20057C
200644
200744
200800
2009ENDCHAR
2010STARTCHAR large A, circle
2011ENCODING 197
2012SWIDTH 720 0
2013DWIDTH 6 0
2014BBX 6 8 0 -1
2015BITMAP
201610
201728
201810
201928
202044
20217C
202244
202300
2024ENDCHAR
2025STARTCHAR large AE, diphtong
2026ENCODING 198
2027SWIDTH 720 0
2028DWIDTH 6 0
2029BBX 6 8 0 -1
2030BITMAP
20310C
203218
203328
20344C
203578
203648
20374C
203800
2039ENDCHAR
2040STARTCHAR large C, cedilla
2041ENCODING 199
2042SWIDTH 720 0
2043DWIDTH 6 0
2044BBX 6 8 0 -1
2045BITMAP
204638
204744
204840
204940
205044
205138
205210
205330
2054ENDCHAR
2055STARTCHAR large E, grave accent
2056ENCODING 200
2057SWIDTH 720 0
2058DWIDTH 6 0
2059BBX 6 8 0 -1
2060BITMAP
206120
206210
20637C
206440
206570
206640
20677C
206800
2069ENDCHAR
2070STARTCHAR large E, acute accent
2071ENCODING 201
2072SWIDTH 720 0
2073DWIDTH 6 0
2074BBX 6 8 0 -1
2075BITMAP
207608
207710
20787C
207940
208070
208140
20827C
208300
2084ENDCHAR
2085STARTCHAR large E, circumflex accent
2086ENCODING 202
2087SWIDTH 720 0
2088DWIDTH 6 0
2089BBX 6 8 0 -1
2090BITMAP
209110
209228
20937C
209440
209570
209640
20977C
209800
2099ENDCHAR
2100STARTCHAR large E, dieresis
2101ENCODING 203
2102SWIDTH 720 0
2103DWIDTH 6 0
2104BBX 6 8 0 -1
2105BITMAP
210628
210700
21087C
210940
211070
211140
21127C
211300
2114ENDCHAR
2115STARTCHAR capital I, grave accent
2116ENCODING 204
2117SWIDTH 720 0
2118DWIDTH 6 0
2119BBX 6 8 0 -1
2120BITMAP
212120
212210
21237C
212410
212510
212610
21277C
212800
2129ENDCHAR
2130STARTCHAR capital I, acute accent
2131ENCODING 205
2132SWIDTH 720 0
2133DWIDTH 6 0
2134BBX 6 8 0 -1
2135BITMAP
213608
213710
21387C
213910
214010
214110
21427C
214300
2144ENDCHAR
2145STARTCHAR capital I, circumflex accent
2146ENCODING 206
2147SWIDTH 720 0
2148DWIDTH 6 0
2149BBX 6 8 0 -1
2150BITMAP
215110
215228
21537C
215410
215510
215610
21577C
215800
2159ENDCHAR
2160STARTCHAR capital I, dieresis
2161ENCODING 207
2162SWIDTH 720 0
2163DWIDTH 6 0
2164BBX 6 8 0 -1
2165BITMAP
216628
216700
21687C
216910
217010
217110
21727C
217300
2174ENDCHAR
2175STARTCHAR capital Eth, Icelandic
2176ENCODING 208
2177SWIDTH 720 0
2178DWIDTH 6 0
2179BBX 6 8 0 -1
2180BITMAP
218170
218248
218344
2184E4
218544
218648
218770
218800
2189ENDCHAR
2190STARTCHAR capital N, tilde
2191ENCODING 209
2192SWIDTH 720 0
2193DWIDTH 6 0
2194BBX 6 8 0 -1
2195BITMAP
219624
219758
219844
219964
220054
22014C
220244
220300
2204ENDCHAR
2205STARTCHAR capital O, grave accent
2206ENCODING 210
2207SWIDTH 720 0
2208DWIDTH 6 0
2209BBX 6 8 0 -1
2210BITMAP
221120
221210
221338
221444
221544
221644
221738
221800
2219ENDCHAR
2220STARTCHAR capital O, acute accent
2221ENCODING 211
2222SWIDTH 720 0
2223DWIDTH 6 0
2224BBX 6 8 0 -1
2225BITMAP
222608
222710
222838
222944
223044
223144
223238
223300
2234ENDCHAR
2235STARTCHAR capital O, circumflex accent
2236ENCODING 212
2237SWIDTH 720 0
2238DWIDTH 6 0
2239BBX 6 8 0 -1
2240BITMAP
224110
224228
224338
224444
224544
224644
224738
224800
2249ENDCHAR
2250STARTCHAR capital O, tilde
2251ENCODING 213
2252SWIDTH 720 0
2253DWIDTH 6 0
2254BBX 6 8 0 -1
2255BITMAP
225624
225758
225838
225944
226044
226144
226238
226300
2264ENDCHAR
2265STARTCHAR capital O, dieresis
2266ENCODING 214
2267SWIDTH 720 0
2268DWIDTH 6 0
2269BBX 6 8 0 -1
2270BITMAP
227144
227238
227344
227444
227544
227644
227738
227800
2279ENDCHAR
2280STARTCHAR multiply sign
2281ENCODING 215
2282SWIDTH 720 0
2283DWIDTH 6 0
2284BBX 6 8 0 -1
2285BITMAP
228600
228744
228828
228910
229028
229144
229200
229300
2294ENDCHAR
2295STARTCHAR capital O, slash
2296ENCODING 216
2297SWIDTH 720 0
2298DWIDTH 6 0
2299BBX 6 8 0 -1
2300BITMAP
230138
230244
23034C
230454
230564
230644
230738
230800
2309ENDCHAR
2310STARTCHAR capital U, grave accent
2311ENCODING 217
2312SWIDTH 720 0
2313DWIDTH 6 0
2314BBX 6 8 0 -1
2315BITMAP
231620
231710
231844
231944
232044
232144
232238
232300
2324ENDCHAR
2325STARTCHAR capital U, acute accent
2326ENCODING 218
2327SWIDTH 720 0
2328DWIDTH 6 0
2329BBX 6 8 0 -1
2330BITMAP
233108
233210
233344
233444
233544
233644
233738
233800
2339ENDCHAR
2340STARTCHAR capital U, circumflex accent
2341ENCODING 219
2342SWIDTH 720 0
2343DWIDTH 6 0
2344BBX 6 8 0 -1
2345BITMAP
234610
234728
234800
234944
235044
235144
235238
235300
2354ENDCHAR
2355STARTCHAR capital U, dieresis
2356ENCODING 220
2357SWIDTH 720 0
2358DWIDTH 6 0
2359BBX 6 8 0 -1
2360BITMAP
236144
236200
236344
236444
236544
236644
236738
236800
2369ENDCHAR
2370STARTCHAR capital Y, acute accent
2371ENCODING 221
2372SWIDTH 720 0
2373DWIDTH 6 0
2374BBX 6 8 0 -1
2375BITMAP
237608
237710
237844
237928
238010
238110
238210
238300
2384ENDCHAR
2385STARTCHAR capital Thorn, Icelandic
2386ENCODING 222
2387SWIDTH 720 0
2388DWIDTH 6 0
2389BBX 6 8 0 -1
2390BITMAP
239140
239278
239344
239444
239544
239678
239740
239800
2399ENDCHAR
2400STARTCHAR sharp s, German
2401ENCODING 223
2402SWIDTH 720 0
2403DWIDTH 6 0
2404BBX 6 8 0 -1
2405BITMAP
240638
240744
240844
240948
241044
241144
241258
241300
2414ENDCHAR
2415STARTCHAR small a, grave accent
2416ENCODING 224
2417SWIDTH 720 0
2418DWIDTH 6 0
2419BBX 6 8 0 -1
2420BITMAP
242120
242210
24233C
242444
242544
24264C
242734
242800
2429ENDCHAR
2430STARTCHAR small a, acute accent
2431ENCODING 225
2432SWIDTH 720 0
2433DWIDTH 6 0
2434BBX 6 8 0 -1
2435BITMAP
243608
243710
24383C
243944
244044
24414C
244234
244300
2444ENDCHAR
2445STARTCHAR small a, circumflex accent
2446ENCODING 226
2447SWIDTH 720 0
2448DWIDTH 6 0
2449BBX 6 8 0 -1
2450BITMAP
245110
245228
245300
24543C
245544
24564C
245734
245800
2459ENDCHAR
2460STARTCHAR small a, tilde
2461ENCODING 227
2462SWIDTH 720 0
2463DWIDTH 6 0
2464BBX 6 8 0 -1
2465BITMAP
246624
246758
246800
24693C
247044
24714C
247234
247300
2474ENDCHAR
2475STARTCHAR small a, dieresis
2476ENCODING 228
2477SWIDTH 720 0
2478DWIDTH 6 0
2479BBX 6 8 0 -1
2480BITMAP
248128
248200
24833C
248444
248544
24864C
248734
248800
2489ENDCHAR
2490STARTCHAR small a, circle
2491ENCODING 229
2492SWIDTH 720 0
2493DWIDTH 6 0
2494BBX 6 8 0 -1
2495BITMAP
249610
249728
249810
24993C
250044
25014C
250234
250300
2504ENDCHAR
2505STARTCHAR small ae, diphtong
2506ENCODING 230
2507SWIDTH 720 0
2508DWIDTH 6 0
2509BBX 6 8 0 -1
2510BITMAP
251100
251200
251338
251454
25155C
251650
25173C
251800
2519ENDCHAR
2520STARTCHAR small c, cedilla
2521ENCODING 231
2522SWIDTH 720 0
2523DWIDTH 6 0
2524BBX 6 8 0 -1
2525BITMAP
252600
252700
25283C
252940
253040
25313C
253210
253330
2534ENDCHAR
2535STARTCHAR small e, grave accent
2536ENCODING 232
2537SWIDTH 720 0
2538DWIDTH 6 0
2539BBX 6 8 0 -1
2540BITMAP
254120
254210
254338
254444
25457C
254640
254738
254800
2549ENDCHAR
2550STARTCHAR small e, acute accent
2551ENCODING 233
2552SWIDTH 720 0
2553DWIDTH 6 0
2554BBX 6 8 0 -1
2555BITMAP
255608
255710
255838
255944
25607C
256140
256238
256300
2564ENDCHAR
2565STARTCHAR small e, circumflex accent
2566ENCODING 234
2567SWIDTH 720 0
2568DWIDTH 6 0
2569BBX 6 8 0 -1
2570BITMAP
257110
257228
257338
257444
25757C
257640
257738
257800
2579ENDCHAR
2580STARTCHAR small e, dieresis
2581ENCODING 235
2582SWIDTH 720 0
2583DWIDTH 6 0
2584BBX 6 8 0 -1
2585BITMAP
258628
258700
258838
258944
25907C
259140
259238
259300
2594ENDCHAR
2595STARTCHAR small i, grave accent
2596ENCODING 236
2597SWIDTH 720 0
2598DWIDTH 6 0
2599BBX 6 8 0 -1
2600BITMAP
260120
260210
260300
260430
260510
260610
260738
260800
2609ENDCHAR
2610STARTCHAR small i, acute accent
2611ENCODING 237
2612SWIDTH 720 0
2613DWIDTH 6 0
2614BBX 6 8 0 -1
2615BITMAP
261608
261710
261800
261930
262010
262110
262238
262300
2624ENDCHAR
2625STARTCHAR small i, circumflex accent
2626ENCODING 238
2627SWIDTH 720 0
2628DWIDTH 6 0
2629BBX 6 8 0 -1
2630BITMAP
263110
263228
263300
263430
263510
263610
263738
263800
2639ENDCHAR
2640STARTCHAR small i, dieresis
2641ENCODING 239
2642SWIDTH 720 0
2643DWIDTH 6 0
2644BBX 6 8 0 -1
2645BITMAP
264628
264700
264830
264910
265010
265110
265238
265300
2654ENDCHAR
2655STARTCHAR small eth, Icelandic
2656ENCODING 240
2657SWIDTH 720 0
2658DWIDTH 6 0
2659BBX 6 8 0 -1
2660BITMAP
266138
266214
266304
26641C
266524
266624
266718
266800
2669ENDCHAR
2670STARTCHAR small n, tilde
2671ENCODING 241
2672SWIDTH 720 0
2673DWIDTH 6 0
2674BBX 6 8 0 -1
2675BITMAP
267624
267758
267800
267958
268064
268144
268244
268300
2684ENDCHAR
2685STARTCHAR small o, grave accent
2686ENCODING 242
2687SWIDTH 720 0
2688DWIDTH 6 0
2689BBX 6 8 0 -1
2690BITMAP
269120
269210
269338
269444
269544
269644
269738
269800
2699ENDCHAR
2700STARTCHAR small o, acute accent
2701ENCODING 243
2702SWIDTH 720 0
2703DWIDTH 6 0
2704BBX 6 8 0 -1
2705BITMAP
270608
270710
270838
270944
271044
271144
271238
271300
2714ENDCHAR
2715STARTCHAR small o, circumflex accent
2716ENCODING 244
2717SWIDTH 720 0
2718DWIDTH 6 0
2719BBX 6 8 0 -1
2720BITMAP
272110
272228
272338
272444
272544
272644
272738
272800
2729ENDCHAR
2730STARTCHAR small o, tilde
2731ENCODING 245
2732SWIDTH 720 0
2733DWIDTH 6 0
2734BBX 6 8 0 -1
2735BITMAP
273624
273758
273838
273944
274044
274144
274238
274300
2744ENDCHAR
2745STARTCHAR small o, dieresis
2746ENCODING 246
2747SWIDTH 720 0
2748DWIDTH 6 0
2749BBX 6 8 0 -1
2750BITMAP
275128
275200
275338
275444
275544
275644
275738
275800
2759ENDCHAR
2760STARTCHAR division sign
2761ENCODING 247
2762SWIDTH 720 0
2763DWIDTH 6 0
2764BBX 6 8 0 -1
2765BITMAP
276600
276710
276800
27697C
277000
277110
277200
277300
2774ENDCHAR
2775STARTCHAR small o, slash
2776ENCODING 248
2777SWIDTH 720 0
2778DWIDTH 6 0
2779BBX 6 8 0 -1
2780BITMAP
278100
278200
27833C
27844C
278554
278664
278778
278800
2789ENDCHAR
2790STARTCHAR small u, grave accent
2791ENCODING 249
2792SWIDTH 720 0
2793DWIDTH 6 0
2794BBX 6 8 0 -1
2795BITMAP
279620
279710
279844
279944
280044
28014C
280234
280300
2804ENDCHAR
2805STARTCHAR small u, acute accent
2806ENCODING 250
2807SWIDTH 720 0
2808DWIDTH 6 0
2809BBX 6 8 0 -1
2810BITMAP
281108
281210
281344
281444
281544
28164C
281734
281800
2819ENDCHAR
2820STARTCHAR small u, circumflex accent
2821ENCODING 251
2822SWIDTH 720 0
2823DWIDTH 6 0
2824BBX 6 8 0 -1
2825BITMAP
282610
282728
282800
282944
283044
28314C
283234
283300
2834ENDCHAR
2835STARTCHAR small u, dieresis
2836ENCODING 252
2837SWIDTH 720 0
2838DWIDTH 6 0
2839BBX 6 8 0 -1
2840BITMAP
284128
284200
284344
284444
284544
28464C
284734
284800
2849ENDCHAR
2850STARTCHAR small y, acute accent
2851ENCODING 253
2852SWIDTH 720 0
2853DWIDTH 6 0
2854BBX 6 8 0 -1
2855BITMAP
285608
285710
285844
285944
286044
28613C
286204
286338
2864ENDCHAR
2865STARTCHAR small thorn, Icelandic
2866ENCODING 254
2867SWIDTH 720 0
2868DWIDTH 6 0
2869BBX 6 8 0 -1
2870BITMAP
287140
287270
287348
287448
287548
287670
287740
287800
2879ENDCHAR
2880STARTCHAR small y, dieresis
2881ENCODING 255
2882SWIDTH 720 0
2883DWIDTH 6 0
2884BBX 6 8 0 -1
2885BITMAP
288628
288700
288844
288944
289044
28913C
289204
289338
2894ENDCHAR
2895ENDFONT
diff --git a/firmware/loadfont.c b/firmware/loadfont.c
deleted file mode 100644
index e78f208b13..0000000000
--- a/firmware/loadfont.c
+++ /dev/null
@@ -1,212 +0,0 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (c) 2002 by Greg Haerr <greg@censoft.com>
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 * Load an rbf font, store in incore format.
21 */
22#include "config.h"
23
24#if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR)
25
26#include <stdio.h>
27#include <string.h>
28#include "font.h"
29#include "file.h"
30
31#ifndef DEBUGF
32#include "debug.h"
33#endif
34
35#ifndef O_BINARY
36#define O_BINARY 0
37#endif
38
39/* static buffer allocation structures*/
40static unsigned char mbuf[MAX_FONT_SIZE];
41static unsigned char *freeptr = mbuf;
42static unsigned char *fileptr;
43static unsigned char *eofptr;
44
45static int
46READSHORT(unsigned short *sp)
47{
48 unsigned short s;
49
50 s = *fileptr++ & 0xff;
51 *sp = (*fileptr++ << 8) | s;
52 return (fileptr <= eofptr);
53}
54
55static int
56READLONG(unsigned long *lp)
57{
58 unsigned long l;
59
60 l = *fileptr++ & 0xff;
61 l |= *fileptr++ << 8;
62 l |= *fileptr++ << 16;
63 *lp = (*fileptr++ << 24) | l;
64 return (fileptr <= eofptr);
65}
66
67/* read count bytes*/
68static int
69READSTR(char *buf, int count)
70{
71 int n = count;
72
73 while (--n >= 0)
74 *buf++ = *fileptr++;
75 return (fileptr <= eofptr)? count: 0;
76}
77
78/* read totlen bytes, return NUL terminated string*/
79/* may write 1 past buf[totlen]; removes blank pad*/
80static int
81READSTRPAD(char *buf, int totlen)
82{
83 char *p = buf;
84 int n = totlen;
85
86 while (--n >= 0)
87 *p++ = *fileptr++;
88 if (fileptr > eofptr)
89 return 0;
90
91 p = &buf[totlen];
92 *p-- = 0;
93 while (*p == ' ' && p >= buf)
94 *p-- = '\0';
95 return totlen;
96}
97
98/* read and load font into incore font structure*/
99PMWCFONT
100rbf_load_font(char *path, PMWCFONT pf)
101{
102 int fd, filesize;
103 unsigned short maxwidth, height, ascent, pad;
104 unsigned long firstchar, defaultchar, size;
105 unsigned long i, nbits, noffset, nwidth;
106 char version[4+1];
107 char copyright[256+1];
108
109 memset(pf, 0, sizeof(MWCFONT));
110
111 /* open and read entire font file*/
112 fd = open(path, O_RDONLY|O_BINARY);
113 if (fd < 0) {
114 DEBUGF("Can't open font: %s\n", path);
115 return NULL;
116 }
117freeptr = (unsigned char *)(((int)mbuf + 3) & ~3);
118 fileptr = freeptr;
119 filesize = read(fd, fileptr, MAX_FONT_SIZE);
120 eofptr = fileptr + filesize;
121 //freeptr += filesize;
122 //freeptr = (unsigned char *)(freeptr + 3) & ~3; /* pad freeptr*/
123 close(fd);
124 if (filesize == MAX_FONT_SIZE) {
125 DEBUGF("Font %s too large: %d\n", path, filesize);
126 return NULL;
127 }
128
129 /* read magic and version #*/
130 memset(version, 0, sizeof(version));
131 if (READSTR(version, 4) != 4)
132 return NULL;
133 if (strcmp(version, VERSION) != 0)
134 return NULL;
135
136 /* internal font name*/
137 pf->name = fileptr;
138 if (READSTRPAD(pf->name, 64) != 64)
139 return NULL;
140
141 /* copyright, not currently stored*/
142 if (READSTRPAD(copyright, 256) != 256)
143 return NULL;
144
145 /* font info*/
146 if (!READSHORT(&maxwidth))
147 return NULL;
148 pf->maxwidth = maxwidth;
149 if (!READSHORT(&height))
150 return NULL;
151 pf->height = height;
152 if (!READSHORT(&ascent))
153 return NULL;
154 pf->ascent = ascent;
155 if (!READSHORT(&pad))
156 return NULL;
157 if (!READLONG(&firstchar))
158 return NULL;
159 pf->firstchar = firstchar;
160 if (!READLONG(&defaultchar))
161 return NULL;
162 pf->defaultchar = defaultchar;
163 if (!READLONG(&size))
164 return NULL;
165 pf->size = size;
166
167 /* get variable font data sizes*/
168 /* # words of MWIMAGEBITS*/
169 if (!READLONG(&nbits))
170 return NULL;
171 pf->bits_size = nbits;
172
173 /* # longs of offset*/
174 if (!READLONG(&noffset))
175 return NULL;
176
177 /* # bytes of width*/
178 if (!READLONG(&nwidth))
179 return NULL;
180
181 /* variable font data*/
182 pf->bits = (MWIMAGEBITS *)fileptr;
183 for (i=0; i<nbits; ++i)
184 if (!READSHORT(&pf->bits[i]))
185 return NULL;
186 /* pad to longword boundary*/
187 fileptr = (unsigned char *)(((int)fileptr + 3) & ~3);
188
189 if (noffset) {
190 pf->offset = (unsigned long *)fileptr;
191 for (i=0; i<noffset; ++i)
192 if (!READLONG(&pf->offset[i]))
193 return NULL;
194 } else pf->offset = NULL;
195
196 if (nwidth) {
197 pf->width = (unsigned char *)fileptr;
198 fileptr += nwidth*sizeof(unsigned char);
199 } else pf->width = NULL;
200
201 if (fileptr > eofptr)
202 return NULL;
203 return pf; /* success!*/
204}
205#endif /* HAVE_LCD_BITMAP */
206
207/* -----------------------------------------------------------------
208 * local variables:
209 * eval: (load-file "rockbox-mode.el")
210 * vim: et sw=4 ts=8 sts=4 tw=78
211 * end:
212 */