mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 00:14:32 -08:00
[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:
75
scripts/fontpsf.py
Normal file
75
scripts/fontpsf.py
Normal file
@@ -0,0 +1,75 @@
|
||||
_MAGIC = (0x72, 0xb5, 0x4a, 0x86)
|
||||
_VERSION = 0
|
||||
|
||||
class PSF2:
|
||||
from collections import namedtuple
|
||||
Header = namedtuple("PSF2Header",
|
||||
["version", "offset", "flags", "count", "charsize", "height", "width"])
|
||||
|
||||
def __init__(self, filename, header, data):
|
||||
self.__filename = filename
|
||||
self.__header = header
|
||||
self.__data = data
|
||||
|
||||
data = property(lambda self: self.__data)
|
||||
header = property(lambda self: self.__header)
|
||||
count = property(lambda self: self.__header.count)
|
||||
charsize = property(lambda self: self.__header.charsize)
|
||||
dimension = property(lambda self: (self.__header.width, self.__header.height))
|
||||
filename = property(lambda self: self.__filename)
|
||||
|
||||
@classmethod
|
||||
def load(cls, filename):
|
||||
from os.path import basename
|
||||
from struct import unpack_from
|
||||
|
||||
data = open(filename, 'rb').read()
|
||||
|
||||
fmt = "BBBBIIIIIII"
|
||||
values = unpack_from(fmt, data)
|
||||
|
||||
if values[:len(_MAGIC)] != _MAGIC:
|
||||
raise Exception("Bad magic number in header")
|
||||
|
||||
header = PSF2.Header(*values[len(_MAGIC):])
|
||||
if header.version != _VERSION:
|
||||
raise Exception(f"Bad version {header.version} in header")
|
||||
|
||||
return cls(basename(filename), header, data)
|
||||
|
||||
class Glyph:
|
||||
__slots__ = ['index', 'data']
|
||||
def __init__(self, i, data):
|
||||
self.index = i
|
||||
self.data = data
|
||||
def __index__(self):
|
||||
return self.index
|
||||
def empty(self):
|
||||
return not bool([b for b in self.data if b != 0])
|
||||
def description(self):
|
||||
c = chr(self.index)
|
||||
if c.isprintable():
|
||||
return "Glyph {:02x}: '{}'".format(self.index, c)
|
||||
else:
|
||||
return "Glyph {:02x}".format(self.index)
|
||||
|
||||
def __getitem__(self, i):
|
||||
c = self.__header.charsize
|
||||
n = i * c + self.__header.offset
|
||||
return PSF2.Glyph(i, self.__data[n:n+c])
|
||||
|
||||
class __iter:
|
||||
__slots__ = ['font', 'n']
|
||||
def __init__(self, font):
|
||||
self.font = font
|
||||
self.n = 0
|
||||
def __next__(self):
|
||||
if self.n < self.font.count:
|
||||
glyph = self.font[self.n]
|
||||
self.n += 1
|
||||
return glyph
|
||||
else:
|
||||
raise StopIteration
|
||||
|
||||
def __iter__(self):
|
||||
return PSF2.__iter(self)
|
||||
34
scripts/parse_font.py
Normal file → Executable file
34
scripts/parse_font.py
Normal file → Executable file
@@ -1,21 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
MAGIC = (0x72, 0xb5, 0x4a, 0x86)
|
||||
|
||||
from collections import namedtuple
|
||||
PSF2 = namedtuple("PSF2", ["version", "offset", "flags", "count", "charsize", "height", "width"])
|
||||
|
||||
def read_header(data):
|
||||
from struct import unpack_from, calcsize
|
||||
|
||||
fmt = "BBBBIIIIIII"
|
||||
|
||||
values = unpack_from(fmt, data)
|
||||
if values[:len(MAGIC)] != MAGIC:
|
||||
raise Exception("Bad magic number in header")
|
||||
|
||||
return PSF2(*values[len(MAGIC):])
|
||||
|
||||
from fontpsf import PSF2
|
||||
|
||||
def print_glyph(header, data):
|
||||
bw = (header.width + 7) // 8
|
||||
@@ -28,16 +13,15 @@ def print_glyph(header, data):
|
||||
|
||||
|
||||
def display_font(filename):
|
||||
data = open(filename, 'rb').read()
|
||||
font = PSF2.load(filename)
|
||||
print(font.header)
|
||||
|
||||
header = read_header(data)
|
||||
print(header)
|
||||
|
||||
c = header.charsize
|
||||
for i in range(0, header.count):
|
||||
n = i * c + header.offset
|
||||
print("Glyph {}:".format(i))
|
||||
print_glyph(header, data[n:n+c])
|
||||
for glyph in font:
|
||||
if glyph.empty():
|
||||
print("{}: BLANK".format(glyph.description()))
|
||||
else:
|
||||
print("{}:".format(glyph.description()))
|
||||
print_glyph(font.header, glyph.data)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
27
scripts/psf_to_cpp.py
Executable file
27
scripts/psf_to_cpp.py
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from fontpsf import PSF2
|
||||
|
||||
def print_header(filename):
|
||||
font = PSF2.load(filename)
|
||||
|
||||
print("#pragma once")
|
||||
print(f"// This file was autogenerated by psf_to_cpp.py from {font.filename}\n")
|
||||
|
||||
print(f"const uint8_t font_glyph_size = {font.charsize};")
|
||||
print(f"const uint8_t font_glyph_width = {font.dimension[0]};")
|
||||
print(f"const uint8_t font_glyph_height = {font.dimension[1]};")
|
||||
print(f"const uint16_t font_glyph_count = {font.count};\n")
|
||||
|
||||
print('const uint8_t font_glyph_data[] = {')
|
||||
|
||||
for glyph in font:
|
||||
print(" ", "".join([f"0x{b:02x}," for b in glyph.data]), end="")
|
||||
print(" // {}".format(glyph.description()))
|
||||
|
||||
print("};")
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
for filename in sys.argv[1:]:
|
||||
print_header(filename)
|
||||
266
src/drivers/fb/font.h
Normal file
266
src/drivers/fb/font.h
Normal 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: 'ÿ'
|
||||
};
|
||||
@@ -8,6 +8,8 @@
|
||||
|
||||
#include <j6libc/syscalls.h>
|
||||
|
||||
#include "font.h"
|
||||
|
||||
extern "C" {
|
||||
int main(int, const char **);
|
||||
void _get_init(size_t *initc, struct j6_init_value **initv);
|
||||
@@ -33,6 +35,14 @@ main(int argc, const char **argv)
|
||||
if (!fb)
|
||||
return 1;
|
||||
|
||||
size_t font_size = sizeof(font_glyph_data);
|
||||
if (font_size != (font_glyph_size*font_glyph_count)) {
|
||||
_syscall_system_log("fb driver has wrong font data, exiting");
|
||||
return 1;
|
||||
}
|
||||
|
||||
volatile uint8_t const * p = font_glyph_data;
|
||||
|
||||
uint32_t *fbp = reinterpret_cast<uint32_t*>(fb->addr);
|
||||
size_t size = fb->size;
|
||||
for (size_t i=0; i < size/4; ++i) {
|
||||
|
||||
Reference in New Issue
Block a user