[fb] Add default hard-coded font

For the fb driver to have a font before loading from disk is available,
create a hard-coded font as a byte array.

To create this, added a new scripts/psf_to_cpp.py which also refactored
out much of scripts/parse_font.py into a new shared module
scripts/fontpsf.py.
This commit is contained in:
Justin C. Miller
2021-01-02 15:52:26 -08:00
parent 327cd93c04
commit f6b4a4a103
5 changed files with 387 additions and 25 deletions

266
src/drivers/fb/font.h Normal file
View File

@@ -0,0 +1,266 @@
#pragma once
// This file was autogenerated by psf_to_cpp.py from tamsyn8x16r.psf
const uint8_t font_glyph_size = 16;
const uint8_t font_glyph_width = 8;
const uint8_t font_glyph_height = 16;
const uint16_t font_glyph_count = 256;
const uint8_t font_glyph_data[] = {
0x00,0x00,0x00,0x00,0x7e,0x42,0x42,0x42,0x42,0x42,0x42,0x7e,0x00,0x00,0x00,0x00, // Glyph 00
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 01
0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa, // Glyph 02
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 03
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 04
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 05
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 06
0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 07
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 08
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 09
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 0a
0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 0b
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, // Glyph 0c
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, // Glyph 0d
0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 0e
0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, // Glyph 0f
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 10
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 11
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 12
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 13
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 14
0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, // Glyph 15
0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xf8,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, // Glyph 16
0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 17
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, // Glyph 18
0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, // Glyph 19
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 1a
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 1b
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 1c
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 1d
0x00,0x00,0x00,0x1c,0x22,0x20,0x20,0xf8,0x20,0x20,0x72,0x8c,0x00,0x00,0x00,0x00, // Glyph 1e
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 1f
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 20: ' '
0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00, // Glyph 21: '!'
0x00,0x24,0x24,0x24,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 22: '"'
0x00,0x00,0x00,0x24,0x24,0x7e,0x24,0x24,0x24,0x7e,0x24,0x24,0x00,0x00,0x00,0x00, // Glyph 23: '#'
0x00,0x00,0x08,0x08,0x1e,0x20,0x20,0x1c,0x02,0x02,0x3c,0x08,0x08,0x00,0x00,0x00, // Glyph 24: '$'
0x00,0x00,0x00,0x30,0x49,0x4a,0x34,0x08,0x16,0x29,0x49,0x06,0x00,0x00,0x00,0x00, // Glyph 25: '%'
0x00,0x00,0x30,0x48,0x48,0x48,0x30,0x31,0x49,0x46,0x46,0x39,0x00,0x00,0x00,0x00, // Glyph 26: '&'
0x00,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 27: '''
0x00,0x00,0x04,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x08,0x08,0x04,0x00,0x00, // Glyph 28: '('
0x00,0x00,0x20,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x00,0x00, // Glyph 29: ')'
0x00,0x00,0x00,0x00,0x00,0x24,0x18,0x7e,0x18,0x24,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 2a: '*'
0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x7f,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00, // Glyph 2b: '+'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x08,0x08,0x10,0x00, // Glyph 2c: ','
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 2d: '-'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00, // Glyph 2e: '.'
0x00,0x00,0x02,0x02,0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x00,0x00, // Glyph 2f: '/'
0x00,0x00,0x00,0x3c,0x42,0x46,0x4a,0x52,0x62,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph 30: '0'
0x00,0x00,0x00,0x08,0x18,0x28,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00, // Glyph 31: '1'
0x00,0x00,0x00,0x3c,0x42,0x02,0x02,0x04,0x08,0x10,0x20,0x7e,0x00,0x00,0x00,0x00, // Glyph 32: '2'
0x00,0x00,0x00,0x7e,0x04,0x08,0x1c,0x02,0x02,0x02,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph 33: '3'
0x00,0x00,0x00,0x04,0x0c,0x14,0x24,0x44,0x7e,0x04,0x04,0x04,0x00,0x00,0x00,0x00, // Glyph 34: '4'
0x00,0x00,0x00,0x7e,0x40,0x40,0x7c,0x02,0x02,0x02,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph 35: '5'
0x00,0x00,0x00,0x1c,0x20,0x40,0x40,0x7c,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph 36: '6'
0x00,0x00,0x00,0x7e,0x02,0x04,0x04,0x08,0x08,0x10,0x10,0x10,0x00,0x00,0x00,0x00, // Glyph 37: '7'
0x00,0x00,0x00,0x3c,0x42,0x42,0x42,0x3c,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph 38: '8'
0x00,0x00,0x00,0x3c,0x42,0x42,0x42,0x3e,0x02,0x02,0x04,0x38,0x00,0x00,0x00,0x00, // Glyph 39: '9'
0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00, // Glyph 3a: ':'
0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x08,0x08,0x10,0x00, // Glyph 3b: ';'
0x00,0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x00,0x00,0x00,0x00, // Glyph 3c: '<'
0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 3d: '='
0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x04,0x08,0x10,0x20,0x00,0x00,0x00,0x00, // Glyph 3e: '>'
0x00,0x00,0x3c,0x42,0x02,0x04,0x08,0x10,0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00, // Glyph 3f: '?'
0x00,0x00,0x1c,0x22,0x41,0x4f,0x51,0x51,0x51,0x53,0x4d,0x40,0x20,0x1f,0x00,0x00, // Glyph 40: '@'
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x7e,0x42,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph 41: 'A'
0x00,0x00,0x00,0x7c,0x42,0x42,0x42,0x7c,0x42,0x42,0x42,0x7c,0x00,0x00,0x00,0x00, // Glyph 42: 'B'
0x00,0x00,0x00,0x1e,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x1e,0x00,0x00,0x00,0x00, // Glyph 43: 'C'
0x00,0x00,0x00,0x78,0x44,0x42,0x42,0x42,0x42,0x42,0x44,0x78,0x00,0x00,0x00,0x00, // Glyph 44: 'D'
0x00,0x00,0x00,0x7e,0x40,0x40,0x40,0x7c,0x40,0x40,0x40,0x7e,0x00,0x00,0x00,0x00, // Glyph 45: 'E'
0x00,0x00,0x00,0x7e,0x40,0x40,0x40,0x7c,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00, // Glyph 46: 'F'
0x00,0x00,0x00,0x1e,0x20,0x40,0x40,0x46,0x42,0x42,0x22,0x1e,0x00,0x00,0x00,0x00, // Glyph 47: 'G'
0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x7e,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph 48: 'H'
0x00,0x00,0x00,0x3e,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00, // Glyph 49: 'I'
0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph 4a: 'J'
0x00,0x00,0x00,0x42,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x42,0x00,0x00,0x00,0x00, // Glyph 4b: 'K'
0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7e,0x00,0x00,0x00,0x00, // Glyph 4c: 'L'
0x00,0x00,0x00,0x41,0x63,0x55,0x49,0x49,0x41,0x41,0x41,0x41,0x00,0x00,0x00,0x00, // Glyph 4d: 'M'
0x00,0x00,0x00,0x42,0x62,0x52,0x4a,0x46,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph 4e: 'N'
0x00,0x00,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph 4f: 'O'
0x00,0x00,0x00,0x7c,0x42,0x42,0x42,0x7c,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00, // Glyph 50: 'P'
0x00,0x00,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x04,0x02,0x00,0x00, // Glyph 51: 'Q'
0x00,0x00,0x00,0x7c,0x42,0x42,0x42,0x7c,0x48,0x44,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph 52: 'R'
0x00,0x00,0x00,0x3e,0x40,0x40,0x20,0x18,0x04,0x02,0x02,0x7c,0x00,0x00,0x00,0x00, // Glyph 53: 'S'
0x00,0x00,0x00,0x7f,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00, // Glyph 54: 'T'
0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph 55: 'U'
0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x42,0x24,0x24,0x18,0x18,0x00,0x00,0x00,0x00, // Glyph 56: 'V'
0x00,0x00,0x00,0x41,0x41,0x41,0x41,0x49,0x49,0x49,0x55,0x63,0x00,0x00,0x00,0x00, // Glyph 57: 'W'
0x00,0x00,0x00,0x41,0x41,0x22,0x14,0x08,0x14,0x22,0x41,0x41,0x00,0x00,0x00,0x00, // Glyph 58: 'X'
0x00,0x00,0x00,0x41,0x41,0x22,0x14,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00, // Glyph 59: 'Y'
0x00,0x00,0x00,0x7e,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x7e,0x00,0x00,0x00,0x00, // Glyph 5a: 'Z'
0x00,0x00,0x1e,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1e,0x00,0x00, // Glyph 5b: '['
0x00,0x00,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x02,0x02,0x00,0x00, // Glyph 5c: '\'
0x00,0x00,0x78,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x78,0x00,0x00, // Glyph 5d: ']'
0x00,0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 5e: '^'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00, // Glyph 5f: '_'
0x00,0x20,0x10,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 60: '`'
0x00,0x00,0x00,0x00,0x00,0x3c,0x02,0x02,0x3e,0x42,0x42,0x3e,0x00,0x00,0x00,0x00, // Glyph 61: 'a'
0x00,0x00,0x40,0x40,0x40,0x7c,0x42,0x42,0x42,0x42,0x42,0x7c,0x00,0x00,0x00,0x00, // Glyph 62: 'b'
0x00,0x00,0x00,0x00,0x00,0x3c,0x42,0x40,0x40,0x40,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph 63: 'c'
0x00,0x00,0x02,0x02,0x02,0x3e,0x42,0x42,0x42,0x42,0x42,0x3e,0x00,0x00,0x00,0x00, // Glyph 64: 'd'
0x00,0x00,0x00,0x00,0x00,0x3c,0x42,0x42,0x7e,0x40,0x40,0x3e,0x00,0x00,0x00,0x00, // Glyph 65: 'e'
0x00,0x00,0x0e,0x10,0x10,0x7e,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00, // Glyph 66: 'f'
0x00,0x00,0x00,0x00,0x00,0x3e,0x42,0x42,0x42,0x42,0x42,0x3e,0x02,0x02,0x3c,0x00, // Glyph 67: 'g'
0x00,0x00,0x40,0x40,0x40,0x7c,0x42,0x42,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph 68: 'h'
0x00,0x00,0x08,0x08,0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00, // Glyph 69: 'i'
0x00,0x00,0x04,0x04,0x00,0x1c,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x38,0x00, // Glyph 6a: 'j'
0x00,0x00,0x40,0x40,0x40,0x44,0x48,0x50,0x70,0x48,0x44,0x42,0x00,0x00,0x00,0x00, // Glyph 6b: 'k'
0x00,0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00, // Glyph 6c: 'l'
0x00,0x00,0x00,0x00,0x00,0x77,0x49,0x49,0x49,0x49,0x49,0x49,0x00,0x00,0x00,0x00, // Glyph 6d: 'm'
0x00,0x00,0x00,0x00,0x00,0x7c,0x42,0x42,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph 6e: 'n'
0x00,0x00,0x00,0x00,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph 6f: 'o'
0x00,0x00,0x00,0x00,0x00,0x7c,0x42,0x42,0x42,0x42,0x42,0x7c,0x40,0x40,0x40,0x00, // Glyph 70: 'p'
0x00,0x00,0x00,0x00,0x00,0x3e,0x42,0x42,0x42,0x42,0x42,0x3e,0x02,0x02,0x02,0x00, // Glyph 71: 'q'
0x00,0x00,0x00,0x00,0x00,0x2e,0x30,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00, // Glyph 72: 'r'
0x00,0x00,0x00,0x00,0x00,0x3e,0x40,0x20,0x18,0x04,0x02,0x7c,0x00,0x00,0x00,0x00, // Glyph 73: 's'
0x00,0x00,0x00,0x10,0x10,0x7e,0x10,0x10,0x10,0x10,0x10,0x0e,0x00,0x00,0x00,0x00, // Glyph 74: 't'
0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3e,0x00,0x00,0x00,0x00, // Glyph 75: 'u'
0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x42,0x24,0x24,0x18,0x18,0x00,0x00,0x00,0x00, // Glyph 76: 'v'
0x00,0x00,0x00,0x00,0x00,0x41,0x41,0x41,0x49,0x49,0x55,0x63,0x00,0x00,0x00,0x00, // Glyph 77: 'w'
0x00,0x00,0x00,0x00,0x00,0x41,0x22,0x14,0x08,0x14,0x22,0x41,0x00,0x00,0x00,0x00, // Glyph 78: 'x'
0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3e,0x02,0x02,0x3c,0x00, // Glyph 79: 'y'
0x00,0x00,0x00,0x00,0x00,0x7e,0x04,0x08,0x10,0x20,0x40,0x7e,0x00,0x00,0x00,0x00, // Glyph 7a: 'z'
0x00,0x0e,0x10,0x10,0x10,0x10,0x10,0xe0,0x10,0x10,0x10,0x10,0x10,0x0e,0x00,0x00, // Glyph 7b: '{'
0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00, // Glyph 7c: '|'
0x00,0x70,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x70,0x00,0x00, // Glyph 7d: '}'
0x00,0x00,0x31,0x49,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 7e: '~'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 7f
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 80
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 81
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 82
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 83
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 84
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 85
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 86
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 87
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 88
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 89
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 8a
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 8b
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 8c
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 8d
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 8e
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 8f
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 90
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 91
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 92
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 93
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 94
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 95
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 96
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 97
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 98
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 99
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 9a
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 9b
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 9c
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 9d
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 9e
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph 9f
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph a0
0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00, // Glyph a1: '¡'
0x00,0x00,0x08,0x08,0x1c,0x22,0x40,0x40,0x40,0x22,0x1c,0x08,0x08,0x00,0x00,0x00, // Glyph a2: '¢'
0x00,0x00,0x00,0x1c,0x22,0x20,0x20,0xf8,0x20,0x20,0x72,0x8c,0x00,0x00,0x00,0x00, // Glyph a3: '£'
0x00,0x00,0x00,0x00,0x42,0x3c,0x24,0x24,0x24,0x3c,0x42,0x00,0x00,0x00,0x00,0x00, // Glyph a4: '¤'
0x00,0x00,0x00,0x41,0x22,0x14,0x08,0x3e,0x08,0x3e,0x08,0x08,0x00,0x00,0x00,0x00, // Glyph a5: '¥'
0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x00,0x00, // Glyph a6: '¦'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph a7: '§'
0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph a8: '¨'
0x00,0x00,0x00,0x1c,0x22,0x41,0x4d,0x51,0x51,0x4d,0x41,0x22,0x1c,0x00,0x00,0x00, // Glyph a9: '©'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph aa: 'ª'
0x00,0x00,0x00,0x00,0x00,0x09,0x12,0x24,0x48,0x24,0x12,0x09,0x00,0x00,0x00,0x00, // Glyph ab: '«'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph ac: '¬'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph ad
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph ae: '®'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph af: '¯'
0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph b0: '°'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph b1: '±'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph b2: '²'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph b3: '³'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph b4: '´'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph b5: 'µ'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph b6: '¶'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph b7: '·'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x30,0x00, // Glyph b8: '¸'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph b9: '¹'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph ba: 'º'
0x00,0x00,0x00,0x00,0x00,0x48,0x24,0x12,0x09,0x12,0x24,0x48,0x00,0x00,0x00,0x00, // Glyph bb: '»'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph bc: '¼'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph bd: '½'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Glyph be: '¾'
0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x00,0x00,0x08,0x10,0x20,0x40,0x42,0x3c,0x00, // Glyph bf: '¿'
0x20,0x10,0x00,0x18,0x18,0x24,0x24,0x24,0x7e,0x42,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph c0: 'À'
0x04,0x08,0x00,0x18,0x18,0x24,0x24,0x24,0x7e,0x42,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph c1: 'Á'
0x18,0x24,0x00,0x18,0x18,0x24,0x24,0x24,0x7e,0x42,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph c2: 'Â'
0x32,0x4c,0x00,0x18,0x18,0x24,0x24,0x24,0x7e,0x42,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph c3: 'Ã'
0x24,0x24,0x00,0x18,0x18,0x24,0x24,0x24,0x7e,0x42,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph c4: 'Ä'
0x18,0x24,0x24,0x18,0x18,0x24,0x24,0x24,0x7e,0x42,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph c5: 'Å'
0x00,0x00,0x00,0x0f,0x14,0x14,0x24,0x27,0x3c,0x44,0x44,0x47,0x00,0x00,0x00,0x00, // Glyph c6: 'Æ'
0x00,0x00,0x00,0x1e,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x1e,0x08,0x08,0x30,0x00, // Glyph c7: 'Ç'
0x20,0x10,0x00,0x7e,0x40,0x40,0x40,0x7c,0x40,0x40,0x40,0x7e,0x00,0x00,0x00,0x00, // Glyph c8: 'È'
0x04,0x08,0x00,0x7e,0x40,0x40,0x40,0x7c,0x40,0x40,0x40,0x7e,0x00,0x00,0x00,0x00, // Glyph c9: 'É'
0x18,0x24,0x00,0x7e,0x40,0x40,0x40,0x7c,0x40,0x40,0x40,0x7e,0x00,0x00,0x00,0x00, // Glyph ca: 'Ê'
0x24,0x24,0x00,0x7e,0x40,0x40,0x40,0x7c,0x40,0x40,0x40,0x7e,0x00,0x00,0x00,0x00, // Glyph cb: 'Ë'
0x10,0x08,0x00,0x3e,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00, // Glyph cc: 'Ì'
0x04,0x08,0x00,0x3e,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00, // Glyph cd: 'Í'
0x18,0x24,0x00,0x3e,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00, // Glyph ce: 'Î'
0x22,0x22,0x00,0x3e,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00, // Glyph cf: 'Ï'
0x00,0x00,0x00,0x3c,0x22,0x21,0x21,0x79,0x21,0x21,0x22,0x3c,0x00,0x00,0x00,0x00, // Glyph d0: 'Ð'
0x32,0x4c,0x00,0x42,0x62,0x52,0x4a,0x46,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph d1: 'Ñ'
0x10,0x08,0x00,0x1c,0x22,0x41,0x41,0x41,0x41,0x41,0x22,0x1c,0x00,0x00,0x00,0x00, // Glyph d2: 'Ò'
0x04,0x08,0x00,0x1c,0x22,0x41,0x41,0x41,0x41,0x41,0x22,0x1c,0x00,0x00,0x00,0x00, // Glyph d3: 'Ó'
0x18,0x24,0x00,0x1c,0x22,0x41,0x41,0x41,0x41,0x41,0x22,0x1c,0x00,0x00,0x00,0x00, // Glyph d4: 'Ô'
0x32,0x4c,0x00,0x1c,0x22,0x41,0x41,0x41,0x41,0x41,0x22,0x1c,0x00,0x00,0x00,0x00, // Glyph d5: 'Õ'
0x24,0x24,0x00,0x1c,0x22,0x41,0x41,0x41,0x41,0x41,0x22,0x1c,0x00,0x00,0x00,0x00, // Glyph d6: 'Ö'
0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x14,0x08,0x14,0x22,0x00,0x00,0x00,0x00,0x00, // Glyph d7: '×'
0x00,0x00,0x02,0x3c,0x42,0x46,0x4a,0x52,0x62,0x42,0x42,0x3c,0x40,0x00,0x00,0x00, // Glyph d8: 'Ø'
0x20,0x10,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph d9: 'Ù'
0x04,0x08,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph da: 'Ú'
0x18,0x24,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph db: 'Û'
0x24,0x24,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph dc: 'Ü'
0x04,0x08,0x00,0x41,0x41,0x22,0x14,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00, // Glyph dd: 'Ý'
0x00,0x00,0x00,0x40,0x40,0x7c,0x42,0x42,0x42,0x7c,0x40,0x40,0x00,0x00,0x00,0x00, // Glyph de: 'Þ'
0x00,0x00,0x00,0x3c,0x42,0x44,0x4c,0x42,0x42,0x42,0x44,0x58,0x00,0x00,0x00,0x00, // Glyph df: 'ß'
0x00,0x00,0x20,0x10,0x00,0x3c,0x02,0x02,0x3e,0x42,0x42,0x3e,0x00,0x00,0x00,0x00, // Glyph e0: 'à'
0x00,0x00,0x04,0x08,0x00,0x3c,0x02,0x02,0x3e,0x42,0x42,0x3e,0x00,0x00,0x00,0x00, // Glyph e1: 'á'
0x00,0x18,0x24,0x00,0x00,0x3c,0x02,0x02,0x3e,0x42,0x42,0x3e,0x00,0x00,0x00,0x00, // Glyph e2: 'â'
0x00,0x32,0x4c,0x00,0x00,0x3c,0x02,0x02,0x3e,0x42,0x42,0x3e,0x00,0x00,0x00,0x00, // Glyph e3: 'ã'
0x00,0x00,0x24,0x24,0x00,0x3c,0x02,0x02,0x3e,0x42,0x42,0x3e,0x00,0x00,0x00,0x00, // Glyph e4: 'ä'
0x18,0x24,0x24,0x18,0x00,0x3c,0x02,0x02,0x3e,0x42,0x42,0x3e,0x00,0x00,0x00,0x00, // Glyph e5: 'å'
0x00,0x00,0x00,0x00,0x00,0x36,0x09,0x39,0x4f,0x48,0x48,0x37,0x00,0x00,0x00,0x00, // Glyph e6: 'æ'
0x00,0x00,0x00,0x00,0x00,0x3c,0x42,0x40,0x40,0x40,0x42,0x3c,0x08,0x08,0x30,0x00, // Glyph e7: 'ç'
0x00,0x00,0x20,0x10,0x00,0x3c,0x42,0x42,0x7e,0x40,0x40,0x3e,0x00,0x00,0x00,0x00, // Glyph e8: 'è'
0x00,0x00,0x04,0x08,0x00,0x3c,0x42,0x42,0x7e,0x40,0x40,0x3e,0x00,0x00,0x00,0x00, // Glyph e9: 'é'
0x00,0x18,0x24,0x00,0x00,0x3c,0x42,0x42,0x7e,0x40,0x40,0x3e,0x00,0x00,0x00,0x00, // Glyph ea: 'ê'
0x00,0x00,0x24,0x24,0x00,0x3c,0x42,0x42,0x7e,0x40,0x40,0x3e,0x00,0x00,0x00,0x00, // Glyph eb: 'ë'
0x00,0x00,0x10,0x08,0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00, // Glyph ec: 'ì'
0x00,0x00,0x04,0x08,0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00, // Glyph ed: 'í'
0x00,0x18,0x24,0x00,0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00, // Glyph ee: 'î'
0x00,0x00,0x24,0x24,0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00, // Glyph ef: 'ï'
0x00,0x09,0x06,0x1a,0x01,0x1d,0x23,0x41,0x41,0x41,0x22,0x1c,0x00,0x00,0x00,0x00, // Glyph f0: 'ð'
0x00,0x32,0x4c,0x00,0x00,0x7c,0x42,0x42,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00, // Glyph f1: 'ñ'
0x00,0x00,0x10,0x08,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph f2: 'ò'
0x00,0x00,0x04,0x08,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph f3: 'ó'
0x00,0x18,0x24,0x00,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph f4: 'ô'
0x00,0x32,0x4c,0x00,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph f5: 'õ'
0x00,0x00,0x24,0x24,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00, // Glyph f6: 'ö'
0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x7e,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00, // Glyph f7: '÷'
0x00,0x00,0x00,0x00,0x02,0x3c,0x46,0x4a,0x52,0x62,0x42,0x3c,0x40,0x00,0x00,0x00, // Glyph f8: 'ø'
0x00,0x00,0x20,0x10,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3e,0x00,0x00,0x00,0x00, // Glyph f9: 'ù'
0x00,0x00,0x04,0x08,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3e,0x00,0x00,0x00,0x00, // Glyph fa: 'ú'
0x00,0x18,0x24,0x00,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3e,0x00,0x00,0x00,0x00, // Glyph fb: 'û'
0x00,0x00,0x24,0x24,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3e,0x00,0x00,0x00,0x00, // Glyph fc: 'ü'
0x00,0x00,0x04,0x08,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3e,0x02,0x02,0x3c,0x00, // Glyph fd: 'ý'
0x00,0x00,0x40,0x40,0x40,0x5c,0x62,0x41,0x41,0x41,0x62,0x5c,0x40,0x40,0x40,0x00, // Glyph fe: 'þ'
0x00,0x00,0x24,0x24,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3e,0x02,0x02,0x3c,0x00, // Glyph ff: 'ÿ'
};