Linduino  1.3.0
Linear Technology Arduino-Compatible Demonstration Board
TomThumb.h
Go to the documentation of this file.
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 {
53  0x00, /* 0x20 space */
54  0x80, 0x80, 0x80, 0x00, 0x80, /* 0x21 exclam */
55  0xA0, 0xA0, /* 0x22 quotedbl */
56  0xA0, 0xE0, 0xA0, 0xE0, 0xA0, /* 0x23 numbersign */
57  0x60, 0xC0, 0x60, 0xC0, 0x40, /* 0x24 dollar */
58  0x80, 0x20, 0x40, 0x80, 0x20, /* 0x25 percent */
59  0xC0, 0xC0, 0xE0, 0xA0, 0x60, /* 0x26 ampersand */
60  0x80, 0x80, /* 0x27 quotesingle */
61  0x40, 0x80, 0x80, 0x80, 0x40, /* 0x28 parenleft */
62  0x80, 0x40, 0x40, 0x40, 0x80, /* 0x29 parenright */
63  0xA0, 0x40, 0xA0, /* 0x2A asterisk */
64  0x40, 0xE0, 0x40, /* 0x2B plus */
65  0x40, 0x80, /* 0x2C comma */
66  0xE0, /* 0x2D hyphen */
67  0x80, /* 0x2E period */
68  0x20, 0x20, 0x40, 0x80, 0x80, /* 0x2F slash */
69  0x60, 0xA0, 0xA0, 0xA0, 0xC0, /* 0x30 zero */
70  0x40, 0xC0, 0x40, 0x40, 0x40, /* 0x31 one */
71  0xC0, 0x20, 0x40, 0x80, 0xE0, /* 0x32 two */
72  0xC0, 0x20, 0x40, 0x20, 0xC0, /* 0x33 three */
73  0xA0, 0xA0, 0xE0, 0x20, 0x20, /* 0x34 four */
74  0xE0, 0x80, 0xC0, 0x20, 0xC0, /* 0x35 five */
75  0x60, 0x80, 0xE0, 0xA0, 0xE0, /* 0x36 six */
76  0xE0, 0x20, 0x40, 0x80, 0x80, /* 0x37 seven */
77  0xE0, 0xA0, 0xE0, 0xA0, 0xE0, /* 0x38 eight */
78  0xE0, 0xA0, 0xE0, 0x20, 0xC0, /* 0x39 nine */
79  0x80, 0x00, 0x80, /* 0x3A colon */
80  0x40, 0x00, 0x40, 0x80, /* 0x3B semicolon */
81  0x20, 0x40, 0x80, 0x40, 0x20, /* 0x3C less */
82  0xE0, 0x00, 0xE0, /* 0x3D equal */
83  0x80, 0x40, 0x20, 0x40, 0x80, /* 0x3E greater */
84  0xE0, 0x20, 0x40, 0x00, 0x40, /* 0x3F question */
85  0x40, 0xA0, 0xE0, 0x80, 0x60, /* 0x40 at */
86  0x40, 0xA0, 0xE0, 0xA0, 0xA0, /* 0x41 A */
87  0xC0, 0xA0, 0xC0, 0xA0, 0xC0, /* 0x42 B */
88  0x60, 0x80, 0x80, 0x80, 0x60, /* 0x43 C */
89  0xC0, 0xA0, 0xA0, 0xA0, 0xC0, /* 0x44 D */
90  0xE0, 0x80, 0xE0, 0x80, 0xE0, /* 0x45 E */
91  0xE0, 0x80, 0xE0, 0x80, 0x80, /* 0x46 F */
92  0x60, 0x80, 0xE0, 0xA0, 0x60, /* 0x47 G */
93  0xA0, 0xA0, 0xE0, 0xA0, 0xA0, /* 0x48 H */
94  0xE0, 0x40, 0x40, 0x40, 0xE0, /* 0x49 I */
95  0x20, 0x20, 0x20, 0xA0, 0x40, /* 0x4A J */
96  0xA0, 0xA0, 0xC0, 0xA0, 0xA0, /* 0x4B K */
97  0x80, 0x80, 0x80, 0x80, 0xE0, /* 0x4C L */
98  0xA0, 0xE0, 0xE0, 0xA0, 0xA0, /* 0x4D M */
99  0xA0, 0xE0, 0xE0, 0xE0, 0xA0, /* 0x4E N */
100  0x40, 0xA0, 0xA0, 0xA0, 0x40, /* 0x4F O */
101  0xC0, 0xA0, 0xC0, 0x80, 0x80, /* 0x50 P */
102  0x40, 0xA0, 0xA0, 0xE0, 0x60, /* 0x51 Q */
103  0xC0, 0xA0, 0xE0, 0xC0, 0xA0, /* 0x52 R */
104  0x60, 0x80, 0x40, 0x20, 0xC0, /* 0x53 S */
105  0xE0, 0x40, 0x40, 0x40, 0x40, /* 0x54 T */
106  0xA0, 0xA0, 0xA0, 0xA0, 0x60, /* 0x55 U */
107  0xA0, 0xA0, 0xA0, 0x40, 0x40, /* 0x56 V */
108  0xA0, 0xA0, 0xE0, 0xE0, 0xA0, /* 0x57 W */
109  0xA0, 0xA0, 0x40, 0xA0, 0xA0, /* 0x58 X */
110  0xA0, 0xA0, 0x40, 0x40, 0x40, /* 0x59 Y */
111  0xE0, 0x20, 0x40, 0x80, 0xE0, /* 0x5A Z */
112  0xE0, 0x80, 0x80, 0x80, 0xE0, /* 0x5B bracketleft */
113  0x80, 0x40, 0x20, /* 0x5C backslash */
114  0xE0, 0x20, 0x20, 0x20, 0xE0, /* 0x5D bracketright */
115  0x40, 0xA0, /* 0x5E asciicircum */
116  0xE0, /* 0x5F underscore */
117  0x80, 0x40, /* 0x60 grave */
118  0xC0, 0x60, 0xA0, 0xE0, /* 0x61 a */
119  0x80, 0xC0, 0xA0, 0xA0, 0xC0, /* 0x62 b */
120  0x60, 0x80, 0x80, 0x60, /* 0x63 c */
121  0x20, 0x60, 0xA0, 0xA0, 0x60, /* 0x64 d */
122  0x60, 0xA0, 0xC0, 0x60, /* 0x65 e */
123  0x20, 0x40, 0xE0, 0x40, 0x40, /* 0x66 f */
124  0x60, 0xA0, 0xE0, 0x20, 0x40, /* 0x67 g */
125  0x80, 0xC0, 0xA0, 0xA0, 0xA0, /* 0x68 h */
126  0x80, 0x00, 0x80, 0x80, 0x80, /* 0x69 i */
127  0x20, 0x00, 0x20, 0x20, 0xA0, 0x40, /* 0x6A j */
128  0x80, 0xA0, 0xC0, 0xC0, 0xA0, /* 0x6B k */
129  0xC0, 0x40, 0x40, 0x40, 0xE0, /* 0x6C l */
130  0xE0, 0xE0, 0xE0, 0xA0, /* 0x6D m */
131  0xC0, 0xA0, 0xA0, 0xA0, /* 0x6E n */
132  0x40, 0xA0, 0xA0, 0x40, /* 0x6F o */
133  0xC0, 0xA0, 0xA0, 0xC0, 0x80, /* 0x70 p */
134  0x60, 0xA0, 0xA0, 0x60, 0x20, /* 0x71 q */
135  0x60, 0x80, 0x80, 0x80, /* 0x72 r */
136  0x60, 0xC0, 0x60, 0xC0, /* 0x73 s */
137  0x40, 0xE0, 0x40, 0x40, 0x60, /* 0x74 t */
138  0xA0, 0xA0, 0xA0, 0x60, /* 0x75 u */
139  0xA0, 0xA0, 0xE0, 0x40, /* 0x76 v */
140  0xA0, 0xE0, 0xE0, 0xE0, /* 0x77 w */
141  0xA0, 0x40, 0x40, 0xA0, /* 0x78 x */
142  0xA0, 0xA0, 0x60, 0x20, 0x40, /* 0x79 y */
143  0xE0, 0x60, 0xC0, 0xE0, /* 0x7A z */
144  0x60, 0x40, 0x80, 0x40, 0x60, /* 0x7B braceleft */
145  0x80, 0x80, 0x00, 0x80, 0x80, /* 0x7C bar */
146  0xC0, 0x40, 0x20, 0x40, 0xC0, /* 0x7D braceright */
147  0x60, 0xC0, /* 0x7E asciitilde */
148 #if (TOMTHUMB_USE_EXTENDED)
149  0x80, 0x00, 0x80, 0x80, 0x80, /* 0xA1 exclamdown */
150  0x40, 0xE0, 0x80, 0xE0, 0x40, /* 0xA2 cent */
151  0x60, 0x40, 0xE0, 0x40, 0xE0, /* 0xA3 sterling */
152  0xA0, 0x40, 0xE0, 0x40, 0xA0, /* 0xA4 currency */
153  0xA0, 0xA0, 0x40, 0xE0, 0x40, /* 0xA5 yen */
154  0x80, 0x80, 0x00, 0x80, 0x80, /* 0xA6 brokenbar */
155  0x60, 0x40, 0xA0, 0x40, 0xC0, /* 0xA7 section */
156  0xA0, /* 0xA8 dieresis */
157  0x60, 0x80, 0x60, /* 0xA9 copyright */
158  0x60, 0xA0, 0xE0, 0x00, 0xE0, /* 0xAA ordfeminine */
159  0x40, 0x80, 0x40, /* 0xAB guillemotleft */
160  0xE0, 0x20, /* 0xAC logicalnot */
161  0xC0, /* 0xAD softhyphen */
162  0xC0, 0xC0, 0xA0, /* 0xAE registered */
163  0xE0, /* 0xAF macron */
164  0x40, 0xA0, 0x40, /* 0xB0 degree */
165  0x40, 0xE0, 0x40, 0x00, 0xE0, /* 0xB1 plusminus */
166  0xC0, 0x40, 0x60, /* 0xB2 twosuperior */
167  0xE0, 0x60, 0xE0, /* 0xB3 threesuperior */
168  0x40, 0x80, /* 0xB4 acute */
169  0xA0, 0xA0, 0xA0, 0xC0, 0x80, /* 0xB5 mu */
170  0x60, 0xA0, 0x60, 0x60, 0x60, /* 0xB6 paragraph */
171  0xE0, 0xE0, 0xE0, /* 0xB7 periodcentered */
172  0x40, 0x20, 0xC0, /* 0xB8 cedilla */
173  0x80, 0x80, 0x80, /* 0xB9 onesuperior */
174  0x40, 0xA0, 0x40, 0x00, 0xE0, /* 0xBA ordmasculine */
175  0x80, 0x40, 0x80, /* 0xBB guillemotright */
176  0x80, 0x80, 0x00, 0x60, 0x20, /* 0xBC onequarter */
177  0x80, 0x80, 0x00, 0xC0, 0x60, /* 0xBD onehalf */
178  0xC0, 0xC0, 0x00, 0x60, 0x20, /* 0xBE threequarters */
179  0x40, 0x00, 0x40, 0x80, 0xE0, /* 0xBF questiondown */
180  0x40, 0x20, 0x40, 0xE0, 0xA0, /* 0xC0 Agrave */
181  0x40, 0x80, 0x40, 0xE0, 0xA0, /* 0xC1 Aacute */
182  0xE0, 0x00, 0x40, 0xE0, 0xA0, /* 0xC2 Acircumflex */
183  0x60, 0xC0, 0x40, 0xE0, 0xA0, /* 0xC3 Atilde */
184  0xA0, 0x40, 0xA0, 0xE0, 0xA0, /* 0xC4 Adieresis */
185  0xC0, 0xC0, 0xA0, 0xE0, 0xA0, /* 0xC5 Aring */
186  0x60, 0xC0, 0xE0, 0xC0, 0xE0, /* 0xC6 AE */
187  0x60, 0x80, 0x80, 0x60, 0x20, 0x40, /* 0xC7 Ccedilla */
188  0x40, 0x20, 0xE0, 0xC0, 0xE0, /* 0xC8 Egrave */
189  0x40, 0x80, 0xE0, 0xC0, 0xE0, /* 0xC9 Eacute */
190  0xE0, 0x00, 0xE0, 0xC0, 0xE0, /* 0xCA Ecircumflex */
191  0xA0, 0x00, 0xE0, 0xC0, 0xE0, /* 0xCB Edieresis */
192  0x40, 0x20, 0xE0, 0x40, 0xE0, /* 0xCC Igrave */
193  0x40, 0x80, 0xE0, 0x40, 0xE0, /* 0xCD Iacute */
194  0xE0, 0x00, 0xE0, 0x40, 0xE0, /* 0xCE Icircumflex */
195  0xA0, 0x00, 0xE0, 0x40, 0xE0, /* 0xCF Idieresis */
196  0xC0, 0xA0, 0xE0, 0xA0, 0xC0, /* 0xD0 Eth */
197  0xC0, 0x60, 0xA0, 0xE0, 0xA0, /* 0xD1 Ntilde */
198  0x40, 0x20, 0xE0, 0xA0, 0xE0, /* 0xD2 Ograve */
199  0x40, 0x80, 0xE0, 0xA0, 0xE0, /* 0xD3 Oacute */
200  0xE0, 0x00, 0xE0, 0xA0, 0xE0, /* 0xD4 Ocircumflex */
201  0xC0, 0x60, 0xE0, 0xA0, 0xE0, /* 0xD5 Otilde */
202  0xA0, 0x00, 0xE0, 0xA0, 0xE0, /* 0xD6 Odieresis */
203  0xA0, 0x40, 0xA0, /* 0xD7 multiply */
204  0x60, 0xA0, 0xE0, 0xA0, 0xC0, /* 0xD8 Oslash */
205  0x80, 0x40, 0xA0, 0xA0, 0xE0, /* 0xD9 Ugrave */
206  0x20, 0x40, 0xA0, 0xA0, 0xE0, /* 0xDA Uacute */
207  0xE0, 0x00, 0xA0, 0xA0, 0xE0, /* 0xDB Ucircumflex */
208  0xA0, 0x00, 0xA0, 0xA0, 0xE0, /* 0xDC Udieresis */
209  0x20, 0x40, 0xA0, 0xE0, 0x40, /* 0xDD Yacute */
210  0x80, 0xE0, 0xA0, 0xE0, 0x80, /* 0xDE Thorn */
211  0x60, 0xA0, 0xC0, 0xA0, 0xC0, 0x80, /* 0xDF germandbls */
212  0x40, 0x20, 0x60, 0xA0, 0xE0, /* 0xE0 agrave */
213  0x40, 0x80, 0x60, 0xA0, 0xE0, /* 0xE1 aacute */
214  0xE0, 0x00, 0x60, 0xA0, 0xE0, /* 0xE2 acircumflex */
215  0x60, 0xC0, 0x60, 0xA0, 0xE0, /* 0xE3 atilde */
216  0xA0, 0x00, 0x60, 0xA0, 0xE0, /* 0xE4 adieresis */
217  0x60, 0x60, 0x60, 0xA0, 0xE0, /* 0xE5 aring */
218  0x60, 0xE0, 0xE0, 0xC0, /* 0xE6 ae */
219  0x60, 0x80, 0x60, 0x20, 0x40, /* 0xE7 ccedilla */
220  0x40, 0x20, 0x60, 0xE0, 0x60, /* 0xE8 egrave */
221  0x40, 0x80, 0x60, 0xE0, 0x60, /* 0xE9 eacute */
222  0xE0, 0x00, 0x60, 0xE0, 0x60, /* 0xEA ecircumflex */
223  0xA0, 0x00, 0x60, 0xE0, 0x60, /* 0xEB edieresis */
224  0x80, 0x40, 0x80, 0x80, 0x80, /* 0xEC igrave */
225  0x40, 0x80, 0x40, 0x40, 0x40, /* 0xED iacute */
226  0xE0, 0x00, 0x40, 0x40, 0x40, /* 0xEE icircumflex */
227  0xA0, 0x00, 0x40, 0x40, 0x40, /* 0xEF idieresis */
228  0x60, 0xC0, 0x60, 0xA0, 0x60, /* 0xF0 eth */
229  0xC0, 0x60, 0xC0, 0xA0, 0xA0, /* 0xF1 ntilde */
230  0x40, 0x20, 0x40, 0xA0, 0x40, /* 0xF2 ograve */
231  0x40, 0x80, 0x40, 0xA0, 0x40, /* 0xF3 oacute */
232  0xE0, 0x00, 0x40, 0xA0, 0x40, /* 0xF4 ocircumflex */
233  0xC0, 0x60, 0x40, 0xA0, 0x40, /* 0xF5 otilde */
234  0xA0, 0x00, 0x40, 0xA0, 0x40, /* 0xF6 odieresis */
235  0x40, 0x00, 0xE0, 0x00, 0x40, /* 0xF7 divide */
236  0x60, 0xE0, 0xA0, 0xC0, /* 0xF8 oslash */
237  0x80, 0x40, 0xA0, 0xA0, 0x60, /* 0xF9 ugrave */
238  0x20, 0x40, 0xA0, 0xA0, 0x60, /* 0xFA uacute */
239  0xE0, 0x00, 0xA0, 0xA0, 0x60, /* 0xFB ucircumflex */
240  0xA0, 0x00, 0xA0, 0xA0, 0x60, /* 0xFC udieresis */
241  0x20, 0x40, 0xA0, 0x60, 0x20, 0x40, /* 0xFD yacute */
242  0x80, 0xC0, 0xA0, 0xC0, 0x80, /* 0xFE thorn */
243  0xA0, 0x00, 0xA0, 0x60, 0x20, 0x40, /* 0xFF ydieresis */
244  0x00, /* 0x11D gcircumflex */
245  0x60, 0xC0, 0xE0, 0xC0, 0x60, /* 0x152 OE */
246  0x60, 0xE0, 0xC0, 0xE0, /* 0x153 oe */
247  0xA0, 0x60, 0xC0, 0x60, 0xC0, /* 0x160 Scaron */
248  0xA0, 0x60, 0xC0, 0x60, 0xC0, /* 0x161 scaron */
249  0xA0, 0x00, 0xA0, 0x40, 0x40, /* 0x178 Ydieresis */
250  0xA0, 0xE0, 0x60, 0xC0, 0xE0, /* 0x17D Zcaron */
251  0xA0, 0xE0, 0x60, 0xC0, 0xE0, /* 0x17E zcaron */
252  0x00, /* 0xEA4 uni0EA4 */
253  0x00, /* 0x13A0 uni13A0 */
254  0x80, /* 0x2022 bullet */
255  0xA0, /* 0x2026 ellipsis */
256  0x60, 0xE0, 0xE0, 0xC0, 0x60, /* 0x20AC Euro */
257  0xE0, 0xA0, 0xA0, 0xA0, 0xE0, /* 0xFFFD uniFFFD */
258 #endif /* (TOMTHUMB_USE_EXTENDED) */
259 };
260 
261 
262 /* {offset, width, height, advance cursor, x offset, y offset} */
263 const GFXglyph TomThumbGlyphs[] PROGMEM =
264 {
265  { 0, 8, 1, 2, 0, -5 }, /* 0x20 space */
266  { 1, 8, 5, 2, 0, -5 }, /* 0x21 exclam */
267  { 6, 8, 2, 4, 0, -5 }, /* 0x22 quotedbl */
268  { 8, 8, 5, 4, 0, -5 }, /* 0x23 numbersign */
269  { 13, 8, 5, 4, 0, -5 }, /* 0x24 dollar */
270  { 18, 8, 5, 4, 0, -5 }, /* 0x25 percent */
271  { 23, 8, 5, 4, 0, -5 }, /* 0x26 ampersand */
272  { 28, 8, 2, 2, 0, -5 }, /* 0x27 quotesingle */
273  { 30, 8, 5, 3, 0, -5 }, /* 0x28 parenleft */
274  { 35, 8, 5, 3, 0, -5 }, /* 0x29 parenright */
275  { 40, 8, 3, 4, 0, -5 }, /* 0x2A asterisk */
276  { 43, 8, 3, 4, 0, -4 }, /* 0x2B plus */
277  { 46, 8, 2, 3, 0, -2 }, /* 0x2C comma */
278  { 48, 8, 1, 4, 0, -3 }, /* 0x2D hyphen */
279  { 49, 8, 1, 2, 0, -1 }, /* 0x2E period */
280  { 50, 8, 5, 4, 0, -5 }, /* 0x2F slash */
281  { 55, 8, 5, 4, 0, -5 }, /* 0x30 zero */
282  { 60, 8, 5, 3, 0, -5 }, /* 0x31 one */
283  { 65, 8, 5, 4, 0, -5 }, /* 0x32 two */
284  { 70, 8, 5, 4, 0, -5 }, /* 0x33 three */
285  { 75, 8, 5, 4, 0, -5 }, /* 0x34 four */
286  { 80, 8, 5, 4, 0, -5 }, /* 0x35 five */
287  { 85, 8, 5, 4, 0, -5 }, /* 0x36 six */
288  { 90, 8, 5, 4, 0, -5 }, /* 0x37 seven */
289  { 95, 8, 5, 4, 0, -5 }, /* 0x38 eight */
290  { 100, 8, 5, 4, 0, -5 }, /* 0x39 nine */
291  { 105, 8, 3, 2, 0, -4 }, /* 0x3A colon */
292  { 108, 8, 4, 3, 0, -4 }, /* 0x3B semicolon */
293  { 112, 8, 5, 4, 0, -5 }, /* 0x3C less */
294  { 117, 8, 3, 4, 0, -4 }, /* 0x3D equal */
295  { 120, 8, 5, 4, 0, -5 }, /* 0x3E greater */
296  { 125, 8, 5, 4, 0, -5 }, /* 0x3F question */
297  { 130, 8, 5, 4, 0, -5 }, /* 0x40 at */
298  { 135, 8, 5, 4, 0, -5 }, /* 0x41 A */
299  { 140, 8, 5, 4, 0, -5 }, /* 0x42 B */
300  { 145, 8, 5, 4, 0, -5 }, /* 0x43 C */
301  { 150, 8, 5, 4, 0, -5 }, /* 0x44 D */
302  { 155, 8, 5, 4, 0, -5 }, /* 0x45 E */
303  { 160, 8, 5, 4, 0, -5 }, /* 0x46 F */
304  { 165, 8, 5, 4, 0, -5 }, /* 0x47 G */
305  { 170, 8, 5, 4, 0, -5 }, /* 0x48 H */
306  { 175, 8, 5, 4, 0, -5 }, /* 0x49 I */
307  { 180, 8, 5, 4, 0, -5 }, /* 0x4A J */
308  { 185, 8, 5, 4, 0, -5 }, /* 0x4B K */
309  { 190, 8, 5, 4, 0, -5 }, /* 0x4C L */
310  { 195, 8, 5, 4, 0, -5 }, /* 0x4D M */
311  { 200, 8, 5, 4, 0, -5 }, /* 0x4E N */
312  { 205, 8, 5, 4, 0, -5 }, /* 0x4F O */
313  { 210, 8, 5, 4, 0, -5 }, /* 0x50 P */
314  { 215, 8, 5, 4, 0, -5 }, /* 0x51 Q */
315  { 220, 8, 5, 4, 0, -5 }, /* 0x52 R */
316  { 225, 8, 5, 4, 0, -5 }, /* 0x53 S */
317  { 230, 8, 5, 4, 0, -5 }, /* 0x54 T */
318  { 235, 8, 5, 4, 0, -5 }, /* 0x55 U */
319  { 240, 8, 5, 4, 0, -5 }, /* 0x56 V */
320  { 245, 8, 5, 4, 0, -5 }, /* 0x57 W */
321  { 250, 8, 5, 4, 0, -5 }, /* 0x58 X */
322  { 255, 8, 5, 4, 0, -5 }, /* 0x59 Y */
323  { 260, 8, 5, 4, 0, -5 }, /* 0x5A Z */
324  { 265, 8, 5, 4, 0, -5 }, /* 0x5B bracketleft */
325  { 270, 8, 3, 4, 0, -4 }, /* 0x5C backslash */
326  { 273, 8, 5, 4, 0, -5 }, /* 0x5D bracketright */
327  { 278, 8, 2, 4, 0, -5 }, /* 0x5E asciicircum */
328  { 280, 8, 1, 4, 0, -1 }, /* 0x5F underscore */
329  { 281, 8, 2, 3, 0, -5 }, /* 0x60 grave */
330  { 283, 8, 4, 4, 0, -4 }, /* 0x61 a */
331  { 287, 8, 5, 4, 0, -5 }, /* 0x62 b */
332  { 292, 8, 4, 4, 0, -4 }, /* 0x63 c */
333  { 296, 8, 5, 4, 0, -5 }, /* 0x64 d */
334  { 301, 8, 4, 4, 0, -4 }, /* 0x65 e */
335  { 305, 8, 5, 4, 0, -5 }, /* 0x66 f */
336  { 310, 8, 5, 4, 0, -4 }, /* 0x67 g */
337  { 315, 8, 5, 4, 0, -5 }, /* 0x68 h */
338  { 320, 8, 5, 2, 0, -5 }, /* 0x69 i */
339  { 325, 8, 6, 4, 0, -5 }, /* 0x6A j */
340  { 331, 8, 5, 4, 0, -5 }, /* 0x6B k */
341  { 336, 8, 5, 4, 0, -5 }, /* 0x6C l */
342  { 341, 8, 4, 4, 0, -4 }, /* 0x6D m */
343  { 345, 8, 4, 4, 0, -4 }, /* 0x6E n */
344  { 349, 8, 4, 4, 0, -4 }, /* 0x6F o */
345  { 353, 8, 5, 4, 0, -4 }, /* 0x70 p */
346  { 358, 8, 5, 4, 0, -4 }, /* 0x71 q */
347  { 363, 8, 4, 4, 0, -4 }, /* 0x72 r */
348  { 367, 8, 4, 4, 0, -4 }, /* 0x73 s */
349  { 371, 8, 5, 4, 0, -5 }, /* 0x74 t */
350  { 376, 8, 4, 4, 0, -4 }, /* 0x75 u */
351  { 380, 8, 4, 4, 0, -4 }, /* 0x76 v */
352  { 384, 8, 4, 4, 0, -4 }, /* 0x77 w */
353  { 388, 8, 4, 4, 0, -4 }, /* 0x78 x */
354  { 392, 8, 5, 4, 0, -4 }, /* 0x79 y */
355  { 397, 8, 4, 4, 0, -4 }, /* 0x7A z */
356  { 401, 8, 5, 4, 0, -5 }, /* 0x7B braceleft */
357  { 406, 8, 5, 2, 0, -5 }, /* 0x7C bar */
358  { 411, 8, 5, 4, 0, -5 }, /* 0x7D braceright */
359  { 416, 8, 2, 4, 0, -5 }, /* 0x7E asciitilde */
360 #if (TOMTHUMB_USE_EXTENDED)
361  { 418, 8, 5, 2, 0, -5 }, /* 0xA1 exclamdown */
362  { 423, 8, 5, 4, 0, -5 }, /* 0xA2 cent */
363  { 428, 8, 5, 4, 0, -5 }, /* 0xA3 sterling */
364  { 433, 8, 5, 4, 0, -5 }, /* 0xA4 currency */
365  { 438, 8, 5, 4, 0, -5 }, /* 0xA5 yen */
366  { 443, 8, 5, 2, 0, -5 }, /* 0xA6 brokenbar */
367  { 448, 8, 5, 4, 0, -5 }, /* 0xA7 section */
368  { 453, 8, 1, 4, 0, -5 }, /* 0xA8 dieresis */
369  { 454, 8, 3, 4, 0, -5 }, /* 0xA9 copyright */
370  { 457, 8, 5, 4, 0, -5 }, /* 0xAA ordfeminine */
371  { 462, 8, 3, 3, 0, -5 }, /* 0xAB guillemotleft */
372  { 465, 8, 2, 4, 0, -4 }, /* 0xAC logicalnot */
373  { 467, 8, 1, 3, 0, -3 }, /* 0xAD softhyphen */
374  { 468, 8, 3, 4, 0, -5 }, /* 0xAE registered */
375  { 471, 8, 1, 4, 0, -5 }, /* 0xAF macron */
376  { 472, 8, 3, 4, 0, -5 }, /* 0xB0 degree */
377  { 475, 8, 5, 4, 0, -5 }, /* 0xB1 plusminus */
378  { 480, 8, 3, 4, 0, -5 }, /* 0xB2 twosuperior */
379  { 483, 8, 3, 4, 0, -5 }, /* 0xB3 threesuperior */
380  { 486, 8, 2, 3, 0, -5 }, /* 0xB4 acute */
381  { 488, 8, 5, 4, 0, -5 }, /* 0xB5 mu */
382  { 493, 8, 5, 4, 0, -5 }, /* 0xB6 paragraph */
383  { 498, 8, 3, 4, 0, -4 }, /* 0xB7 periodcentered */
384  { 501, 8, 3, 4, 0, -3 }, /* 0xB8 cedilla */
385  { 504, 8, 3, 2, 0, -5 }, /* 0xB9 onesuperior */
386  { 507, 8, 5, 4, 0, -5 }, /* 0xBA ordmasculine */
387  { 512, 8, 3, 3, 0, -5 }, /* 0xBB guillemotright */
388  { 515, 8, 5, 4, 0, -5 }, /* 0xBC onequarter */
389  { 520, 8, 5, 4, 0, -5 }, /* 0xBD onehalf */
390  { 525, 8, 5, 4, 0, -5 }, /* 0xBE threequarters */
391  { 530, 8, 5, 4, 0, -5 }, /* 0xBF questiondown */
392  { 535, 8, 5, 4, 0, -5 }, /* 0xC0 Agrave */
393  { 540, 8, 5, 4, 0, -5 }, /* 0xC1 Aacute */
394  { 545, 8, 5, 4, 0, -5 }, /* 0xC2 Acircumflex */
395  { 550, 8, 5, 4, 0, -5 }, /* 0xC3 Atilde */
396  { 555, 8, 5, 4, 0, -5 }, /* 0xC4 Adieresis */
397  { 560, 8, 5, 4, 0, -5 }, /* 0xC5 Aring */
398  { 565, 8, 5, 4, 0, -5 }, /* 0xC6 AE */
399  { 570, 8, 6, 4, 0, -5 }, /* 0xC7 Ccedilla */
400  { 576, 8, 5, 4, 0, -5 }, /* 0xC8 Egrave */
401  { 581, 8, 5, 4, 0, -5 }, /* 0xC9 Eacute */
402  { 586, 8, 5, 4, 0, -5 }, /* 0xCA Ecircumflex */
403  { 591, 8, 5, 4, 0, -5 }, /* 0xCB Edieresis */
404  { 596, 8, 5, 4, 0, -5 }, /* 0xCC Igrave */
405  { 601, 8, 5, 4, 0, -5 }, /* 0xCD Iacute */
406  { 606, 8, 5, 4, 0, -5 }, /* 0xCE Icircumflex */
407  { 611, 8, 5, 4, 0, -5 }, /* 0xCF Idieresis */
408  { 616, 8, 5, 4, 0, -5 }, /* 0xD0 Eth */
409  { 621, 8, 5, 4, 0, -5 }, /* 0xD1 Ntilde */
410  { 626, 8, 5, 4, 0, -5 }, /* 0xD2 Ograve */
411  { 631, 8, 5, 4, 0, -5 }, /* 0xD3 Oacute */
412  { 636, 8, 5, 4, 0, -5 }, /* 0xD4 Ocircumflex */
413  { 641, 8, 5, 4, 0, -5 }, /* 0xD5 Otilde */
414  { 646, 8, 5, 4, 0, -5 }, /* 0xD6 Odieresis */
415  { 651, 8, 3, 4, 0, -4 }, /* 0xD7 multiply */
416  { 654, 8, 5, 4, 0, -5 }, /* 0xD8 Oslash */
417  { 659, 8, 5, 4, 0, -5 }, /* 0xD9 Ugrave */
418  { 664, 8, 5, 4, 0, -5 }, /* 0xDA Uacute */
419  { 669, 8, 5, 4, 0, -5 }, /* 0xDB Ucircumflex */
420  { 674, 8, 5, 4, 0, -5 }, /* 0xDC Udieresis */
421  { 679, 8, 5, 4, 0, -5 }, /* 0xDD Yacute */
422  { 684, 8, 5, 4, 0, -5 }, /* 0xDE Thorn */
423  { 689, 8, 6, 4, 0, -5 }, /* 0xDF germandbls */
424  { 695, 8, 5, 4, 0, -5 }, /* 0xE0 agrave */
425  { 700, 8, 5, 4, 0, -5 }, /* 0xE1 aacute */
426  { 705, 8, 5, 4, 0, -5 }, /* 0xE2 acircumflex */
427  { 710, 8, 5, 4, 0, -5 }, /* 0xE3 atilde */
428  { 715, 8, 5, 4, 0, -5 }, /* 0xE4 adieresis */
429  { 720, 8, 5, 4, 0, -5 }, /* 0xE5 aring */
430  { 725, 8, 4, 4, 0, -4 }, /* 0xE6 ae */
431  { 729, 8, 5, 4, 0, -4 }, /* 0xE7 ccedilla */
432  { 734, 8, 5, 4, 0, -5 }, /* 0xE8 egrave */
433  { 739, 8, 5, 4, 0, -5 }, /* 0xE9 eacute */
434  { 744, 8, 5, 4, 0, -5 }, /* 0xEA ecircumflex */
435  { 749, 8, 5, 4, 0, -5 }, /* 0xEB edieresis */
436  { 754, 8, 5, 3, 0, -5 }, /* 0xEC igrave */
437  { 759, 8, 5, 3, 0, -5 }, /* 0xED iacute */
438  { 764, 8, 5, 4, 0, -5 }, /* 0xEE icircumflex */
439  { 769, 8, 5, 4, 0, -5 }, /* 0xEF idieresis */
440  { 774, 8, 5, 4, 0, -5 }, /* 0xF0 eth */
441  { 779, 8, 5, 4, 0, -5 }, /* 0xF1 ntilde */
442  { 784, 8, 5, 4, 0, -5 }, /* 0xF2 ograve */
443  { 789, 8, 5, 4, 0, -5 }, /* 0xF3 oacute */
444  { 794, 8, 5, 4, 0, -5 }, /* 0xF4 ocircumflex */
445  { 799, 8, 5, 4, 0, -5 }, /* 0xF5 otilde */
446  { 804, 8, 5, 4, 0, -5 }, /* 0xF6 odieresis */
447  { 809, 8, 5, 4, 0, -5 }, /* 0xF7 divide */
448  { 814, 8, 4, 4, 0, -4 }, /* 0xF8 oslash */
449  { 818, 8, 5, 4, 0, -5 }, /* 0xF9 ugrave */
450  { 823, 8, 5, 4, 0, -5 }, /* 0xFA uacute */
451  { 828, 8, 5, 4, 0, -5 }, /* 0xFB ucircumflex */
452  { 833, 8, 5, 4, 0, -5 }, /* 0xFC udieresis */
453  { 838, 8, 6, 4, 0, -5 }, /* 0xFD yacute */
454  { 844, 8, 5, 4, 0, -4 }, /* 0xFE thorn */
455  { 849, 8, 6, 4, 0, -5 }, /* 0xFF ydieresis */
456  { 855, 8, 1, 2, 0, -1 }, /* 0x11D gcircumflex */
457  { 856, 8, 5, 4, 0, -5 }, /* 0x152 OE */
458  { 861, 8, 4, 4, 0, -4 }, /* 0x153 oe */
459  { 865, 8, 5, 4, 0, -5 }, /* 0x160 Scaron */
460  { 870, 8, 5, 4, 0, -5 }, /* 0x161 scaron */
461  { 875, 8, 5, 4, 0, -5 }, /* 0x178 Ydieresis */
462  { 880, 8, 5, 4, 0, -5 }, /* 0x17D Zcaron */
463  { 885, 8, 5, 4, 0, -5 }, /* 0x17E zcaron */
464  { 890, 8, 1, 2, 0, -1 }, /* 0xEA4 uni0EA4 */
465  { 891, 8, 1, 2, 0, -1 }, /* 0x13A0 uni13A0 */
466  { 892, 8, 1, 2, 0, -3 }, /* 0x2022 bullet */
467  { 893, 8, 1, 4, 0, -1 }, /* 0x2026 ellipsis */
468  { 894, 8, 5, 4, 0, -5 }, /* 0x20AC Euro */
469  { 899, 8, 5, 4, 0, -5 }, /* 0xFFFD uniFFFD */
470 #endif /* (TOMTHUMB_USE_EXTENDED) */
471 };
472 
473 const GFXfont TomThumb PROGMEM =
474 {
475  (uint8_t *)TomThumbBitmaps,
476  (GFXglyph *)TomThumbGlyphs,
477  0x20, 0x7E, 6
478 };
const uint8_t TomThumbBitmaps [] PROGMEM
Definition: TomThumb.h:51