20 #define FONT_COUNT 128
27 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
28 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
29 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
30 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
31 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
32 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
33 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
34 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
35 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
36 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
37 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
38 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
39 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
40 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
41 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
42 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
43 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
44 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
45 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
46 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
47 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
48 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
49 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
50 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
51 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
52 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
53 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
54 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
55 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
56 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
57 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
58 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
59 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
60 { 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00 },
61 { 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
62 { 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00 },
63 { 0x0C, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x0C, 0x00 },
64 { 0x00, 0x63, 0x33, 0x18, 0x0C, 0x66, 0x63, 0x00 },
65 { 0x1C, 0x36, 0x1C, 0x6E, 0x3B, 0x33, 0x6E, 0x00 },
66 { 0x06, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00 },
67 { 0x18, 0x0C, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x00 },
68 { 0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06, 0x00 },
69 { 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00 },
70 { 0x00, 0x0C, 0x0C, 0x3F, 0x0C, 0x0C, 0x00, 0x00 },
71 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x06 },
72 { 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00 },
73 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00 },
74 { 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00 },
75 { 0x3E, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x3E, 0x00 },
76 { 0x0C, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00 },
77 { 0x1E, 0x33, 0x30, 0x1C, 0x06, 0x33, 0x3F, 0x00 },
78 { 0x1E, 0x33, 0x30, 0x1C, 0x30, 0x33, 0x1E, 0x00 },
79 { 0x38, 0x3C, 0x36, 0x33, 0x7F, 0x30, 0x78, 0x00 },
80 { 0x3F, 0x03, 0x1F, 0x30, 0x30, 0x33, 0x1E, 0x00 },
81 { 0x1C, 0x06, 0x03, 0x1F, 0x33, 0x33, 0x1E, 0x00 },
82 { 0x3F, 0x33, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00 },
83 { 0x1E, 0x33, 0x33, 0x1E, 0x33, 0x33, 0x1E, 0x00 },
84 { 0x1E, 0x33, 0x33, 0x3E, 0x30, 0x18, 0x0E, 0x00 },
85 { 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00 },
86 { 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x06 },
87 { 0x18, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x18, 0x00 },
88 { 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00 },
89 { 0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06, 0x00 },
90 { 0x1E, 0x33, 0x30, 0x18, 0x0C, 0x00, 0x0C, 0x00 },
91 { 0x3E, 0x63, 0x7B, 0x7B, 0x7B, 0x03, 0x1E, 0x00 },
92 { 0x0C, 0x1E, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x00 },
93 { 0x3F, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3F, 0x00 },
94 { 0x3C, 0x66, 0x03, 0x03, 0x03, 0x66, 0x3C, 0x00 },
95 { 0x1F, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1F, 0x00 },
96 { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x46, 0x7F, 0x00 },
97 { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x06, 0x0F, 0x00 },
98 { 0x3C, 0x66, 0x03, 0x03, 0x73, 0x66, 0x7C, 0x00 },
99 { 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x00 },
100 { 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00 },
101 { 0x78, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, 0x00 },
102 { 0x67, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x67, 0x00 },
103 { 0x0F, 0x06, 0x06, 0x06, 0x46, 0x66, 0x7F, 0x00 },
104 { 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00 },
105 { 0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x63, 0x00 },
106 { 0x1C, 0x36, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x00 },
107 { 0x3F, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x0F, 0x00 },
108 { 0x1E, 0x33, 0x33, 0x33, 0x3B, 0x1E, 0x38, 0x00 },
109 { 0x3F, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x67, 0x00 },
110 { 0x1E, 0x33, 0x07, 0x0E, 0x38, 0x33, 0x1E, 0x00 },
111 { 0x3F, 0x2D, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00 },
112 { 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x00 },
113 { 0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00 },
114 { 0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00 },
115 { 0x63, 0x63, 0x36, 0x1C, 0x1C, 0x36, 0x63, 0x00 },
116 { 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x1E, 0x00 },
117 { 0x7F, 0x63, 0x31, 0x18, 0x4C, 0x66, 0x7F, 0x00 },
118 { 0x1E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x00 },
119 { 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x00 },
120 { 0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00 },
121 { 0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00 },
122 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF },
123 { 0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 },
124 { 0x00, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x6E, 0x00 },
125 { 0x07, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00 },
126 { 0x00, 0x00, 0x1E, 0x33, 0x03, 0x33, 0x1E, 0x00 },
127 { 0x38, 0x30, 0x30, 0x3e, 0x33, 0x33, 0x6E, 0x00 },
128 { 0x00, 0x00, 0x1E, 0x33, 0x3f, 0x03, 0x1E, 0x00 },
129 { 0x1C, 0x36, 0x06, 0x0f, 0x06, 0x06, 0x0F, 0x00 },
130 { 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x1F },
131 { 0x07, 0x06, 0x36, 0x6E, 0x66, 0x66, 0x67, 0x00 },
132 { 0x0C, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00 },
133 { 0x30, 0x00, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E },
134 { 0x07, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x67, 0x00 },
135 { 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00 },
136 { 0x00, 0x00, 0x33, 0x7F, 0x7F, 0x6B, 0x63, 0x00 },
137 { 0x00, 0x00, 0x1F, 0x33, 0x33, 0x33, 0x33, 0x00 },
138 { 0x00, 0x00, 0x1E, 0x33, 0x33, 0x33, 0x1E, 0x00 },
139 { 0x00, 0x00, 0x3B, 0x66, 0x66, 0x3E, 0x06, 0x0F },
140 { 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x78 },
141 { 0x00, 0x00, 0x3B, 0x6E, 0x66, 0x06, 0x0F, 0x00 },
142 { 0x00, 0x00, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x00 },
143 { 0x08, 0x0C, 0x3E, 0x0C, 0x0C, 0x2C, 0x18, 0x00 },
144 { 0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x6E, 0x00 },
145 { 0x00, 0x00, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00 },
146 { 0x00, 0x00, 0x63, 0x6B, 0x7F, 0x7F, 0x36, 0x00 },
147 { 0x00, 0x00, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x00 },
148 { 0x00, 0x00, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x1F },
149 { 0x00, 0x00, 0x3F, 0x19, 0x0C, 0x26, 0x3F, 0x00 },
150 { 0x38, 0x0C, 0x0C, 0x07, 0x0C, 0x0C, 0x38, 0x00 },
151 { 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00 },
152 { 0x07, 0x0C, 0x0C, 0x38, 0x0C, 0x0C, 0x07, 0x00 },
153 { 0x6E, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
154 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
157 void Draw(
char c, uint32_t x, uint32_t y, uint32_t fore)
163 uint8_t fp = (uint8_t)c;
168 pixel(x + fx, y + fy, fore);
174 void Draw(
char c, uint32_t x, uint32_t y, uint32_t fore, uint32_t back)
180 uint8_t fp = (uint8_t)c;
181 for (
int fy = 0; fy < 9; fy++) {
182 for (
int fx = 0; fx < 9; fx++) {
185 pixel(x + fx, y + fy, fore);
188 pixel(x + fx, y + fy, back);