1556 lines
30 KiB
Python
1556 lines
30 KiB
Python
# SPDX-FileCopyrightText: 2018 Tony DiCola for Adafruit Industries
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
""" Quick script to convert Adafruit GFX font into binary file.
|
|
Taken from glcdfont.c from Adafruit GFX Arduino library. """
|
|
# fmt: off
|
|
WIDTH = 5
|
|
HEIGHT = 8
|
|
FONT = ( # Code Page 437 https://www.ascii-codes.com/
|
|
"........", # 0 0x00 NUL (Null)
|
|
"........",
|
|
"........",
|
|
"........",
|
|
"........",
|
|
|
|
"..#####.", # 1 0x01 SOH (Start of Header)
|
|
".#.##.##",
|
|
".#..####",
|
|
".#.##.##",
|
|
"..#####.",
|
|
|
|
"..#####.", # 2 0x02 STX (Start of Text)
|
|
".##.#.##",
|
|
".#..####",
|
|
".##.#.##",
|
|
"..#####.",
|
|
|
|
"...###..", # 3 0x03 ETX (End of Text)
|
|
"..#####.",
|
|
".#####..",
|
|
"..#####.",
|
|
"...###..",
|
|
|
|
"...##...", # 4 0x04 EOT (End of Transmission)
|
|
"..####..",
|
|
".######.",
|
|
"..####..",
|
|
"...##...",
|
|
|
|
"...###..", # 5 0x05 ENQ (Enquiry)
|
|
".#.#.###",
|
|
".#####.#",
|
|
".#.#.###",
|
|
"...###..",
|
|
|
|
"...###..", # 6 0x06 ACK (Acknowledge)
|
|
".#.####.",
|
|
".#######",
|
|
".#.####.",
|
|
"...###..",
|
|
|
|
"........", # 7 0x07 BEL (Bell)
|
|
"...##...",
|
|
"..####..",
|
|
"...##...",
|
|
"........",
|
|
|
|
"########", # 8 0x08 BS (BackSpace)
|
|
"###..###",
|
|
"##....##",
|
|
"###..###",
|
|
"########",
|
|
|
|
"........", # 9 0x09 HT (Horizontal Tabulation)
|
|
"...##...",
|
|
"..#..#..",
|
|
"...##...",
|
|
"........",
|
|
|
|
"########", # 10 0x0A LF (Line Feed)
|
|
"###..###",
|
|
"##.##.##",
|
|
"###..###",
|
|
"########",
|
|
|
|
"..##....", # 11 0x0B VT (Vertical Tabulation)
|
|
".#..#...",
|
|
"..###.#.",
|
|
".....##.",
|
|
"....###.",
|
|
|
|
"..#..##.", # 12 0x0C FF (Form Feed)
|
|
"..#.#..#",
|
|
".####..#",
|
|
"..#.#..#",
|
|
"..#..##.",
|
|
|
|
".#......", # 13 0x0D CR (Carriage Return)
|
|
".#######",
|
|
".....#.#",
|
|
".....#.#",
|
|
".....###",
|
|
|
|
".#......", # 14 0x0E SO (Shift Out)
|
|
".#######",
|
|
".....#.#",
|
|
"..#..#.#",
|
|
"..######",
|
|
|
|
".#.##.#.", # 15 0x0F SI (Shift In)
|
|
"..####..",
|
|
"###..###",
|
|
"..####..",
|
|
".#.##.#.",
|
|
|
|
".#######", # 16 0x10 DLE (Data Link Escape)
|
|
"..#####.",
|
|
"...###..",
|
|
"...###..",
|
|
"....#...",
|
|
|
|
"....#...", # 17 0x11 DC1 (Device Control 1)
|
|
"...###..",
|
|
"...###..",
|
|
"..#####.",
|
|
".#######",
|
|
|
|
"...#.#..", # 18 0x12 DC2 (Device Control 2)
|
|
"..#...#.",
|
|
".#######",
|
|
"..#...#.",
|
|
"...#.#..",
|
|
|
|
".#.#####", # 19 0x13 DC3 (Device Control 3)
|
|
".#.#####",
|
|
"........",
|
|
".#.#####",
|
|
".#.#####",
|
|
|
|
".....##.", # 20 0x14 DC4 (Device Control 4)
|
|
"....#..#",
|
|
".#######",
|
|
".......#",
|
|
".#######",
|
|
|
|
"........", # 21 0x15 NAK (Negative Acknowledge)
|
|
".##..##.",
|
|
"#...#..#",
|
|
"#..#.#.#",
|
|
".##.#.#.",
|
|
|
|
".##.....", # 22 0x16 SYN (Synchronous Idle)
|
|
".##.....",
|
|
".##.....",
|
|
".##.....",
|
|
".##.....",
|
|
|
|
"#..#.#..", # 23 0x17 ETB (End of Transmission Block)
|
|
"#.#...#.",
|
|
"########",
|
|
"#.#...#.",
|
|
"#..#.#..",
|
|
|
|
"....#...", # 24 0x18 CAN (Cancel)
|
|
".....#..",
|
|
".######.",
|
|
".....#..",
|
|
"....#...",
|
|
|
|
"...#....", # 25 0x19 EM (End of Medium)
|
|
"..#.....",
|
|
".######.",
|
|
"..#.....",
|
|
"...#....",
|
|
|
|
"....#...", # 26 0x1A SUB (Substitute)
|
|
"....#...",
|
|
"..#.#.#.",
|
|
"...###..",
|
|
"....#...",
|
|
|
|
"....#...", # 27 0x1B ESC (Escape)
|
|
"...###..",
|
|
"..#.#.#.",
|
|
"....#...",
|
|
"....#...",
|
|
|
|
"...####.", # 28 0x1C FS (File Separator)
|
|
"...#....",
|
|
"...#....",
|
|
"...#....",
|
|
"...#....",
|
|
|
|
"....##..", # 29 0x1D GS (Group Separator)
|
|
"...####.",
|
|
"....##..",
|
|
"...####.",
|
|
"....##..",
|
|
|
|
"..##....", # 30 0x1E RS (Record Separator)
|
|
"..###...",
|
|
"..#####.",
|
|
"..###...",
|
|
"..##....",
|
|
|
|
".....##.", # 31 0x1F US (Unit Separator)
|
|
"....###.",
|
|
"..#####.",
|
|
"....###.",
|
|
".....##.",
|
|
|
|
"........", # 32 0x20 Space
|
|
"........",
|
|
"........",
|
|
"........",
|
|
"........",
|
|
|
|
"........", # 33 0x21 ! Exclamation mark
|
|
"........",
|
|
".#.#####",
|
|
"........",
|
|
"........",
|
|
|
|
"........", # 34 0x22 " Quotation Mark
|
|
".....###",
|
|
"........",
|
|
".....###",
|
|
"........",
|
|
|
|
"...#.#..", # 35 0x23
|
|
".#######",
|
|
"...#.#..",
|
|
".#######",
|
|
"...#.#..",
|
|
|
|
"..#..#..", # 36 0x24 $ Dollar
|
|
"..#.#.#.",
|
|
".#######",
|
|
"..#.#.#.",
|
|
"...#..#.",
|
|
|
|
"..#...##", # 37 0x25 % Percent
|
|
"...#..##",
|
|
"....#...",
|
|
".##..#..",
|
|
".##...#.",
|
|
|
|
"..##.##.", # 38 0x26 & Ampersand
|
|
".#..#..#",
|
|
".#.#.##.",
|
|
"..#.....",
|
|
".#.#....",
|
|
|
|
"........", # 39 0x27 ' Apostrophe
|
|
"....#...",
|
|
".....###",
|
|
"......##",
|
|
"........",
|
|
|
|
"........", # 40 0x28 ( Open bracket
|
|
"...###..",
|
|
"..#...#.",
|
|
".#.....#",
|
|
"........",
|
|
|
|
"........", # 41 0x29 ) Close bracket
|
|
".#.....#",
|
|
"..#...#.",
|
|
"...###..",
|
|
"........",
|
|
|
|
"..#.#.#.", # 42 0x2A * Asterisk
|
|
"...###..",
|
|
".#######",
|
|
"...###..",
|
|
"..#.#.#.",
|
|
|
|
"....#...", # 43 0x2B + Plus
|
|
"....#...",
|
|
"..#####.",
|
|
"....#...",
|
|
"....#...",
|
|
|
|
"........", # 44 0x2C , Comma
|
|
"#.......",
|
|
".###....",
|
|
"..##....",
|
|
"........",
|
|
|
|
"....#...", # 45 0x2D - Dash
|
|
"....#...",
|
|
"....#...",
|
|
"....#...",
|
|
"....#...",
|
|
|
|
"........", # 46 0x2E . Full stop
|
|
"........",
|
|
".##.....",
|
|
".##.....",
|
|
"........",
|
|
|
|
"..#.....", # 47 0x2F / Slash
|
|
"...#....",
|
|
"....#...",
|
|
".....#..",
|
|
"......#.",
|
|
|
|
"..#####.", # 48 0x30 0 Zero
|
|
".#.#...#",
|
|
".#..#..#",
|
|
".#...#.#",
|
|
"..#####.",
|
|
|
|
"........", # 49 0x31 1 One
|
|
".#....#.",
|
|
".#######",
|
|
".#......",
|
|
"........",
|
|
|
|
".###..#.", # 50 0x32 2 Two
|
|
".#..#..#",
|
|
".#..#..#",
|
|
".#..#..#",
|
|
".#...##.",
|
|
|
|
"..#....#", # 51 0x33 3 Three
|
|
".#.....#",
|
|
".#..#..#",
|
|
".#..##.#",
|
|
"..##..##",
|
|
|
|
"...##...", # 52 0x34 4 Four
|
|
"...#.#..",
|
|
"...#..#.",
|
|
".#######",
|
|
"...#....",
|
|
|
|
"..#..###", # 53 0x35 5 Five
|
|
".#...#.#",
|
|
".#...#.#",
|
|
".#...#.#",
|
|
"..###..#",
|
|
|
|
"..####..", # 54 0x36 6 Six
|
|
".#..#.#.",
|
|
".#..#..#",
|
|
".#..#..#",
|
|
"..##...#",
|
|
|
|
".#.....#", # 55 0x37 7 Seven
|
|
"..#....#",
|
|
"...#...#",
|
|
"....#..#",
|
|
".....###",
|
|
|
|
"..##.##.", # 56 0x38 8 Eight
|
|
".#..#..#",
|
|
".#..#..#",
|
|
".#..#..#",
|
|
"..##.##.",
|
|
|
|
".#...##.", # 57 0x39 9 Nine
|
|
".#..#..#",
|
|
".#..#..#",
|
|
"..#.#..#",
|
|
"...####.",
|
|
|
|
"........", # 58 0x3A : Colon
|
|
"........",
|
|
"...#.#..",
|
|
"........",
|
|
"........",
|
|
|
|
"........", # 59 0x3B ; Semicolon
|
|
".#......",
|
|
"..##.#..",
|
|
"........",
|
|
"........",
|
|
|
|
"........", # 60 0x3C < Less than
|
|
"....#...",
|
|
"...#.#..",
|
|
"..#...#.",
|
|
".#.....#",
|
|
|
|
"...#.#..", # 61 0x3D = Equals sign
|
|
"...#.#..",
|
|
"...#.#..",
|
|
"...#.#..",
|
|
"...#.#..",
|
|
|
|
"........", # 62 0x3E > Greater than
|
|
".#.....#",
|
|
"..#...#.",
|
|
"...#.#..",
|
|
"....#...",
|
|
|
|
"......#.", # 63 0x3F ? Question mark
|
|
".......#",
|
|
".#.##..#",
|
|
"....#..#",
|
|
".....##.",
|
|
|
|
"..#####.", # 64 0x40 @ At
|
|
".#.....#",
|
|
".#.###.#",
|
|
".#.##..#",
|
|
".#..###.",
|
|
|
|
".#####..", # 65 0x41 A Upper case A
|
|
"...#..#.",
|
|
"...#...#",
|
|
"...#..#.",
|
|
".#####..",
|
|
|
|
".#######", # 66 0x42 B Upper case B
|
|
".#..#..#",
|
|
".#..#..#",
|
|
".#..#..#",
|
|
"..##.##.",
|
|
|
|
"..#####.", # 67 0x43 C Upper case C
|
|
".#.....#",
|
|
".#.....#",
|
|
".#.....#",
|
|
"..#...#.",
|
|
|
|
".#######", # 68 0x44 D Upper case D
|
|
".#.....#",
|
|
".#.....#",
|
|
".#.....#",
|
|
"..#####.",
|
|
|
|
".#######", # 69 0x45 E Upper case E
|
|
".#..#..#",
|
|
".#..#..#",
|
|
".#..#..#",
|
|
".#.....#",
|
|
|
|
".#######", # 70 0x46 F Upper case F
|
|
"....#..#",
|
|
"....#..#",
|
|
"....#..#",
|
|
".......#",
|
|
|
|
"..#####.", # 71 0x47 G Upper case G
|
|
".#.....#",
|
|
".#.....#",
|
|
".#.#...#",
|
|
".###..##",
|
|
|
|
".#######", # 72 0x48 H Upper case H
|
|
"....#...",
|
|
"....#...",
|
|
"....#...",
|
|
".#######",
|
|
|
|
"........", # 73 0x49 I Upper case I
|
|
".#.....#",
|
|
".#######",
|
|
".#.....#",
|
|
"........",
|
|
|
|
"..#.....", # 74 0x4A J Upper case J
|
|
".#......",
|
|
".#.....#",
|
|
"..######",
|
|
".......#",
|
|
|
|
".#######", # 75 0x4B K Upper case K
|
|
"....#...",
|
|
"...#.#..",
|
|
"..#...#.",
|
|
".#.....#",
|
|
|
|
".#######", # 76 0x4C L Upper case L
|
|
".#......",
|
|
".#......",
|
|
".#......",
|
|
".#......",
|
|
|
|
".#######", # 77 0x4D M Upper case M
|
|
"......#.",
|
|
"...###..",
|
|
"......#.",
|
|
".#######",
|
|
|
|
".#######", # 78 0x4E N Upper case N
|
|
".....#..",
|
|
"....#...",
|
|
"...#....",
|
|
".#######",
|
|
|
|
"..#####.", # 79 0x4F O Upper case O
|
|
".#.....#",
|
|
".#.....#",
|
|
".#.....#",
|
|
"..#####.",
|
|
|
|
".#######", # 80 0x50 P Upper case P
|
|
"....#..#",
|
|
"....#..#",
|
|
"....#..#",
|
|
".....##.",
|
|
|
|
"..#####.", # 81 0x51 Q Upper case Q
|
|
".#.....#",
|
|
".#.#...#",
|
|
"..#....#",
|
|
".#.####.",
|
|
|
|
".#######", # 82 0x52 R Upper case R
|
|
"....#..#",
|
|
"...##..#",
|
|
"..#.#..#",
|
|
".#...##.",
|
|
|
|
"..#..##.", # 83 0x53 S Upper case S
|
|
".#..#..#",
|
|
".#..#..#",
|
|
".#..#..#",
|
|
"..##..#.",
|
|
|
|
"......##", # 84 0x54 T Upper case T
|
|
".......#",
|
|
".#######",
|
|
".......#",
|
|
"......##",
|
|
|
|
"..######", # 85 0x55 U Upper case U
|
|
".#......",
|
|
".#......",
|
|
".#......",
|
|
"..######",
|
|
|
|
"...#####", # 86 0x56 V Upper case V
|
|
"..#.....",
|
|
".#......",
|
|
"..#.....",
|
|
"...#####",
|
|
|
|
"..######", # 87 0x57 W Upper case W
|
|
".#......",
|
|
"..###...",
|
|
".#......",
|
|
"..######",
|
|
|
|
".##...##", # 88 0x58 X Upper case X
|
|
"...#.#..",
|
|
"....#...",
|
|
"...#.#..",
|
|
".##...##",
|
|
|
|
"......##", # 89 0x59 Y Upper case Y
|
|
".....#..",
|
|
".####...",
|
|
".....#..",
|
|
"......##",
|
|
|
|
".##....#", # 90 0x5A Z Upper case Z
|
|
".#.##..#",
|
|
".#..#..#",
|
|
".#..##.#",
|
|
".#....##",
|
|
|
|
"........", # 91 0x5B [ Open square bracket
|
|
".#######",
|
|
".#.....#",
|
|
".#.....#",
|
|
".#.....#",
|
|
|
|
"......#.", # 92 0x5C \ Backslash
|
|
".....#..",
|
|
"....#...",
|
|
"...#....",
|
|
"..#.....",
|
|
|
|
"........", # 93 0x5D ] Close square bracket
|
|
".#.....#",
|
|
".#.....#",
|
|
".#.....#",
|
|
".#######",
|
|
|
|
".....#..", # 94 0x5E ^ Caret
|
|
"......#.",
|
|
".......#",
|
|
"......#.",
|
|
".....#..",
|
|
|
|
".#......", # 95 0x5F _ Underscore
|
|
".#......",
|
|
".#......",
|
|
".#......",
|
|
".#......",
|
|
|
|
"........", # 96 0x60 @ Grave accent
|
|
"......##",
|
|
".....###",
|
|
"....#...",
|
|
"........",
|
|
|
|
"..#.....", # 97 0x61 a Lower case a
|
|
".#.#.#..",
|
|
".#.#.#..",
|
|
".####...",
|
|
".#......",
|
|
|
|
".#######", # 98 0x62 b Lower case b
|
|
"..#.#...",
|
|
".#...#..",
|
|
".#...#..",
|
|
"..###...",
|
|
|
|
"..###...", # 99 0x63 c Lower case c
|
|
".#...#..",
|
|
".#...#..",
|
|
".#...#..",
|
|
"..#.#...",
|
|
|
|
"..###...", # 100 0x64 d Lower case d
|
|
".#...#..",
|
|
".#...#..",
|
|
"..#.#...",
|
|
".#######",
|
|
|
|
"..###...", # 101 0x65 e Lower case e
|
|
".#.#.#..",
|
|
".#.#.#..",
|
|
".#.#.#..",
|
|
"...##...",
|
|
|
|
"........", # 102 0x66 f Lower case f
|
|
"....#...",
|
|
".######.",
|
|
"....#..#",
|
|
"......#.",
|
|
|
|
"...##...", # 103 0x67 g Lower case g
|
|
"#.#..#..",
|
|
"#.#..#..",
|
|
"#..###..",
|
|
".####...",
|
|
|
|
".#######", # 104 0x68 h Lower case h
|
|
"....#...",
|
|
".....#..",
|
|
".....#..",
|
|
".####...",
|
|
|
|
"........", # 105 0x69 i Lower case i
|
|
".#...#..",
|
|
".#####.#",
|
|
".#......",
|
|
"........",
|
|
|
|
"..#.....", # 106 0x6A j Lower case j
|
|
".#......",
|
|
".#......",
|
|
"..####.#",
|
|
"........",
|
|
|
|
".#######", # 107 0x6B k Lower case k
|
|
"...#....",
|
|
"..#.#...",
|
|
".#...#..",
|
|
"........",
|
|
|
|
"........", # 108 0x6C l Lower case l
|
|
".#.....#",
|
|
".#######",
|
|
".#......",
|
|
"........",
|
|
|
|
".#####..", # 109 0x6D m Lower case m
|
|
".....#..",
|
|
".####...",
|
|
".....#..",
|
|
".####...",
|
|
|
|
".#####..", # 110 0x6E n Lower case n
|
|
"....#...",
|
|
".....#..",
|
|
".....#..",
|
|
".####...",
|
|
|
|
"..###...", # 111 0x6F o Lower case o
|
|
".#...#..",
|
|
".#...#..",
|
|
".#...#..",
|
|
"..###...",
|
|
|
|
"######..", # 112 0x70 p Lower case p
|
|
"...##...",
|
|
"..#..#..",
|
|
"..#..#..",
|
|
"...##...",
|
|
|
|
"...##...", # 113 0x71 q Lower case q
|
|
"..#..#..",
|
|
"..#..#..",
|
|
"...##...",
|
|
"######..",
|
|
|
|
".#####..", # 114 0x72 r Lower case r
|
|
"....#...",
|
|
".....#..",
|
|
".....#..",
|
|
"....#...",
|
|
|
|
".#..#...", # 115 0x73 s Lower case s
|
|
".#.#.#..",
|
|
".#.#.#..",
|
|
".#.#.#..",
|
|
"..#..#..",
|
|
|
|
".....#..", # 116 0x74 t Lower case t
|
|
".....#..",
|
|
"..######",
|
|
".#...#..",
|
|
"..#..#..",
|
|
|
|
"..####..", # 117 0x75 u Lower case u
|
|
".#......",
|
|
".#......",
|
|
"..#.....",
|
|
".#####..",
|
|
|
|
"...###..", # 118 0x76 v Lower case v
|
|
"..#.....",
|
|
".#......",
|
|
"..#.....",
|
|
"...###..",
|
|
|
|
"..####..", # 119 0x77 w Lower case w
|
|
".#......",
|
|
"..##....",
|
|
".#......",
|
|
"..####..",
|
|
|
|
".#...#..", # 120 0x78 x Lower case x
|
|
"..#.#...",
|
|
"...#....",
|
|
"..#.#...",
|
|
".#...#..",
|
|
|
|
".#..##..", # 121 0x79 y Lower case y
|
|
"#..#....",
|
|
"#..#....",
|
|
"#..#....",
|
|
".#####..",
|
|
|
|
".#...#..", # 122 0x7A z Lower case z
|
|
".##..#..",
|
|
".#.#.#..",
|
|
".#..##..",
|
|
".#...#..",
|
|
|
|
"........", # 123 0x7B { Open brace
|
|
"....#...",
|
|
"..##.##.",
|
|
".#.....#",
|
|
"........",
|
|
|
|
"........", # 124 0x7C | Pipe
|
|
"........",
|
|
".###.###",
|
|
"........",
|
|
"........",
|
|
|
|
"........", # 125 0x7D } Close brace
|
|
".#.....#",
|
|
"..##.##.",
|
|
"....#...",
|
|
"........",
|
|
|
|
"......#.", # 126 0x7E ~ Tilde
|
|
".......#",
|
|
"......#.",
|
|
".....#..",
|
|
"......#.",
|
|
|
|
"..####..", # 127 0x7F Delete
|
|
"..#..##.",
|
|
"..#...##",
|
|
"..#..##.",
|
|
"..####..",
|
|
|
|
"...####.", # 128 0x80 Upper case C with cedilla
|
|
"#.#....#",
|
|
"#.#....#",
|
|
".##....#",
|
|
"...#..#.",
|
|
|
|
"..###.#.", # 129 0x81 Lower case u with diaeresis
|
|
".#......",
|
|
".#......",
|
|
"..#.....",
|
|
".####.#.",
|
|
|
|
"..###...", # 130 0x82 Lower case e with acute
|
|
".#.#.#..",
|
|
".#.#.#..",
|
|
".#.#.#.#",
|
|
".#.##..#",
|
|
|
|
"..#....#", # 131 0x83 Lower case a with circumflex
|
|
".#.#.#.#",
|
|
".#.#.#.#",
|
|
".####..#",
|
|
".#.....#",
|
|
|
|
"..#...#.", # 132 0x84 Lower case a with diaeresis
|
|
".#.#.#..",
|
|
".#.#.#..",
|
|
".####...",
|
|
".#....#.",
|
|
|
|
"..#....#", # 133 0x85 Lower case a with grave
|
|
".#.#.#.#",
|
|
".#.#.#..",
|
|
".####...",
|
|
".#......",
|
|
|
|
"..#.....", # 134 0x86 Lower case a with ring above
|
|
".#.#.#..",
|
|
".#.#.#.#",
|
|
".####..#",
|
|
".#......",
|
|
|
|
"....##..", # 135 0x87 Lower case c with cedilla
|
|
"...####.",
|
|
".#.#..#.",
|
|
".###..#.",
|
|
"...#..#.",
|
|
|
|
"..###..#", # 136 0x88 Lower case e with circumflex
|
|
".#.#.#.#",
|
|
".#.#.#.#",
|
|
".#.#.#.#",
|
|
".#.##..#",
|
|
|
|
"..###..#", # 137 0x89 Lower case e with diaeresis
|
|
".#.#.#..",
|
|
".#.#.#..",
|
|
".#.#.#..",
|
|
".#.##..#",
|
|
|
|
"..###..#", # 138 0x8A Lower case e with grave
|
|
".#.#.#.#",
|
|
".#.#.#..",
|
|
".#.#.#..",
|
|
".#.##...",
|
|
|
|
"........", # 139 0x8B Lower case i with diaeresis
|
|
"........",
|
|
".#...#.#",
|
|
".#####..",
|
|
".#.....#",
|
|
|
|
"........", # 140 0x8C Lower case i with circumflex
|
|
"......#.",
|
|
".#...#.#",
|
|
".#####.#",
|
|
".#....#.",
|
|
|
|
"........", # 141 0x8D Lower case i with grave
|
|
".......#",
|
|
".#...#.#",
|
|
".#####..",
|
|
".#......",
|
|
|
|
".#####.#", # 142 0x8E Upper case A with diaeresis
|
|
"...#..#.",
|
|
"...#...#",
|
|
"...#..#.",
|
|
".#####.#",
|
|
|
|
"####....", # 143 0x8F Upper case A with ring above
|
|
"..#.#...",
|
|
"..#..#.#",
|
|
"..#.#...",
|
|
"####....",
|
|
|
|
".#####..", # 144 0x90 Upper case E with acute
|
|
".#.#.#..",
|
|
".#.#.#.#",
|
|
".#...#.#",
|
|
"........",
|
|
|
|
"..#.....", # 145 0x91 Lower case ae
|
|
".#.#.#..",
|
|
".#.#.#..",
|
|
".#####..",
|
|
".#.#.#..",
|
|
|
|
".#####..", # 146 0x92 Upper case AE
|
|
"....#.#.",
|
|
"....#..#",
|
|
".#######",
|
|
".#..#..#",
|
|
|
|
"..##..#.", # 147 0x93 Lower case o with circumflex
|
|
".#..#..#",
|
|
".#..#..#",
|
|
".#..#..#",
|
|
"..##..#.",
|
|
|
|
"..###.#.", # 148 0x94 Lower case o with diaeresis
|
|
".#...#..",
|
|
".#...#..",
|
|
".#...#..",
|
|
"..###.#.",
|
|
|
|
"..##..#.", # 149 0x95 Lower case o with grave
|
|
".#..#.#.",
|
|
".#..#...",
|
|
".#..#...",
|
|
"..##....",
|
|
|
|
"..###.#.", # 150 0x96 Lower case u with circumflex
|
|
".#.....#",
|
|
".#.....#",
|
|
"..#....#",
|
|
".####.#.",
|
|
|
|
"..###.#.", # 151 0x97 Lower case u with grave
|
|
".#....#.",
|
|
".#......",
|
|
"..#.....",
|
|
".####...",
|
|
|
|
"........", # 152 0x98 Lower case y with diaeresis
|
|
"#..###.#",
|
|
"#.#.....",
|
|
"#.#.....",
|
|
".#####.#",
|
|
|
|
"..####.#", # 153 0x99 Upper case O with diaeresis
|
|
".#....#.",
|
|
".#....#.",
|
|
".#....#.",
|
|
"..####.#",
|
|
|
|
"..####.#", # 154 0x9A Upper case U with diaeresis
|
|
".#......",
|
|
".#......",
|
|
".#......",
|
|
"..####.#",
|
|
|
|
"..####..", # 155 0x9B Cent sign
|
|
"..#..#..",
|
|
"########",
|
|
"..#..#..",
|
|
"..#..#..",
|
|
|
|
".#..#...", # 156 0x9C Pound sign
|
|
".######.",
|
|
".#..#..#",
|
|
".#....##",
|
|
".##..##.",
|
|
|
|
"..#.#.##", # 157 0x9D Yen sign
|
|
"..#.####",
|
|
"######..",
|
|
"..#.####",
|
|
"..#.#.##",
|
|
|
|
"########", # 158 0x9E Peseta sign
|
|
"....#..#",
|
|
"..#.#..#",
|
|
"####.##.",
|
|
"..#.....",
|
|
|
|
"##......", # 159 0x9F Lower case f with hook
|
|
"#...#...",
|
|
".######.",
|
|
"....#..#",
|
|
"......##",
|
|
|
|
"..#.....", # 160 0xA0 Lower case a with acute
|
|
".#.#.#..",
|
|
".#.#.#..",
|
|
".####..#",
|
|
".#.....#",
|
|
|
|
"........", # 161 0xA1 Lower case i with acute
|
|
"........",
|
|
".#...#..",
|
|
".#####.#",
|
|
".#.....#",
|
|
|
|
"..##....", # 162 0xA2 Lower case o with acute
|
|
".#..#...",
|
|
".#..#...",
|
|
".#..#.#.",
|
|
"..##..#.",
|
|
|
|
"..###...", # 163 0xA3 Lower case u with acute
|
|
".#......",
|
|
".#......",
|
|
"..#...#.",
|
|
".####.#.",
|
|
|
|
"........", # 164 0xA4 Lower case n with tilde
|
|
".####.#.",
|
|
"....#.#.",
|
|
"....#.#.",
|
|
".###..#.",
|
|
|
|
".#####.#", # 165 0xA5 Upper case N with tilde
|
|
"....##.#",
|
|
"...##..#",
|
|
"..##...#",
|
|
".#####.#",
|
|
|
|
"..#..##.", # 166 0xA6 Feminine ordinal indicator
|
|
"..#.#..#",
|
|
"..#.#..#",
|
|
"..#.####",
|
|
"..#.#...",
|
|
|
|
"..#..##.", # 167 0xA7 Masculine ordinal indicator
|
|
"..#.#..#",
|
|
"..#.#..#",
|
|
"..#.#..#",
|
|
"..#..##.",
|
|
|
|
"..##....", # 168 0xA8 Inverted question mark
|
|
".#..#...",
|
|
".#..##.#",
|
|
".#......",
|
|
"..#.....",
|
|
|
|
"..###...", # 169 0xA9 Reversed not sign
|
|
"....#...",
|
|
"....#...",
|
|
"....#...",
|
|
"....#...",
|
|
|
|
"....#...", # 170 0xAA Not sign
|
|
"....#...",
|
|
"....#...",
|
|
"....#...",
|
|
"..###...",
|
|
|
|
"..#.####", # 171 0xAB Vulgar fraction one half
|
|
"...#....",
|
|
"##..#...",
|
|
"#.#.##..",
|
|
"#.###.#.",
|
|
|
|
"..#.####", # 172 0xAC Vulgar fraction one quarter
|
|
"...#....",
|
|
"..#.#...",
|
|
"..##.#..",
|
|
"#####.#.",
|
|
|
|
"........", # 173 0xAD Inverted exclamation mark
|
|
"........",
|
|
".####.##",
|
|
"........",
|
|
"........",
|
|
|
|
"....#...", # 174 0xAE Left-pointing double angle quotation mark
|
|
"...#.#..",
|
|
"..#.#.#.",
|
|
"...#.#..",
|
|
"..#...#.",
|
|
|
|
"..#...#.", # 175 0xAF Right-pointing double angle quotation mark
|
|
"...#.#..",
|
|
"..#.#.#.",
|
|
"...#.#..",
|
|
"....#...",
|
|
|
|
".#.#.#.#", # 176 0xB0 Light shade
|
|
"........",
|
|
".#.#.#.#",
|
|
"........",
|
|
".#.#.#.#",
|
|
|
|
"#.#.#.#.", # 177 0xB1 Medium shade
|
|
".#.#.#.#",
|
|
"#.#.#.#.",
|
|
".#.#.#.#",
|
|
"#.#.#.#.",
|
|
|
|
"########", # 178 0xB2 Dark shade
|
|
".#.#.#.#",
|
|
"########",
|
|
".#.#.#.#",
|
|
"########",
|
|
|
|
"........", # 179 0xB3 Box drawings light vertical
|
|
"........",
|
|
"........",
|
|
"########",
|
|
"........",
|
|
|
|
"...#....", # 180 0xB4 Box drawings light vertical and left
|
|
"...#....",
|
|
"...#....",
|
|
"########",
|
|
"........",
|
|
|
|
"...#.#..", # 181 0xB5 Box drawings vertical single and left double
|
|
"...#.#..",
|
|
"...#.#..",
|
|
"########",
|
|
"........",
|
|
|
|
"...#....", # 182 0xB6 Box drawings vertical double and left single
|
|
"...#....",
|
|
"########",
|
|
"........",
|
|
"########",
|
|
|
|
"...#....", # 183 0xB7 Box drawings down double and left single
|
|
"...#....",
|
|
"####....",
|
|
"...#....",
|
|
"####....",
|
|
|
|
"...#.#..", # 184 0xB8 Box drawings down single and left double
|
|
"...#.#..",
|
|
"...#.#..",
|
|
"######..",
|
|
"........",
|
|
|
|
"...#.#..", # 185 0xB9 Box drawings double vertical and left
|
|
"...#.#..",
|
|
"####.###",
|
|
"........",
|
|
"########",
|
|
|
|
"........", # 186 0xBA Box drawings double vertical
|
|
"........",
|
|
"########",
|
|
"........",
|
|
"########",
|
|
|
|
"...#.#..", # 187 0xBB Box drawings double down and left
|
|
"...#.#..",
|
|
"####.#..",
|
|
".....#..",
|
|
"######..",
|
|
|
|
"...#.#..", # 188 0xBC Box drawings double up and left
|
|
"...#.#..",
|
|
"...#.###",
|
|
"...#....",
|
|
"...#####",
|
|
|
|
"...#....", # 189 0xBD Box drawings up double and left single
|
|
"...#....",
|
|
"...#####",
|
|
"...#....",
|
|
"...#####",
|
|
|
|
"...#.#..", # 190 0xBE Box drawings up single and left double
|
|
"...#.#..",
|
|
"...#.#..",
|
|
"...#####",
|
|
"........",
|
|
|
|
"...#....", # 191 0xBF Box drawings light down and left
|
|
"...#....",
|
|
"...#....",
|
|
"####....",
|
|
"........",
|
|
|
|
"........", # 192 0xC0 Box drawings light up and right
|
|
"........",
|
|
"........",
|
|
"...#####",
|
|
"...#....",
|
|
|
|
"...#....", # 193 0xC1 Box drawings light up and horizontal
|
|
"...#....",
|
|
"...#....",
|
|
"...#####",
|
|
"...#....",
|
|
|
|
"...#....", # 194 0xC2 Box drawings light down and horizontal
|
|
"...#....",
|
|
"...#....",
|
|
"####....",
|
|
"...#....",
|
|
|
|
"........", # 195 0xC3 Box drawings light vertical and right
|
|
"........",
|
|
"........",
|
|
"########",
|
|
"...#....",
|
|
|
|
"...#....", # 196 0xC4 Box drawings light horizontal
|
|
"...#....",
|
|
"...#....",
|
|
"...#....",
|
|
"...#....",
|
|
|
|
"...#....", # 197 0xC5 Box drawings light vertical and horizontal
|
|
"...#....",
|
|
"...#....",
|
|
"########",
|
|
"...#....",
|
|
|
|
"........", # 198 0xC6 Box drawings vertical single and right double
|
|
"........",
|
|
"........",
|
|
"########",
|
|
"...#.#..",
|
|
|
|
"........", # 199 0xC7 Box drawings vertical double and right single
|
|
"........",
|
|
"########",
|
|
"........",
|
|
"########",
|
|
|
|
"........", # 200 0xC8 Box drawings double up and right
|
|
"........",
|
|
"...#####",
|
|
"...#....",
|
|
"...#.###",
|
|
|
|
"........", # 201 0xC9 Box drawings double down and right
|
|
"........",
|
|
"######..",
|
|
".....#..",
|
|
"####.#..",
|
|
|
|
"...#.#..", # 202 0xCA Box drawings double up and horizontal
|
|
"...#.#..",
|
|
"...#.###",
|
|
"...#....",
|
|
"...#.###",
|
|
|
|
"...#.#..", # 203 0xCB Box drawings double down and horizontal
|
|
"...#.#..",
|
|
"####.#..",
|
|
".....#..",
|
|
"####.#..",
|
|
|
|
"........", # 204 0xCC Box drawings double vertical and right
|
|
"........",
|
|
"########",
|
|
"........",
|
|
"####.###",
|
|
|
|
"...#.#..", # 205 0xCD Box drawings double horizontal
|
|
"...#.#..",
|
|
"...#.#..",
|
|
"...#.#..",
|
|
"...#.#..",
|
|
|
|
"...#.#..", # 206 0xCE Box drawings double vertical and horizontal
|
|
"...#.#..",
|
|
"####.###",
|
|
"........",
|
|
"####.###",
|
|
|
|
"...#.#..", # 207 0xCF Box drawings up single and horizontal double
|
|
"...#.#..",
|
|
"...#.#..",
|
|
"...#.###",
|
|
"...#.#..",
|
|
|
|
"...#....", # 208 0xD0 Box drawings up double and horizontal single
|
|
"...#....",
|
|
"...#####",
|
|
"...#....",
|
|
"...#####",
|
|
|
|
"...#.#..", # 209 0xD1 Box drawings down single and horizontal double
|
|
"...#.#..",
|
|
"...#.#..",
|
|
"####.#..",
|
|
"...#.#..",
|
|
|
|
"...#....", # 210 0xD2 Box drawings down double and horizontal single
|
|
"...#....",
|
|
"####....",
|
|
"...#....",
|
|
"####....",
|
|
|
|
"........", # 211 0xD3 Box drawings up double and right single
|
|
"........",
|
|
"...#####",
|
|
"...#....",
|
|
"...#####",
|
|
|
|
"........", # 212 0xD4 Box drawings up single and right double
|
|
"........",
|
|
"........",
|
|
"...#####",
|
|
"...#.#..",
|
|
|
|
"........", # 213 0xD5 Box drawings down single and right double
|
|
"........",
|
|
"........",
|
|
"######..",
|
|
"...#.#..",
|
|
|
|
"........", # 214 0xD6 Box drawings down double and right single
|
|
"........",
|
|
"####....",
|
|
"...#....",
|
|
"####....",
|
|
|
|
"...#....", # 215 0xD7 Box drawings vertical double and horizontal single
|
|
"...#....",
|
|
"########",
|
|
"...#....",
|
|
"########",
|
|
|
|
"...#.#..", # 216 0xD8 Box drawings vertical single and horizontal double
|
|
"...#.#..",
|
|
"...#.#..",
|
|
"########",
|
|
"...#.#..",
|
|
|
|
"...#....", # 217 0xD9 Box drawings light up and left
|
|
"...#....",
|
|
"...#....",
|
|
"...#####",
|
|
"........",
|
|
|
|
"........", # 218 0xDA Box drawings light down and right
|
|
"........",
|
|
"........",
|
|
"####....",
|
|
"...#....",
|
|
|
|
"########", # 219 0xDB Full block
|
|
"########",
|
|
"########",
|
|
"########",
|
|
"########",
|
|
|
|
"####....", # 220 0xDC Lower half block
|
|
"####....",
|
|
"####....",
|
|
"####....",
|
|
"####....",
|
|
|
|
"########", # 221 0xDD Left half block
|
|
"########",
|
|
"########",
|
|
"........",
|
|
"........",
|
|
|
|
"........", # 222 0xDE Right half block
|
|
"........",
|
|
"........",
|
|
"########",
|
|
"########",
|
|
|
|
"....####", # 223 0xDF Upper half block
|
|
"....####",
|
|
"....####",
|
|
"....####",
|
|
"....####",
|
|
|
|
"..###...", # 224 0xE0 Greek lower case alpha
|
|
".#...#..",
|
|
".#...#..",
|
|
"..###...",
|
|
".#...#..",
|
|
|
|
"######..", # 225 0xE1 Lower case sharp s
|
|
".#..#.#.",
|
|
".#..#.#.",
|
|
".#..#.#.",
|
|
"..##.#..",
|
|
|
|
".######.", # 226 0xE2 Greek upper case letter gamma
|
|
"......#.",
|
|
"......#.",
|
|
".....##.",
|
|
".....##.",
|
|
|
|
"......#.", # 227 0xE3 Greek lower case pi
|
|
".######.",
|
|
"......#.",
|
|
".######.",
|
|
"......#.",
|
|
|
|
".##...##", # 228 0xE4 Greek upper case letter sigma
|
|
".#.#.#.#",
|
|
".#..#..#",
|
|
".#.....#",
|
|
".##...##",
|
|
|
|
"..###...", # 229 0xE5 Greek lower case sigma
|
|
".#...#..",
|
|
".#...#..",
|
|
"..####..",
|
|
".....#..",
|
|
|
|
".#......", # 230 0xE6 Micro sign
|
|
".######.",
|
|
"..#.....",
|
|
"...####.",
|
|
"..#.....",
|
|
|
|
".....##.", # 231 0xE7 Greek lower case tau
|
|
"......#.",
|
|
".######.",
|
|
"......#.",
|
|
"......#.",
|
|
|
|
"#..##..#", # 232 0xE8 Greek upper case letter phi
|
|
"#.#..#.#",
|
|
"###..###",
|
|
"#.#..#.#",
|
|
"#..##..#",
|
|
|
|
"...###..", # 233 0xE9 Greek upper case letter theta
|
|
"..#.#.#.",
|
|
".#..#..#",
|
|
"..#.#.#.",
|
|
"...###..",
|
|
|
|
".#..##..", # 234 0xEA Greek upper case letter omega
|
|
".###..#.",
|
|
".......#",
|
|
".###..#.",
|
|
".#..##..",
|
|
|
|
"..##....", # 235 0xEB Greek lower case delta
|
|
".#..#.#.",
|
|
".#..##.#",
|
|
".#..##.#",
|
|
"..##....",
|
|
|
|
"..##....", # 236 0xEC Infinity
|
|
".#..#...",
|
|
".####...",
|
|
".#..#...",
|
|
"..##....",
|
|
|
|
"#.####..", # 237 0xED Greek lower case phi
|
|
".##...#.",
|
|
".#.##.#.",
|
|
".#...##.",
|
|
"..####.#",
|
|
|
|
"..#####.", # 238 0xEE Greek lower case epsilon
|
|
".#..#..#",
|
|
".#..#..#",
|
|
".#..#..#",
|
|
"........",
|
|
|
|
".######.", # 239 0xEF Intersection
|
|
".......#",
|
|
".......#",
|
|
".......#",
|
|
".######.",
|
|
|
|
"..#.#.#.", # 240 0xF0 Identical to
|
|
"..#.#.#.",
|
|
"..#.#.#.",
|
|
"..#.#.#.",
|
|
"..#.#.#.",
|
|
|
|
".#...#..", # 241 0xF1 Plus-minus sign
|
|
".#...#..",
|
|
".#.#####",
|
|
".#...#..",
|
|
".#...#..",
|
|
|
|
".#......", # 242 0xF2 Greater-than or equal to
|
|
".#.#...#",
|
|
".#..#.#.",
|
|
".#...#..",
|
|
".#......",
|
|
|
|
".#......", # 243 0xF3 Less-than or equal to
|
|
".#...#..",
|
|
".#..#.#.",
|
|
".#.#...#",
|
|
".#......",
|
|
|
|
"........", # 244 0xF4 Top half integral
|
|
"........",
|
|
"########",
|
|
".......#",
|
|
"......##",
|
|
|
|
"###.....", # 245 0xF5 Bottom half integral
|
|
"#.......",
|
|
"########",
|
|
"........",
|
|
"........",
|
|
|
|
"....#...", # 246 0xF6 Division sign
|
|
"....#...",
|
|
".##.#.##",
|
|
".##.#.##",
|
|
"....#...",
|
|
|
|
"..##.##.", # 247 0xF7 Almost equal to
|
|
"...#..#.",
|
|
"..##.##.",
|
|
"..#..#..",
|
|
"..##.##.",
|
|
|
|
".....##.", # 248 0xF8 Degree sign
|
|
"....####",
|
|
"....#..#",
|
|
"....####",
|
|
".....##.",
|
|
|
|
"........", # 249 0xF9 Bullet operator
|
|
"........",
|
|
"...##...",
|
|
"...##...",
|
|
"........",
|
|
|
|
"........", # 250 0xFA Middle dot
|
|
"........",
|
|
"...#....",
|
|
"...#....",
|
|
"........",
|
|
|
|
"..##....", # 251 0xFB Square root
|
|
".#......",
|
|
"########",
|
|
".......#",
|
|
".......#",
|
|
|
|
"........", # 252 0xFC Superscript lower case n
|
|
"...#####",
|
|
".......#",
|
|
".......#",
|
|
"...####.",
|
|
|
|
"........", # 253 0xFD Superscript two
|
|
"...##..#",
|
|
"...###.#",
|
|
"...#.###",
|
|
"...#..#.",
|
|
|
|
"........", # 254 0xFE Black square
|
|
"..####..",
|
|
"..####..",
|
|
"..####..",
|
|
"..####..",
|
|
|
|
"........", # 255 0xFF No-break space
|
|
"........",
|
|
"........",
|
|
"........",
|
|
"........",
|
|
)
|
|
# fmt: on
|
|
|
|
if __name__ == "__main__":
|
|
with open(f"font{WIDTH}x{HEIGHT}.bin", "wb") as outfile:
|
|
# Write a byte each for the character width, character height.
|
|
outfile.write(bytes((WIDTH, HEIGHT)))
|
|
# Now write all of the font character bytes.
|
|
for str in FONT:
|
|
data = int(str.replace(".", "0").replace("#", "1"), 2)
|
|
outfile.write(data.to_bytes(1, "big"))
|