MBED Import of ADAFRUIT graphics library, BSD License

Dependents:   GP9002adafruit GP9002af_gray

Notes on this library

This was imported into MBED specifically to support the GP9002 VFD, as a result it has some "hacks" to optimize it for the GP9002.

Due to the GP9002 internal organization it draws vertical lines much faster than horizontal (assuming you orient it "landscape"). This is likely to be true of other displays that have bits in a byte arranged vertically, which seems a common theme in small GLCDs. Some types may have a more CGA-like memory organization and will draw faster horizontally.

On a vertical-organised display the graphics functions are often substantially faster if X and Y are exchanged, especially with the dot-write optimization. This is because vertical lines can be written byte-at-a-time with no need for read-modify-write, and even when individual bits are written a significant number will "land" in the byte previously written. In contrast a horizontal line would require changing one bit of each byte in turn, requiring a sequence of set-address,read,write operations for each dot in turn.

I've hacked this in the library. I forget exactly how but I believe I simply exchanged X with W in the code for drawing filled shapes.

I would like to come up with a more generic way to do this, such as having internal coordinates that are not defined as X and Y, then leaving it up to the display library to "wrap" them in the way that is best for that display.

I would like to apologize for abandoning this project, but the test harness still exists and I might return to it, though I'm more interested in TFT systems like the STM discovery now.

Committer:
oliverb
Date:
Sat May 07 12:50:37 2016 +0000
Revision:
0:3bf8ef959338
Converting to Library, this is a base class that needs extending for a specific device. Note that as it stands it favors devices with vertical bit-organisation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
oliverb 0:3bf8ef959338 1 const uint8_t FreeMono9pt7bBitmaps[] PROGMEM = {
oliverb 0:3bf8ef959338 2 0xAA, 0xA8, 0x0C, 0xED, 0x24, 0x92, 0x48, 0x24, 0x48, 0x91, 0x2F, 0xE4,
oliverb 0:3bf8ef959338 3 0x89, 0x7F, 0x28, 0x51, 0x22, 0x40, 0x08, 0x3E, 0x62, 0x40, 0x30, 0x0E,
oliverb 0:3bf8ef959338 4 0x01, 0x81, 0xC3, 0xBE, 0x08, 0x08, 0x71, 0x12, 0x23, 0x80, 0x23, 0xB8,
oliverb 0:3bf8ef959338 5 0x0E, 0x22, 0x44, 0x70, 0x38, 0x81, 0x02, 0x06, 0x1A, 0x65, 0x46, 0xC8,
oliverb 0:3bf8ef959338 6 0xEC, 0xE9, 0x24, 0x5A, 0xAA, 0xA9, 0x40, 0xA9, 0x55, 0x5A, 0x80, 0x10,
oliverb 0:3bf8ef959338 7 0x22, 0x4B, 0xE3, 0x05, 0x11, 0x00, 0x10, 0x20, 0x47, 0xF1, 0x02, 0x04,
oliverb 0:3bf8ef959338 8 0x00, 0x6B, 0x48, 0xFF, 0x00, 0xF0, 0x02, 0x08, 0x10, 0x60, 0x81, 0x04,
oliverb 0:3bf8ef959338 9 0x08, 0x20, 0x41, 0x02, 0x08, 0x00, 0x38, 0x8A, 0x0C, 0x18, 0x30, 0x60,
oliverb 0:3bf8ef959338 10 0xC1, 0x82, 0x88, 0xE0, 0x27, 0x28, 0x42, 0x10, 0x84, 0x21, 0x3E, 0x38,
oliverb 0:3bf8ef959338 11 0x8A, 0x08, 0x10, 0x20, 0x82, 0x08, 0x61, 0x03, 0xF8, 0x7C, 0x06, 0x02,
oliverb 0:3bf8ef959338 12 0x02, 0x1C, 0x06, 0x01, 0x01, 0x01, 0x42, 0x3C, 0x18, 0xA2, 0x92, 0x8A,
oliverb 0:3bf8ef959338 13 0x28, 0xBF, 0x08, 0x21, 0xC0, 0x7C, 0x81, 0x03, 0xE4, 0x40, 0x40, 0x81,
oliverb 0:3bf8ef959338 14 0x03, 0x88, 0xE0, 0x1E, 0x41, 0x04, 0x0B, 0x98, 0xB0, 0xC1, 0xC2, 0x88,
oliverb 0:3bf8ef959338 15 0xE0, 0xFE, 0x04, 0x08, 0x20, 0x40, 0x82, 0x04, 0x08, 0x20, 0x40, 0x38,
oliverb 0:3bf8ef959338 16 0x8A, 0x0C, 0x14, 0x47, 0x11, 0x41, 0x83, 0x8C, 0xE0, 0x38, 0x8A, 0x1C,
oliverb 0:3bf8ef959338 17 0x18, 0x68, 0xCE, 0x81, 0x04, 0x13, 0xC0, 0xF0, 0x0F, 0x6C, 0x00, 0xD2,
oliverb 0:3bf8ef959338 18 0xD2, 0x00, 0x03, 0x04, 0x18, 0x60, 0x60, 0x18, 0x04, 0x03, 0xFF, 0x80,
oliverb 0:3bf8ef959338 19 0x00, 0x1F, 0xF0, 0x40, 0x18, 0x03, 0x00, 0x60, 0x20, 0x60, 0xC0, 0x80,
oliverb 0:3bf8ef959338 20 0x3D, 0x84, 0x08, 0x30, 0xC2, 0x00, 0x00, 0x00, 0x30, 0x3C, 0x46, 0x82,
oliverb 0:3bf8ef959338 21 0x8E, 0xB2, 0xA2, 0xA2, 0x9F, 0x80, 0x80, 0x40, 0x3C, 0x3C, 0x01, 0x40,
oliverb 0:3bf8ef959338 22 0x28, 0x09, 0x01, 0x10, 0x42, 0x0F, 0xC1, 0x04, 0x40, 0x9E, 0x3C, 0xFE,
oliverb 0:3bf8ef959338 23 0x21, 0x90, 0x48, 0x67, 0xE2, 0x09, 0x02, 0x81, 0x41, 0xFF, 0x80, 0x3E,
oliverb 0:3bf8ef959338 24 0xB0, 0xF0, 0x30, 0x08, 0x04, 0x02, 0x00, 0x80, 0x60, 0x8F, 0x80, 0xFE,
oliverb 0:3bf8ef959338 25 0x21, 0x90, 0x68, 0x14, 0x0A, 0x05, 0x02, 0x83, 0x43, 0x7F, 0x00, 0xFF,
oliverb 0:3bf8ef959338 26 0x20, 0x90, 0x08, 0x87, 0xC2, 0x21, 0x00, 0x81, 0x40, 0xFF, 0xC0, 0xFF,
oliverb 0:3bf8ef959338 27 0xA0, 0x50, 0x08, 0x87, 0xC2, 0x21, 0x00, 0x80, 0x40, 0x78, 0x00, 0x1E,
oliverb 0:3bf8ef959338 28 0x98, 0x6C, 0x0A, 0x00, 0x80, 0x20, 0xF8, 0x0B, 0x02, 0x60, 0x87, 0xC0,
oliverb 0:3bf8ef959338 29 0xE3, 0xA0, 0x90, 0x48, 0x27, 0xF2, 0x09, 0x04, 0x82, 0x41, 0x71, 0xC0,
oliverb 0:3bf8ef959338 30 0xF9, 0x08, 0x42, 0x10, 0x84, 0x27, 0xC0, 0x1F, 0x02, 0x02, 0x02, 0x02,
oliverb 0:3bf8ef959338 31 0x02, 0x82, 0x82, 0xC6, 0x78, 0xE3, 0xA1, 0x11, 0x09, 0x05, 0x83, 0x21,
oliverb 0:3bf8ef959338 32 0x08, 0x84, 0x41, 0x70, 0xC0, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x41,
oliverb 0:3bf8ef959338 33 0x41, 0x41, 0xFF, 0xE0, 0xEC, 0x19, 0x45, 0x28, 0xA4, 0xA4, 0x94, 0x91,
oliverb 0:3bf8ef959338 34 0x12, 0x02, 0x40, 0x5C, 0x1C, 0xC3, 0xB0, 0x94, 0x4A, 0x24, 0x92, 0x49,
oliverb 0:3bf8ef959338 35 0x14, 0x8A, 0x43, 0x70, 0x80, 0x1E, 0x31, 0x90, 0x50, 0x18, 0x0C, 0x06,
oliverb 0:3bf8ef959338 36 0x02, 0x82, 0x63, 0x0F, 0x00, 0xFE, 0x43, 0x41, 0x41, 0x42, 0x7C, 0x40,
oliverb 0:3bf8ef959338 37 0x40, 0x40, 0xF0, 0x1C, 0x31, 0x90, 0x50, 0x18, 0x0C, 0x06, 0x02, 0x82,
oliverb 0:3bf8ef959338 38 0x63, 0x1F, 0x04, 0x07, 0x92, 0x30, 0xFE, 0x21, 0x90, 0x48, 0x24, 0x23,
oliverb 0:3bf8ef959338 39 0xE1, 0x10, 0x84, 0x41, 0x70, 0xC0, 0x3A, 0xCD, 0x0A, 0x03, 0x01, 0x80,
oliverb 0:3bf8ef959338 40 0xC1, 0xC7, 0x78, 0xFF, 0xC4, 0x62, 0x21, 0x00, 0x80, 0x40, 0x20, 0x10,
oliverb 0:3bf8ef959338 41 0x08, 0x1F, 0x00, 0xE3, 0xA0, 0x90, 0x48, 0x24, 0x12, 0x09, 0x04, 0x82,
oliverb 0:3bf8ef959338 42 0x22, 0x0E, 0x00, 0xF1, 0xE8, 0x10, 0x82, 0x10, 0x42, 0x10, 0x22, 0x04,
oliverb 0:3bf8ef959338 43 0x80, 0x50, 0x0C, 0x00, 0x80, 0xF1, 0xE8, 0x09, 0x11, 0x25, 0x44, 0xA8,
oliverb 0:3bf8ef959338 44 0x55, 0x0C, 0xA1, 0x8C, 0x31, 0x84, 0x30, 0xE3, 0xA0, 0x88, 0x82, 0x80,
oliverb 0:3bf8ef959338 45 0x80, 0xC0, 0x90, 0x44, 0x41, 0x71, 0xC0, 0xE3, 0xA0, 0x88, 0x82, 0x81,
oliverb 0:3bf8ef959338 46 0x40, 0x40, 0x20, 0x10, 0x08, 0x1F, 0x00, 0xFD, 0x0A, 0x20, 0x81, 0x04,
oliverb 0:3bf8ef959338 47 0x10, 0x21, 0x83, 0xFC, 0xEA, 0xAA, 0xAA, 0xC0, 0x80, 0x81, 0x03, 0x02,
oliverb 0:3bf8ef959338 48 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0xD5, 0x55, 0x55, 0xC0,
oliverb 0:3bf8ef959338 49 0x10, 0x51, 0x22, 0x28, 0x20, 0xFF, 0xE0, 0x88, 0x80, 0x7E, 0x00, 0x80,
oliverb 0:3bf8ef959338 50 0x47, 0xEC, 0x14, 0x0A, 0x0C, 0xFB, 0xC0, 0x20, 0x10, 0x0B, 0xC6, 0x12,
oliverb 0:3bf8ef959338 51 0x05, 0x02, 0x81, 0x40, 0xB0, 0xB7, 0x80, 0x3A, 0x8E, 0x0C, 0x08, 0x10,
oliverb 0:3bf8ef959338 52 0x10, 0x9E, 0x03, 0x00, 0x80, 0x47, 0xA4, 0x34, 0x0A, 0x05, 0x02, 0x81,
oliverb 0:3bf8ef959338 53 0x21, 0x8F, 0x60, 0x3C, 0x43, 0x81, 0xFF, 0x80, 0x80, 0x61, 0x3E, 0x3D,
oliverb 0:3bf8ef959338 54 0x04, 0x3E, 0x41, 0x04, 0x10, 0x41, 0x0F, 0x80, 0x3D, 0xA1, 0xA0, 0x50,
oliverb 0:3bf8ef959338 55 0x28, 0x14, 0x09, 0x0C, 0x7A, 0x01, 0x01, 0x87, 0x80, 0xC0, 0x20, 0x10,
oliverb 0:3bf8ef959338 56 0x0B, 0xC6, 0x32, 0x09, 0x04, 0x82, 0x41, 0x20, 0xB8, 0xE0, 0x10, 0x01,
oliverb 0:3bf8ef959338 57 0xC0, 0x81, 0x02, 0x04, 0x08, 0x11, 0xFC, 0x10, 0x3E, 0x10, 0x84, 0x21,
oliverb 0:3bf8ef959338 58 0x08, 0x42, 0x3F, 0x00, 0xC0, 0x40, 0x40, 0x4F, 0x44, 0x58, 0x70, 0x48,
oliverb 0:3bf8ef959338 59 0x44, 0x42, 0xC7, 0x70, 0x20, 0x40, 0x81, 0x02, 0x04, 0x08, 0x10, 0x23,
oliverb 0:3bf8ef959338 60 0xF8, 0xB7, 0x64, 0x62, 0x31, 0x18, 0x8C, 0x46, 0x23, 0x91, 0x5E, 0x31,
oliverb 0:3bf8ef959338 61 0x90, 0x48, 0x24, 0x12, 0x09, 0x05, 0xC7, 0x3E, 0x31, 0xA0, 0x30, 0x18,
oliverb 0:3bf8ef959338 62 0x0C, 0x05, 0x8C, 0x7C, 0xDE, 0x30, 0x90, 0x28, 0x14, 0x0A, 0x05, 0x84,
oliverb 0:3bf8ef959338 63 0xBC, 0x40, 0x20, 0x38, 0x00, 0x3D, 0xA1, 0xA0, 0x50, 0x28, 0x14, 0x09,
oliverb 0:3bf8ef959338 64 0x0C, 0x7A, 0x01, 0x00, 0x80, 0xE0, 0xCE, 0xA1, 0x82, 0x04, 0x08, 0x10,
oliverb 0:3bf8ef959338 65 0x7C, 0x3A, 0x8D, 0x0B, 0x80, 0xF0, 0x70, 0xDE, 0x40, 0x40, 0xFC, 0x40,
oliverb 0:3bf8ef959338 66 0x40, 0x40, 0x40, 0x40, 0x41, 0x3E, 0xC3, 0x41, 0x41, 0x41, 0x41, 0x41,
oliverb 0:3bf8ef959338 67 0x43, 0x3D, 0xE3, 0xA0, 0x90, 0x84, 0x42, 0x20, 0xA0, 0x50, 0x10, 0xE3,
oliverb 0:3bf8ef959338 68 0xC0, 0x92, 0x4B, 0x25, 0x92, 0xA9, 0x98, 0x44, 0xE3, 0x31, 0x05, 0x01,
oliverb 0:3bf8ef959338 69 0x01, 0x41, 0x11, 0x05, 0xC7, 0xE3, 0xA0, 0x90, 0x84, 0x42, 0x40, 0xA0,
oliverb 0:3bf8ef959338 70 0x60, 0x10, 0x10, 0x08, 0x3E, 0x00, 0xFD, 0x08, 0x20, 0x82, 0x08, 0x10,
oliverb 0:3bf8ef959338 71 0xBF, 0x29, 0x24, 0xA2, 0x49, 0x26, 0xFF, 0xF8, 0x89, 0x24, 0x8A, 0x49,
oliverb 0:3bf8ef959338 72 0x2C, 0x61, 0x24, 0x30 };
oliverb 0:3bf8ef959338 73
oliverb 0:3bf8ef959338 74 const GFXglyph FreeMono9pt7bGlyphs[] PROGMEM = {
oliverb 0:3bf8ef959338 75 { 0, 0, 0, 11, 0, 1 }, // 0x20 ' '
oliverb 0:3bf8ef959338 76 { 0, 2, 11, 11, 4, -10 }, // 0x21 '!'
oliverb 0:3bf8ef959338 77 { 3, 6, 5, 11, 2, -10 }, // 0x22 '"'
oliverb 0:3bf8ef959338 78 { 7, 7, 12, 11, 2, -10 }, // 0x23 '#'
oliverb 0:3bf8ef959338 79 { 18, 8, 12, 11, 1, -10 }, // 0x24 '$'
oliverb 0:3bf8ef959338 80 { 30, 7, 11, 11, 2, -10 }, // 0x25 '%'
oliverb 0:3bf8ef959338 81 { 40, 7, 10, 11, 2, -9 }, // 0x26 '&'
oliverb 0:3bf8ef959338 82 { 49, 3, 5, 11, 4, -10 }, // 0x27 '''
oliverb 0:3bf8ef959338 83 { 51, 2, 13, 11, 5, -10 }, // 0x28 '('
oliverb 0:3bf8ef959338 84 { 55, 2, 13, 11, 4, -10 }, // 0x29 ')'
oliverb 0:3bf8ef959338 85 { 59, 7, 7, 11, 2, -10 }, // 0x2A '*'
oliverb 0:3bf8ef959338 86 { 66, 7, 7, 11, 2, -8 }, // 0x2B '+'
oliverb 0:3bf8ef959338 87 { 73, 3, 5, 11, 2, -1 }, // 0x2C ','
oliverb 0:3bf8ef959338 88 { 75, 9, 1, 11, 1, -5 }, // 0x2D '-'
oliverb 0:3bf8ef959338 89 { 77, 2, 2, 11, 4, -1 }, // 0x2E '.'
oliverb 0:3bf8ef959338 90 { 78, 7, 13, 11, 2, -11 }, // 0x2F '/'
oliverb 0:3bf8ef959338 91 { 90, 7, 11, 11, 2, -10 }, // 0x30 '0'
oliverb 0:3bf8ef959338 92 { 100, 5, 11, 11, 3, -10 }, // 0x31 '1'
oliverb 0:3bf8ef959338 93 { 107, 7, 11, 11, 2, -10 }, // 0x32 '2'
oliverb 0:3bf8ef959338 94 { 117, 8, 11, 11, 1, -10 }, // 0x33 '3'
oliverb 0:3bf8ef959338 95 { 128, 6, 11, 11, 3, -10 }, // 0x34 '4'
oliverb 0:3bf8ef959338 96 { 137, 7, 11, 11, 2, -10 }, // 0x35 '5'
oliverb 0:3bf8ef959338 97 { 147, 7, 11, 11, 2, -10 }, // 0x36 '6'
oliverb 0:3bf8ef959338 98 { 157, 7, 11, 11, 2, -10 }, // 0x37 '7'
oliverb 0:3bf8ef959338 99 { 167, 7, 11, 11, 2, -10 }, // 0x38 '8'
oliverb 0:3bf8ef959338 100 { 177, 7, 11, 11, 2, -10 }, // 0x39 '9'
oliverb 0:3bf8ef959338 101 { 187, 2, 8, 11, 4, -7 }, // 0x3A ':'
oliverb 0:3bf8ef959338 102 { 189, 3, 11, 11, 3, -7 }, // 0x3B ';'
oliverb 0:3bf8ef959338 103 { 194, 8, 8, 11, 1, -8 }, // 0x3C '<'
oliverb 0:3bf8ef959338 104 { 202, 9, 4, 11, 1, -6 }, // 0x3D '='
oliverb 0:3bf8ef959338 105 { 207, 9, 8, 11, 1, -8 }, // 0x3E '>'
oliverb 0:3bf8ef959338 106 { 216, 7, 10, 11, 2, -9 }, // 0x3F '?'
oliverb 0:3bf8ef959338 107 { 225, 8, 12, 11, 2, -10 }, // 0x40 '@'
oliverb 0:3bf8ef959338 108 { 237, 11, 10, 11, 0, -9 }, // 0x41 'A'
oliverb 0:3bf8ef959338 109 { 251, 9, 10, 11, 1, -9 }, // 0x42 'B'
oliverb 0:3bf8ef959338 110 { 263, 9, 10, 11, 1, -9 }, // 0x43 'C'
oliverb 0:3bf8ef959338 111 { 275, 9, 10, 11, 1, -9 }, // 0x44 'D'
oliverb 0:3bf8ef959338 112 { 287, 9, 10, 11, 1, -9 }, // 0x45 'E'
oliverb 0:3bf8ef959338 113 { 299, 9, 10, 11, 1, -9 }, // 0x46 'F'
oliverb 0:3bf8ef959338 114 { 311, 10, 10, 11, 1, -9 }, // 0x47 'G'
oliverb 0:3bf8ef959338 115 { 324, 9, 10, 11, 1, -9 }, // 0x48 'H'
oliverb 0:3bf8ef959338 116 { 336, 5, 10, 11, 3, -9 }, // 0x49 'I'
oliverb 0:3bf8ef959338 117 { 343, 8, 10, 11, 2, -9 }, // 0x4A 'J'
oliverb 0:3bf8ef959338 118 { 353, 9, 10, 11, 1, -9 }, // 0x4B 'K'
oliverb 0:3bf8ef959338 119 { 365, 8, 10, 11, 2, -9 }, // 0x4C 'L'
oliverb 0:3bf8ef959338 120 { 375, 11, 10, 11, 0, -9 }, // 0x4D 'M'
oliverb 0:3bf8ef959338 121 { 389, 9, 10, 11, 1, -9 }, // 0x4E 'N'
oliverb 0:3bf8ef959338 122 { 401, 9, 10, 11, 1, -9 }, // 0x4F 'O'
oliverb 0:3bf8ef959338 123 { 413, 8, 10, 11, 1, -9 }, // 0x50 'P'
oliverb 0:3bf8ef959338 124 { 423, 9, 13, 11, 1, -9 }, // 0x51 'Q'
oliverb 0:3bf8ef959338 125 { 438, 9, 10, 11, 1, -9 }, // 0x52 'R'
oliverb 0:3bf8ef959338 126 { 450, 7, 10, 11, 2, -9 }, // 0x53 'S'
oliverb 0:3bf8ef959338 127 { 459, 9, 10, 11, 1, -9 }, // 0x54 'T'
oliverb 0:3bf8ef959338 128 { 471, 9, 10, 11, 1, -9 }, // 0x55 'U'
oliverb 0:3bf8ef959338 129 { 483, 11, 10, 11, 0, -9 }, // 0x56 'V'
oliverb 0:3bf8ef959338 130 { 497, 11, 10, 11, 0, -9 }, // 0x57 'W'
oliverb 0:3bf8ef959338 131 { 511, 9, 10, 11, 1, -9 }, // 0x58 'X'
oliverb 0:3bf8ef959338 132 { 523, 9, 10, 11, 1, -9 }, // 0x59 'Y'
oliverb 0:3bf8ef959338 133 { 535, 7, 10, 11, 2, -9 }, // 0x5A 'Z'
oliverb 0:3bf8ef959338 134 { 544, 2, 13, 11, 5, -10 }, // 0x5B '['
oliverb 0:3bf8ef959338 135 { 548, 7, 13, 11, 2, -11 }, // 0x5C '\'
oliverb 0:3bf8ef959338 136 { 560, 2, 13, 11, 4, -10 }, // 0x5D ']'
oliverb 0:3bf8ef959338 137 { 564, 7, 5, 11, 2, -10 }, // 0x5E '^'
oliverb 0:3bf8ef959338 138 { 569, 11, 1, 11, 0, 2 }, // 0x5F '_'
oliverb 0:3bf8ef959338 139 { 571, 3, 3, 11, 3, -11 }, // 0x60 '`'
oliverb 0:3bf8ef959338 140 { 573, 9, 8, 11, 1, -7 }, // 0x61 'a'
oliverb 0:3bf8ef959338 141 { 582, 9, 11, 11, 1, -10 }, // 0x62 'b'
oliverb 0:3bf8ef959338 142 { 595, 7, 8, 11, 2, -7 }, // 0x63 'c'
oliverb 0:3bf8ef959338 143 { 602, 9, 11, 11, 1, -10 }, // 0x64 'd'
oliverb 0:3bf8ef959338 144 { 615, 8, 8, 11, 1, -7 }, // 0x65 'e'
oliverb 0:3bf8ef959338 145 { 623, 6, 11, 11, 3, -10 }, // 0x66 'f'
oliverb 0:3bf8ef959338 146 { 632, 9, 11, 11, 1, -7 }, // 0x67 'g'
oliverb 0:3bf8ef959338 147 { 645, 9, 11, 11, 1, -10 }, // 0x68 'h'
oliverb 0:3bf8ef959338 148 { 658, 7, 10, 11, 2, -9 }, // 0x69 'i'
oliverb 0:3bf8ef959338 149 { 667, 5, 13, 11, 3, -9 }, // 0x6A 'j'
oliverb 0:3bf8ef959338 150 { 676, 8, 11, 11, 2, -10 }, // 0x6B 'k'
oliverb 0:3bf8ef959338 151 { 687, 7, 11, 11, 2, -10 }, // 0x6C 'l'
oliverb 0:3bf8ef959338 152 { 697, 9, 8, 11, 1, -7 }, // 0x6D 'm'
oliverb 0:3bf8ef959338 153 { 706, 9, 8, 11, 1, -7 }, // 0x6E 'n'
oliverb 0:3bf8ef959338 154 { 715, 9, 8, 11, 1, -7 }, // 0x6F 'o'
oliverb 0:3bf8ef959338 155 { 724, 9, 11, 11, 1, -7 }, // 0x70 'p'
oliverb 0:3bf8ef959338 156 { 737, 9, 11, 11, 1, -7 }, // 0x71 'q'
oliverb 0:3bf8ef959338 157 { 750, 7, 8, 11, 3, -7 }, // 0x72 'r'
oliverb 0:3bf8ef959338 158 { 757, 7, 8, 11, 2, -7 }, // 0x73 's'
oliverb 0:3bf8ef959338 159 { 764, 8, 10, 11, 2, -9 }, // 0x74 't'
oliverb 0:3bf8ef959338 160 { 774, 8, 8, 11, 1, -7 }, // 0x75 'u'
oliverb 0:3bf8ef959338 161 { 782, 9, 8, 11, 1, -7 }, // 0x76 'v'
oliverb 0:3bf8ef959338 162 { 791, 9, 8, 11, 1, -7 }, // 0x77 'w'
oliverb 0:3bf8ef959338 163 { 800, 9, 8, 11, 1, -7 }, // 0x78 'x'
oliverb 0:3bf8ef959338 164 { 809, 9, 11, 11, 1, -7 }, // 0x79 'y'
oliverb 0:3bf8ef959338 165 { 822, 7, 8, 11, 2, -7 }, // 0x7A 'z'
oliverb 0:3bf8ef959338 166 { 829, 3, 13, 11, 4, -10 }, // 0x7B '{'
oliverb 0:3bf8ef959338 167 { 834, 1, 13, 11, 5, -10 }, // 0x7C '|'
oliverb 0:3bf8ef959338 168 { 836, 3, 13, 11, 4, -10 }, // 0x7D '}'
oliverb 0:3bf8ef959338 169 { 841, 7, 3, 11, 2, -6 } }; // 0x7E '~'
oliverb 0:3bf8ef959338 170
oliverb 0:3bf8ef959338 171 const GFXfont FreeMono9pt7b PROGMEM = {
oliverb 0:3bf8ef959338 172 (uint8_t *)FreeMono9pt7bBitmaps,
oliverb 0:3bf8ef959338 173 (GFXglyph *)FreeMono9pt7bGlyphs,
oliverb 0:3bf8ef959338 174 0x20, 0x7E, 18 };
oliverb 0:3bf8ef959338 175
oliverb 0:3bf8ef959338 176 // Approx. 1516 bytes