2604 lines
37 KiB
Python
2604 lines
37 KiB
Python
# SPDX-FileCopyrightText: 2018 Tony DiCola for Adafruit Industries
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
# Added the following Swedish characters //Jens Ståhl 2025-02-08
|
|
#176 °
|
|
|
|
#196 Ä
|
|
#197 Å
|
|
#214 Ö
|
|
|
|
#228 ä
|
|
#229 å
|
|
#246 ö
|
|
|
|
""" Quick script to convert Adafruit GFX font into binary file.
|
|
Taken from glcdfont.c from Adafruit GFX Arduino library. """
|
|
# pylint: disable=too-many-lines
|
|
# 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 A Upper case with trema
|
|
"#...#",
|
|
"..#..",
|
|
".#.#.",
|
|
"#...#",
|
|
"#####",
|
|
"#...#",
|
|
"#...#",
|
|
".....",
|
|
|
|
# 197 0xC5 A Upper case with ring
|
|
"..#..",
|
|
".....",
|
|
"..#..",
|
|
".#.#.",
|
|
"#...#",
|
|
"#####",
|
|
"#...#",
|
|
".....",
|
|
|
|
# 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 O Upper case with trema
|
|
"#...#",
|
|
".###.",
|
|
"#...#",
|
|
"#...#",
|
|
"#...#",
|
|
"#...#",
|
|
".###.",
|
|
".....",
|
|
|
|
# 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 a Lower case with trema
|
|
".#.#.",
|
|
".....",
|
|
".##..",
|
|
"...#.",
|
|
".###.",
|
|
"#..#.",
|
|
".####",
|
|
".....",
|
|
|
|
# 229 0xE5 a Lower case with ring
|
|
"..#..",
|
|
".....",
|
|
".##..",
|
|
"...#.",
|
|
".###.",
|
|
"#..#.",
|
|
".####",
|
|
".....",
|
|
|
|
# 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 o Lower Case with trema
|
|
".#.#.",
|
|
".....",
|
|
".###.",
|
|
"#...#",
|
|
"#...#",
|
|
"#...#",
|
|
".###.",
|
|
".....",
|
|
|
|
# 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__":
|
|
# Rotate all character to be able to generate the correct data
|
|
rotated_font = []
|
|
char = []
|
|
for i, col in enumerate(FONT):
|
|
char.append(col)
|
|
# Has all character data been appended
|
|
if (i + 1) % HEIGHT == 0:
|
|
rot = list(zip(*char[::-1]))
|
|
for r in rot:
|
|
rotated_font.append("".join(r))
|
|
char = []
|
|
|
|
with open(f"font{WIDTH}x{HEIGHT}_swedish.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 string in rotated_font:
|
|
DATA = int(string.replace(".", "0").replace("#", "1"), 2)
|
|
outfile.write(DATA.to_bytes(1, "big"))
|