summaryrefslogtreecommitdiffstats
path: root/main/dev/fb_fonts.h
blob: 91893fe0c8b8df6de7ce371c5af6df37b5f912df (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
//------------------------------------------------------------------------
// fb_fonts.h
//
// Author(s):   Michael Kelly - Cogent Computer Systems, Inc.
// Date:        10/18/03
// Description: basic fonts for different screen sizes.  8x16
//              is good for VGA and above, 8x8 is good for QVGA
//              landscape (320 x 240), while 5x7 gives the most
//              characters on QVGA portrait mode (240 x 320).
//
//              Note that 8x8 and 5x7 use one byte per font row,
//              but 5x7 uses only the upper 5 bits.
//
//              To lookoup, subtract FIRST_CHAR from the character,
//              multiply x FONT_HEIGHT and get the next FONT_WIDTH
//              bytes.  Thes efonts only support printable ascii
//              characters 0x20 to 0x7f
//

#define FIRST_CHAR 0x20
#define LAST_CHAR  0x7F
#define CURSOR_ON  0x7F
#define CURSOR_OFF 0x20

#ifdef USE_FONT8X8
#define FONT_HEIGHT 8
#define FONT_WIDTH  8
#define FONT_STEP   8   // font rows are 8 bytes apart

static uchar fb_font_data[LAST_CHAR-FIRST_CHAR+1][FONT_STEP] = {
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x20
    { 0x30, 0x78, 0x78, 0x30, 0x30, 0x00, 0x30, 0x00, },    // 0x21  !
    { 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x22  "
    { 0x6c, 0x6c, 0xfe, 0x6c, 0xfe, 0x6c, 0x6c, 0x00, },    // 0x23  #
    { 0x30, 0x7c, 0xc0, 0x78, 0x0c, 0xf8, 0x30, 0x00, },    // 0x24  $
    { 0x00, 0xc6, 0xcc, 0x18, 0x30, 0x66, 0xc6, 0x00, },    // 0x25  %
    { 0x38, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0x76, 0x00, },    // 0x26  &
    { 0x60, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x27  '
    { 0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00, },    // 0x28  (
    { 0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00, },    // 0x29  )
    { 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, },    // 0x2a  *
    { 0x00, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x00, 0x00, },    // 0x2b  +
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x60, },    // 0x2c  ,
    { 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, },    // 0x2d  -
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, },    // 0x2e  .
    { 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, },    // 0x2f  /
    { 0x7c, 0xc6, 0xce, 0xde, 0xf6, 0xe6, 0x7c, 0x00, },    // 0x30  0
    { 0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xfc, 0x00, },    // 0x31  1
    { 0x78, 0xcc, 0x0c, 0x38, 0x60, 0xcc, 0xfc, 0x00, },    // 0x32  2
    { 0x78, 0xcc, 0x0c, 0x38, 0x0c, 0xcc, 0x78, 0x00, },    // 0x33  3
    { 0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x1e, 0x00, },    // 0x34  4
    { 0xfc, 0xc0, 0xf8, 0x0c, 0x0c, 0xcc, 0x78, 0x00, },    // 0x35  5
    { 0x38, 0x60, 0xc0, 0xf8, 0xcc, 0xcc, 0x78, 0x00, },    // 0x36  6
    { 0xfc, 0xcc, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x00, },    // 0x37  7
    { 0x78, 0xcc, 0xcc, 0x78, 0xcc, 0xcc, 0x78, 0x00, },    // 0x38  8
    { 0x78, 0xcc, 0xcc, 0x7c, 0x0c, 0x18, 0x70, 0x00, },    // 0x39  9
    { 0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, 0x00, },    // 0x3a  :
    { 0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, 0x60, },    // 0x3b  ;
    { 0x18, 0x30, 0x60, 0xc0, 0x60, 0x30, 0x18, 0x00, },    // 0x3c  <
    { 0x00, 0x00, 0xfc, 0x00, 0x00, 0xfc, 0x00, 0x00, },    // 0x3d  =
    { 0x60, 0x30, 0x18, 0x0c, 0x18, 0x30, 0x60, 0x00, },    // 0x3e  >
    { 0x78, 0xcc, 0x0c, 0x18, 0x30, 0x00, 0x30, 0x00, },    // 0x3f  ?
    { 0x7c, 0xc6, 0xde, 0xde, 0xde, 0xc0, 0x78, 0x00, },    // 0x40  @
    { 0x30, 0x78, 0xcc, 0xcc, 0xfc, 0xcc, 0xcc, 0x00, },    // 0x41  A
    { 0xfc, 0x66, 0x66, 0x7c, 0x66, 0x66, 0xfc, 0x00, },    // 0x42  B
    { 0x3c, 0x66, 0xc0, 0xc0, 0xc0, 0x66, 0x3c, 0x00, },    // 0x43  C
    { 0xf8, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, },    // 0x44  D
    { 0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0xfe, 0x00, },    // 0x45  E
    { 0xfe, 0x62, 0x68, 0x78, 0x68, 0x60, 0xf0, 0x00, },    // 0x46  F
    { 0x3c, 0x66, 0xc0, 0xc0, 0xce, 0x66, 0x3e, 0x00, },    // 0x47  G
    { 0xcc, 0xcc, 0xcc, 0xfc, 0xcc, 0xcc, 0xcc, 0x00, },    // 0x48  H
    { 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, },    // 0x49  I
    { 0x1e, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, 0x00, },    // 0x4a  J
    { 0xe6, 0x66, 0x6c, 0x78, 0x6c, 0x66, 0xe6, 0x00, },    // 0x4b  K
    { 0xf0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, },    // 0x4c  L
    { 0xc6, 0xee, 0xfe, 0xfe, 0xd6, 0xc6, 0xc6, 0x00, },    // 0x4d  M
    { 0xc6, 0xe6, 0xf6, 0xde, 0xce, 0xc6, 0xc6, 0x00, },    // 0x4e  N
    { 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, },    // 0x4f  O
    { 0xfc, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, 0x00, },    // 0x50  P
    { 0x78, 0xcc, 0xcc, 0xcc, 0xdc, 0x78, 0x1c, 0x00, },    // 0x51  Q
    { 0xfc, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0xe6, 0x00, },    // 0x52  R
    { 0x78, 0xcc, 0xe0, 0x70, 0x1c, 0xcc, 0x78, 0x00, },    // 0x53  S
    { 0xfc, 0xb4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, },    // 0x54  T
    { 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xfc, 0x00, },    // 0x55  U
    { 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x78, 0x30, 0x00, },    // 0x56  V
    { 0xc6, 0xc6, 0xc6, 0xd6, 0xfe, 0xee, 0xc6, 0x00, },    // 0x57  W
    { 0xc6, 0xc6, 0x6c, 0x38, 0x38, 0x6c, 0xc6, 0x00, },    // 0x58  X
    { 0xcc, 0xcc, 0xcc, 0x78, 0x30, 0x30, 0x78, 0x00, },    // 0x59  Y
    { 0xfe, 0xc6, 0x8c, 0x18, 0x32, 0x66, 0xfe, 0x00, },    // 0x5a  Z
    { 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00, },    // 0x5b  [
    { 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x02, 0x00, },    // 0x5c  '\'
    { 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00, },    // 0x5d  ]
    { 0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, },    // 0x5e  ^
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, },    // 0x5f  _
    { 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x60  `
    { 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00, },    // 0x61  a
    { 0xe0, 0x60, 0x60, 0x7c, 0x66, 0x66, 0xdc, 0x00, },    // 0x62  b
    { 0x00, 0x00, 0x78, 0xcc, 0xc0, 0xcc, 0x78, 0x00, },    // 0x63  c
    { 0x1c, 0x0c, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, },    // 0x64  d
    { 0x00, 0x00, 0x78, 0xcc, 0xfc, 0xc0, 0x78, 0x00, },    // 0x65  e
    { 0x38, 0x6c, 0x60, 0xf0, 0x60, 0x60, 0xf0, 0x00, },    // 0x66  f
    { 0x00, 0x00, 0x76, 0xcc, 0xcc, 0x7c, 0x0c, 0xf8, },    // 0x67  g
    { 0xe0, 0x60, 0x6c, 0x76, 0x66, 0x66, 0xe6, 0x00, },    // 0x68  h
    { 0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, },    // 0x69  i
    { 0x0c, 0x00, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, },    // 0x6a  j
    { 0xe0, 0x60, 0x66, 0x6c, 0x78, 0x6c, 0xe6, 0x00, },    // 0x6b  k
    { 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, },    // 0x6c  l
    { 0x00, 0x00, 0xcc, 0xfe, 0xfe, 0xd6, 0xc6, 0x00, },    // 0x6d  m
    { 0x00, 0x00, 0xf8, 0xcc, 0xcc, 0xcc, 0xcc, 0x00, },    // 0x6e  n
    { 0x00, 0x00, 0x78, 0xcc, 0xcc, 0xcc, 0x78, 0x00, },    // 0x6f  o
    { 0x00, 0x00, 0xdc, 0x66, 0x66, 0x7c, 0x60, 0xf0, },    // 0x70  p
    { 0x00, 0x00, 0x76, 0xcc, 0xcc, 0x7c, 0x0c, 0x1e, },    // 0x71  q
    { 0x00, 0x00, 0xdc, 0x76, 0x66, 0x60, 0xf0, 0x00, },    // 0x72  r
    { 0x00, 0x00, 0x7c, 0xc0, 0x78, 0x0c, 0xf8, 0x00, },    // 0x73  s
    { 0x10, 0x30, 0x7c, 0x30, 0x30, 0x34, 0x18, 0x00, },    // 0x74  t
    { 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, },    // 0x75  u
    { 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0x78, 0x30, 0x00, },    // 0x76  v
    { 0x00, 0x00, 0xc6, 0xd6, 0xfe, 0xfe, 0x6c, 0x00, },    // 0x77  w
    { 0x00, 0x00, 0xc6, 0x6c, 0x38, 0x6c, 0xc6, 0x00, },    // 0x78  x
    { 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0xf8, },    // 0x79  y
    { 0x00, 0x00, 0xfc, 0x98, 0x30, 0x64, 0xfc, 0x00, },    // 0x7a  z
    { 0x1c, 0x30, 0x30, 0xe0, 0x30, 0x30, 0x1c, 0x00, },    // 0x7b  {
    { 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, },    // 0x7c  |
    { 0xe0, 0x30, 0x30, 0x1c, 0x30, 0x30, 0xe0, 0x00, },    // 0x7d  }
    { 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x7e  ~
    { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, },    // block cursor
};

#endif

#ifdef USE_FONT8X16
#define FONT_WIDTH  8
#define FONT_HEIGHT 16
#define FONT_STEP   16  // font rows are 16 bytes apart

const uchar fb_font_data[LAST_CHAR-FIRST_CHAR+1][FONT_STEP] = {
//   1,    2,    3,    4,    5,    6,    7,    8,    9,   10,   11,   12,   13,   14,   15,   16
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x20
    { 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, },    // 0x21  !
    { 0x00, 0x00, 0x48, 0x48, 0x48, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x22  "
    { 0x00, 0x00, 0x00, 0x44, 0x44, 0xfe, 0x44, 0x44, 0x44, 0xfe, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, },    // 0x23  #
    { 0x00, 0x10, 0x10, 0x7c, 0x92, 0x90, 0x90, 0x7c, 0x12, 0x12, 0x92, 0x7c, 0x10, 0x10, 0x00, 0x00, },    // 0x24  $
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x94, 0x68, 0x10, 0x2c, 0x52, 0x8c, 0x00, 0x00, 0x00, 0x00, },    // 0x25  %
    { 0x00, 0x00, 0x00, 0x38, 0x44, 0x44, 0x38, 0x56, 0x8c, 0x88, 0x8c, 0x76, 0x00, 0x00, 0x00, 0x00, },    // 0x26  &
    { 0x00, 0x00, 0x10, 0x10, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x27  '
    { 0x00, 0x00, 0x00, 0x04, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, },    // 0x28  (
    { 0x00, 0x00, 0x00, 0x20, 0x10, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, },    // 0x29  )
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x28, 0xfe, 0x28, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x2a  *
    { 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0xfe, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x2b  +
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x10, 0x20, 0x00, 0x00, },    // 0x2c  ,
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x2d  -
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, },    // 0x2e  .
    { 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x2f  /
    { 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x46, 0x4a, 0x52, 0x62, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x30  0
    { 0x00, 0x00, 0x00, 0x08, 0x18, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, },    // 0x31  1
    { 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x04, 0x18, 0x20, 0x40, 0x40, 0x7e, 0x00, 0x00, 0x00, 0x00, },    // 0x32  2
    { 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x02, 0x1c, 0x02, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x33  3
    { 0x00, 0x00, 0x00, 0x04, 0x0c, 0x14, 0x24, 0x44, 0x7e, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, },    // 0x34  4
    { 0x00, 0x00, 0x00, 0x7e, 0x40, 0x40, 0x7c, 0x02, 0x02, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x35  5
    { 0x00, 0x00, 0x00, 0x1c, 0x20, 0x40, 0x40, 0x7c, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x36  6
    { 0x00, 0x00, 0x00, 0x7e, 0x42, 0x02, 0x04, 0x08, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, },    // 0x37  7
    { 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x3c, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x38  8
    { 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x3e, 0x02, 0x02, 0x04, 0x38, 0x00, 0x00, 0x00, 0x00, },    // 0x39  9
    { 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x3a  :
    { 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x30, 0x30, 0x10, 0x20, 0x00, 0x00, 0x00, },    // 0x3b  ;
    { 0x00, 0x00, 0x00, 0x04, 0x08, 0x10, 0x20, 0x40, 0x20, 0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, },    // 0x3c  <
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x3d  =
    { 0x00, 0x00, 0x00, 0x40, 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, },    // 0x3e  >
    { 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x04, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, },    // 0x3f  ?
    { 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x4e, 0x52, 0x52, 0x4e, 0x40, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x40  @
    { 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, },    // 0x41  A
    { 0x00, 0x00, 0x00, 0x7c, 0x42, 0x42, 0x42, 0x7c, 0x42, 0x42, 0x42, 0x7c, 0x00, 0x00, 0x00, 0x00, },    // 0x42  B
    { 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x40, 0x40, 0x40, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x43  C
    { 0x00, 0x00, 0x00, 0x78, 0x44, 0x42, 0x42, 0x42, 0x42, 0x42, 0x44, 0x78, 0x00, 0x00, 0x00, 0x00, },    // 0x44  D
    { 0x00, 0x00, 0x00, 0x7e, 0x40, 0x40, 0x40, 0x78, 0x40, 0x40, 0x40, 0x7e, 0x00, 0x00, 0x00, 0x00, },    // 0x45  E
    { 0x00, 0x00, 0x00, 0x7e, 0x40, 0x40, 0x40, 0x78, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, },    // 0x46  F
    { 0x00, 0x00, 0x00, 0x3c, 0x42, 0x40, 0x40, 0x40, 0x4e, 0x42, 0x46, 0x3a, 0x00, 0x00, 0x00, 0x00, },    // 0x47  G
    { 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, },    // 0x48  H
    { 0x00, 0x00, 0x00, 0x1c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x00, },    // 0x49  I
    { 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x4a  J
    { 0x00, 0x00, 0x00, 0x42, 0x42, 0x44, 0x48, 0x70, 0x48, 0x44, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, },    // 0x4b  K
    { 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7e, 0x00, 0x00, 0x00, 0x00, },    // 0x4c  L
    { 0x00, 0x00, 0x00, 0x82, 0xc6, 0xaa, 0x92, 0x92, 0x82, 0x82, 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, },    // 0x4d  M
    { 0x00, 0x00, 0x00, 0x42, 0x62, 0x52, 0x52, 0x4a, 0x4a, 0x46, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, },    // 0x4e  N
    { 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x4f  O
    { 0x00, 0x00, 0x00, 0x7c, 0x42, 0x42, 0x42, 0x7c, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, },    // 0x50  P
    { 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x4a, 0x4a, 0x3c, 0x04, 0x06, 0x00, 0x00, },    // 0x51  Q
    { 0x00, 0x00, 0x00, 0x7c, 0x42, 0x42, 0x42, 0x7c, 0x44, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, },    // 0x52  R
    { 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x20, 0x18, 0x04, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x53  S
    { 0x00, 0x00, 0x00, 0xfe, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, },    // 0x54  T
    { 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x55  U
    { 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, },    // 0x56  V
    { 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x82, 0x92, 0x92, 0xba, 0x6c, 0x44, 0x00, 0x00, 0x00, 0x00, },    // 0x57  W
    { 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x24, 0x18, 0x24, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, },    // 0x58  X
    { 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x44, 0x38, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, },    // 0x59  Y
    { 0x00, 0x00, 0x00, 0x7e, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x40, 0x7e, 0x00, 0x00, 0x00, 0x00, },    // 0x5a  Z
    { 0x00, 0x00, 0x00, 0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x5b  [
    { 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x5c  '\'
    { 0x00, 0x00, 0x00, 0x3c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x5d  ]
    { 0x00, 0x10, 0x28, 0x44, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x5e  ^
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, },    // 0x5f  _
    { 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x60  `
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x02, 0x3e, 0x42, 0x42, 0x3e, 0x00, 0x00, 0x00, 0x00, },    // 0x61  a
    { 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x7c, 0x42, 0x42, 0x42, 0x42, 0x7c, 0x00, 0x00, 0x00, 0x00, },    // 0x62  b
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x40, 0x40, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x63  c
    { 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x3e, 0x42, 0x42, 0x42, 0x42, 0x3e, 0x00, 0x00, 0x00, 0x00, },    // 0x64  d
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x7e, 0x40, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x65  e
    { 0x00, 0x00, 0x00, 0x1c, 0x22, 0x22, 0x20, 0x78, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, },    // 0x66  f
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x42, 0x42, 0x3e, 0x02, 0x42, 0x3c, 0x00, 0x00, },    // 0x67  g
    { 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, },    // 0x68  h
    { 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x18, 0x08, 0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x00, },    // 0x69  i
    { 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x22, 0x22, 0x1c, 0x00, 0x00, },    // 0x6a  j
    { 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x42, 0x44, 0x78, 0x44, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, },    // 0x6b  k
    { 0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x00, },    // 0x6c  l
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0xee, 0x92, 0x92, 0x92, 0x82, 0x00, 0x00, 0x00, 0x00, },    // 0x6d  m
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, },    // 0x6e  n
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x6f  o
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x42, 0x42, 0x42, 0x7c, 0x40, 0x40, 0x40, 0x00, 0x00, },    // 0x70  p
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x42, 0x42, 0x3e, 0x02, 0x02, 0x03, 0x00, 0x00, },    // 0x71  q
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x62, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, },    // 0x72  r
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x38, 0x04, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, },    // 0x73  s
    { 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x0c, 0x00, 0x00, 0x00, 0x00, },    // 0x74  t
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x46, 0x3a, 0x00, 0x00, 0x00, 0x00, },    // 0x75  u
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, },    // 0x76  v
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x92, 0x92, 0xba, 0x6c, 0x44, 0x00, 0x00, 0x00, 0x00, },    // 0x77  w
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x00, 0x00, 0x00, 0x00, },    // 0x78  x
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x3e, 0x02, 0x04, 0x78, 0x00, 0x00, },    // 0x79  y
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x04, 0x08, 0x10, 0x20, 0x7e, 0x00, 0x00, 0x00, 0x00, },    // 0x7a  z
    { 0x00, 0x00, 0x00, 0x06, 0x08, 0x08, 0x08, 0x30, 0x08, 0x08, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, },    // 0x7b  {
    { 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, },    // 0x7c  |
    { 0x00, 0x00, 0x00, 0x60, 0x10, 0x10, 0x10, 0x0c, 0x10, 0x10, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, },    // 0x7d  }
    { 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },    // 0x7e  ~
    { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, },    // 0x7f  block cursor
};

#endif