Skip to content

Commit 14aeeea

Browse files
committed
Optimise Pack std font character set ROM data in 6 bit per row.
1 parent 1339617 commit 14aeeea

File tree

3 files changed

+166
-113
lines changed

3 files changed

+166
-113
lines changed

fontsrc/font_asm.pl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,16 @@
88
for(my $i=32; $i<=127; $i++){
99
printf(";<%c>\n", $i);
1010
my $arr_ref = ${$hash_ref}{$i};
11-
my @reversed = map(unpack('C', pack('B8',unpack('b8',pack('C',$_)))),@{$arr_ref}[5 .. 12]);
12-
my @glyph = map(sprintf("\$%02X",$_ | 0x40), @reversed);
11+
my @r = map(unpack('C', pack('B8',unpack('b8',pack('C',$_)))),@{$arr_ref}[5 .. 12]);
12+
my @p;
13+
$p[0] = $r[0]<<18 | $r[1]<<12 | $r[2]<<6 | $r[3];
14+
$p[1] = $r[4]<<18 | $r[5]<<12 | $r[6]<<6 | $r[7];
15+
my @s;
16+
for(my $j=0; $j<=2; $j++){
17+
$s[$j+0] = ($p[0] >> (16-($j*8))) & 0xFF;
18+
$s[$j+3] = ($p[1] >> (16-($j*8))) & 0xFF;
19+
}
20+
my @glyph = map(sprintf("\$%02X",$_), @s);
1321
print ".byte ";
1422
# foreach my $line (@glyph){
1523
# printf "\$%02X, ", $line>>2;

src/font_loci.asm

Lines changed: 96 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -1,193 +1,193 @@
11
; Font LociBold5x7 by OriginalbySodiumlightbaby
22
;< >
3-
.byte $40, $40, $40, $40, $40, $40, $40, $40
3+
.byte $00, $00, $00, $00, $00, $00
44
;<!>
5-
.byte $58, $58, $58, $58, $58, $40, $58, $40
5+
.byte $61, $86, $18, $60, $06, $00
66
;<">
7-
.byte $76, $76, $76, $40, $40, $40, $40, $40
7+
.byte $DB, $6D, $80, $00, $00, $00
88
;<#>
9-
.byte $54, $7E, $54, $54, $7E, $54, $40, $40
9+
.byte $53, $E5, $14, $F9, $40, $00
1010
;<$>
11-
.byte $48, $5E, $70, $5C, $46, $7C, $48, $40
11+
.byte $21, $EC, $1C, $1B, $C2, $00
1212
;<%>
13-
.byte $76, $76, $4C, $48, $58, $76, $76, $40
13+
.byte $DB, $63, $08, $63, $6D, $80
1414
;<&>
15-
.byte $5C, $76, $76, $58, $77, $76, $5E, $40
15+
.byte $73, $6D, $98, $DF, $67, $80
1616
;<'>
17-
.byte $4C, $4C, $4C, $40, $40, $40, $40, $40
17+
.byte $30, $C3, $00, $00, $00, $00
1818
;<(>
19-
.byte $4C, $58, $58, $58, $58, $58, $4C, $40
19+
.byte $31, $86, $18, $61, $83, $00
2020
;<)>
21-
.byte $58, $4C, $4C, $4C, $4C, $4C, $58, $40
21+
.byte $60, $C3, $0C, $30, $C6, $00
2222
;<*>
23-
.byte $40, $48, $7E, $5C, $7E, $48, $40, $40
23+
.byte $00, $8F, $9C, $F8, $80, $00
2424
;<+>
25-
.byte $40, $4C, $4C, $7F, $4C, $4C, $40, $40
25+
.byte $00, $C3, $3F, $30, $C0, $00
2626
;<,>
27-
.byte $40, $40, $40, $40, $40, $58, $58, $48
27+
.byte $00, $00, $00, $01, $86, $08
2828
;<->
29-
.byte $40, $40, $40, $7F, $7F, $40, $40, $40
29+
.byte $00, $00, $3F, $FC, $00, $00
3030
;<.>
31-
.byte $40, $40, $40, $40, $40, $58, $58, $40
31+
.byte $00, $00, $00, $01, $86, $00
3232
;</>
33-
.byte $46, $46, $4C, $4C, $4C, $58, $58, $40
33+
.byte $18, $63, $0C, $31, $86, $00
3434
;<0>
35-
.byte $5C, $76, $76, $7E, $76, $76, $5C, $40
35+
.byte $73, $6D, $BE, $DB, $67, $00
3636
;<1>
37-
.byte $4C, $5C, $4C, $4C, $4C, $4C, $4C, $40
37+
.byte $31, $C3, $0C, $30, $C3, $00
3838
;<2>
39-
.byte $5C, $76, $46, $4C, $58, $70, $7E, $40
39+
.byte $73, $61, $8C, $63, $0F, $80
4040
;<3>
41-
.byte $5C, $76, $46, $4C, $46, $76, $5C, $40
41+
.byte $73, $61, $8C, $1B, $67, $00
4242
;<4>
43-
.byte $46, $4E, $5E, $76, $7E, $46, $46, $40
43+
.byte $18, $E7, $B6, $F8, $61, $80
4444
;<5>
45-
.byte $7E, $70, $7C, $46, $46, $76, $5C, $40
45+
.byte $FB, $0F, $06, $1B, $67, $00
4646
;<6>
47-
.byte $5C, $76, $70, $7C, $76, $76, $5C, $40
47+
.byte $73, $6C, $3C, $DB, $67, $00
4848
;<7>
49-
.byte $7E, $46, $46, $4C, $58, $58, $58, $40
49+
.byte $F8, $61, $8C, $61, $86, $00
5050
;<8>
51-
.byte $5C, $76, $76, $5C, $76, $76, $5C, $40
51+
.byte $73, $6D, $9C, $DB, $67, $00
5252
;<9>
53-
.byte $5C, $76, $76, $5E, $46, $76, $5C, $40
53+
.byte $73, $6D, $9E, $1B, $67, $00
5454
;<:>
55-
.byte $40, $58, $58, $40, $40, $58, $58, $40
55+
.byte $01, $86, $00, $01, $86, $00
5656
;<;>
57-
.byte $40, $58, $58, $40, $40, $58, $58, $48
57+
.byte $01, $86, $00, $01, $86, $08
5858
;<<>
59-
.byte $46, $4C, $58, $70, $58, $4C, $46, $40
59+
.byte $18, $C6, $30, $60, $C1, $80
6060
;<=>
61-
.byte $40, $40, $7E, $40, $7E, $40, $40, $40
61+
.byte $00, $0F, $80, $F8, $00, $00
6262
;<>>
63-
.byte $70, $58, $4C, $46, $4C, $58, $70, $40
63+
.byte $C1, $83, $06, $31, $8C, $00
6464
;<?>
65-
.byte $5C, $76, $46, $4C, $58, $40, $58, $40
65+
.byte $73, $61, $8C, $60, $06, $00
6666
;<@>
67-
.byte $5C, $62, $6E, $6A, $6E, $60, $5E, $40
67+
.byte $72, $2B, $AA, $BA, $07, $80
6868
;<A>
69-
.byte $48, $5C, $76, $76, $7E, $76, $76, $40
69+
.byte $21, $CD, $B6, $FB, $6D, $80
7070
;<B>
71-
.byte $7C, $76, $76, $7C, $76, $76, $7C, $40
71+
.byte $F3, $6D, $BC, $DB, $6F, $00
7272
;<C>
73-
.byte $5C, $76, $70, $70, $70, $76, $5C, $40
73+
.byte $73, $6C, $30, $C3, $67, $00
7474
;<D>
75-
.byte $7C, $76, $76, $76, $76, $76, $7C, $40
75+
.byte $F3, $6D, $B6, $DB, $6F, $00
7676
;<E>
77-
.byte $7E, $70, $70, $7C, $70, $70, $7E, $40
77+
.byte $FB, $0C, $3C, $C3, $0F, $80
7878
;<F>
79-
.byte $7E, $70, $70, $7C, $70, $70, $70, $40
79+
.byte $FB, $0C, $3C, $C3, $0C, $00
8080
;<G>
81-
.byte $5C, $76, $70, $7E, $76, $76, $5E, $40
81+
.byte $73, $6C, $3E, $DB, $67, $80
8282
;<H>
83-
.byte $76, $76, $76, $7E, $76, $76, $76, $40
83+
.byte $DB, $6D, $BE, $DB, $6D, $80
8484
;<I>
85-
.byte $5E, $4C, $4C, $4C, $4C, $4C, $5E, $40
85+
.byte $78, $C3, $0C, $30, $C7, $80
8686
;<J>
87-
.byte $46, $46, $46, $46, $46, $76, $5C, $40
87+
.byte $18, $61, $86, $1B, $67, $00
8888
;<K>
89-
.byte $76, $76, $7C, $78, $7C, $76, $76, $40
89+
.byte $DB, $6F, $38, $F3, $6D, $80
9090
;<L>
91-
.byte $70, $70, $70, $70, $70, $70, $7E, $40
91+
.byte $C3, $0C, $30, $C3, $0F, $80
9292
;<M>
93-
.byte $62, $76, $7E, $7E, $76, $76, $76, $40
93+
.byte $8B, $6F, $BE, $DB, $6D, $80
9494
;<N>
95-
.byte $66, $76, $7A, $7E, $6E, $76, $72, $40
95+
.byte $9B, $6E, $BE, $BB, $6C, $80
9696
;<O>
97-
.byte $5C, $76, $76, $76, $76, $76, $5C, $40
97+
.byte $73, $6D, $B6, $DB, $67, $00
9898
;<P>
99-
.byte $7C, $76, $76, $7C, $70, $70, $70, $40
99+
.byte $F3, $6D, $BC, $C3, $0C, $00
100100
;<Q>
101-
.byte $5C, $76, $76, $76, $7E, $76, $5E, $43
101+
.byte $73, $6D, $B6, $FB, $67, $83
102102
;<R>
103-
.byte $7C, $76, $76, $7C, $76, $76, $76, $40
103+
.byte $F3, $6D, $BC, $DB, $6D, $80
104104
;<S>
105-
.byte $5C, $76, $70, $5C, $46, $76, $5C, $40
105+
.byte $73, $6C, $1C, $1B, $67, $00
106106
;<T>
107-
.byte $7F, $4C, $4C, $4C, $4C, $4C, $4C, $40
107+
.byte $FC, $C3, $0C, $30, $C3, $00
108108
;<U>
109-
.byte $76, $76, $76, $76, $76, $76, $5C, $40
109+
.byte $DB, $6D, $B6, $DB, $67, $00
110110
;<V>
111-
.byte $76, $76, $76, $54, $5C, $5C, $48, $40
111+
.byte $DB, $6D, $94, $71, $C2, $00
112112
;<W>
113-
.byte $76, $76, $76, $7E, $7E, $7E, $54, $40
113+
.byte $DB, $6D, $BE, $FB, $E5, $00
114114
;<X>
115-
.byte $76, $76, $5C, $5C, $5C, $76, $76, $40
115+
.byte $DB, $67, $1C, $73, $6D, $80
116116
;<Y>
117-
.byte $73, $73, $5E, $4C, $4C, $4C, $4C, $40
117+
.byte $CF, $37, $8C, $30, $C3, $00
118118
;<Z>
119-
.byte $7E, $46, $4C, $48, $58, $70, $7E, $40
119+
.byte $F8, $63, $08, $63, $0F, $80
120120
;<[>
121-
.byte $5C, $58, $58, $58, $58, $58, $5C, $40
121+
.byte $71, $86, $18, $61, $87, $00
122122
;<\>
123-
.byte $58, $58, $4C, $4C, $4C, $46, $46, $40
123+
.byte $61, $83, $0C, $30, $61, $80
124124
;<]>
125-
.byte $5C, $4C, $4C, $4C, $4C, $4C, $5C, $40
125+
.byte $70, $C3, $0C, $30, $C7, $00
126126
;<^>
127-
.byte $40, $40, $40, $47, $4F, $4C, $4C, $4C
127+
.byte $00, $00, $07, $3C, $C3, $0C
128128
;<_>
129-
.byte $40, $40, $40, $40, $40, $40, $40, $7E
129+
.byte $00, $00, $00, $00, $00, $3E
130130
;<`>
131-
.byte $40, $40, $40, $78, $7C, $4C, $4C, $4C
131+
.byte $00, $00, $38, $F0, $C3, $0C
132132
;<a>
133-
.byte $40, $40, $5E, $76, $76, $76, $5E, $40
133+
.byte $00, $07, $B6, $DB, $67, $80
134134
;<b>
135-
.byte $70, $70, $7C, $76, $76, $76, $7C, $40
135+
.byte $C3, $0F, $36, $DB, $6F, $00
136136
;<c>
137-
.byte $40, $40, $5C, $76, $70, $76, $5C, $40
137+
.byte $00, $07, $36, $C3, $67, $00
138138
;<d>
139-
.byte $46, $46, $5E, $76, $76, $76, $5E, $40
139+
.byte $18, $67, $B6, $DB, $67, $80
140140
;<e>
141-
.byte $40, $40, $5C, $76, $7E, $70, $5E, $40
141+
.byte $00, $07, $36, $FB, $07, $80
142142
;<f>
143-
.byte $4C, $5A, $58, $7C, $58, $58, $58, $40
143+
.byte $31, $A6, $3C, $61, $86, $00
144144
;<g>
145-
.byte $40, $40, $5C, $76, $76, $5E, $66, $5C
145+
.byte $00, $07, $36, $D9, $E9, $9C
146146
;<h>
147-
.byte $70, $70, $7C, $76, $76, $76, $76, $40
147+
.byte $C3, $0F, $36, $DB, $6D, $80
148148
;<i>
149-
.byte $58, $40, $58, $58, $58, $5A, $4C, $40
149+
.byte $60, $06, $18, $61, $A3, $00
150150
;<j>
151-
.byte $4C, $40, $4C, $4C, $4C, $4C, $6C, $58
151+
.byte $30, $03, $0C, $30, $CB, $18
152152
;<k>
153-
.byte $70, $70, $76, $76, $7C, $76, $76, $40
153+
.byte $C3, $0D, $B6, $F3, $6D, $80
154154
;<l>
155-
.byte $58, $58, $58, $58, $58, $5A, $4C, $40
155+
.byte $61, $86, $18, $61, $A3, $00
156156
;<m>
157-
.byte $40, $40, $54, $7E, $7E, $76, $76, $40
157+
.byte $00, $05, $3E, $FB, $6D, $80
158158
;<n>
159-
.byte $40, $40, $7C, $76, $76, $76, $76, $40
159+
.byte $00, $0F, $36, $DB, $6D, $80
160160
;<o>
161-
.byte $40, $40, $5C, $76, $76, $76, $5C, $40
161+
.byte $00, $07, $36, $DB, $67, $00
162162
;<p>
163-
.byte $40, $40, $7C, $76, $76, $7C, $70, $70
163+
.byte $00, $0F, $36, $DB, $CC, $30
164164
;<q>
165-
.byte $40, $40, $5C, $76, $76, $76, $5C, $56
165+
.byte $00, $07, $36, $DB, $67, $16
166166
;<r>
167-
.byte $40, $40, $76, $7E, $78, $70, $70, $40
167+
.byte $00, $0D, $BE, $E3, $0C, $00
168168
;<s>
169-
.byte $40, $40, $5E, $78, $5C, $4E, $7C, $40
169+
.byte $00, $07, $B8, $70, $EF, $00
170170
;<t>
171-
.byte $58, $58, $7C, $58, $58, $5A, $4C, $40
171+
.byte $61, $8F, $18, $61, $A3, $00
172172
;<u>
173-
.byte $40, $40, $76, $76, $76, $76, $5E, $40
173+
.byte $00, $0D, $B6, $DB, $67, $80
174174
;<v>
175-
.byte $40, $40, $76, $76, $5C, $5C, $48, $40
175+
.byte $00, $0D, $B6, $71, $C2, $00
176176
;<w>
177-
.byte $40, $40, $76, $76, $7E, $7E, $54, $40
177+
.byte $00, $0D, $B6, $FB, $E5, $00
178178
;<x>
179-
.byte $40, $40, $76, $7E, $5C, $7E, $76, $40
179+
.byte $00, $0D, $BE, $73, $ED, $80
180180
;<y>
181-
.byte $40, $40, $76, $76, $76, $5E, $66, $5C
181+
.byte $00, $0D, $B6, $D9, $E9, $9C
182182
;<z>
183-
.byte $40, $40, $7E, $4E, $5C, $78, $7E, $40
183+
.byte $00, $0F, $8E, $73, $8F, $80
184184
;<{>
185-
.byte $4C, $58, $58, $70, $58, $58, $4C, $40
185+
.byte $31, $86, $30, $61, $83, $00
186186
;<|>
187-
.byte $4C, $4C, $4C, $4C, $4C, $4C, $4C, $4C
187+
.byte $30, $C3, $0C, $30, $C3, $0C
188188
;<}>
189-
.byte $58, $4C, $4C, $46, $4C, $4C, $58, $40
189+
.byte $60, $C3, $06, $30, $C6, $00
190190
;<~>
191-
.byte $4C, $4C, $4C, $4F, $47, $40, $40, $40
191+
.byte $30, $C3, $0F, $1C, $00, $00
192192
;<>
193-
.byte $4C, $4C, $4C, $7C, $78, $40, $40, $40
193+
.byte $30, $C3, $3C, $E0, $00, $00

0 commit comments

Comments
 (0)