Fork of the latest Adafruit GFX Library as of 2017-12-13 to make it compatible with Mbed

Fonts/TomThumb.h

Committer:
mjromeijn
Date:
2017-12-13
Revision:
0:cc4253367fc7

File content as of revision 0:cc4253367fc7:

/**
** The original 3x5 font is licensed under the 3-clause BSD license:
**
** Copyright 1999 Brian J. Swetland
** Copyright 1999 Vassilii Khachaturov
** Portions (of vt100.c/vt100.h) copyright Dan Marks
** 
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions
** are met:
** 1. Redistributions of source code must retain the above copyright
**    notice, this list of conditions, and the following disclaimer.
** 2. Redistributions in binary form must reproduce the above copyright
**    notice, this list of conditions, and the following disclaimer in the
**    documentation and/or other materials provided with the distribution.
** 3. The name of the authors may not be used to endorse or promote products
**    derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
** 
** Modifications to Tom Thumb for improved readability are from Robey Pointer, 
** see:
** http://robey.lag.net/2010/01/23/tiny-monospace-font.html
** 
** The original author does not have any objection to relicensing of Robey 
** Pointer's modifications (in this file) in a more permissive license.  See 
** the discussion at the above blog, and also here:
** http://opengameart.org/forumtopic/how-to-submit-art-using-the-3-clause-bsd-license
**
** Feb 21, 2016: Conversion from Linux BDF --> Adafruit GFX font,
** with the help of this Python script:
** https://gist.github.com/skelliam/322d421f028545f16f6d
** William Skellenger (williamj@skellenger.net)
** Twitter: @skelliam
** 
*/

#define TOMTHUMB_USE_EXTENDED 0

const uint8_t TomThumbBitmaps[] PROGMEM = {
   0x00,                                /* 0x20 space */
   0x80, 0x80, 0x80, 0x00, 0x80,        /* 0x21 exclam */
   0xA0, 0xA0,                          /* 0x22 quotedbl */
   0xA0, 0xE0, 0xA0, 0xE0, 0xA0,        /* 0x23 numbersign */
   0x60, 0xC0, 0x60, 0xC0, 0x40,        /* 0x24 dollar */
   0x80, 0x20, 0x40, 0x80, 0x20,        /* 0x25 percent */
   0xC0, 0xC0, 0xE0, 0xA0, 0x60,        /* 0x26 ampersand */
   0x80, 0x80,                          /* 0x27 quotesingle */
   0x40, 0x80, 0x80, 0x80, 0x40,        /* 0x28 parenleft */
   0x80, 0x40, 0x40, 0x40, 0x80,        /* 0x29 parenright */
   0xA0, 0x40, 0xA0,                    /* 0x2A asterisk */
   0x40, 0xE0, 0x40,                    /* 0x2B plus */
   0x40, 0x80,                          /* 0x2C comma */
   0xE0,                                /* 0x2D hyphen */
   0x80,                                /* 0x2E period */
   0x20, 0x20, 0x40, 0x80, 0x80,        /* 0x2F slash */
   0x60, 0xA0, 0xA0, 0xA0, 0xC0,        /* 0x30 zero */
   0x40, 0xC0, 0x40, 0x40, 0x40,        /* 0x31 one */
   0xC0, 0x20, 0x40, 0x80, 0xE0,        /* 0x32 two */
   0xC0, 0x20, 0x40, 0x20, 0xC0,        /* 0x33 three */
   0xA0, 0xA0, 0xE0, 0x20, 0x20,        /* 0x34 four */
   0xE0, 0x80, 0xC0, 0x20, 0xC0,        /* 0x35 five */
   0x60, 0x80, 0xE0, 0xA0, 0xE0,        /* 0x36 six */
   0xE0, 0x20, 0x40, 0x80, 0x80,        /* 0x37 seven */
   0xE0, 0xA0, 0xE0, 0xA0, 0xE0,        /* 0x38 eight */
   0xE0, 0xA0, 0xE0, 0x20, 0xC0,        /* 0x39 nine */
   0x80, 0x00, 0x80,                    /* 0x3A colon */
   0x40, 0x00, 0x40, 0x80,              /* 0x3B semicolon */
   0x20, 0x40, 0x80, 0x40, 0x20,        /* 0x3C less */
   0xE0, 0x00, 0xE0,                    /* 0x3D equal */
   0x80, 0x40, 0x20, 0x40, 0x80,        /* 0x3E greater */
   0xE0, 0x20, 0x40, 0x00, 0x40,        /* 0x3F question */
   0x40, 0xA0, 0xE0, 0x80, 0x60,        /* 0x40 at */
   0x40, 0xA0, 0xE0, 0xA0, 0xA0,        /* 0x41 A */
   0xC0, 0xA0, 0xC0, 0xA0, 0xC0,        /* 0x42 B */
   0x60, 0x80, 0x80, 0x80, 0x60,        /* 0x43 C */
   0xC0, 0xA0, 0xA0, 0xA0, 0xC0,        /* 0x44 D */
   0xE0, 0x80, 0xE0, 0x80, 0xE0,        /* 0x45 E */
   0xE0, 0x80, 0xE0, 0x80, 0x80,        /* 0x46 F */
   0x60, 0x80, 0xE0, 0xA0, 0x60,        /* 0x47 G */
   0xA0, 0xA0, 0xE0, 0xA0, 0xA0,        /* 0x48 H */
   0xE0, 0x40, 0x40, 0x40, 0xE0,        /* 0x49 I */
   0x20, 0x20, 0x20, 0xA0, 0x40,        /* 0x4A J */
   0xA0, 0xA0, 0xC0, 0xA0, 0xA0,        /* 0x4B K */
   0x80, 0x80, 0x80, 0x80, 0xE0,        /* 0x4C L */
   0xA0, 0xE0, 0xE0, 0xA0, 0xA0,        /* 0x4D M */
   0xA0, 0xE0, 0xE0, 0xE0, 0xA0,        /* 0x4E N */
   0x40, 0xA0, 0xA0, 0xA0, 0x40,        /* 0x4F O */
   0xC0, 0xA0, 0xC0, 0x80, 0x80,        /* 0x50 P */
   0x40, 0xA0, 0xA0, 0xE0, 0x60,        /* 0x51 Q */
   0xC0, 0xA0, 0xE0, 0xC0, 0xA0,        /* 0x52 R */
   0x60, 0x80, 0x40, 0x20, 0xC0,        /* 0x53 S */
   0xE0, 0x40, 0x40, 0x40, 0x40,        /* 0x54 T */
   0xA0, 0xA0, 0xA0, 0xA0, 0x60,        /* 0x55 U */
   0xA0, 0xA0, 0xA0, 0x40, 0x40,        /* 0x56 V */
   0xA0, 0xA0, 0xE0, 0xE0, 0xA0,        /* 0x57 W */
   0xA0, 0xA0, 0x40, 0xA0, 0xA0,        /* 0x58 X */
   0xA0, 0xA0, 0x40, 0x40, 0x40,        /* 0x59 Y */
   0xE0, 0x20, 0x40, 0x80, 0xE0,        /* 0x5A Z */
   0xE0, 0x80, 0x80, 0x80, 0xE0,        /* 0x5B bracketleft */
   0x80, 0x40, 0x20,                    /* 0x5C backslash */
   0xE0, 0x20, 0x20, 0x20, 0xE0,        /* 0x5D bracketright */
   0x40, 0xA0,                          /* 0x5E asciicircum */
   0xE0,                                /* 0x5F underscore */
   0x80, 0x40,                          /* 0x60 grave */
   0xC0, 0x60, 0xA0, 0xE0,              /* 0x61 a */
   0x80, 0xC0, 0xA0, 0xA0, 0xC0,        /* 0x62 b */
   0x60, 0x80, 0x80, 0x60,              /* 0x63 c */
   0x20, 0x60, 0xA0, 0xA0, 0x60,        /* 0x64 d */
   0x60, 0xA0, 0xC0, 0x60,              /* 0x65 e */
   0x20, 0x40, 0xE0, 0x40, 0x40,        /* 0x66 f */
   0x60, 0xA0, 0xE0, 0x20, 0x40,        /* 0x67 g */
   0x80, 0xC0, 0xA0, 0xA0, 0xA0,        /* 0x68 h */
   0x80, 0x00, 0x80, 0x80, 0x80,        /* 0x69 i */
   0x20, 0x00, 0x20, 0x20, 0xA0, 0x40,  /* 0x6A j */
   0x80, 0xA0, 0xC0, 0xC0, 0xA0,        /* 0x6B k */
   0xC0, 0x40, 0x40, 0x40, 0xE0,        /* 0x6C l */
   0xE0, 0xE0, 0xE0, 0xA0,              /* 0x6D m */
   0xC0, 0xA0, 0xA0, 0xA0,              /* 0x6E n */
   0x40, 0xA0, 0xA0, 0x40,              /* 0x6F o */
   0xC0, 0xA0, 0xA0, 0xC0, 0x80,        /* 0x70 p */
   0x60, 0xA0, 0xA0, 0x60, 0x20,        /* 0x71 q */
   0x60, 0x80, 0x80, 0x80,              /* 0x72 r */
   0x60, 0xC0, 0x60, 0xC0,              /* 0x73 s */
   0x40, 0xE0, 0x40, 0x40, 0x60,        /* 0x74 t */
   0xA0, 0xA0, 0xA0, 0x60,              /* 0x75 u */
   0xA0, 0xA0, 0xE0, 0x40,              /* 0x76 v */
   0xA0, 0xE0, 0xE0, 0xE0,              /* 0x77 w */
   0xA0, 0x40, 0x40, 0xA0,              /* 0x78 x */
   0xA0, 0xA0, 0x60, 0x20, 0x40,        /* 0x79 y */
   0xE0, 0x60, 0xC0, 0xE0,              /* 0x7A z */
   0x60, 0x40, 0x80, 0x40, 0x60,        /* 0x7B braceleft */
   0x80, 0x80, 0x00, 0x80, 0x80,        /* 0x7C bar */
   0xC0, 0x40, 0x20, 0x40, 0xC0,        /* 0x7D braceright */
   0x60, 0xC0,                          /* 0x7E asciitilde */
#if (TOMTHUMB_USE_EXTENDED)
   0x80, 0x00, 0x80, 0x80, 0x80,        /* 0xA1 exclamdown */
   0x40, 0xE0, 0x80, 0xE0, 0x40,        /* 0xA2 cent */
   0x60, 0x40, 0xE0, 0x40, 0xE0,        /* 0xA3 sterling */
   0xA0, 0x40, 0xE0, 0x40, 0xA0,        /* 0xA4 currency */
   0xA0, 0xA0, 0x40, 0xE0, 0x40,        /* 0xA5 yen */
   0x80, 0x80, 0x00, 0x80, 0x80,        /* 0xA6 brokenbar */
   0x60, 0x40, 0xA0, 0x40, 0xC0,        /* 0xA7 section */
   0xA0,                                /* 0xA8 dieresis */
   0x60, 0x80, 0x60,                    /* 0xA9 copyright */
   0x60, 0xA0, 0xE0, 0x00, 0xE0,        /* 0xAA ordfeminine */
   0x40, 0x80, 0x40,                    /* 0xAB guillemotleft */
   0xE0, 0x20,                          /* 0xAC logicalnot */
   0xC0,                                /* 0xAD softhyphen */
   0xC0, 0xC0, 0xA0,                    /* 0xAE registered */
   0xE0,                                /* 0xAF macron */
   0x40, 0xA0, 0x40,                    /* 0xB0 degree */
   0x40, 0xE0, 0x40, 0x00, 0xE0,        /* 0xB1 plusminus */
   0xC0, 0x40, 0x60,                    /* 0xB2 twosuperior */
   0xE0, 0x60, 0xE0,                    /* 0xB3 threesuperior */
   0x40, 0x80,                          /* 0xB4 acute */
   0xA0, 0xA0, 0xA0, 0xC0, 0x80,        /* 0xB5 mu */
   0x60, 0xA0, 0x60, 0x60, 0x60,        /* 0xB6 paragraph */
   0xE0, 0xE0, 0xE0,                    /* 0xB7 periodcentered */
   0x40, 0x20, 0xC0,                    /* 0xB8 cedilla */
   0x80, 0x80, 0x80,                    /* 0xB9 onesuperior */
   0x40, 0xA0, 0x40, 0x00, 0xE0,        /* 0xBA ordmasculine */
   0x80, 0x40, 0x80,                    /* 0xBB guillemotright */
   0x80, 0x80, 0x00, 0x60, 0x20,        /* 0xBC onequarter */
   0x80, 0x80, 0x00, 0xC0, 0x60,        /* 0xBD onehalf */
   0xC0, 0xC0, 0x00, 0x60, 0x20,        /* 0xBE threequarters */
   0x40, 0x00, 0x40, 0x80, 0xE0,        /* 0xBF questiondown */
   0x40, 0x20, 0x40, 0xE0, 0xA0,        /* 0xC0 Agrave */
   0x40, 0x80, 0x40, 0xE0, 0xA0,        /* 0xC1 Aacute */
   0xE0, 0x00, 0x40, 0xE0, 0xA0,        /* 0xC2 Acircumflex */
   0x60, 0xC0, 0x40, 0xE0, 0xA0,        /* 0xC3 Atilde */
   0xA0, 0x40, 0xA0, 0xE0, 0xA0,        /* 0xC4 Adieresis */
   0xC0, 0xC0, 0xA0, 0xE0, 0xA0,        /* 0xC5 Aring */
   0x60, 0xC0, 0xE0, 0xC0, 0xE0,        /* 0xC6 AE */
   0x60, 0x80, 0x80, 0x60, 0x20, 0x40,  /* 0xC7 Ccedilla */
   0x40, 0x20, 0xE0, 0xC0, 0xE0,        /* 0xC8 Egrave */
   0x40, 0x80, 0xE0, 0xC0, 0xE0,        /* 0xC9 Eacute */
   0xE0, 0x00, 0xE0, 0xC0, 0xE0,        /* 0xCA Ecircumflex */
   0xA0, 0x00, 0xE0, 0xC0, 0xE0,        /* 0xCB Edieresis */
   0x40, 0x20, 0xE0, 0x40, 0xE0,        /* 0xCC Igrave */
   0x40, 0x80, 0xE0, 0x40, 0xE0,        /* 0xCD Iacute */
   0xE0, 0x00, 0xE0, 0x40, 0xE0,        /* 0xCE Icircumflex */
   0xA0, 0x00, 0xE0, 0x40, 0xE0,        /* 0xCF Idieresis */
   0xC0, 0xA0, 0xE0, 0xA0, 0xC0,        /* 0xD0 Eth */
   0xC0, 0x60, 0xA0, 0xE0, 0xA0,        /* 0xD1 Ntilde */
   0x40, 0x20, 0xE0, 0xA0, 0xE0,        /* 0xD2 Ograve */
   0x40, 0x80, 0xE0, 0xA0, 0xE0,        /* 0xD3 Oacute */
   0xE0, 0x00, 0xE0, 0xA0, 0xE0,        /* 0xD4 Ocircumflex */
   0xC0, 0x60, 0xE0, 0xA0, 0xE0,        /* 0xD5 Otilde */
   0xA0, 0x00, 0xE0, 0xA0, 0xE0,        /* 0xD6 Odieresis */
   0xA0, 0x40, 0xA0,                    /* 0xD7 multiply */
   0x60, 0xA0, 0xE0, 0xA0, 0xC0,        /* 0xD8 Oslash */
   0x80, 0x40, 0xA0, 0xA0, 0xE0,        /* 0xD9 Ugrave */
   0x20, 0x40, 0xA0, 0xA0, 0xE0,        /* 0xDA Uacute */
   0xE0, 0x00, 0xA0, 0xA0, 0xE0,        /* 0xDB Ucircumflex */
   0xA0, 0x00, 0xA0, 0xA0, 0xE0,        /* 0xDC Udieresis */
   0x20, 0x40, 0xA0, 0xE0, 0x40,        /* 0xDD Yacute */
   0x80, 0xE0, 0xA0, 0xE0, 0x80,        /* 0xDE Thorn */
   0x60, 0xA0, 0xC0, 0xA0, 0xC0, 0x80,  /* 0xDF germandbls */
   0x40, 0x20, 0x60, 0xA0, 0xE0,        /* 0xE0 agrave */
   0x40, 0x80, 0x60, 0xA0, 0xE0,        /* 0xE1 aacute */
   0xE0, 0x00, 0x60, 0xA0, 0xE0,        /* 0xE2 acircumflex */
   0x60, 0xC0, 0x60, 0xA0, 0xE0,        /* 0xE3 atilde */
   0xA0, 0x00, 0x60, 0xA0, 0xE0,        /* 0xE4 adieresis */
   0x60, 0x60, 0x60, 0xA0, 0xE0,        /* 0xE5 aring */
   0x60, 0xE0, 0xE0, 0xC0,              /* 0xE6 ae */
   0x60, 0x80, 0x60, 0x20, 0x40,        /* 0xE7 ccedilla */
   0x40, 0x20, 0x60, 0xE0, 0x60,        /* 0xE8 egrave */
   0x40, 0x80, 0x60, 0xE0, 0x60,        /* 0xE9 eacute */
   0xE0, 0x00, 0x60, 0xE0, 0x60,        /* 0xEA ecircumflex */
   0xA0, 0x00, 0x60, 0xE0, 0x60,        /* 0xEB edieresis */
   0x80, 0x40, 0x80, 0x80, 0x80,        /* 0xEC igrave */
   0x40, 0x80, 0x40, 0x40, 0x40,        /* 0xED iacute */
   0xE0, 0x00, 0x40, 0x40, 0x40,        /* 0xEE icircumflex */
   0xA0, 0x00, 0x40, 0x40, 0x40,        /* 0xEF idieresis */
   0x60, 0xC0, 0x60, 0xA0, 0x60,        /* 0xF0 eth */
   0xC0, 0x60, 0xC0, 0xA0, 0xA0,        /* 0xF1 ntilde */
   0x40, 0x20, 0x40, 0xA0, 0x40,        /* 0xF2 ograve */
   0x40, 0x80, 0x40, 0xA0, 0x40,        /* 0xF3 oacute */
   0xE0, 0x00, 0x40, 0xA0, 0x40,        /* 0xF4 ocircumflex */
   0xC0, 0x60, 0x40, 0xA0, 0x40,        /* 0xF5 otilde */
   0xA0, 0x00, 0x40, 0xA0, 0x40,        /* 0xF6 odieresis */
   0x40, 0x00, 0xE0, 0x00, 0x40,        /* 0xF7 divide */
   0x60, 0xE0, 0xA0, 0xC0,              /* 0xF8 oslash */
   0x80, 0x40, 0xA0, 0xA0, 0x60,        /* 0xF9 ugrave */
   0x20, 0x40, 0xA0, 0xA0, 0x60,        /* 0xFA uacute */
   0xE0, 0x00, 0xA0, 0xA0, 0x60,        /* 0xFB ucircumflex */
   0xA0, 0x00, 0xA0, 0xA0, 0x60,        /* 0xFC udieresis */
   0x20, 0x40, 0xA0, 0x60, 0x20, 0x40,  /* 0xFD yacute */
   0x80, 0xC0, 0xA0, 0xC0, 0x80,        /* 0xFE thorn */
   0xA0, 0x00, 0xA0, 0x60, 0x20, 0x40,  /* 0xFF ydieresis */
   0x00,                                /* 0x11D gcircumflex */
   0x60, 0xC0, 0xE0, 0xC0, 0x60,        /* 0x152 OE */
   0x60, 0xE0, 0xC0, 0xE0,              /* 0x153 oe */
   0xA0, 0x60, 0xC0, 0x60, 0xC0,        /* 0x160 Scaron */
   0xA0, 0x60, 0xC0, 0x60, 0xC0,        /* 0x161 scaron */
   0xA0, 0x00, 0xA0, 0x40, 0x40,        /* 0x178 Ydieresis */
   0xA0, 0xE0, 0x60, 0xC0, 0xE0,        /* 0x17D Zcaron */
   0xA0, 0xE0, 0x60, 0xC0, 0xE0,        /* 0x17E zcaron */
   0x00,                                /* 0xEA4 uni0EA4 */
   0x00,                                /* 0x13A0 uni13A0 */
   0x80,                                /* 0x2022 bullet */
   0xA0,                                /* 0x2026 ellipsis */
   0x60, 0xE0, 0xE0, 0xC0, 0x60,        /* 0x20AC Euro */
   0xE0, 0xA0, 0xA0, 0xA0, 0xE0,        /* 0xFFFD uniFFFD */
#endif /* (TOMTHUMB_USE_EXTENDED)  */
  };


/* {offset, width, height, advance cursor, x offset, y offset} */
const GFXglyph TomThumbGlyphs[] PROGMEM = {
   { 0, 8, 1, 2, 0, -5 },    /* 0x20 space */
   { 1, 8, 5, 2, 0, -5 },    /* 0x21 exclam */
   { 6, 8, 2, 4, 0, -5 },    /* 0x22 quotedbl */
   { 8, 8, 5, 4, 0, -5 },    /* 0x23 numbersign */
   { 13, 8, 5, 4, 0, -5 },   /* 0x24 dollar */
   { 18, 8, 5, 4, 0, -5 },   /* 0x25 percent */
   { 23, 8, 5, 4, 0, -5 },   /* 0x26 ampersand */
   { 28, 8, 2, 2, 0, -5 },   /* 0x27 quotesingle */
   { 30, 8, 5, 3, 0, -5 },   /* 0x28 parenleft */
   { 35, 8, 5, 3, 0, -5 },   /* 0x29 parenright */
   { 40, 8, 3, 4, 0, -5 },   /* 0x2A asterisk */
   { 43, 8, 3, 4, 0, -4 },   /* 0x2B plus */
   { 46, 8, 2, 3, 0, -2 },   /* 0x2C comma */
   { 48, 8, 1, 4, 0, -3 },   /* 0x2D hyphen */
   { 49, 8, 1, 2, 0, -1 },   /* 0x2E period */
   { 50, 8, 5, 4, 0, -5 },   /* 0x2F slash */
   { 55, 8, 5, 4, 0, -5 },   /* 0x30 zero */
   { 60, 8, 5, 3, 0, -5 },   /* 0x31 one */
   { 65, 8, 5, 4, 0, -5 },   /* 0x32 two */
   { 70, 8, 5, 4, 0, -5 },   /* 0x33 three */
   { 75, 8, 5, 4, 0, -5 },   /* 0x34 four */
   { 80, 8, 5, 4, 0, -5 },   /* 0x35 five */
   { 85, 8, 5, 4, 0, -5 },   /* 0x36 six */
   { 90, 8, 5, 4, 0, -5 },   /* 0x37 seven */
   { 95, 8, 5, 4, 0, -5 },   /* 0x38 eight */
   { 100, 8, 5, 4, 0, -5 },  /* 0x39 nine */
   { 105, 8, 3, 2, 0, -4 },  /* 0x3A colon */
   { 108, 8, 4, 3, 0, -4 },  /* 0x3B semicolon */
   { 112, 8, 5, 4, 0, -5 },  /* 0x3C less */
   { 117, 8, 3, 4, 0, -4 },  /* 0x3D equal */
   { 120, 8, 5, 4, 0, -5 },  /* 0x3E greater */
   { 125, 8, 5, 4, 0, -5 },  /* 0x3F question */
   { 130, 8, 5, 4, 0, -5 },  /* 0x40 at */
   { 135, 8, 5, 4, 0, -5 },  /* 0x41 A */
   { 140, 8, 5, 4, 0, -5 },  /* 0x42 B */
   { 145, 8, 5, 4, 0, -5 },  /* 0x43 C */
   { 150, 8, 5, 4, 0, -5 },  /* 0x44 D */
   { 155, 8, 5, 4, 0, -5 },  /* 0x45 E */
   { 160, 8, 5, 4, 0, -5 },  /* 0x46 F */
   { 165, 8, 5, 4, 0, -5 },  /* 0x47 G */
   { 170, 8, 5, 4, 0, -5 },  /* 0x48 H */
   { 175, 8, 5, 4, 0, -5 },  /* 0x49 I */
   { 180, 8, 5, 4, 0, -5 },  /* 0x4A J */
   { 185, 8, 5, 4, 0, -5 },  /* 0x4B K */
   { 190, 8, 5, 4, 0, -5 },  /* 0x4C L */
   { 195, 8, 5, 4, 0, -5 },  /* 0x4D M */
   { 200, 8, 5, 4, 0, -5 },  /* 0x4E N */
   { 205, 8, 5, 4, 0, -5 },  /* 0x4F O */
   { 210, 8, 5, 4, 0, -5 },  /* 0x50 P */
   { 215, 8, 5, 4, 0, -5 },  /* 0x51 Q */
   { 220, 8, 5, 4, 0, -5 },  /* 0x52 R */
   { 225, 8, 5, 4, 0, -5 },  /* 0x53 S */
   { 230, 8, 5, 4, 0, -5 },  /* 0x54 T */
   { 235, 8, 5, 4, 0, -5 },  /* 0x55 U */
   { 240, 8, 5, 4, 0, -5 },  /* 0x56 V */
   { 245, 8, 5, 4, 0, -5 },  /* 0x57 W */
   { 250, 8, 5, 4, 0, -5 },  /* 0x58 X */
   { 255, 8, 5, 4, 0, -5 },  /* 0x59 Y */
   { 260, 8, 5, 4, 0, -5 },  /* 0x5A Z */
   { 265, 8, 5, 4, 0, -5 },  /* 0x5B bracketleft */
   { 270, 8, 3, 4, 0, -4 },  /* 0x5C backslash */
   { 273, 8, 5, 4, 0, -5 },  /* 0x5D bracketright */
   { 278, 8, 2, 4, 0, -5 },  /* 0x5E asciicircum */
   { 280, 8, 1, 4, 0, -1 },  /* 0x5F underscore */
   { 281, 8, 2, 3, 0, -5 },  /* 0x60 grave */
   { 283, 8, 4, 4, 0, -4 },  /* 0x61 a */
   { 287, 8, 5, 4, 0, -5 },  /* 0x62 b */
   { 292, 8, 4, 4, 0, -4 },  /* 0x63 c */
   { 296, 8, 5, 4, 0, -5 },  /* 0x64 d */
   { 301, 8, 4, 4, 0, -4 },  /* 0x65 e */
   { 305, 8, 5, 4, 0, -5 },  /* 0x66 f */
   { 310, 8, 5, 4, 0, -4 },  /* 0x67 g */
   { 315, 8, 5, 4, 0, -5 },  /* 0x68 h */
   { 320, 8, 5, 2, 0, -5 },  /* 0x69 i */
   { 325, 8, 6, 4, 0, -5 },  /* 0x6A j */
   { 331, 8, 5, 4, 0, -5 },  /* 0x6B k */
   { 336, 8, 5, 4, 0, -5 },  /* 0x6C l */
   { 341, 8, 4, 4, 0, -4 },  /* 0x6D m */
   { 345, 8, 4, 4, 0, -4 },  /* 0x6E n */
   { 349, 8, 4, 4, 0, -4 },  /* 0x6F o */
   { 353, 8, 5, 4, 0, -4 },  /* 0x70 p */
   { 358, 8, 5, 4, 0, -4 },  /* 0x71 q */
   { 363, 8, 4, 4, 0, -4 },  /* 0x72 r */
   { 367, 8, 4, 4, 0, -4 },  /* 0x73 s */
   { 371, 8, 5, 4, 0, -5 },  /* 0x74 t */
   { 376, 8, 4, 4, 0, -4 },  /* 0x75 u */
   { 380, 8, 4, 4, 0, -4 },  /* 0x76 v */
   { 384, 8, 4, 4, 0, -4 },  /* 0x77 w */
   { 388, 8, 4, 4, 0, -4 },  /* 0x78 x */
   { 392, 8, 5, 4, 0, -4 },  /* 0x79 y */
   { 397, 8, 4, 4, 0, -4 },  /* 0x7A z */
   { 401, 8, 5, 4, 0, -5 },  /* 0x7B braceleft */
   { 406, 8, 5, 2, 0, -5 },  /* 0x7C bar */
   { 411, 8, 5, 4, 0, -5 },  /* 0x7D braceright */
   { 416, 8, 2, 4, 0, -5 },  /* 0x7E asciitilde */
#if (TOMTHUMB_USE_EXTENDED)
   { 418, 8, 5, 2, 0, -5 },  /* 0xA1 exclamdown */
   { 423, 8, 5, 4, 0, -5 },  /* 0xA2 cent */
   { 428, 8, 5, 4, 0, -5 },  /* 0xA3 sterling */
   { 433, 8, 5, 4, 0, -5 },  /* 0xA4 currency */
   { 438, 8, 5, 4, 0, -5 },  /* 0xA5 yen */
   { 443, 8, 5, 2, 0, -5 },  /* 0xA6 brokenbar */
   { 448, 8, 5, 4, 0, -5 },  /* 0xA7 section */
   { 453, 8, 1, 4, 0, -5 },  /* 0xA8 dieresis */
   { 454, 8, 3, 4, 0, -5 },  /* 0xA9 copyright */
   { 457, 8, 5, 4, 0, -5 },  /* 0xAA ordfeminine */
   { 462, 8, 3, 3, 0, -5 },  /* 0xAB guillemotleft */
   { 465, 8, 2, 4, 0, -4 },  /* 0xAC logicalnot */
   { 467, 8, 1, 3, 0, -3 },  /* 0xAD softhyphen */
   { 468, 8, 3, 4, 0, -5 },  /* 0xAE registered */
   { 471, 8, 1, 4, 0, -5 },  /* 0xAF macron */
   { 472, 8, 3, 4, 0, -5 },  /* 0xB0 degree */
   { 475, 8, 5, 4, 0, -5 },  /* 0xB1 plusminus */
   { 480, 8, 3, 4, 0, -5 },  /* 0xB2 twosuperior */
   { 483, 8, 3, 4, 0, -5 },  /* 0xB3 threesuperior */
   { 486, 8, 2, 3, 0, -5 },  /* 0xB4 acute */
   { 488, 8, 5, 4, 0, -5 },  /* 0xB5 mu */
   { 493, 8, 5, 4, 0, -5 },  /* 0xB6 paragraph */
   { 498, 8, 3, 4, 0, -4 },  /* 0xB7 periodcentered */
   { 501, 8, 3, 4, 0, -3 },  /* 0xB8 cedilla */
   { 504, 8, 3, 2, 0, -5 },  /* 0xB9 onesuperior */
   { 507, 8, 5, 4, 0, -5 },  /* 0xBA ordmasculine */
   { 512, 8, 3, 3, 0, -5 },  /* 0xBB guillemotright */
   { 515, 8, 5, 4, 0, -5 },  /* 0xBC onequarter */
   { 520, 8, 5, 4, 0, -5 },  /* 0xBD onehalf */
   { 525, 8, 5, 4, 0, -5 },  /* 0xBE threequarters */
   { 530, 8, 5, 4, 0, -5 },  /* 0xBF questiondown */
   { 535, 8, 5, 4, 0, -5 },  /* 0xC0 Agrave */
   { 540, 8, 5, 4, 0, -5 },  /* 0xC1 Aacute */
   { 545, 8, 5, 4, 0, -5 },  /* 0xC2 Acircumflex */
   { 550, 8, 5, 4, 0, -5 },  /* 0xC3 Atilde */
   { 555, 8, 5, 4, 0, -5 },  /* 0xC4 Adieresis */
   { 560, 8, 5, 4, 0, -5 },  /* 0xC5 Aring */
   { 565, 8, 5, 4, 0, -5 },  /* 0xC6 AE */
   { 570, 8, 6, 4, 0, -5 },  /* 0xC7 Ccedilla */
   { 576, 8, 5, 4, 0, -5 },  /* 0xC8 Egrave */
   { 581, 8, 5, 4, 0, -5 },  /* 0xC9 Eacute */
   { 586, 8, 5, 4, 0, -5 },  /* 0xCA Ecircumflex */
   { 591, 8, 5, 4, 0, -5 },  /* 0xCB Edieresis */
   { 596, 8, 5, 4, 0, -5 },  /* 0xCC Igrave */
   { 601, 8, 5, 4, 0, -5 },  /* 0xCD Iacute */
   { 606, 8, 5, 4, 0, -5 },  /* 0xCE Icircumflex */
   { 611, 8, 5, 4, 0, -5 },  /* 0xCF Idieresis */
   { 616, 8, 5, 4, 0, -5 },  /* 0xD0 Eth */
   { 621, 8, 5, 4, 0, -5 },  /* 0xD1 Ntilde */
   { 626, 8, 5, 4, 0, -5 },  /* 0xD2 Ograve */
   { 631, 8, 5, 4, 0, -5 },  /* 0xD3 Oacute */
   { 636, 8, 5, 4, 0, -5 },  /* 0xD4 Ocircumflex */
   { 641, 8, 5, 4, 0, -5 },  /* 0xD5 Otilde */
   { 646, 8, 5, 4, 0, -5 },  /* 0xD6 Odieresis */
   { 651, 8, 3, 4, 0, -4 },  /* 0xD7 multiply */
   { 654, 8, 5, 4, 0, -5 },  /* 0xD8 Oslash */
   { 659, 8, 5, 4, 0, -5 },  /* 0xD9 Ugrave */
   { 664, 8, 5, 4, 0, -5 },  /* 0xDA Uacute */
   { 669, 8, 5, 4, 0, -5 },  /* 0xDB Ucircumflex */
   { 674, 8, 5, 4, 0, -5 },  /* 0xDC Udieresis */
   { 679, 8, 5, 4, 0, -5 },  /* 0xDD Yacute */
   { 684, 8, 5, 4, 0, -5 },  /* 0xDE Thorn */
   { 689, 8, 6, 4, 0, -5 },  /* 0xDF germandbls */
   { 695, 8, 5, 4, 0, -5 },  /* 0xE0 agrave */
   { 700, 8, 5, 4, 0, -5 },  /* 0xE1 aacute */
   { 705, 8, 5, 4, 0, -5 },  /* 0xE2 acircumflex */
   { 710, 8, 5, 4, 0, -5 },  /* 0xE3 atilde */
   { 715, 8, 5, 4, 0, -5 },  /* 0xE4 adieresis */
   { 720, 8, 5, 4, 0, -5 },  /* 0xE5 aring */
   { 725, 8, 4, 4, 0, -4 },  /* 0xE6 ae */
   { 729, 8, 5, 4, 0, -4 },  /* 0xE7 ccedilla */
   { 734, 8, 5, 4, 0, -5 },  /* 0xE8 egrave */
   { 739, 8, 5, 4, 0, -5 },  /* 0xE9 eacute */
   { 744, 8, 5, 4, 0, -5 },  /* 0xEA ecircumflex */
   { 749, 8, 5, 4, 0, -5 },  /* 0xEB edieresis */
   { 754, 8, 5, 3, 0, -5 },  /* 0xEC igrave */
   { 759, 8, 5, 3, 0, -5 },  /* 0xED iacute */
   { 764, 8, 5, 4, 0, -5 },  /* 0xEE icircumflex */
   { 769, 8, 5, 4, 0, -5 },  /* 0xEF idieresis */
   { 774, 8, 5, 4, 0, -5 },  /* 0xF0 eth */
   { 779, 8, 5, 4, 0, -5 },  /* 0xF1 ntilde */
   { 784, 8, 5, 4, 0, -5 },  /* 0xF2 ograve */
   { 789, 8, 5, 4, 0, -5 },  /* 0xF3 oacute */
   { 794, 8, 5, 4, 0, -5 },  /* 0xF4 ocircumflex */
   { 799, 8, 5, 4, 0, -5 },  /* 0xF5 otilde */
   { 804, 8, 5, 4, 0, -5 },  /* 0xF6 odieresis */
   { 809, 8, 5, 4, 0, -5 },  /* 0xF7 divide */
   { 814, 8, 4, 4, 0, -4 },  /* 0xF8 oslash */
   { 818, 8, 5, 4, 0, -5 },  /* 0xF9 ugrave */
   { 823, 8, 5, 4, 0, -5 },  /* 0xFA uacute */
   { 828, 8, 5, 4, 0, -5 },  /* 0xFB ucircumflex */
   { 833, 8, 5, 4, 0, -5 },  /* 0xFC udieresis */
   { 838, 8, 6, 4, 0, -5 },  /* 0xFD yacute */
   { 844, 8, 5, 4, 0, -4 },  /* 0xFE thorn */
   { 849, 8, 6, 4, 0, -5 },  /* 0xFF ydieresis */
   { 855, 8, 1, 2, 0, -1 },  /* 0x11D gcircumflex */
   { 856, 8, 5, 4, 0, -5 },  /* 0x152 OE */
   { 861, 8, 4, 4, 0, -4 },  /* 0x153 oe */
   { 865, 8, 5, 4, 0, -5 },  /* 0x160 Scaron */
   { 870, 8, 5, 4, 0, -5 },  /* 0x161 scaron */
   { 875, 8, 5, 4, 0, -5 },  /* 0x178 Ydieresis */
   { 880, 8, 5, 4, 0, -5 },  /* 0x17D Zcaron */
   { 885, 8, 5, 4, 0, -5 },  /* 0x17E zcaron */
   { 890, 8, 1, 2, 0, -1 },  /* 0xEA4 uni0EA4 */
   { 891, 8, 1, 2, 0, -1 },  /* 0x13A0 uni13A0 */
   { 892, 8, 1, 2, 0, -3 },  /* 0x2022 bullet */
   { 893, 8, 1, 4, 0, -1 },  /* 0x2026 ellipsis */
   { 894, 8, 5, 4, 0, -5 },  /* 0x20AC Euro */
   { 899, 8, 5, 4, 0, -5 },  /* 0xFFFD uniFFFD */
#endif /* (TOMTHUMB_USE_EXTENDED) */
};

const GFXfont TomThumb PROGMEM = {
  (uint8_t  *)TomThumbBitmaps,
  (GFXglyph *)TomThumbGlyphs,
  0x20, 0x7E, 6 };