summaryrefslogtreecommitdiffstats
path: root/main/dev/fb_fonts.h
blob: 9a96782761bb5f18b855eef513b23eacf477cea8 (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
237
//------------------------------------------------------------------------
// 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