acidportal- 😈 Worlds smallest Evil Portal on a LilyGo T-QT |
git clone git://git.acid.vegas/acidportal.git |
Log | Files | Refs | Archive | README | LICENSE |
TomThumb.h (24111B)
1 /** 2 ** The original 3x5 font is licensed under the 3-clause BSD license: 3 ** 4 ** Copyright 1999 Brian J. Swetland 5 ** Copyright 1999 Vassilii Khachaturov 6 ** Portions (of vt100.c/vt100.h) copyright Dan Marks 7 ** 8 ** All rights reserved. 9 ** 10 ** Redistribution and use in source and binary forms, with or without 11 ** modification, are permitted provided that the following conditions 12 ** are met: 13 ** 1. Redistributions of source code must retain the above copyright 14 ** notice, this list of conditions, and the following disclaimer. 15 ** 2. Redistributions in binary form must reproduce the above copyright 16 ** notice, this list of conditions, and the following disclaimer in the 17 ** documentation and/or other materials provided with the distribution. 18 ** 3. The name of the authors may not be used to endorse or promote products 19 ** derived from this software without specific prior written permission. 20 ** 21 ** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 22 ** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 23 ** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 24 ** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 25 ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 26 ** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 30 ** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 ** 32 ** Modifications to Tom Thumb for improved readability are from Robey Pointer, 33 ** see: 34 ** http://robey.lag.net/2010/01/23/tiny-monospace-font.html 35 ** 36 ** The original author does not have any objection to relicensing of Robey 37 ** Pointer's modifications (in this file) in a more permissive license. See 38 ** the discussion at the above blog, and also here: 39 ** http://opengameart.org/forumtopic/how-to-submit-art-using-the-3-clause-bsd-license 40 ** 41 ** Feb 21, 2016: Conversion from Linux BDF --> Adafruit GFX font, 42 ** with the help of this Python script: 43 ** https://gist.github.com/skelliam/322d421f028545f16f6d 44 ** William Skellenger (williamj@skellenger.net) 45 ** Twitter: @skelliam 46 ** 47 */ 48 49 #define TOMTHUMB_USE_EXTENDED 0 50 51 const uint8_t TomThumbBitmaps[] PROGMEM = { 52 0x00, /* 0x20 space */ 53 0x80, 0x80, 0x80, 0x00, 0x80, /* 0x21 exclam */ 54 0xA0, 0xA0, /* 0x22 quotedbl */ 55 0xA0, 0xE0, 0xA0, 0xE0, 0xA0, /* 0x23 numbersign */ 56 0x60, 0xC0, 0x60, 0xC0, 0x40, /* 0x24 dollar */ 57 0x80, 0x20, 0x40, 0x80, 0x20, /* 0x25 percent */ 58 0xC0, 0xC0, 0xE0, 0xA0, 0x60, /* 0x26 ampersand */ 59 0x80, 0x80, /* 0x27 quotesingle */ 60 0x40, 0x80, 0x80, 0x80, 0x40, /* 0x28 parenleft */ 61 0x80, 0x40, 0x40, 0x40, 0x80, /* 0x29 parenright */ 62 0xA0, 0x40, 0xA0, /* 0x2A asterisk */ 63 0x40, 0xE0, 0x40, /* 0x2B plus */ 64 0x40, 0x80, /* 0x2C comma */ 65 0xE0, /* 0x2D hyphen */ 66 0x80, /* 0x2E period */ 67 0x20, 0x20, 0x40, 0x80, 0x80, /* 0x2F slash */ 68 0x60, 0xA0, 0xA0, 0xA0, 0xC0, /* 0x30 zero */ 69 0x40, 0xC0, 0x40, 0x40, 0x40, /* 0x31 one */ 70 0xC0, 0x20, 0x40, 0x80, 0xE0, /* 0x32 two */ 71 0xC0, 0x20, 0x40, 0x20, 0xC0, /* 0x33 three */ 72 0xA0, 0xA0, 0xE0, 0x20, 0x20, /* 0x34 four */ 73 0xE0, 0x80, 0xC0, 0x20, 0xC0, /* 0x35 five */ 74 0x60, 0x80, 0xE0, 0xA0, 0xE0, /* 0x36 six */ 75 0xE0, 0x20, 0x40, 0x80, 0x80, /* 0x37 seven */ 76 0xE0, 0xA0, 0xE0, 0xA0, 0xE0, /* 0x38 eight */ 77 0xE0, 0xA0, 0xE0, 0x20, 0xC0, /* 0x39 nine */ 78 0x80, 0x00, 0x80, /* 0x3A colon */ 79 0x40, 0x00, 0x40, 0x80, /* 0x3B semicolon */ 80 0x20, 0x40, 0x80, 0x40, 0x20, /* 0x3C less */ 81 0xE0, 0x00, 0xE0, /* 0x3D equal */ 82 0x80, 0x40, 0x20, 0x40, 0x80, /* 0x3E greater */ 83 0xE0, 0x20, 0x40, 0x00, 0x40, /* 0x3F question */ 84 0x40, 0xA0, 0xE0, 0x80, 0x60, /* 0x40 at */ 85 0x40, 0xA0, 0xE0, 0xA0, 0xA0, /* 0x41 A */ 86 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, /* 0x42 B */ 87 0x60, 0x80, 0x80, 0x80, 0x60, /* 0x43 C */ 88 0xC0, 0xA0, 0xA0, 0xA0, 0xC0, /* 0x44 D */ 89 0xE0, 0x80, 0xE0, 0x80, 0xE0, /* 0x45 E */ 90 0xE0, 0x80, 0xE0, 0x80, 0x80, /* 0x46 F */ 91 0x60, 0x80, 0xE0, 0xA0, 0x60, /* 0x47 G */ 92 0xA0, 0xA0, 0xE0, 0xA0, 0xA0, /* 0x48 H */ 93 0xE0, 0x40, 0x40, 0x40, 0xE0, /* 0x49 I */ 94 0x20, 0x20, 0x20, 0xA0, 0x40, /* 0x4A J */ 95 0xA0, 0xA0, 0xC0, 0xA0, 0xA0, /* 0x4B K */ 96 0x80, 0x80, 0x80, 0x80, 0xE0, /* 0x4C L */ 97 0xA0, 0xE0, 0xE0, 0xA0, 0xA0, /* 0x4D M */ 98 0xA0, 0xE0, 0xE0, 0xE0, 0xA0, /* 0x4E N */ 99 0x40, 0xA0, 0xA0, 0xA0, 0x40, /* 0x4F O */ 100 0xC0, 0xA0, 0xC0, 0x80, 0x80, /* 0x50 P */ 101 0x40, 0xA0, 0xA0, 0xE0, 0x60, /* 0x51 Q */ 102 0xC0, 0xA0, 0xE0, 0xC0, 0xA0, /* 0x52 R */ 103 0x60, 0x80, 0x40, 0x20, 0xC0, /* 0x53 S */ 104 0xE0, 0x40, 0x40, 0x40, 0x40, /* 0x54 T */ 105 0xA0, 0xA0, 0xA0, 0xA0, 0x60, /* 0x55 U */ 106 0xA0, 0xA0, 0xA0, 0x40, 0x40, /* 0x56 V */ 107 0xA0, 0xA0, 0xE0, 0xE0, 0xA0, /* 0x57 W */ 108 0xA0, 0xA0, 0x40, 0xA0, 0xA0, /* 0x58 X */ 109 0xA0, 0xA0, 0x40, 0x40, 0x40, /* 0x59 Y */ 110 0xE0, 0x20, 0x40, 0x80, 0xE0, /* 0x5A Z */ 111 0xE0, 0x80, 0x80, 0x80, 0xE0, /* 0x5B bracketleft */ 112 0x80, 0x40, 0x20, /* 0x5C backslash */ 113 0xE0, 0x20, 0x20, 0x20, 0xE0, /* 0x5D bracketright */ 114 0x40, 0xA0, /* 0x5E asciicircum */ 115 0xE0, /* 0x5F underscore */ 116 0x80, 0x40, /* 0x60 grave */ 117 0xC0, 0x60, 0xA0, 0xE0, /* 0x61 a */ 118 0x80, 0xC0, 0xA0, 0xA0, 0xC0, /* 0x62 b */ 119 0x60, 0x80, 0x80, 0x60, /* 0x63 c */ 120 0x20, 0x60, 0xA0, 0xA0, 0x60, /* 0x64 d */ 121 0x60, 0xA0, 0xC0, 0x60, /* 0x65 e */ 122 0x20, 0x40, 0xE0, 0x40, 0x40, /* 0x66 f */ 123 0x60, 0xA0, 0xE0, 0x20, 0x40, /* 0x67 g */ 124 0x80, 0xC0, 0xA0, 0xA0, 0xA0, /* 0x68 h */ 125 0x80, 0x00, 0x80, 0x80, 0x80, /* 0x69 i */ 126 0x20, 0x00, 0x20, 0x20, 0xA0, 0x40, /* 0x6A j */ 127 0x80, 0xA0, 0xC0, 0xC0, 0xA0, /* 0x6B k */ 128 0xC0, 0x40, 0x40, 0x40, 0xE0, /* 0x6C l */ 129 0xE0, 0xE0, 0xE0, 0xA0, /* 0x6D m */ 130 0xC0, 0xA0, 0xA0, 0xA0, /* 0x6E n */ 131 0x40, 0xA0, 0xA0, 0x40, /* 0x6F o */ 132 0xC0, 0xA0, 0xA0, 0xC0, 0x80, /* 0x70 p */ 133 0x60, 0xA0, 0xA0, 0x60, 0x20, /* 0x71 q */ 134 0x60, 0x80, 0x80, 0x80, /* 0x72 r */ 135 0x60, 0xC0, 0x60, 0xC0, /* 0x73 s */ 136 0x40, 0xE0, 0x40, 0x40, 0x60, /* 0x74 t */ 137 0xA0, 0xA0, 0xA0, 0x60, /* 0x75 u */ 138 0xA0, 0xA0, 0xE0, 0x40, /* 0x76 v */ 139 0xA0, 0xE0, 0xE0, 0xE0, /* 0x77 w */ 140 0xA0, 0x40, 0x40, 0xA0, /* 0x78 x */ 141 0xA0, 0xA0, 0x60, 0x20, 0x40, /* 0x79 y */ 142 0xE0, 0x60, 0xC0, 0xE0, /* 0x7A z */ 143 0x60, 0x40, 0x80, 0x40, 0x60, /* 0x7B braceleft */ 144 0x80, 0x80, 0x00, 0x80, 0x80, /* 0x7C bar */ 145 0xC0, 0x40, 0x20, 0x40, 0xC0, /* 0x7D braceright */ 146 0x60, 0xC0, /* 0x7E asciitilde */ 147 #if (TOMTHUMB_USE_EXTENDED) 148 0x80, 0x00, 0x80, 0x80, 0x80, /* 0xA1 exclamdown */ 149 0x40, 0xE0, 0x80, 0xE0, 0x40, /* 0xA2 cent */ 150 0x60, 0x40, 0xE0, 0x40, 0xE0, /* 0xA3 sterling */ 151 0xA0, 0x40, 0xE0, 0x40, 0xA0, /* 0xA4 currency */ 152 0xA0, 0xA0, 0x40, 0xE0, 0x40, /* 0xA5 yen */ 153 0x80, 0x80, 0x00, 0x80, 0x80, /* 0xA6 brokenbar */ 154 0x60, 0x40, 0xA0, 0x40, 0xC0, /* 0xA7 section */ 155 0xA0, /* 0xA8 dieresis */ 156 0x60, 0x80, 0x60, /* 0xA9 copyright */ 157 0x60, 0xA0, 0xE0, 0x00, 0xE0, /* 0xAA ordfeminine */ 158 0x40, 0x80, 0x40, /* 0xAB guillemotleft */ 159 0xE0, 0x20, /* 0xAC logicalnot */ 160 0xC0, /* 0xAD softhyphen */ 161 0xC0, 0xC0, 0xA0, /* 0xAE registered */ 162 0xE0, /* 0xAF macron */ 163 0x40, 0xA0, 0x40, /* 0xB0 degree */ 164 0x40, 0xE0, 0x40, 0x00, 0xE0, /* 0xB1 plusminus */ 165 0xC0, 0x40, 0x60, /* 0xB2 twosuperior */ 166 0xE0, 0x60, 0xE0, /* 0xB3 threesuperior */ 167 0x40, 0x80, /* 0xB4 acute */ 168 0xA0, 0xA0, 0xA0, 0xC0, 0x80, /* 0xB5 mu */ 169 0x60, 0xA0, 0x60, 0x60, 0x60, /* 0xB6 paragraph */ 170 0xE0, 0xE0, 0xE0, /* 0xB7 periodcentered */ 171 0x40, 0x20, 0xC0, /* 0xB8 cedilla */ 172 0x80, 0x80, 0x80, /* 0xB9 onesuperior */ 173 0x40, 0xA0, 0x40, 0x00, 0xE0, /* 0xBA ordmasculine */ 174 0x80, 0x40, 0x80, /* 0xBB guillemotright */ 175 0x80, 0x80, 0x00, 0x60, 0x20, /* 0xBC onequarter */ 176 0x80, 0x80, 0x00, 0xC0, 0x60, /* 0xBD onehalf */ 177 0xC0, 0xC0, 0x00, 0x60, 0x20, /* 0xBE threequarters */ 178 0x40, 0x00, 0x40, 0x80, 0xE0, /* 0xBF questiondown */ 179 0x40, 0x20, 0x40, 0xE0, 0xA0, /* 0xC0 Agrave */ 180 0x40, 0x80, 0x40, 0xE0, 0xA0, /* 0xC1 Aacute */ 181 0xE0, 0x00, 0x40, 0xE0, 0xA0, /* 0xC2 Acircumflex */ 182 0x60, 0xC0, 0x40, 0xE0, 0xA0, /* 0xC3 Atilde */ 183 0xA0, 0x40, 0xA0, 0xE0, 0xA0, /* 0xC4 Adieresis */ 184 0xC0, 0xC0, 0xA0, 0xE0, 0xA0, /* 0xC5 Aring */ 185 0x60, 0xC0, 0xE0, 0xC0, 0xE0, /* 0xC6 AE */ 186 0x60, 0x80, 0x80, 0x60, 0x20, 0x40, /* 0xC7 Ccedilla */ 187 0x40, 0x20, 0xE0, 0xC0, 0xE0, /* 0xC8 Egrave */ 188 0x40, 0x80, 0xE0, 0xC0, 0xE0, /* 0xC9 Eacute */ 189 0xE0, 0x00, 0xE0, 0xC0, 0xE0, /* 0xCA Ecircumflex */ 190 0xA0, 0x00, 0xE0, 0xC0, 0xE0, /* 0xCB Edieresis */ 191 0x40, 0x20, 0xE0, 0x40, 0xE0, /* 0xCC Igrave */ 192 0x40, 0x80, 0xE0, 0x40, 0xE0, /* 0xCD Iacute */ 193 0xE0, 0x00, 0xE0, 0x40, 0xE0, /* 0xCE Icircumflex */ 194 0xA0, 0x00, 0xE0, 0x40, 0xE0, /* 0xCF Idieresis */ 195 0xC0, 0xA0, 0xE0, 0xA0, 0xC0, /* 0xD0 Eth */ 196 0xC0, 0x60, 0xA0, 0xE0, 0xA0, /* 0xD1 Ntilde */ 197 0x40, 0x20, 0xE0, 0xA0, 0xE0, /* 0xD2 Ograve */ 198 0x40, 0x80, 0xE0, 0xA0, 0xE0, /* 0xD3 Oacute */ 199 0xE0, 0x00, 0xE0, 0xA0, 0xE0, /* 0xD4 Ocircumflex */ 200 0xC0, 0x60, 0xE0, 0xA0, 0xE0, /* 0xD5 Otilde */ 201 0xA0, 0x00, 0xE0, 0xA0, 0xE0, /* 0xD6 Odieresis */ 202 0xA0, 0x40, 0xA0, /* 0xD7 multiply */ 203 0x60, 0xA0, 0xE0, 0xA0, 0xC0, /* 0xD8 Oslash */ 204 0x80, 0x40, 0xA0, 0xA0, 0xE0, /* 0xD9 Ugrave */ 205 0x20, 0x40, 0xA0, 0xA0, 0xE0, /* 0xDA Uacute */ 206 0xE0, 0x00, 0xA0, 0xA0, 0xE0, /* 0xDB Ucircumflex */ 207 0xA0, 0x00, 0xA0, 0xA0, 0xE0, /* 0xDC Udieresis */ 208 0x20, 0x40, 0xA0, 0xE0, 0x40, /* 0xDD Yacute */ 209 0x80, 0xE0, 0xA0, 0xE0, 0x80, /* 0xDE Thorn */ 210 0x60, 0xA0, 0xC0, 0xA0, 0xC0, 0x80, /* 0xDF germandbls */ 211 0x40, 0x20, 0x60, 0xA0, 0xE0, /* 0xE0 agrave */ 212 0x40, 0x80, 0x60, 0xA0, 0xE0, /* 0xE1 aacute */ 213 0xE0, 0x00, 0x60, 0xA0, 0xE0, /* 0xE2 acircumflex */ 214 0x60, 0xC0, 0x60, 0xA0, 0xE0, /* 0xE3 atilde */ 215 0xA0, 0x00, 0x60, 0xA0, 0xE0, /* 0xE4 adieresis */ 216 0x60, 0x60, 0x60, 0xA0, 0xE0, /* 0xE5 aring */ 217 0x60, 0xE0, 0xE0, 0xC0, /* 0xE6 ae */ 218 0x60, 0x80, 0x60, 0x20, 0x40, /* 0xE7 ccedilla */ 219 0x40, 0x20, 0x60, 0xE0, 0x60, /* 0xE8 egrave */ 220 0x40, 0x80, 0x60, 0xE0, 0x60, /* 0xE9 eacute */ 221 0xE0, 0x00, 0x60, 0xE0, 0x60, /* 0xEA ecircumflex */ 222 0xA0, 0x00, 0x60, 0xE0, 0x60, /* 0xEB edieresis */ 223 0x80, 0x40, 0x80, 0x80, 0x80, /* 0xEC igrave */ 224 0x40, 0x80, 0x40, 0x40, 0x40, /* 0xED iacute */ 225 0xE0, 0x00, 0x40, 0x40, 0x40, /* 0xEE icircumflex */ 226 0xA0, 0x00, 0x40, 0x40, 0x40, /* 0xEF idieresis */ 227 0x60, 0xC0, 0x60, 0xA0, 0x60, /* 0xF0 eth */ 228 0xC0, 0x60, 0xC0, 0xA0, 0xA0, /* 0xF1 ntilde */ 229 0x40, 0x20, 0x40, 0xA0, 0x40, /* 0xF2 ograve */ 230 0x40, 0x80, 0x40, 0xA0, 0x40, /* 0xF3 oacute */ 231 0xE0, 0x00, 0x40, 0xA0, 0x40, /* 0xF4 ocircumflex */ 232 0xC0, 0x60, 0x40, 0xA0, 0x40, /* 0xF5 otilde */ 233 0xA0, 0x00, 0x40, 0xA0, 0x40, /* 0xF6 odieresis */ 234 0x40, 0x00, 0xE0, 0x00, 0x40, /* 0xF7 divide */ 235 0x60, 0xE0, 0xA0, 0xC0, /* 0xF8 oslash */ 236 0x80, 0x40, 0xA0, 0xA0, 0x60, /* 0xF9 ugrave */ 237 0x20, 0x40, 0xA0, 0xA0, 0x60, /* 0xFA uacute */ 238 0xE0, 0x00, 0xA0, 0xA0, 0x60, /* 0xFB ucircumflex */ 239 0xA0, 0x00, 0xA0, 0xA0, 0x60, /* 0xFC udieresis */ 240 0x20, 0x40, 0xA0, 0x60, 0x20, 0x40, /* 0xFD yacute */ 241 0x80, 0xC0, 0xA0, 0xC0, 0x80, /* 0xFE thorn */ 242 0xA0, 0x00, 0xA0, 0x60, 0x20, 0x40, /* 0xFF ydieresis */ 243 0x00, /* 0x11D gcircumflex */ 244 0x60, 0xC0, 0xE0, 0xC0, 0x60, /* 0x152 OE */ 245 0x60, 0xE0, 0xC0, 0xE0, /* 0x153 oe */ 246 0xA0, 0x60, 0xC0, 0x60, 0xC0, /* 0x160 Scaron */ 247 0xA0, 0x60, 0xC0, 0x60, 0xC0, /* 0x161 scaron */ 248 0xA0, 0x00, 0xA0, 0x40, 0x40, /* 0x178 Ydieresis */ 249 0xA0, 0xE0, 0x60, 0xC0, 0xE0, /* 0x17D Zcaron */ 250 0xA0, 0xE0, 0x60, 0xC0, 0xE0, /* 0x17E zcaron */ 251 0x00, /* 0xEA4 uni0EA4 */ 252 0x00, /* 0x13A0 uni13A0 */ 253 0x80, /* 0x2022 bullet */ 254 0xA0, /* 0x2026 ellipsis */ 255 0x60, 0xE0, 0xE0, 0xC0, 0x60, /* 0x20AC Euro */ 256 0xE0, 0xA0, 0xA0, 0xA0, 0xE0, /* 0xFFFD uniFFFD */ 257 #endif /* (TOMTHUMB_USE_EXTENDED) */ 258 }; 259 260 261 /* {offset, width, height, advance cursor, x offset, y offset} */ 262 const GFXglyph TomThumbGlyphs[] PROGMEM = { 263 { 0, 8, 1, 2, 0, -5 }, /* 0x20 space */ 264 { 1, 8, 5, 2, 0, -5 }, /* 0x21 exclam */ 265 { 6, 8, 2, 4, 0, -5 }, /* 0x22 quotedbl */ 266 { 8, 8, 5, 4, 0, -5 }, /* 0x23 numbersign */ 267 { 13, 8, 5, 4, 0, -5 }, /* 0x24 dollar */ 268 { 18, 8, 5, 4, 0, -5 }, /* 0x25 percent */ 269 { 23, 8, 5, 4, 0, -5 }, /* 0x26 ampersand */ 270 { 28, 8, 2, 2, 0, -5 }, /* 0x27 quotesingle */ 271 { 30, 8, 5, 3, 0, -5 }, /* 0x28 parenleft */ 272 { 35, 8, 5, 3, 0, -5 }, /* 0x29 parenright */ 273 { 40, 8, 3, 4, 0, -5 }, /* 0x2A asterisk */ 274 { 43, 8, 3, 4, 0, -4 }, /* 0x2B plus */ 275 { 46, 8, 2, 3, 0, -2 }, /* 0x2C comma */ 276 { 48, 8, 1, 4, 0, -3 }, /* 0x2D hyphen */ 277 { 49, 8, 1, 2, 0, -1 }, /* 0x2E period */ 278 { 50, 8, 5, 4, 0, -5 }, /* 0x2F slash */ 279 { 55, 8, 5, 4, 0, -5 }, /* 0x30 zero */ 280 { 60, 8, 5, 3, 0, -5 }, /* 0x31 one */ 281 { 65, 8, 5, 4, 0, -5 }, /* 0x32 two */ 282 { 70, 8, 5, 4, 0, -5 }, /* 0x33 three */ 283 { 75, 8, 5, 4, 0, -5 }, /* 0x34 four */ 284 { 80, 8, 5, 4, 0, -5 }, /* 0x35 five */ 285 { 85, 8, 5, 4, 0, -5 }, /* 0x36 six */ 286 { 90, 8, 5, 4, 0, -5 }, /* 0x37 seven */ 287 { 95, 8, 5, 4, 0, -5 }, /* 0x38 eight */ 288 { 100, 8, 5, 4, 0, -5 }, /* 0x39 nine */ 289 { 105, 8, 3, 2, 0, -4 }, /* 0x3A colon */ 290 { 108, 8, 4, 3, 0, -4 }, /* 0x3B semicolon */ 291 { 112, 8, 5, 4, 0, -5 }, /* 0x3C less */ 292 { 117, 8, 3, 4, 0, -4 }, /* 0x3D equal */ 293 { 120, 8, 5, 4, 0, -5 }, /* 0x3E greater */ 294 { 125, 8, 5, 4, 0, -5 }, /* 0x3F question */ 295 { 130, 8, 5, 4, 0, -5 }, /* 0x40 at */ 296 { 135, 8, 5, 4, 0, -5 }, /* 0x41 A */ 297 { 140, 8, 5, 4, 0, -5 }, /* 0x42 B */ 298 { 145, 8, 5, 4, 0, -5 }, /* 0x43 C */ 299 { 150, 8, 5, 4, 0, -5 }, /* 0x44 D */ 300 { 155, 8, 5, 4, 0, -5 }, /* 0x45 E */ 301 { 160, 8, 5, 4, 0, -5 }, /* 0x46 F */ 302 { 165, 8, 5, 4, 0, -5 }, /* 0x47 G */ 303 { 170, 8, 5, 4, 0, -5 }, /* 0x48 H */ 304 { 175, 8, 5, 4, 0, -5 }, /* 0x49 I */ 305 { 180, 8, 5, 4, 0, -5 }, /* 0x4A J */ 306 { 185, 8, 5, 4, 0, -5 }, /* 0x4B K */ 307 { 190, 8, 5, 4, 0, -5 }, /* 0x4C L */ 308 { 195, 8, 5, 4, 0, -5 }, /* 0x4D M */ 309 { 200, 8, 5, 4, 0, -5 }, /* 0x4E N */ 310 { 205, 8, 5, 4, 0, -5 }, /* 0x4F O */ 311 { 210, 8, 5, 4, 0, -5 }, /* 0x50 P */ 312 { 215, 8, 5, 4, 0, -5 }, /* 0x51 Q */ 313 { 220, 8, 5, 4, 0, -5 }, /* 0x52 R */ 314 { 225, 8, 5, 4, 0, -5 }, /* 0x53 S */ 315 { 230, 8, 5, 4, 0, -5 }, /* 0x54 T */ 316 { 235, 8, 5, 4, 0, -5 }, /* 0x55 U */ 317 { 240, 8, 5, 4, 0, -5 }, /* 0x56 V */ 318 { 245, 8, 5, 4, 0, -5 }, /* 0x57 W */ 319 { 250, 8, 5, 4, 0, -5 }, /* 0x58 X */ 320 { 255, 8, 5, 4, 0, -5 }, /* 0x59 Y */ 321 { 260, 8, 5, 4, 0, -5 }, /* 0x5A Z */ 322 { 265, 8, 5, 4, 0, -5 }, /* 0x5B bracketleft */ 323 { 270, 8, 3, 4, 0, -4 }, /* 0x5C backslash */ 324 { 273, 8, 5, 4, 0, -5 }, /* 0x5D bracketright */ 325 { 278, 8, 2, 4, 0, -5 }, /* 0x5E asciicircum */ 326 { 280, 8, 1, 4, 0, -1 }, /* 0x5F underscore */ 327 { 281, 8, 2, 3, 0, -5 }, /* 0x60 grave */ 328 { 283, 8, 4, 4, 0, -4 }, /* 0x61 a */ 329 { 287, 8, 5, 4, 0, -5 }, /* 0x62 b */ 330 { 292, 8, 4, 4, 0, -4 }, /* 0x63 c */ 331 { 296, 8, 5, 4, 0, -5 }, /* 0x64 d */ 332 { 301, 8, 4, 4, 0, -4 }, /* 0x65 e */ 333 { 305, 8, 5, 4, 0, -5 }, /* 0x66 f */ 334 { 310, 8, 5, 4, 0, -4 }, /* 0x67 g */ 335 { 315, 8, 5, 4, 0, -5 }, /* 0x68 h */ 336 { 320, 8, 5, 2, 0, -5 }, /* 0x69 i */ 337 { 325, 8, 6, 4, 0, -5 }, /* 0x6A j */ 338 { 331, 8, 5, 4, 0, -5 }, /* 0x6B k */ 339 { 336, 8, 5, 4, 0, -5 }, /* 0x6C l */ 340 { 341, 8, 4, 4, 0, -4 }, /* 0x6D m */ 341 { 345, 8, 4, 4, 0, -4 }, /* 0x6E n */ 342 { 349, 8, 4, 4, 0, -4 }, /* 0x6F o */ 343 { 353, 8, 5, 4, 0, -4 }, /* 0x70 p */ 344 { 358, 8, 5, 4, 0, -4 }, /* 0x71 q */ 345 { 363, 8, 4, 4, 0, -4 }, /* 0x72 r */ 346 { 367, 8, 4, 4, 0, -4 }, /* 0x73 s */ 347 { 371, 8, 5, 4, 0, -5 }, /* 0x74 t */ 348 { 376, 8, 4, 4, 0, -4 }, /* 0x75 u */ 349 { 380, 8, 4, 4, 0, -4 }, /* 0x76 v */ 350 { 384, 8, 4, 4, 0, -4 }, /* 0x77 w */ 351 { 388, 8, 4, 4, 0, -4 }, /* 0x78 x */ 352 { 392, 8, 5, 4, 0, -4 }, /* 0x79 y */ 353 { 397, 8, 4, 4, 0, -4 }, /* 0x7A z */ 354 { 401, 8, 5, 4, 0, -5 }, /* 0x7B braceleft */ 355 { 406, 8, 5, 2, 0, -5 }, /* 0x7C bar */ 356 { 411, 8, 5, 4, 0, -5 }, /* 0x7D braceright */ 357 { 416, 8, 2, 4, 0, -5 }, /* 0x7E asciitilde */ 358 #if (TOMTHUMB_USE_EXTENDED) 359 { 418, 8, 5, 2, 0, -5 }, /* 0xA1 exclamdown */ 360 { 423, 8, 5, 4, 0, -5 }, /* 0xA2 cent */ 361 { 428, 8, 5, 4, 0, -5 }, /* 0xA3 sterling */ 362 { 433, 8, 5, 4, 0, -5 }, /* 0xA4 currency */ 363 { 438, 8, 5, 4, 0, -5 }, /* 0xA5 yen */ 364 { 443, 8, 5, 2, 0, -5 }, /* 0xA6 brokenbar */ 365 { 448, 8, 5, 4, 0, -5 }, /* 0xA7 section */ 366 { 453, 8, 1, 4, 0, -5 }, /* 0xA8 dieresis */ 367 { 454, 8, 3, 4, 0, -5 }, /* 0xA9 copyright */ 368 { 457, 8, 5, 4, 0, -5 }, /* 0xAA ordfeminine */ 369 { 462, 8, 3, 3, 0, -5 }, /* 0xAB guillemotleft */ 370 { 465, 8, 2, 4, 0, -4 }, /* 0xAC logicalnot */ 371 { 467, 8, 1, 3, 0, -3 }, /* 0xAD softhyphen */ 372 { 468, 8, 3, 4, 0, -5 }, /* 0xAE registered */ 373 { 471, 8, 1, 4, 0, -5 }, /* 0xAF macron */ 374 { 472, 8, 3, 4, 0, -5 }, /* 0xB0 degree */ 375 { 475, 8, 5, 4, 0, -5 }, /* 0xB1 plusminus */ 376 { 480, 8, 3, 4, 0, -5 }, /* 0xB2 twosuperior */ 377 { 483, 8, 3, 4, 0, -5 }, /* 0xB3 threesuperior */ 378 { 486, 8, 2, 3, 0, -5 }, /* 0xB4 acute */ 379 { 488, 8, 5, 4, 0, -5 }, /* 0xB5 mu */ 380 { 493, 8, 5, 4, 0, -5 }, /* 0xB6 paragraph */ 381 { 498, 8, 3, 4, 0, -4 }, /* 0xB7 periodcentered */ 382 { 501, 8, 3, 4, 0, -3 }, /* 0xB8 cedilla */ 383 { 504, 8, 3, 2, 0, -5 }, /* 0xB9 onesuperior */ 384 { 507, 8, 5, 4, 0, -5 }, /* 0xBA ordmasculine */ 385 { 512, 8, 3, 3, 0, -5 }, /* 0xBB guillemotright */ 386 { 515, 8, 5, 4, 0, -5 }, /* 0xBC onequarter */ 387 { 520, 8, 5, 4, 0, -5 }, /* 0xBD onehalf */ 388 { 525, 8, 5, 4, 0, -5 }, /* 0xBE threequarters */ 389 { 530, 8, 5, 4, 0, -5 }, /* 0xBF questiondown */ 390 { 535, 8, 5, 4, 0, -5 }, /* 0xC0 Agrave */ 391 { 540, 8, 5, 4, 0, -5 }, /* 0xC1 Aacute */ 392 { 545, 8, 5, 4, 0, -5 }, /* 0xC2 Acircumflex */ 393 { 550, 8, 5, 4, 0, -5 }, /* 0xC3 Atilde */ 394 { 555, 8, 5, 4, 0, -5 }, /* 0xC4 Adieresis */ 395 { 560, 8, 5, 4, 0, -5 }, /* 0xC5 Aring */ 396 { 565, 8, 5, 4, 0, -5 }, /* 0xC6 AE */ 397 { 570, 8, 6, 4, 0, -5 }, /* 0xC7 Ccedilla */ 398 { 576, 8, 5, 4, 0, -5 }, /* 0xC8 Egrave */ 399 { 581, 8, 5, 4, 0, -5 }, /* 0xC9 Eacute */ 400 { 586, 8, 5, 4, 0, -5 }, /* 0xCA Ecircumflex */ 401 { 591, 8, 5, 4, 0, -5 }, /* 0xCB Edieresis */ 402 { 596, 8, 5, 4, 0, -5 }, /* 0xCC Igrave */ 403 { 601, 8, 5, 4, 0, -5 }, /* 0xCD Iacute */ 404 { 606, 8, 5, 4, 0, -5 }, /* 0xCE Icircumflex */ 405 { 611, 8, 5, 4, 0, -5 }, /* 0xCF Idieresis */ 406 { 616, 8, 5, 4, 0, -5 }, /* 0xD0 Eth */ 407 { 621, 8, 5, 4, 0, -5 }, /* 0xD1 Ntilde */ 408 { 626, 8, 5, 4, 0, -5 }, /* 0xD2 Ograve */ 409 { 631, 8, 5, 4, 0, -5 }, /* 0xD3 Oacute */ 410 { 636, 8, 5, 4, 0, -5 }, /* 0xD4 Ocircumflex */ 411 { 641, 8, 5, 4, 0, -5 }, /* 0xD5 Otilde */ 412 { 646, 8, 5, 4, 0, -5 }, /* 0xD6 Odieresis */ 413 { 651, 8, 3, 4, 0, -4 }, /* 0xD7 multiply */ 414 { 654, 8, 5, 4, 0, -5 }, /* 0xD8 Oslash */ 415 { 659, 8, 5, 4, 0, -5 }, /* 0xD9 Ugrave */ 416 { 664, 8, 5, 4, 0, -5 }, /* 0xDA Uacute */ 417 { 669, 8, 5, 4, 0, -5 }, /* 0xDB Ucircumflex */ 418 { 674, 8, 5, 4, 0, -5 }, /* 0xDC Udieresis */ 419 { 679, 8, 5, 4, 0, -5 }, /* 0xDD Yacute */ 420 { 684, 8, 5, 4, 0, -5 }, /* 0xDE Thorn */ 421 { 689, 8, 6, 4, 0, -5 }, /* 0xDF germandbls */ 422 { 695, 8, 5, 4, 0, -5 }, /* 0xE0 agrave */ 423 { 700, 8, 5, 4, 0, -5 }, /* 0xE1 aacute */ 424 { 705, 8, 5, 4, 0, -5 }, /* 0xE2 acircumflex */ 425 { 710, 8, 5, 4, 0, -5 }, /* 0xE3 atilde */ 426 { 715, 8, 5, 4, 0, -5 }, /* 0xE4 adieresis */ 427 { 720, 8, 5, 4, 0, -5 }, /* 0xE5 aring */ 428 { 725, 8, 4, 4, 0, -4 }, /* 0xE6 ae */ 429 { 729, 8, 5, 4, 0, -4 }, /* 0xE7 ccedilla */ 430 { 734, 8, 5, 4, 0, -5 }, /* 0xE8 egrave */ 431 { 739, 8, 5, 4, 0, -5 }, /* 0xE9 eacute */ 432 { 744, 8, 5, 4, 0, -5 }, /* 0xEA ecircumflex */ 433 { 749, 8, 5, 4, 0, -5 }, /* 0xEB edieresis */ 434 { 754, 8, 5, 3, 0, -5 }, /* 0xEC igrave */ 435 { 759, 8, 5, 3, 0, -5 }, /* 0xED iacute */ 436 { 764, 8, 5, 4, 0, -5 }, /* 0xEE icircumflex */ 437 { 769, 8, 5, 4, 0, -5 }, /* 0xEF idieresis */ 438 { 774, 8, 5, 4, 0, -5 }, /* 0xF0 eth */ 439 { 779, 8, 5, 4, 0, -5 }, /* 0xF1 ntilde */ 440 { 784, 8, 5, 4, 0, -5 }, /* 0xF2 ograve */ 441 { 789, 8, 5, 4, 0, -5 }, /* 0xF3 oacute */ 442 { 794, 8, 5, 4, 0, -5 }, /* 0xF4 ocircumflex */ 443 { 799, 8, 5, 4, 0, -5 }, /* 0xF5 otilde */ 444 { 804, 8, 5, 4, 0, -5 }, /* 0xF6 odieresis */ 445 { 809, 8, 5, 4, 0, -5 }, /* 0xF7 divide */ 446 { 814, 8, 4, 4, 0, -4 }, /* 0xF8 oslash */ 447 { 818, 8, 5, 4, 0, -5 }, /* 0xF9 ugrave */ 448 { 823, 8, 5, 4, 0, -5 }, /* 0xFA uacute */ 449 { 828, 8, 5, 4, 0, -5 }, /* 0xFB ucircumflex */ 450 { 833, 8, 5, 4, 0, -5 }, /* 0xFC udieresis */ 451 { 838, 8, 6, 4, 0, -5 }, /* 0xFD yacute */ 452 { 844, 8, 5, 4, 0, -4 }, /* 0xFE thorn */ 453 { 849, 8, 6, 4, 0, -5 }, /* 0xFF ydieresis */ 454 { 855, 8, 1, 2, 0, -1 }, /* 0x11D gcircumflex */ 455 { 856, 8, 5, 4, 0, -5 }, /* 0x152 OE */ 456 { 861, 8, 4, 4, 0, -4 }, /* 0x153 oe */ 457 { 865, 8, 5, 4, 0, -5 }, /* 0x160 Scaron */ 458 { 870, 8, 5, 4, 0, -5 }, /* 0x161 scaron */ 459 { 875, 8, 5, 4, 0, -5 }, /* 0x178 Ydieresis */ 460 { 880, 8, 5, 4, 0, -5 }, /* 0x17D Zcaron */ 461 { 885, 8, 5, 4, 0, -5 }, /* 0x17E zcaron */ 462 { 890, 8, 1, 2, 0, -1 }, /* 0xEA4 uni0EA4 */ 463 { 891, 8, 1, 2, 0, -1 }, /* 0x13A0 uni13A0 */ 464 { 892, 8, 1, 2, 0, -3 }, /* 0x2022 bullet */ 465 { 893, 8, 1, 4, 0, -1 }, /* 0x2026 ellipsis */ 466 { 894, 8, 5, 4, 0, -5 }, /* 0x20AC Euro */ 467 { 899, 8, 5, 4, 0, -5 }, /* 0xFFFD uniFFFD */ 468 #endif /* (TOMTHUMB_USE_EXTENDED) */ 469 }; 470 471 const GFXfont TomThumb PROGMEM = { 472 (uint8_t *)TomThumbBitmaps, 473 (GFXglyph *)TomThumbGlyphs, 474 0x20, 0x7E, 6 };