From c848019f54803907e8eda71e7576811e949081a2 Mon Sep 17 00:00:00 2001 From: Dennis Real Date: Sun, 22 Sep 2019 18:09:53 +0200 Subject: [PATCH] Compressed 5x7 font to 8 bit and removed unneeded characters to get some space in flash. --- Font5x7.c | 3760 +++++++++++++++++++++++------------------------------ README.md | 1 + ili9341.c | 37 +- nanovna.h | 18 +- plot.c | 48 +- 5 files changed, 1731 insertions(+), 2133 deletions(-) diff --git a/Font5x7.c b/Font5x7.c index 151a87f..482444b 100644 --- a/Font5x7.c +++ b/Font5x7.c @@ -9,9 +9,8 @@ #include /* Font character bitmap data. */ -const uint16_t x5x7_bits [] = +const uint8_t x5x7_bits [] = { - /* Character (0x00): bbw=5, bbh=7, bbx=0, bby=-1, width=5 +----------------+ @@ -23,2407 +22,1932 @@ const uint16_t x5x7_bits [] = |**** | | | +----------------+ */ - 0xf000, - 0xf000, - 0xf000, - 0xf000, - 0xf000, - 0xf000, - 0x0000, + 0xf0, + 0xf0, + 0xf0, + 0xf0, + 0xf0, + 0xf0, + 0x00, - /* Character (0x01): + /* Character (): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | * | - | *** | - |***** | - | *** | - | * | - | | - +----------------+ */ - 0x0000, - 0x2000, - 0x7000, - 0xf800, - 0x7000, - 0x2000, - 0x0000, + +--------+ + | * | + | * | + |**** | + | * | + | * | + | | + | | + +--------+ */ + 0x20, + 0x40, + 0xF8, + 0x40, + 0x20, + 0x00, + 0x00, - /* Character (0x02): + /* Character (): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * * | - |* * | - | * * | - |* * | - | * * | - |* * | - | | - +----------------+ */ - 0x5000, - 0xa000, - 0x5000, - 0xa000, - 0x5000, - 0xa000, - 0x0000, + +--------+ + | * | + | * | + |***** | + | * | + | * | + | | + | | + +--------+ */ + 0x20, + 0x10, + 0xF8, + 0x10, + 0x20, + 0x00, + 0x00, - /* Character (0x03): + /* Character (): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* * | - |*** | - |* * | - |* * | - | *** | - | * | - | * | - +----------------+ */ - 0xa000, - 0xe000, - 0xa000, - 0xa000, - 0x7000, - 0x2000, - 0x2000, + +--------+ + | | + | | + |***** | + | * * | + | * * | + |* ** | + | | + +--------+ */ + 0x00, + 0x00, + 0xf8, + 0x50, + 0x50, + 0x98, + 0x00, - /* Character (0x04): + /* Character (): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |** | - |* | - |** | - |* ** | - | * | - | ** | - | * | - +----------------+ */ - 0xc000, - 0x8000, - 0xc000, - 0xb000, - 0x2000, - 0x3000, - 0x2000, + +--------+ + | | + | | + |* * | + |* * | + |* * | + |*** | + |* | + +--------+ */ + 0x00, + 0x00, + 0x90, + 0x90, + 0x90, + 0xe0, + 0x80, - /* Character (0x05): + /* Character (): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |** | - |* | - |** | - | ** | - | * * | - | ** | - | * * | - +----------------+ */ - 0xc000, - 0x8000, - 0xc000, - 0x6000, - 0x5000, - 0x6000, - 0x5000, + +--------+ + | | + | *** | + |* * | + |* * | + | * * | + |** ** | + | | + +--------+ */ + 0x00, + 0x70, + 0x88, + 0x88, + 0x50, + 0xb8, + 0x00, - /* Character (0x06): + /* Character (): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* | - |* | - |** | - | ** | - | * | - | ** | - | * | - +----------------+ */ - 0x8000, - 0x8000, - 0xc000, - 0x3000, - 0x2000, - 0x3000, - 0x2000, - - /* Character (0x07): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * * | - | * | - | | - | | - | | - | | - +----------------+ */ - 0x2000, - 0x5000, - 0x2000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - - /* Character (0x08): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | *** | - | * | - | | - | *** | - | | - | | - +----------------+ */ - 0x2000, - 0x7000, - 0x2000, - 0x0000, - 0x7000, - 0x0000, - 0x0000, - - /* Character (0x09): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* * | - |** * | - |* ** | - |* * | - | * | - | * | - | ** | - +----------------+ */ - 0x9000, - 0xd000, - 0xb000, - 0x9000, - 0x2000, - 0x2000, - 0x3000, - - /* Character (0x0a): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* * | - |* * | - |* * | - | * | - | *** | - | * | - | * | - +----------------+ */ - 0xa000, - 0xa000, - 0xa000, - 0x4000, - 0x7000, - 0x2000, - 0x2000, - - /* Character (0x0b): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - | * | - |*** | - | | - | | - | | - +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0xe000, - 0x0000, - 0x0000, - 0x0000, - - /* Character (0x0c): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | | - |*** | - | * | - | * | - | * | - +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0xe000, - 0x2000, - 0x2000, - 0x2000, - - /* Character (0x0d): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | | - | *** | - | * | - | * | - | * | - +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x3800, - 0x2000, - 0x2000, - 0x2000, - - /* Character (0x0e): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - | * | - | *** | - | | - | | - | | - +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0x3800, - 0x0000, - 0x0000, - 0x0000, - - /* Character (0x0f): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - | * | - |***** | - | * | - | * | - | * | - +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0xf800, - 0x2000, - 0x2000, - 0x2000, - - /* Character (0x10): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - |***** | - | | - | | - | | - | | - | | - +----------------+ */ - 0x0000, - 0xf800, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - - /* Character (0x11): - bbw=6, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |***** | - | | - | | - | | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0xf800, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - - /* Character (0x12): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | | - |***** | - | | - | | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0xf800, - 0x0000, - 0x0000, - 0x0000, - - /* Character (0x13): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | | - | | - |***** | - | | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0xf800, - 0x0000, - 0x0000, - - /* Character (0x14): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | | - | | - | | - |***** | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0xf800, - 0x0000, - - /* Character (0x15): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - | * | - | *** | - | * | - | * | - | * | - +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0x3800, - 0x2000, - 0x2000, - 0x2000, - - /* Character (0x16): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - | * | - |*** | - | * | - | * | - | * | - +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0xe000, - 0x2000, - 0x2000, - 0x2000, - - /* Character (0x17): - bbw=6, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - | * | - |***** | - | | - | | - | | - +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0xf800, - 0x0000, - 0x0000, - 0x0000, - - /* Character (0x18): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | | - |***** | - | * | - | * | - | * | - +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0xf800, - 0x2000, - 0x2000, - 0x2000, - - /* Character (0x19): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - | * | - | * | - | * | - | * | - | * | - +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0x2000, - 0x2000, - 0x2000, - 0x2000, - - /* Character (0x1a): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - |**** | - | * | - | * | - | | - | | - +----------------+ */ - 0x2000, - 0x4000, - 0xF800, - 0x4000, - 0x2000, - 0x0000, - 0x0000, - - /* Character (0x1b): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - |***** | - | * | - | * | - | | - | | - +----------------+ */ - 0x2000, - 0x1000, - 0xF800, - 0x1000, - 0x2000, - 0x0000, - 0x0000, - - /* Character (0x1c): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |***** | - | * * | - | * * | - |* ** | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0xf800, - 0x5000, - 0x5000, - 0x9800, - 0x0000, - - /* Character (0x1d): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |* * | - |* * | - |* * | - |*** | - |* | - +----------------+ */ - 0x0000, - 0x0000, - 0x9000, - 0x9000, - 0x9000, - 0xe000, - 0x8000, - - /* Character (0x1e): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | *** | - |* * | - |* * | - | * * | - |** ** | - | | - +----------------+ */ - 0x0000, - 0x7000, - 0x8800, - 0x8800, - 0x5000, - 0xb800, - 0x0000, - - /* Character (0x1f): - bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - |* * | - |* * | - | ** | - | | - | | - | | - +----------------+ */ - 0x6000, - 0x9000, - 0x9000, - 0x6000, - 0x0000, - 0x0000, - 0x0000, + +--------+ + | ** | + |* * | + |* * | + | ** | + | | + | | + | | + +--------+ */ + 0x60, + 0x90, + 0x90, + 0x60, + 0x00, + 0x00, + 0x00, /* Character (0x20): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | | - | | - | | - | | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + +--------+ + | | + | | + | | + | | + | | + | | + | | + +--------+ */ + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, /* Character (0x21): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - | * | - | * | - | | - | * | - | | - +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0x2000, - 0x0000, - 0x2000, - 0x0000, + +--------+ + | * | + | * | + | * | + | * | + | | + | * | + | | + +--------+ */ + 0x20, + 0x20, + 0x20, + 0x20, + 0x00, + 0x20, + 0x00, /* Character (0x22): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * * | - | * * | - | * * | - | | - | | - | | - | | - +----------------+ */ - 0x5000, - 0x5000, - 0x5000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + +--------+ + | * * | + | * * | + | * * | + | | + | | + | | + | | + +--------+ */ + 0x50, + 0x50, + 0x50, + 0x00, + 0x00, + 0x00, + 0x00, /* Character (0x23): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | * * | - |***** | - | * * | - |***** | - | * * | - | | - +----------------+ */ - 0x0000, - 0x5000, - 0xf800, - 0x5000, - 0xf800, - 0x5000, - 0x0000, + +--------+ + | | + | * * | + |***** | + | * * | + |***** | + | * * | + | | + +--------+ */ + 0x00, + 0x50, + 0xf8, + 0x50, + 0xf8, + 0x50, + 0x00, /* Character (0x24): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | *** | - |* * | - | *** | - | * * | - | *** | - | | - +----------------+ */ - 0x0000, - 0x7000, - 0xa000, - 0x7000, - 0x2800, - 0x7000, - 0x0000, + +--------+ + | | + | *** | + |* * | + | *** | + | * * | + | *** | + | | + +--------+ */ + 0x00, + 0x70, + 0xa0, + 0x70, + 0x28, + 0x70, + 0x00, /* Character (0x25): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* | - |* * | - | * | - | * | - |* * | - | * | - | | - +----------------+ */ - 0x8000, - 0x9000, - 0x2000, - 0x4000, - 0x9000, - 0x1000, - 0x0000, + +--------+ + |* | + |* * | + | * | + | * | + |* * | + | * | + | | + +--------+ */ + 0x80, + 0x90, + 0x20, + 0x40, + 0x90, + 0x10, + 0x00, /* Character (0x26): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | * | - |* * | - | * | - |* * | - | * * | - | | - +----------------+ */ - 0x0000, - 0x4000, - 0xa000, - 0x4000, - 0xa000, - 0x5000, - 0x0000, + +--------+ + | | + | * | + |* * | + | * | + |* * | + | * * | + | | + +--------+ */ + 0x00, + 0x40, + 0xa0, + 0x40, + 0xa0, + 0x50, + 0x00, /* Character (0x27): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - | * | - |* | - | | - | | - | | - | | - +----------------+ */ - 0x6000, - 0x4000, - 0x8000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + +--------+ + | ** | + | * | + |* | + | | + | | + | | + | | + +--------+ */ + 0x60, + 0x40, + 0x80, + 0x00, + 0x00, + 0x00, + 0x00, /* Character (0x28): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - | * | - | * | - | * | - | * | - | | - +----------------+ */ - 0x2000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0x2000, - 0x0000, + +--------+ + | * | + | * | + | * | + | * | + | * | + | * | + | | + +--------+ */ + 0x20, + 0x40, + 0x40, + 0x40, + 0x40, + 0x20, + 0x00, /* Character (0x29): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - | * | - | * | - | * | - | * | - | | - +----------------+ */ - 0x4000, - 0x2000, - 0x2000, - 0x2000, - 0x2000, - 0x4000, - 0x0000, + +--------+ + | * | + | * | + | * | + | * | + | * | + | * | + | | + +--------+ */ + 0x40, + 0x20, + 0x20, + 0x20, + 0x20, + 0x40, + 0x00, /* Character (0x2a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - |* * | - | * | - |*** | - | * | - |* * | - | | - +----------------+ */ - 0x0000, - 0xa000, - 0x4000, - 0xe000, - 0x4000, - 0xa000, - 0x0000, + +--------+ + | | + |* * | + | * | + |*** | + | * | + |* * | + | | + +--------+ */ + 0x00, + 0xa0, + 0x40, + 0xe0, + 0x40, + 0xa0, + 0x00, /* Character (0x2b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | * | - | * | - |***** | - | * | - | * | - | | - +----------------+ */ - 0x0000, - 0x2000, - 0x2000, - 0xf800, - 0x2000, - 0x2000, - 0x0000, + +--------+ + | | + | * | + | * | + |***** | + | * | + | * | + | | + +--------+ */ + 0x00, + 0x20, + 0x20, + 0xf8, + 0x20, + 0x20, + 0x00, /* Character (0x2c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | | - | | - | ** | - | * | - |* | - +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x6000, - 0x4000, - 0x8000, + +--------+ + | | + | | + | | + | | + | ** | + | * | + |* | + +--------+ */ + 0x00, + 0x00, + 0x00, + 0x00, + 0x60, + 0x40, + 0x80, /* Character (0x2d): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | | - |**** | - | | - | | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0xf000, - 0x0000, - 0x0000, - 0x0000, + +--------+ + | | + | | + | | + |**** | + | | + | | + | | + +--------+ */ + 0x00, + 0x00, + 0x00, + 0xf0, + 0x00, + 0x00, + 0x00, /* Character (0x2e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | | - | | - | ** | - | ** | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x6000, - 0x6000, - 0x0000, + +--------+ + | | + | | + | | + | | + | ** | + | ** | + | | + +--------+ */ + 0x00, + 0x00, + 0x00, + 0x00, + 0x60, + 0x60, + 0x00, /* Character (0x2f): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | * | - | * | - | * | - |* | - | | - | | - +----------------+ */ - 0x0000, - 0x1000, - 0x2000, - 0x4000, - 0x8000, - 0x0000, - 0x0000, + +--------+ + | | + | * | + | * | + | * | + |* | + | | + | | + +--------+ */ + 0x00, + 0x10, + 0x20, + 0x40, + 0x80, + 0x00, + 0x00, /* Character (0x30): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - |* * | - |* ** | - |** * | - |* * | - | ** | - | | - +----------------+ */ - 0x6000, - 0x9000, - 0xb000, - 0xd000, - 0x9000, - 0x6000, - 0x0000, + +--------+ + | ** | + |* * | + |* ** | + |** * | + |* * | + | ** | + | | + +--------+ */ + 0x60, + 0x90, + 0xb0, + 0xd0, + 0x90, + 0x60, + 0x00, /* Character (0x31): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - |** | - | * | - | * | - | * | - |*** | - | | - +----------------+ */ - 0x4000, - 0xc000, - 0x4000, - 0x4000, - 0x4000, - 0xe000, - 0x0000, + +--------+ + | * | + |** | + | * | + | * | + | * | + |*** | + | | + +--------+ */ + 0x40, + 0xc0, + 0x40, + 0x40, + 0x40, + 0xe0, + 0x00, /* Character (0x32): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - |* * | - | * | - | * | - | * | - |**** | - | | - +----------------+ */ - 0x6000, - 0x9000, - 0x1000, - 0x2000, - 0x4000, - 0xf000, - 0x0000, + +--------+ + | ** | + |* * | + | * | + | * | + | * | + |**** | + | | + +--------+ */ + 0x60, + 0x90, + 0x10, + 0x20, + 0x40, + 0xf0, + 0x00, /* Character (0x33): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |**** | - | * | - | ** | - | * | - |* * | - | ** | - | | - +----------------+ */ - 0xf000, - 0x1000, - 0x6000, - 0x1000, - 0x9000, - 0x6000, - 0x0000, + +--------+ + |**** | + | * | + | ** | + | * | + |* * | + | ** | + | | + +--------+ */ + 0xf0, + 0x10, + 0x60, + 0x10, + 0x90, + 0x60, + 0x00, /* Character (0x34): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | ** | - |* * | - |**** | - | * | - | * | - | | - +----------------+ */ - 0x2000, - 0x6000, - 0xa000, - 0xf000, - 0x2000, - 0x2000, - 0x0000, + +--------+ + | * | + | ** | + |* * | + |**** | + | * | + | * | + | | + +--------+ */ + 0x20, + 0x60, + 0xa0, + 0xf0, + 0x20, + 0x20, + 0x00, /* Character (0x35): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |**** | - |* | - |*** | - | * | - |* * | - | ** | - | | - +----------------+ */ - 0xf000, - 0x8000, - 0xe000, - 0x1000, - 0x9000, - 0x6000, - 0x0000, + +--------+ + |**** | + |* | + |*** | + | * | + |* * | + | ** | + | | + +--------+ */ + 0xf0, + 0x80, + 0xe0, + 0x10, + 0x90, + 0x60, + 0x00, /* Character (0x36): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - |* | - |*** | - |* * | - |* * | - | ** | - | | - +----------------+ */ - 0x6000, - 0x8000, - 0xe000, - 0x9000, - 0x9000, - 0x6000, - 0x0000, + +--------+ + | ** | + |* | + |*** | + |* * | + |* * | + | ** | + | | + +--------+ */ + 0x60, + 0x80, + 0xe0, + 0x90, + 0x90, + 0x60, + 0x00, /* Character (0x37): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |**** | - | * | - | * | - | * | - | * | - | * | - | | - +----------------+ */ - 0xf000, - 0x1000, - 0x2000, - 0x2000, - 0x4000, - 0x4000, - 0x0000, + +--------+ + |**** | + | * | + | * | + | * | + | * | + | * | + | | + +--------+ */ + 0xf0, + 0x10, + 0x20, + 0x20, + 0x40, + 0x40, + 0x00, /* Character (0x38): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - |* * | - | ** | - |* * | - |* * | - | ** | - | | - +----------------+ */ - 0x6000, - 0x9000, - 0x6000, - 0x9000, - 0x9000, - 0x6000, - 0x0000, + +--------+ + | ** | + |* * | + | ** | + |* * | + |* * | + | ** | + | | + +--------+ */ + 0x60, + 0x90, + 0x60, + 0x90, + 0x90, + 0x60, + 0x00, /* Character (0x39): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - |* * | - |* * | - | *** | - | * | - | ** | - | | - +----------------+ */ - 0x6000, - 0x9000, - 0x9000, - 0x7000, - 0x1000, - 0x6000, - 0x0000, + +--------+ + | ** | + |* * | + |* * | + | *** | + | * | + | ** | + | | + +--------+ */ + 0x60, + 0x90, + 0x90, + 0x70, + 0x10, + 0x60, + 0x00, /* Character (0x3a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | ** | - | ** | - | | - | ** | - | ** | - | | - +----------------+ */ - 0x0000, - 0x6000, - 0x6000, - 0x0000, - 0x6000, - 0x6000, - 0x0000, + +--------+ + | | + | ** | + | ** | + | | + | ** | + | ** | + | | + +--------+ */ + 0x00, + 0x60, + 0x60, + 0x00, + 0x60, + 0x60, + 0x00, /* Character (0x3b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | ** | - | ** | - | | - | ** | - | * | - |* | - +----------------+ */ - 0x0000, - 0x6000, - 0x6000, - 0x0000, - 0x6000, - 0x4000, - 0x8000, + +--------+ + | | + | ** | + | ** | + | | + | ** | + | * | + |* | + +--------+ */ + 0x00, + 0x60, + 0x60, + 0x00, + 0x60, + 0x40, + 0x80, /* Character (0x3c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | * | - | * | - |* | - | * | - | * | - | | - +----------------+ */ - 0x0000, - 0x2000, - 0x4000, - 0x8000, - 0x4000, - 0x2000, - 0x0000, + +--------+ + | | + | * | + | * | + |* | + | * | + | * | + | | + +--------+ */ + 0x00, + 0x20, + 0x40, + 0x80, + 0x40, + 0x20, + 0x00, /* Character (0x3d): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |**** | - | | - |**** | - | | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0xf000, - 0x0000, - 0xf000, - 0x0000, - 0x0000, + +--------+ + | | + | | + |**** | + | | + |**** | + | | + | | + +--------+ */ + 0x00, + 0x00, + 0xf0, + 0x00, + 0xf0, + 0x00, + 0x00, /* Character (0x3e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - |* | - | * | - | * | - | * | - |* | - | | - +----------------+ */ - 0x0000, - 0x8000, - 0x4000, - 0x2000, - 0x4000, - 0x8000, - 0x0000, + +--------+ + | | + |* | + | * | + | * | + | * | + |* | + | | + +--------+ */ + 0x00, + 0x80, + 0x40, + 0x20, + 0x40, + 0x80, + 0x00, /* Character (0x3f): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - |* * | - | * | - | * | - | | - | * | - | | - +----------------+ */ - 0x4000, - 0xa000, - 0x2000, - 0x4000, - 0x0000, - 0x4000, - 0x0000, + +--------+ + | * | + |* * | + | * | + | * | + | | + | * | + | | + +--------+ */ + 0x40, + 0xa0, + 0x20, + 0x40, + 0x00, + 0x40, + 0x00, /* Character (0x40): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - |* * | - |* ** | - |* ** | - |* | - | ** | - | | - +----------------+ */ - 0x6000, - 0x9000, - 0xb000, - 0xb000, - 0x8000, - 0x6000, - 0x0000, + +--------+ + | ** | + |* * | + |* ** | + |* ** | + |* | + | ** | + | | + +--------+ */ + 0x60, + 0x90, + 0xb0, + 0xb0, + 0x80, + 0x60, + 0x00, /* Character (0x41): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - |* * | - |* * | - |**** | - |* * | - |* * | - | | - +----------------+ */ - 0x6000, - 0x9000, - 0x9000, - 0xf000, - 0x9000, - 0x9000, - 0x0000, + +--------+ + | ** | + |* * | + |* * | + |**** | + |* * | + |* * | + | | + +--------+ */ + 0x60, + 0x90, + 0x90, + 0xf0, + 0x90, + 0x90, + 0x00, /* Character (0x42): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |*** | - |* * | - |*** | - |* * | - |* * | - |*** | - | | - +----------------+ */ - 0xe000, - 0x9000, - 0xe000, - 0x9000, - 0x9000, - 0xe000, - 0x0000, + +--------+ + |*** | + |* * | + |*** | + |* * | + |* * | + |*** | + | | + +--------+ */ + 0xe0, + 0x90, + 0xe0, + 0x90, + 0x90, + 0xe0, + 0x00, /* Character (0x43): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - |* * | - |* | - |* | - |* * | - | ** | - | | - +----------------+ */ - 0x6000, - 0x9000, - 0x8000, - 0x8000, - 0x9000, - 0x6000, - 0x0000, + +--------+ + | ** | + |* * | + |* | + |* | + |* * | + | ** | + | | + +--------+ */ + 0x60, + 0x90, + 0x80, + 0x80, + 0x90, + 0x60, + 0x00, /* Character (0x44): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |*** | - |* * | - |* * | - |* * | - |* * | - |*** | - | | - +----------------+ */ - 0xe000, - 0x9000, - 0x9000, - 0x9000, - 0x9000, - 0xe000, - 0x0000, + +--------+ + |*** | + |* * | + |* * | + |* * | + |* * | + |*** | + | | + +--------+ */ + 0xe0, + 0x90, + 0x90, + 0x90, + 0x90, + 0xe0, + 0x00, /* Character (0x45): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |**** | - |* | - |*** | - |* | - |* | - |**** | - | | - +----------------+ */ - 0xf000, - 0x8000, - 0xe000, - 0x8000, - 0x8000, - 0xf000, - 0x0000, + +--------+ + |**** | + |* | + |*** | + |* | + |* | + |**** | + | | + +--------+ */ + 0xf0, + 0x80, + 0xe0, + 0x80, + 0x80, + 0xf0, + 0x00, /* Character (0x46): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |**** | - |* | - |*** | - |* | - |* | - |* | - | | - +----------------+ */ - 0xf000, - 0x8000, - 0xe000, - 0x8000, - 0x8000, - 0x8000, - 0x0000, + +--------+ + |**** | + |* | + |*** | + |* | + |* | + |* | + | | + +--------+ */ + 0xf0, + 0x80, + 0xe0, + 0x80, + 0x80, + 0x80, + 0x00, /* Character (0x47): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - |* * | - |* | - |* ** | - |* * | - | *** | - | | - +----------------+ */ - 0x6000, - 0x9000, - 0x8000, - 0xb000, - 0x9000, - 0x7000, - 0x0000, + +--------+ + | ** | + |* * | + |* | + |* ** | + |* * | + | *** | + | | + +--------+ */ + 0x60, + 0x90, + 0x80, + 0xb0, + 0x90, + 0x70, + 0x00, /* Character (0x48): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* * | - |* * | - |**** | - |* * | - |* * | - |* * | - | | - +----------------+ */ - 0x9000, - 0x9000, - 0xf000, - 0x9000, - 0x9000, - 0x9000, - 0x0000, + +--------+ + |* * | + |* * | + |**** | + |* * | + |* * | + |* * | + | | + +--------+ */ + 0x90, + 0x90, + 0xf0, + 0x90, + 0x90, + 0x90, + 0x00, /* Character (0x49): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |*** | - | * | - | * | - | * | - | * | - |*** | - | | - +----------------+ */ - 0xe000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0xe000, - 0x0000, + +--------+ + |*** | + | * | + | * | + | * | + | * | + |*** | + | | + +--------+ */ + 0xe0, + 0x40, + 0x40, + 0x40, + 0x40, + 0xe0, + 0x00, /* Character (0x4a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - | * | - | * | - |* * | - | ** | - | | - +----------------+ */ - 0x1000, - 0x1000, - 0x1000, - 0x1000, - 0x9000, - 0x6000, - 0x0000, + +--------+ + | * | + | * | + | * | + | * | + |* * | + | ** | + | | + +--------+ */ + 0x10, + 0x10, + 0x10, + 0x10, + 0x90, + 0x60, + 0x00, /* Character (0x4b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* * | - |* * | - |** | - |** | - |* * | - |* * | - | | - +----------------+ */ - 0x9000, - 0xa000, - 0xc000, - 0xc000, - 0xa000, - 0x9000, - 0x0000, + +--------+ + |* * | + |* * | + |** | + |** | + |* * | + |* * | + | | + +--------+ */ + 0x90, + 0xa0, + 0xc0, + 0xc0, + 0xa0, + 0x90, + 0x00, /* Character (0x4c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* | - |* | - |* | - |* | - |* | - |**** | - | | - +----------------+ */ - 0x8000, - 0x8000, - 0x8000, - 0x8000, - 0x8000, - 0xf000, - 0x0000, + +--------+ + |* | + |* | + |* | + |* | + |* | + |**** | + | | + +--------+ */ + 0x80, + 0x80, + 0x80, + 0x80, + 0x80, + 0xf0, + 0x00, /* Character (0x4d): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* * | - |**** | - |**** | - |* * | - |* * | - |* * | - | | - +----------------+ */ - 0x9000, - 0xf000, - 0xf000, - 0x9000, - 0x9000, - 0x9000, - 0x0000, + +--------+ + |* * | + |**** | + |**** | + |* * | + |* * | + |* * | + | | + +--------+ */ + 0x90, + 0xf0, + 0xf0, + 0x90, + 0x90, + 0x90, + 0x00, /* Character (0x4e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* * | - |** * | - |** * | - |* ** | - |* ** | - |* * | - | | - +----------------+ */ - 0x9000, - 0xd000, - 0xd000, - 0xb000, - 0xb000, - 0x9000, - 0x0000, + +--------+ + |* * | + |** * | + |** * | + |* ** | + |* ** | + |* * | + | | + +--------+ */ + 0x90, + 0xd0, + 0xd0, + 0xb0, + 0xb0, + 0x90, + 0x00, /* Character (0x4f): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - |* * | - |* * | - |* * | - |* * | - | ** | - | | - +----------------+ */ - 0x6000, - 0x9000, - 0x9000, - 0x9000, - 0x9000, - 0x6000, - 0x0000, + +--------+ + | ** | + |* * | + |* * | + |* * | + |* * | + | ** | + | | + +--------+ */ + 0x60, + 0x90, + 0x90, + 0x90, + 0x90, + 0x60, + 0x00, /* Character (0x50): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |*** | - |* * | - |* * | - |*** | - |* | - |* | - | | - +----------------+ */ - 0xe000, - 0x9000, - 0x9000, - 0xe000, - 0x8000, - 0x8000, - 0x0000, + +--------+ + |*** | + |* * | + |* * | + |*** | + |* | + |* | + | | + +--------+ */ + 0xe0, + 0x90, + 0x90, + 0xe0, + 0x80, + 0x80, + 0x00, /* Character (0x51): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - |* * | - |* * | - |* * | - |** * | - | ** | - | * | - +----------------+ */ - 0x6000, - 0x9000, - 0x9000, - 0x9000, - 0xd000, - 0x6000, - 0x1000, + +--------+ + | ** | + |* * | + |* * | + |* * | + |** * | + | ** | + | * | + +--------+ */ + 0x60, + 0x90, + 0x90, + 0x90, + 0xd0, + 0x60, + 0x10, /* Character (0x52): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |*** | - |* * | - |* * | - |*** | - |* * | - |* * | - | | - +----------------+ */ - 0xe000, - 0x9000, - 0x9000, - 0xe000, - 0xa000, - 0x9000, - 0x0000, + +--------+ + |*** | + |* * | + |* * | + |*** | + |* * | + |* * | + | | + +--------+ */ + 0xe0, + 0x90, + 0x90, + 0xe0, + 0xa0, + 0x90, + 0x00, /* Character (0x53): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | ** | - |* * | - | * | - | * | - |* * | - | ** | - | | - +----------------+ */ - 0x6000, - 0x9000, - 0x4000, - 0x2000, - 0x9000, - 0x6000, - 0x0000, + +--------+ + | ** | + |* * | + | * | + | * | + |* * | + | ** | + | | + +--------+ */ + 0x60, + 0x90, + 0x40, + 0x20, + 0x90, + 0x60, + 0x00, /* Character (0x54): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |*** | - | * | - | * | - | * | - | * | - | * | - | | - +----------------+ */ - 0xe000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0x0000, + +--------+ + |*** | + | * | + | * | + | * | + | * | + | * | + | | + +--------+ */ + 0xe0, + 0x40, + 0x40, + 0x40, + 0x40, + 0x40, + 0x00, /* Character (0x55): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* * | - |* * | - |* * | - |* * | - |* * | - | ** | - | | - +----------------+ */ - 0x9000, - 0x9000, - 0x9000, - 0x9000, - 0x9000, - 0x6000, - 0x0000, + +--------+ + |* * | + |* * | + |* * | + |* * | + |* * | + | ** | + | | + +--------+ */ + 0x90, + 0x90, + 0x90, + 0x90, + 0x90, + 0x60, + 0x00, /* Character (0x56): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* * | - |* * | - |* * | - |* * | - | ** | - | ** | - | | - +----------------+ */ - 0x9000, - 0x9000, - 0x9000, - 0x9000, - 0x6000, - 0x6000, - 0x0000, + +--------+ + |* * | + |* * | + |* * | + |* * | + | ** | + | ** | + | | + +--------+ */ + 0x90, + 0x90, + 0x90, + 0x90, + 0x60, + 0x60, + 0x00, /* Character (0x57): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* * | - |* * | - |* * | - |**** | - |**** | - |* * | - | | - +----------------+ */ - 0x9000, - 0x9000, - 0x9000, - 0xf000, - 0xf000, - 0x9000, - 0x0000, + +--------+ + |* * | + |* * | + |* * | + |**** | + |**** | + |* * | + | | + +--------+ */ + 0x90, + 0x90, + 0x90, + 0xf0, + 0xf0, + 0x90, + 0x00, /* Character (0x58): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* * | - |* * | - | ** | - | ** | - |* * | - |* * | - | | - +----------------+ */ - 0x9000, - 0x9000, - 0x6000, - 0x6000, - 0x9000, - 0x9000, - 0x0000, + +--------+ + |* * | + |* * | + | ** | + | ** | + |* * | + |* * | + | | + +--------+ */ + 0x90, + 0x90, + 0x60, + 0x60, + 0x90, + 0x90, + 0x00, /* Character (0x59): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* * | - |* * | - |* * | - | * | - | * | - | * | - | | - +----------------+ */ - 0xa000, - 0xa000, - 0xa000, - 0x4000, - 0x4000, - 0x4000, - 0x0000, + +--------+ + |* * | + |* * | + |* * | + | * | + | * | + | * | + | | + +--------+ */ + 0xa0, + 0xa0, + 0xa0, + 0x40, + 0x40, + 0x40, + 0x00, /* Character (0x5a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |**** | - | * | - | * | - | * | - |* | - |**** | - | | - +----------------+ */ - 0xf000, - 0x1000, - 0x2000, - 0x4000, - 0x8000, - 0xf000, - 0x0000, + +--------+ + |**** | + | * | + | * | + | * | + |* | + |**** | + | | + +--------+ */ + 0xf0, + 0x10, + 0x20, + 0x40, + 0x80, + 0xf0, + 0x00, /* Character (0x5b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |*** | - |* | - |* | - |* | - |* | - |*** | - | | - +----------------+ */ - 0xe000, - 0x8000, - 0x8000, - 0x8000, - 0x8000, - 0xe000, - 0x0000, + +--------+ + |*** | + |* | + |* | + |* | + |* | + |*** | + | | + +--------+ */ + 0xe0, + 0x80, + 0x80, + 0x80, + 0x80, + 0xe0, + 0x00, /* Character (0x5c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - |* | - | * | - | * | - | * | - | | - | | - +----------------+ */ - 0x0000, - 0x8000, - 0x4000, - 0x2000, - 0x1000, - 0x0000, - 0x0000, + +--------+ + | | + |* | + | * | + | * | + | * | + | | + | | + +--------+ */ + 0x00, + 0x80, + 0x40, + 0x20, + 0x10, + 0x00, + 0x00, /* Character (0x5d): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |*** | - | * | - | * | - | * | - | * | - |*** | - | | - +----------------+ */ - 0xe000, - 0x2000, - 0x2000, - 0x2000, - 0x2000, - 0xe000, - 0x0000, + +--------+ + |*** | + | * | + | * | + | * | + | * | + |*** | + | | + +--------+ */ + 0xe0, + 0x20, + 0x20, + 0x20, + 0x20, + 0xe0, + 0x00, /* Character (0x5e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - |* * | - | | - | | - | | - | | - | | - +----------------+ */ - 0x4000, - 0xa000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + +--------+ + | * | + |* * | + | | + | | + | | + | | + | | + +--------+ */ + 0x40, + 0xa0, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, /* Character (0x5f): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | | - | | - | | - |**** | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0xf000, - 0x0000, + +--------+ + | | + | | + | | + | | + | | + |**** | + | | + +--------+ */ + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xf0, + 0x00, /* Character (0x60): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |** | - | * | - | * | - | | - | | - | | - | | - +----------------+ */ - 0xc000, - 0x4000, - 0x2000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + +--------+ + |** | + | * | + | * | + | | + | | + | | + | | + +--------+ */ + 0xc0, + 0x40, + 0x20, + 0x00, + 0x00, + 0x00, + 0x00, /* Character (0x61): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | *** | - |* * | - |* ** | - | * * | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x7000, - 0x9000, - 0xb000, - 0x5000, - 0x0000, + +--------+ + | | + | | + | *** | + |* * | + |* ** | + | * * | + | | + +--------+ */ + 0x00, + 0x00, + 0x70, + 0x90, + 0xb0, + 0x50, + 0x00, /* Character (0x62): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* | - |* | - |*** | - |* * | - |* * | - |*** | - | | - +----------------+ */ - 0x8000, - 0x8000, - 0xe000, - 0x9000, - 0x9000, - 0xe000, - 0x0000, + +--------+ + |* | + |* | + |*** | + |* * | + |* * | + |*** | + | | + +--------+ */ + 0x80, + 0x80, + 0xe0, + 0x90, + 0x90, + 0xe0, + 0x00, /* Character (0x63): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | ** | - |* | - |* | - | ** | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x6000, - 0x8000, - 0x8000, - 0x6000, - 0x0000, + +--------+ + | | + | | + | ** | + |* | + |* | + | ** | + | | + +--------+ */ + 0x00, + 0x00, + 0x60, + 0x80, + 0x80, + 0x60, + 0x00, /* Character (0x64): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - | *** | - |* * | - |* * | - | *** | - | | - +----------------+ */ - 0x1000, - 0x1000, - 0x7000, - 0x9000, - 0x9000, - 0x7000, - 0x0000, + +--------+ + | * | + | * | + | *** | + |* * | + |* * | + | *** | + | | + +--------+ */ + 0x10, + 0x10, + 0x70, + 0x90, + 0x90, + 0x70, + 0x00, /* Character (0x65): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | ** | - |* ** | - |** | - | ** | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x6000, - 0xb000, - 0xc000, - 0x6000, - 0x0000, + +--------+ + | | + | | + | ** | + |* ** | + |** | + | ** | + | | + +--------+ */ + 0x00, + 0x00, + 0x60, + 0xb0, + 0xc0, + 0x60, + 0x00, /* Character (0x66): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * * | - | * | - |*** | - | * | - | * | - | | - +----------------+ */ - 0x2000, - 0x5000, - 0x4000, - 0xe000, - 0x4000, - 0x4000, - 0x0000, + +--------+ + | * | + | * * | + | * | + |*** | + | * | + | * | + | | + +--------+ */ + 0x20, + 0x50, + 0x40, + 0xe0, + 0x40, + 0x40, + 0x00, /* Character (0x67): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | *** | - |* * | - | ** | - |* | - | *** | - +----------------+ */ - 0x0000, - 0x0000, - 0x7000, - 0x9000, - 0x6000, - 0x8000, - 0x7000, + +--------+ + | | + | | + | *** | + |* * | + | ** | + |* | + | *** | + +--------+ */ + 0x00, + 0x00, + 0x70, + 0x90, + 0x60, + 0x80, + 0x70, /* Character (0x68): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* | - |* | - |*** | - |* * | - |* * | - |* * | - | | - +----------------+ */ - 0x8000, - 0x8000, - 0xe000, - 0x9000, - 0x9000, - 0x9000, - 0x0000, + +--------+ + |* | + |* | + |*** | + |* * | + |* * | + |* * | + | | + +--------+ */ + 0x80, + 0x80, + 0xe0, + 0x90, + 0x90, + 0x90, + 0x00, /* Character (0x69): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | | - |** | - | * | - | * | - |*** | - | | - +----------------+ */ - 0x4000, - 0x0000, - 0xc000, - 0x4000, - 0x4000, - 0xe000, - 0x0000, + +--------+ + | * | + | | + |** | + | * | + | * | + |*** | + | | + +--------+ */ + 0x40, + 0x00, + 0xc0, + 0x40, + 0x40, + 0xe0, + 0x00, /* Character (0x6a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | | - | * | - | * | - | * | - |* * | - | * | - +----------------+ */ - 0x2000, - 0x0000, - 0x2000, - 0x2000, - 0x2000, - 0xa000, - 0x4000, + +--------+ + | * | + | | + | * | + | * | + | * | + |* * | + | * | + +--------+ */ + 0x20, + 0x00, + 0x20, + 0x20, + 0x20, + 0xa0, + 0x40, /* Character (0x6b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* | - |* | - |* * | - |** | - |* * | - |* * | - | | - +----------------+ */ - 0x8000, - 0x8000, - 0xa000, - 0xc000, - 0xa000, - 0x9000, - 0x0000, + +--------+ + |* | + |* | + |* * | + |** | + |* * | + |* * | + | | + +--------+ */ + 0x80, + 0x80, + 0xa0, + 0xc0, + 0xa0, + 0x90, + 0x00, /* Character (0x6c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |** | - | * | - | * | - | * | - | * | - |*** | - | | - +----------------+ */ - 0xc000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0xe000, - 0x0000, + +--------+ + |** | + | * | + | * | + | * | + | * | + |*** | + | | + +--------+ */ + 0xc0, + 0x40, + 0x40, + 0x40, + 0x40, + 0xe0, + 0x00, /* Character (0x6d): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |* * | - |**** | - |* * | - |* * | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0xa000, - 0xf000, - 0x9000, - 0x9000, - 0x0000, + +--------+ + | | + | | + |* * | + |**** | + |* * | + |* * | + | | + +--------+ */ + 0x00, + 0x00, + 0xa0, + 0xf0, + 0x90, + 0x90, + 0x00, /* Character (0x6e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |*** | - |* * | - |* * | - |* * | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0xe000, - 0x9000, - 0x9000, - 0x9000, - 0x0000, + +--------+ + | | + | | + |*** | + |* * | + |* * | + |* * | + | | + +--------+ */ + 0x00, + 0x00, + 0xe0, + 0x90, + 0x90, + 0x90, + 0x00, /* Character (0x6f): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | ** | - |* * | - |* * | - | ** | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x6000, - 0x9000, - 0x9000, - 0x6000, - 0x0000, + +--------+ + | | + | | + | ** | + |* * | + |* * | + | ** | + | | + +--------+ */ + 0x00, + 0x00, + 0x60, + 0x90, + 0x90, + 0x60, + 0x00, /* Character (0x70): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |*** | - |* * | - |* * | - |*** | - |* | - +----------------+ */ - 0x0000, - 0x0000, - 0xe000, - 0x9000, - 0x9000, - 0xe000, - 0x8000, + +--------+ + | | + | | + |*** | + |* * | + |* * | + |*** | + |* | + +--------+ */ + 0x00, + 0x00, + 0xe0, + 0x90, + 0x90, + 0xe0, + 0x80, /* Character (0x71): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | *** | - |* * | - |* * | - | *** | - | * | - +----------------+ */ - 0x0000, - 0x0000, - 0x7000, - 0x9000, - 0x9000, - 0x7000, - 0x1000, + +--------+ + | | + | | + | *** | + |* * | + |* * | + | *** | + | * | + +--------+ */ + 0x00, + 0x00, + 0x70, + 0x90, + 0x90, + 0x70, + 0x10, /* Character (0x72): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |*** | - |* * | - |* | - |* | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0xe000, - 0x9000, - 0x8000, - 0x8000, - 0x0000, + +--------+ + | | + | | + |*** | + |* * | + |* | + |* | + | | + +--------+ */ + 0x00, + 0x00, + 0xe0, + 0x90, + 0x80, + 0x80, + 0x00, /* Character (0x73): bbw=6, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - | *** | - |** | - | ** | - |*** | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x7000, - 0xc000, - 0x3000, - 0xe000, - 0x0000, + +--------+ + | | + | | + | *** | + |** | + | ** | + |*** | + | | + +--------+ */ + 0x00, + 0x00, + 0x70, + 0xc0, + 0x30, + 0xe0, + 0x00, /* Character (0x74): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - |*** | - | * | - | * | - | ** | - | | - +----------------+ */ - 0x4000, - 0x4000, - 0xe000, - 0x4000, - 0x4000, - 0x3000, - 0x0000, + +--------+ + | * | + | * | + |*** | + | * | + | * | + | ** | + | | + +--------+ */ + 0x40, + 0x40, + 0xe0, + 0x40, + 0x40, + 0x30, + 0x00, /* Character (0x75): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |* * | - |* * | - |* * | - | *** | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x9000, - 0x9000, - 0x9000, - 0x7000, - 0x0000, + +--------+ + | | + | | + |* * | + |* * | + |* * | + | *** | + | | + +--------+ */ + 0x00, + 0x00, + 0x90, + 0x90, + 0x90, + 0x70, + 0x00, /* Character (0x76): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |* * | - |* * | - |* * | - | * | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0xa000, - 0xa000, - 0xa000, - 0x4000, - 0x0000, + +--------+ + | | + | | + |* * | + |* * | + |* * | + | * | + | | + +--------+ */ + 0x00, + 0x00, + 0xa0, + 0xa0, + 0xa0, + 0x40, + 0x00, /* Character (0x77): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |* * | - |* * | - |**** | - |**** | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x9000, - 0x9000, - 0xf000, - 0xf000, - 0x0000, + +--------+ + | | + | | + |* * | + |* * | + |**** | + |**** | + | | + +--------+ */ + 0x00, + 0x00, + 0x90, + 0x90, + 0xf0, + 0xf0, + 0x00, /* Character (0x78): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |* * | - | ** | - | ** | - |* * | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0x9000, - 0x6000, - 0x6000, - 0x9000, - 0x0000, + +--------+ + | | + | | + |* * | + | ** | + | ** | + |* * | + | | + +--------+ */ + 0x00, + 0x00, + 0x90, + 0x60, + 0x60, + 0x90, + 0x00, /* Character (0x79): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |* * | - |* * | - | * * | - | * | - | * | - +----------------+ */ - 0x0000, - 0x0000, - 0x9000, - 0x9000, - 0x5000, - 0x2000, - 0x4000, + +--------+ + | | + | | + |* * | + |* * | + | * * | + | * | + | * | + +--------+ */ + 0x00, + 0x00, + 0x90, + 0x90, + 0x50, + 0x20, + 0x40, /* Character (0x7a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | | - | | - |**** | - | * | - | * | - |**** | - | | - +----------------+ */ - 0x0000, - 0x0000, - 0xf000, - 0x2000, - 0x4000, - 0xf000, - 0x0000, + +--------+ + | | + | | + |**** | + | * | + | * | + |**** | + | | + +--------+ */ + 0x00, + 0x00, + 0xf0, + 0x20, + 0x40, + 0xf0, + 0x00, /* Character (0x7b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - |** | - | * | - | * | - | * | - | | - +----------------+ */ - 0x2000, - 0x4000, - 0xc000, - 0x4000, - 0x4000, - 0x2000, - 0x0000, + +--------+ + | * | + | * | + |** | + | * | + | * | + | * | + | | + +--------+ */ + 0x20, + 0x40, + 0xc0, + 0x40, + 0x40, + 0x20, + 0x00, /* Character (0x7c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * | - | * | - | * | - | * | - | * | - | * | - | | - +----------------+ */ - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0x0000, + +--------+ + | * | + | * | + | * | + | * | + | * | + | * | + | | + +--------+ */ + 0x40, + 0x40, + 0x40, + 0x40, + 0x40, + 0x40, + 0x00, /* Character (0x7d): bbw=6, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - |* | - | * | - | ** | - | * | - | * | - |* | - | | - +----------------+ */ - 0x8000, - 0x4000, - 0x6000, - 0x4000, - 0x4000, - 0x8000, - 0x0000, + +--------+ + |* | + | * | + | ** | + | * | + | * | + |* | + | | + +--------+ */ + 0x80, + 0x40, + 0x60, + 0x40, + 0x40, + 0x80, + 0x00, /* Character (0x7e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 - +----------------+ - | * * | - |* * | - | | - | | - | | - | | - | | - +----------------+ */ - 0x5000, - 0xa000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + +--------+ + | * * | + |* * | + | | + | | + | | + | | + | | + +--------+ */ + 0x50, + 0xa0, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, }; #if 0 @@ -2561,5 +2085,27 @@ static UNS_8 x5x7_width [] = #endif /* Font information structure */ -//const FONT_T font_x5x7 = {7, 0x00, 0x7E, x5x7_bits, x5x7_width}; +//const FONT_T font_x5x7 = {7, 0x, 0x7E, x5x7_bits, x5x7_width}; + + + +uint8_t x5x7_map_char_table(uint8_t ch) +{ + if ( ch > 0x7e ) + { + /* limit to largest character */ + ch = 0x7e - 32 + 7; + } + else if ( ch >= 32 ) + { + /* normal character */ + ch = ch - 32 + 7; + } + else + { + /* special character */ + } + + return ch; +} diff --git a/README.md b/README.md index 26e43ed..85ca090 100644 --- a/README.md +++ b/README.md @@ -101,3 +101,4 @@ Hardware design material is disclosed to prevent bad quality clone. Please let m * [@hugen79](https://github.com/hugen79) * [@cho45](https://github.com/cho45) +* DL9CAT diff --git a/ili9341.c b/ili9341.c index e42d6de..4f9edb7 100644 --- a/ili9341.c +++ b/ili9341.c @@ -334,22 +334,31 @@ ili9341_read_memory_continue(int len, uint16_t* out) ili9341_read_memory_raw(0x3E, len, out); } + + void ili9341_drawchar_5x7(uint8_t ch, int x, int y, uint16_t fg, uint16_t bg) { uint16_t *buf = spi_buffer; - uint16_t bits; + uint8_t bits; int c, r; - for(c = 0; c < 7; c++) { + + ch = x5x7_map_char_table(ch); + + for(c = 0; c < 7; c++) + { bits = x5x7_bits[(ch * 7) + c]; - for (r = 0; r < 5; r++) { - *buf++ = (0x8000 & bits) ? fg : bg; + for (r = 0; r < 5; r++) + { + *buf++ = (0x80 & bits) ? fg : bg; bits <<= 1; } } ili9341_bulk(x, y, 5, 7); } + + void ili9341_drawstring_5x7(const char *str, int x, int y, uint16_t fg, uint16_t bg) { @@ -360,17 +369,25 @@ ili9341_drawstring_5x7(const char *str, int x, int y, uint16_t fg, uint16_t bg) } } + + void ili9341_drawchar_size(uint8_t ch, int x, int y, uint16_t fg, uint16_t bg, uint8_t size) { uint16_t *buf = spi_buffer; - uint16_t bits; + uint8_t bits; int c, r; - for(c = 0; c < 7*size; c++) { + + ch = x5x7_map_char_table(ch); + + for(c = 0; c < 7*size; c++) + { bits = x5x7_bits[(ch * 7) + (c / size)]; - for (r = 0; r < 5*size; r++) { - *buf++ = (0x8000 & bits) ? fg : bg; - if (r % size == (size-1)) { + for (r = 0; r < 5*size; r++) + { + *buf++ = (0x80 & bits) ? fg : bg; + if (r % size == (size-1)) + { bits <<= 1; } } @@ -378,6 +395,8 @@ ili9341_drawchar_size(uint8_t ch, int x, int y, uint16_t fg, uint16_t bg, uint8_ ili9341_bulk(x, y, 5*size, 7*size); } + + void ili9341_drawstring_size(const char *str, int x, int y, uint16_t fg, uint16_t bg, uint8_t size) { diff --git a/nanovna.h b/nanovna.h index e60924d..d5d4a5e 100644 --- a/nanovna.h +++ b/nanovna.h @@ -147,15 +147,19 @@ extern int area_height; // font -extern const uint16_t x5x7_bits []; +extern const uint8_t x5x7_bits []; extern const uint32_t numfont20x24[][24]; -#define S_PI "\034" -#define S_MICRO "\035" -#define S_OHM "\036" -#define S_DEGREE "\037" -#define S_LARROW "\032" -#define S_RARROW "\033" +#define S_PI "\003" +#define S_MICRO "\004" +#define S_OHM "\005" +#define S_DEGREE "\006" +#define S_LARROW "\001" +#define S_RARROW "\002" + +extern uint8_t x5x7_map_char_table(uint8_t ch); + + // trace diff --git a/plot.c b/plot.c index 83ed0fb..e8f65fe 100644 --- a/plot.c +++ b/plot.c @@ -1003,19 +1003,27 @@ cell_draw_refpos(int m, int n, int w, int h) } } + + void draw_marker(int w, int h, int x, int y, int c, int ch) { int i, j; - for (j = 10; j >= 0; j--) { + + ch = x5x7_map_char_table(ch); + + for (j = 10; j >= 0; j--) + { int j0 = j / 2; - for (i = -j0; i <= j0; i++) { + for (i = -j0; i <= j0; i++) + { int x0 = x + i; int y0 = y - j; int cc = c; - if (j <= 9 && j > 2 && i >= -1 && i <= 3) { - uint16_t bits = x5x7_bits[(ch * 7) + (9-j)]; - if (bits & (0x8000>>(i+1))) + if ( j <= 9 && j > 2 && i >= -1 && i <= 3 ) + { + uint8_t bits = x5x7_bits[(ch * 7) + (9-j)]; + if ( bits & (0x80>>(i+1)) ) cc = 0; } if (y0 >= 0 && y0 < h && x0 >= 0 && x0 < w) @@ -1024,6 +1032,8 @@ draw_marker(int w, int h, int x, int y, int c, int ch) } } + + void marker_position(int m, int t, int *x, int *y) { @@ -1300,27 +1310,40 @@ request_to_draw_cells_behind_numeric_input(void) } + void cell_drawchar_5x7(int w, int h, uint8_t ch, int x, int y, uint16_t fg, int invert) { - uint16_t bits; + uint8_t bits; int c, r; + if (y <= -7 || y >= h || x <= -5 || x >= w) return; - for(c = 0; c < 7; c++) { + + ch = x5x7_map_char_table(ch); + + for(c = 0; c < 7; c++) + { if ((y + c) < 0 || (y + c) >= h) continue; + bits = x5x7_bits[(ch * 7) + c]; + if (invert) bits = ~bits; - for (r = 0; r < 5; r++) { - if ((x+r) >= 0 && (x+r) < w && (0x8000 & bits)) + + for (r = 0; r < 5; r++) + { + if ( (x+r) >= 0 && (x+r) < w && (0x80 & bits) ) spi_buffer[(y+c)*w + (x+r)] = fg; + bits <<= 1; } } } + + void cell_drawstring_5x7(int w, int h, char *str, int x, int y, uint16_t fg) { @@ -1331,16 +1354,21 @@ cell_drawstring_5x7(int w, int h, char *str, int x, int y, uint16_t fg) } } + + void cell_drawstring_invert_5x7(int w, int h, char *str, int x, int y, uint16_t fg, int invert) { - while (*str) { + while (*str) + { cell_drawchar_5x7(w, h, *str, x, y, fg, invert); x += 5; str++; } } + + static void cell_draw_marker_info(int m, int n, int w, int h) {