]> git.karo-electronics.de Git - oswald.git/blob - ui/Fonts.c
Make idle selectable
[oswald.git] / ui / Fonts.c
1 //==============================================================================
2 //  Copyright 2011 Meta Watch Ltd. - http://www.MetaWatch.org/
3 // 
4 //  Licensed under the Meta Watch License, Version 1.0 (the "License");
5 //  you may not use this file except in compliance with the License.
6 //  You may obtain a copy of the License at
7 //  
8 //      http://www.MetaWatch.org/licenses/license-1.0.html
9 //
10 //  Unless required by applicable law or agreed to in writing, software
11 //  distributed under the License is distributed on an "AS IS" BASIS,
12 //  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 //  See the License for the specific language governing permissions and
14 //  limitations under the License.
15 //==============================================================================
16
17 #include <stdio.h>
18 #include "Fonts.h"
19
20 /*! The number of printable characters in the font tables */
21 #define PRINTABLE_CHARACTERS ( 94 )
22
23 const unsigned char MetaWatch5table[PRINTABLE_CHARACTERS][5];
24 const unsigned char MetaWatch7table[PRINTABLE_CHARACTERS][7];
25 const unsigned int MetaWatch16table[PRINTABLE_CHARACTERS][16];
26 const unsigned int MetaWatchTimeTable[TOTAL_TIME_CHARACTERS][19];
27
28 const unsigned char MetaWatch5width[PRINTABLE_CHARACTERS];
29 const unsigned char MetaWatch7width[PRINTABLE_CHARACTERS];
30 const unsigned char MetaWatch16width[PRINTABLE_CHARACTERS];
31 const unsigned char MetaWatchTimeWidth[TOTAL_TIME_CHARACTERS];
32
33 /*! Font Structure
34  *
35  * \param Type is the enumerated type of font
36  * \param Height
37  * \param Spacing is the horizontal spacing that should be inserted when
38  * drawing characters
39  */
40 typedef struct
41 {
42   etFontType Type;
43   unsigned char Height;
44   unsigned char Spacing;
45 } tFont;
46
47 static tFont CurrentFont;
48
49 void SetFont(etFontType Type)
50 {
51   switch (Type)
52   {
53   case MetaWatch5:
54     CurrentFont.Type = Type;
55     CurrentFont.Height = 5;
56     CurrentFont.Spacing = 1;
57     break;
58   
59   case MetaWatch7:
60     CurrentFont.Type = Type;
61     CurrentFont.Height = 7;
62     CurrentFont.Spacing = 1;
63     break;
64   
65   case MetaWatch16:
66     CurrentFont.Type = Type;
67     CurrentFont.Height = 16;
68     CurrentFont.Spacing = 1;
69     break;
70     
71   case MetaWatchTime:
72     CurrentFont.Type = Type;
73     CurrentFont.Height = 19;
74     CurrentFont.Spacing = 1;
75     break;
76     
77   default:
78     printf("Undefined Font Selected\r\n");
79     break;
80   }  
81 }
82
83 unsigned char MapDigitToIndex(unsigned char Digit)
84 {
85   /* default is a space (the first printable character) */
86   return (Digit < 10 ? Digit + 0x10 : 0);
87 }
88
89
90 unsigned char GetCharacterWidth(unsigned char Character)
91
92   unsigned char index = MapCharacterToIndex(Character);
93   unsigned char Width = 0;
94   
95   switch (CurrentFont.Type)
96   {
97   case MetaWatch5:    Width = MetaWatch5width[index];    break;
98   case MetaWatch7:    Width = MetaWatch7width[index];    break;
99   case MetaWatch16:   Width = MetaWatch16width[index];   break;
100   case MetaWatchTime: Width = MetaWatchTimeWidth[index]; break;
101   default : 
102     break;
103   }
104   
105   return Width;
106   
107 }
108
109 unsigned char GetCharacterHeight(void)
110 {
111   return CurrentFont.Height;  
112 }
113
114 void SetFontSpacing(unsigned char Spacing)
115 {
116   CurrentFont.Spacing = Spacing;  
117 }
118
119 unsigned char GetFontSpacing(void)
120 {
121   return CurrentFont.Spacing;  
122 }
123
124 unsigned char MapCharacterToIndex(unsigned char CharIn)
125 {
126   unsigned char Result = 0;
127
128   switch (CurrentFont.Type)
129   {
130   case MetaWatchTime: 
131     Result = CharIn;  
132     break;
133     
134   default : 
135     // space = 0x20 and 0x7f = delete character
136     if ( (CharIn >= 0x20) && (CharIn < 0x7f) )
137     {
138       Result = CharIn - 0x20;
139     }
140     break;
141   }
142   
143   return Result;
144   
145 }
146
147
148 void GetCharacterBitmap(unsigned char Character,unsigned int * pBitmap)
149 {
150   unsigned char index = MapCharacterToIndex(Character);
151
152   unsigned char row;
153   for (row = 0; row < CurrentFont.Height; row++ )
154   {
155     switch (CurrentFont.Type)
156     {
157     case MetaWatch5:
158       pBitmap[row] = (unsigned int)MetaWatch5table[index][row];  
159       break;
160   
161     case MetaWatch7:
162       pBitmap[row] = (unsigned int)MetaWatch7table[index][row];  
163       break;
164   
165     case MetaWatch16:
166       pBitmap[row] = MetaWatch16table[index][row];  
167       break;
168   
169     case MetaWatchTime:
170       pBitmap[row] = MetaWatchTimeTable[index][row];
171       break;
172       
173     default:
174       break;
175     }
176   
177   }
178
179 }
180
181 const unsigned char MetaWatch5table[PRINTABLE_CHARACTERS][5] = 
182 {
183   /* character 0x20 (' '): (width = 2) */
184   0x00, 0x00, 0x00, 0x00, 0x00,
185   
186   /* character 0x21 ('!'): (width=1) */
187   0x01, 0x01, 0x01, 0x00, 0x01, 
188   
189   /* character 0x22 ('"'): (width=3) */
190   0x05, 0x05, 0x00, 0x00, 0x00, 
191   
192   /* character 0x23 ('#'): (width=5) */
193   0x0A, 0x1F, 0x0A, 0x1F, 0x0A, 
194   
195   /* character 0x24 ('$'): (width=3) */
196   0x00, 0x00, 0x00, 0x00, 0x00, 
197   
198   /* character 0x25 ('%'): (width=3) */
199   0x00, 0x00, 0x00, 0x00, 0x00, 
200   
201   /* character 0x26 ('&'): (width=5) */
202   0x02, 0x05, 0x16, 0x09, 0x1E, 
203   
204   /* character 0x27 ('''): (width=1) */
205   0x01, 0x01, 0x00, 0x00, 0x00, 
206   
207   /* character 0x28 ('('): (width=2) */
208   0x02, 0x01, 0x01, 0x01, 0x02, 
209   
210   /* character 0x29 (')'): (width=2) */
211   0x01, 0x02, 0x02, 0x02, 0x01, 
212   
213   /* character 0x2A ('*'): (width=5) */
214   0x0A, 0x04, 0x1F, 0x04, 0x0A, 
215   
216   /* character 0x2B ('+'): (width=5) */
217   0x04, 0x04, 0x1F, 0x04, 0x04, 
218   
219   /* character 0x2C (','): (width=1) */
220   0x00, 0x00, 0x00, 0x01, 0x01, 
221   
222   /* character 0x2D ('-'): (width=3) */
223   0x00, 0x00, 0x07, 0x00, 0x00, 
224   
225   /* character 0x2E ('.'): (width=1) */
226   0x00, 0x00, 0x00, 0x00, 0x01, 
227   
228   /* character 0x2F ('/'): (width=5) */
229   0x10, 0x08, 0x04, 0x02, 0x01, 
230   
231   /* character 0x30 ('0'): (width=4) */
232   0x06, 0x09, 0x09, 0x09, 0x06, 
233   
234   /* character 0x31 ('1'): (width=3) */
235   0x03, 0x02, 0x02, 0x02, 0x07, 
236   
237   /* character 0x32 ('2'): (width=4) */
238   0x06, 0x09, 0x04, 0x02, 0x0F, 
239   
240   /* character 0x33 ('3'): (width=4) */
241   0x0F, 0x08, 0x06, 0x08, 0x07, 
242   
243   /* character 0x34 ('4'): (width=4) */
244   0x04, 0x06, 0x05, 0x0F, 0x04, 
245   
246   /* character 0x35 ('5'): (width=4) */
247   0x0F, 0x01, 0x0F, 0x08, 0x07, 
248   
249   /* character 0x36 ('6'): (width=4) */
250   0x06, 0x01, 0x07, 0x09, 0x06, 
251   
252   /* character 0x37 ('7'): (width=4) */
253   0x0F, 0x08, 0x04, 0x02, 0x02, 
254   
255   /* character 0x38 ('8'): (width=4) */
256   0x06, 0x09, 0x06, 0x09, 0x06, 
257   
258   /* character 0x39 ('9'): (width=4) */
259   0x06, 0x09, 0x0E, 0x08, 0x06, 
260   
261   /* character 0x3A (':'): (width=1) */
262   0x00, 0x01, 0x00, 0x01, 0x00, 
263   
264   /* character 0x3B (';'): (width=2) */
265   0x00, 0x02, 0x00, 0x02, 0x01, 
266   
267   /* character 0x3C ('<'): (width=3) */
268   0x04, 0x02, 0x01, 0x02, 0x04, 
269   
270   /* character 0x3D ('='): (width=4) */
271   0x00, 0x0F, 0x00, 0x0F, 0x00, 
272   
273   /* character 0x3E ('>'): (width=3) */
274   0x01, 0x02, 0x04, 0x02, 0x01, 
275   
276   /* character 0x3F ('?'): (width=3) */
277   0x03, 0x04, 0x02, 0x00, 0x02, 
278   
279   /* character 0x40 ('@'): (width=3) */
280   0x00, 0x00, 0x00, 0x00, 0x00, 
281   
282   /* character 0x41 ('A'): (width=5) */
283   0x04, 0x04, 0x0A, 0x0E, 0x11, 
284   
285   /* character 0x42 ('B'): (width=4) */
286   0x07, 0x09, 0x07, 0x09, 0x07, 
287   
288   /* character 0x43 ('C'): (width=4) */
289   0x06, 0x09, 0x01, 0x09, 0x06, 
290   
291   /* character 0x44 ('D'): (width=4) */
292   0x07, 0x09, 0x09, 0x09, 0x07, 
293   
294   /* character 0x45 ('E'): (width=4) */
295   0x0F, 0x01, 0x07, 0x01, 0x0F, 
296   
297   /* character 0x46 ('F'): (width=4) */
298   0x0F, 0x01, 0x07, 0x01, 0x01, 
299   
300   /* character 0x47 ('G'): (width=4) */
301   0x06, 0x01, 0x0D, 0x09, 0x06, 
302   
303   /* character 0x48 ('H'): (width=4) */
304   0x09, 0x09, 0x0F, 0x09, 0x09, 
305   
306   /* character 0x49 ('I'): (width=3) */
307   0x07, 0x02, 0x02, 0x02, 0x07, 
308   
309   /* character 0x4A ('J'): (width=4) */
310   0x08, 0x08, 0x08, 0x09, 0x06, 
311   
312   /* character 0x4B ('K'): (width=4) */
313   0x09, 0x05, 0x03, 0x05, 0x09, 
314   
315   /* character 0x4C ('L'): (width=4) */
316   0x01, 0x01, 0x01, 0x01, 0x0F, 
317   
318   /* character 0x4D ('M'): (width=5) */
319   0x11, 0x1B, 0x15, 0x11, 0x11, 
320   
321   /* character 0x4E ('N'): (width=5) */
322   0x11, 0x13, 0x15, 0x19, 0x11, 
323   
324   /* character 0x4F ('O'): (width=4) */
325   0x06, 0x09, 0x09, 0x09, 0x06, 
326   
327   /* character 0x50 ('P'): (width=4) */
328   0x07, 0x09, 0x07, 0x01, 0x01, 
329   
330   /* character 0x51 ('Q'): (width=5) */
331   0x06, 0x09, 0x09, 0x09, 0x1E, 
332   
333   /* character 0x52 ('R'): (width=4) */
334   0x07, 0x09, 0x07, 0x09, 0x09, 
335   
336   /* character 0x53 ('S'): (width=4) */
337   0x0E, 0x01, 0x06, 0x08, 0x07, 
338   
339   /* character 0x54 ('T'): (width=3) */
340   0x07, 0x02, 0x02, 0x02, 0x02, 
341   
342   /* character 0x55 ('U'): (width=4) */
343   0x09, 0x09, 0x09, 0x09, 0x06, 
344   
345   /* character 0x56 ('V'): (width=5) */
346   0x11, 0x0A, 0x0A, 0x04, 0x04, 
347   
348   /* character 0x57 ('W'): (width=5) */
349   0x15, 0x15, 0x0A, 0x0A, 0x0A, 
350   
351   /* character 0x58 ('X'): (width=4) */
352   0x09, 0x09, 0x06, 0x09, 0x09, 
353   
354   /* character 0x59 ('Y'): (width=5) */
355   0x11, 0x0A, 0x04, 0x04, 0x04, 
356   
357   /* character 0x5A ('Z'): (width=4) */
358   0x0F, 0x04, 0x02, 0x01, 0x0F, 
359   
360   /* character 0x5B ('['): (width=2) */
361   0x03, 0x01, 0x01, 0x01, 0x03, 
362   
363   /* character 0x5C ('\'): (width=5) */
364   0x01, 0x02, 0x04, 0x08, 0x10, 
365   
366   /* character 0x5D (']'): (width=2) */
367   0x03, 0x02, 0x02, 0x02, 0x03, 
368   
369   /* character 0x5E ('^'): (width=5) */
370   0x04, 0x0A, 0x11, 0x00, 0x00, 
371   
372   /* character 0x5F ('_'): (width=4) */
373   0x00, 0x00, 0x00, 0x00, 0x0F, 
374   
375   /* character 0x60 ('`'): (width=1) */
376   0x01, 0x01, 0x00, 0x00, 0x00, 
377   
378   /* character 0x61 ('a'): (width=5) */
379   0x04, 0x04, 0x0A, 0x0E, 0x11, 
380   
381   /* character 0x62 ('b'): (width=4) */
382   0x07, 0x09, 0x07, 0x09, 0x07, 
383   
384   /* character 0x63 ('c'): (width=4) */
385   0x06, 0x09, 0x01, 0x09, 0x06, 
386   
387   /* character 0x64 ('d'): (width=4) */
388   0x07, 0x09, 0x09, 0x09, 0x07, 
389   
390   /* character 0x65 ('e'): (width=4) */
391   0x0F, 0x01, 0x07, 0x01, 0x0F, 
392   
393   /* character 0x66 ('f'): (width=4) */
394   0x0F, 0x01, 0x07, 0x01, 0x01, 
395   
396   /* character 0x67 ('g'): (width=4) */
397   0x06, 0x01, 0x0D, 0x09, 0x06, 
398   
399   /* character 0x68 ('h'): (width=4) */
400   0x09, 0x09, 0x0F, 0x09, 0x09, 
401   
402   /* character 0x69 ('i'): (width=3) */
403   0x07, 0x02, 0x02, 0x02, 0x07, 
404   
405   /* character 0x6A ('j'): (width=4) */
406   0x08, 0x08, 0x08, 0x09, 0x06, 
407   
408   /* character 0x6B ('k'): (width=4) */
409   0x09, 0x05, 0x03, 0x05, 0x09, 
410   
411   /* character 0x6C ('l'): (width=4) */
412   0x01, 0x01, 0x01, 0x01, 0x0F, 
413   
414   /* character 0x6D ('m'): (width=5) */
415   0x11, 0x1B, 0x15, 0x11, 0x11, 
416   
417   /* character 0x6E ('n'): (width=5) */
418   0x11, 0x13, 0x15, 0x19, 0x11, 
419   
420   /* character 0x6F ('o'): (width=4) */
421   0x06, 0x09, 0x09, 0x09, 0x06, 
422   
423   /* character 0x70 ('p'): (width=4) */
424   0x07, 0x09, 0x07, 0x01, 0x01, 
425   
426   /* character 0x71 ('q'): (width=5) */
427   0x06, 0x09, 0x09, 0x09, 0x1E, 
428   
429   /* character 0x72 ('r'): (width=4) */
430   0x07, 0x09, 0x07, 0x09, 0x09, 
431   
432   /* character 0x73 ('s'): (width=4) */
433   0x0E, 0x01, 0x06, 0x08, 0x07, 
434   
435   /* character 0x74 ('t'): (width=3) */
436   0x07, 0x02, 0x02, 0x02, 0x02, 
437   
438   /* character 0x75 ('u'): (width=4) */
439   0x09, 0x09, 0x09, 0x09, 0x06, 
440   
441   /* character 0x76 ('v'): (width=5) */
442   0x11, 0x0A, 0x0A, 0x04, 0x04, 
443   
444   /* character 0x77 ('w'): (width=5) */
445   0x15, 0x15, 0x0A, 0x0A, 0x0A, 
446   
447   /* character 0x78 ('x'): (width=4) */
448   0x09, 0x09, 0x06, 0x09, 0x09, 
449   
450   /* character 0x79 ('y'): (width=5) */
451   0x11, 0x0A, 0x04, 0x04, 0x04, 
452   
453   /* character 0x7A ('z'): (width=4) */
454   0x0F, 0x04, 0x02, 0x01, 0x0F, 
455   
456   /* character 0x7B ('{'): (width=3) */
457   0x00, 0x00, 0x00, 0x00, 0x00, 
458   
459   /* character 0x7C ('|'): (width=1) */
460   0x01, 0x01, 0x01, 0x01, 0x01, 
461   
462   /* character 0x7D ('}'): (width=3) */
463   0x00, 0x00, 0x00, 0x00, 0x00, 
464 };
465
466 const unsigned char MetaWatch5width[PRINTABLE_CHARACTERS] = 
467 {
468 /*              width    char    hexcode */
469 /*              =====    ====    ======= */
470         2, /*  '  '    20      */
471                   1, /*   !      21      */
472                   3, /*   "      22      */
473                   5, /*   #      23      */
474                   3, /*   $      24      */
475                   3, /*   %      25      */
476                   5, /*   &      26      */
477                   1, /*   '      27      */
478                   2, /*   (      28      */
479                   2, /*   )      29      */
480                   5, /*   *      2A      */
481                   5, /*   +      2B      */
482                   1, /*   ,      2C      */
483                   3, /*   -      2D      */
484                   1, /*   .      2E      */
485                   5, /*   /      2F      */
486                   4, /*   0      30      */
487                   3, /*   1      31      */
488                   4, /*   2      32      */
489                   4, /*   3      33      */
490                   4, /*   4      34      */
491                   4, /*   5      35      */
492                   4, /*   6      36      */
493                   4, /*   7      37      */
494                   4, /*   8      38      */
495                   4, /*   9      39      */
496                   1, /*   :      3A      */
497                   2, /*   ;      3B      */
498                   3, /*   <      3C      */
499                   4, /*   =      3D      */
500                   3, /*   >      3E      */
501                   3, /*   ?      3F      */
502                   3, /*   @      40      */
503                   5, /*   A      41      */
504                   4, /*   B      42      */
505                   4, /*   C      43      */
506                   4, /*   D      44      */
507                   4, /*   E      45      */
508                   4, /*   F      46      */
509                   4, /*   G      47      */
510                   4, /*   H      48      */
511                   3, /*   I      49      */
512                   4, /*   J      4A      */
513                   4, /*   K      4B      */
514                   4, /*   L      4C      */
515                   5, /*   M      4D      */
516                   5, /*   N      4E      */
517                   4, /*   O      4F      */
518                   4, /*   P      50      */
519                   5, /*   Q      51      */
520                   4, /*   R      52      */
521                   4, /*   S      53      */
522                   3, /*   T      54      */
523                   4, /*   U      55      */
524                   5, /*   V      56      */
525                   5, /*   W      57      */
526                   4, /*   X      58      */
527                   5, /*   Y      59      */
528                   4, /*   Z      5A      */
529                   2, /*   [      5B      */
530                   5, /*   \      5C      */
531                   2, /*   ]      5D      */
532                   5, /*   ^      5E      */
533                   4, /*   _      5F      */
534                   1, /*   `      60      */
535                   5, /*   a      61      */
536                   4, /*   b      62      */
537                   4, /*   c      63      */
538                   4, /*   d      64      */
539                   4, /*   e      65      */
540                   4, /*   f      66      */
541                   4, /*   g      67      */
542                   4, /*   h      68      */
543                   3, /*   i      69      */
544                   4, /*   j      6A      */
545                   4, /*   k      6B      */
546                   4, /*   l      6C      */
547                   5, /*   m      6D      */
548                   5, /*   n      6E      */
549                   4, /*   o      6F      */
550                   4, /*   p      70      */
551                   5, /*   q      71      */
552                   4, /*   r      72      */
553                   4, /*   s      73      */
554                   3, /*   t      74      */
555                   4, /*   u      75      */
556                   5, /*   v      76      */
557                   5, /*   w      77      */
558                   4, /*   x      78      */
559                   5, /*   y      79      */
560                   4, /*   z      7A      */
561                   3, /*   {      7B      */
562                   1, /*   |      7C      */
563                   3, /*   }      7D      */
564 };
565
566 const unsigned char MetaWatch7table[PRINTABLE_CHARACTERS][7] = 
567 {
568
569   /* character 0x20 (' '): (width = 2) */
570   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
571
572   /* character 0x21 ('!'): (width=1) */
573   0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 
574   
575   /* character 0x22 ('"'): (width=3) */
576   0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 
577   
578   /* character 0x23 ('#'): (width=7) */
579   0x00, 0x28, 0x7E, 0x14, 0x3F, 0x0A, 0x00, 
580   
581   /* character 0x24 ('$'): (width=5) */
582   0x04, 0x1E, 0x05, 0x0E, 0x14, 0x0F, 0x04, 
583   
584   /* character 0x25 ('%'): (width=7) */
585   0x42, 0x25, 0x15, 0x2A, 0x54, 0x52, 0x21, 
586   
587   /* character 0x26 ('&'): (width=5) */
588   0x02, 0x05, 0x05, 0x02, 0x15, 0x09, 0x16, 
589   
590   /* character 0x27 ('''): (width=3) */
591   0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 
592   
593   /* character 0x28 ('('): (width=3) */
594   0x04, 0x02, 0x01, 0x01, 0x01, 0x02, 0x04, 
595   
596   /* character 0x29 (')'): (width=3) */
597   0x01, 0x02, 0x04, 0x04, 0x04, 0x02, 0x01, 
598   
599   /* character 0x2A ('*'): (width=7) */
600   0x08, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x08, 
601   
602   /* character 0x2B ('+'): (width=5) */
603   0x00, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x00, 
604   
605   /* character 0x2C (','): (width=1) */
606   0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 
607   
608   /* character 0x2D ('-'): (width=4) */
609   0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 
610   
611   /* character 0x2E ('.'): (width=1) */
612   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 
613   
614   /* character 0x2F ('/'): (width=4) */
615   0x08, 0x08, 0x04, 0x06, 0x02, 0x01, 0x01, 
616   
617   /* character 0x30 ('0'): (width=4) */
618   0x06, 0x09, 0x09, 0x09, 0x09, 0x09, 0x06, 
619   
620   /* character 0x31 ('1'): (width=2) */
621   0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 
622   
623   /* character 0x32 ('2'): (width=4) */
624   0x06, 0x09, 0x08, 0x04, 0x02, 0x01, 0x0F, 
625   
626   /* character 0x33 ('3'): (width=4) */
627   0x06, 0x09, 0x08, 0x06, 0x08, 0x09, 0x06, 
628   
629   /* character 0x34 ('4'): (width=5) */
630   0x04, 0x04, 0x0A, 0x09, 0x1F, 0x08, 0x08, 
631   
632   /* character 0x35 ('5'): (width=4) */
633   0x0F, 0x01, 0x07, 0x08, 0x08, 0x09, 0x06, 
634   
635   /* character 0x36 ('6'): (width=4) */
636   0x06, 0x01, 0x07, 0x09, 0x09, 0x09, 0x06, 
637   
638   /* character 0x37 ('7'): (width=4) */
639   0x0F, 0x08, 0x04, 0x04, 0x02, 0x02, 0x02, 
640   
641   /* character 0x38 ('8'): (width=4) */
642   0x06, 0x09, 0x09, 0x06, 0x09, 0x09, 0x06, 
643   
644   /* character 0x39 ('9'): (width=4) */
645   0x06, 0x09, 0x09, 0x09, 0x0E, 0x08, 0x06, 
646   
647   /* character 0x3A (':'): (width=1) */
648   0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 
649   
650   /* character 0x3B (';'): (width=1) */
651   0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 
652   
653   /* character 0x3C ('<'): (width=3) */
654   0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, 
655   
656   /* character 0x3D ('='): (width=4) */
657   0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00, 
658   
659   /* character 0x3E ('>'): (width=3) */
660   0x00, 0x01, 0x02, 0x04, 0x02, 0x01, 0x00, 
661   
662   /* character 0x3F ('?'): (width=4) */
663   0x07, 0x08, 0x04, 0x02, 0x02, 0x00, 0x02, 
664   
665   /* character 0x40 ('@'): (width=7) */
666   0x3C, 0x42, 0x59, 0x55, 0x39, 0x02, 0x3C, 
667   
668   /* character 0x41 ('A'): (width=7) */
669   0x08, 0x08, 0x14, 0x14, 0x3E, 0x22, 0x41, 
670   
671   /* character 0x42 ('B'): (width=5) */
672   0x0F, 0x11, 0x11, 0x0F, 0x11, 0x11, 0x0F, 
673   
674   /* character 0x43 ('C'): (width=5) */
675   0x0C, 0x12, 0x01, 0x01, 0x01, 0x12, 0x0C, 
676   
677   /* character 0x44 ('D'): (width=5) */
678   0x07, 0x09, 0x11, 0x11, 0x11, 0x09, 0x07, 
679   
680   /* character 0x45 ('E'): (width=4) */
681   0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x0F, 
682   
683   /* character 0x46 ('F'): (width=4) */
684   0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x01, 
685   
686   /* character 0x47 ('G'): (width=6) */
687   0x0C, 0x12, 0x01, 0x39, 0x21, 0x12, 0x0C, 
688   
689   /* character 0x48 ('H'): (width=5) */
690   0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11, 
691   
692   /* character 0x49 ('I'): (width=3) */
693   0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x07, 
694   
695   /* character 0x4A ('J'): (width=5) */
696   0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x0E, 
697   
698   /* character 0x4B ('K'): (width=5) */
699   0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11, 
700   
701   /* character 0x4C ('L'): (width=4) */
702   0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0F, 
703   
704   /* character 0x4D ('M'): (width=7) */
705   0x41, 0x63, 0x63, 0x55, 0x55, 0x49, 0x49, 
706   
707   /* character 0x4E ('N'): (width=6) */
708   0x21, 0x23, 0x25, 0x2D, 0x29, 0x31, 0x21, 
709   
710   /* character 0x4F ('O'): (width=6) */
711   0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x0C, 
712   
713   /* character 0x50 ('P'): (width=4) */
714   0x07, 0x09, 0x09, 0x07, 0x01, 0x01, 0x01, 
715   
716   /* character 0x51 ('Q'): (width=7) */
717   0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x6C, 
718   
719   /* character 0x52 ('R'): (width=5) */
720   0x0F, 0x11, 0x11, 0x0F, 0x09, 0x11, 0x11, 
721   
722   /* character 0x53 ('S'): (width=4) */
723   0x06, 0x09, 0x01, 0x06, 0x08, 0x09, 0x06, 
724   
725   /* character 0x54 ('T'): (width=5) */
726   0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 
727   
728   /* character 0x55 ('U'): (width=5) */
729   0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E, 
730   
731   /* character 0x56 ('V'): (width=7) */
732   0x41, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 
733   
734   /* character 0x57 ('W'): (width=7) */
735   0x49, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22, 
736   
737   /* character 0x58 ('X'): (width=5) */
738   0x11, 0x1B, 0x0A, 0x04, 0x0A, 0x1B, 0x11, 
739   
740   /* character 0x59 ('Y'): (width=7) */
741   0x41, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08, 
742   
743   /* character 0x5A ('Z'): (width=5) */
744   0x1F, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1F, 
745   
746   /* character 0x5B ('['): (width=3) */
747   0x07, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, 
748   
749   /* character 0x5C ('\'): (width=4) */
750   0x01, 0x01, 0x02, 0x06, 0x04, 0x08, 0x08, 
751   
752   /* character 0x5D (']'): (width=3) */
753   0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 
754   
755   /* character 0x5E ('^'): (width=5) */
756   0x04, 0x0A, 0x11, 0x00, 0x00, 0x00, 0x00, 
757   
758   /* character 0x5F ('_'): (width=5) */
759   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 
760   
761   /* character 0x60 ('`'): (width=1) */
762   0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 
763   
764   /* character 0x61 ('a'): (width=7) */
765   0x08, 0x08, 0x14, 0x14, 0x3E, 0x22, 0x41, 
766   
767   /* character 0x62 ('b'): (width=5) */
768   0x0F, 0x11, 0x11, 0x0F, 0x11, 0x11, 0x0F, 
769   
770   /* character 0x63 ('c'): (width=5) */
771   0x0C, 0x12, 0x01, 0x01, 0x01, 0x12, 0x0C, 
772   
773   /* character 0x64 ('d'): (width=5) */
774   0x07, 0x09, 0x11, 0x11, 0x11, 0x09, 0x07, 
775   
776   /* character 0x65 ('e'): (width=4) */
777   0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x0F, 
778   
779   /* character 0x66 ('f'): (width=4) */
780   0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x01, 
781   
782   /* character 0x67 ('g'): (width=6) */
783   0x0C, 0x12, 0x01, 0x39, 0x21, 0x12, 0x0C, 
784   
785   /* character 0x68 ('h'): (width=5) */
786   0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11, 
787   
788   /* character 0x69 ('i'): (width=3) */
789   0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x07, 
790   
791   /* character 0x6A ('j'): (width=5) */
792   0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x0E, 
793   
794   /* character 0x6B ('k'): (width=5) */
795   0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11, 
796   
797   /* character 0x6C ('l'): (width=4) */
798   0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0F, 
799   
800   /* character 0x6D ('m'): (width=7) */
801   0x41, 0x63, 0x63, 0x55, 0x55, 0x49, 0x49, 
802   
803   /* character 0x6E ('n'): (width=6) */
804   0x21, 0x23, 0x25, 0x2D, 0x29, 0x31, 0x21, 
805   
806   /* character 0x6F ('o'): (width=6) */
807   0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x0C, 
808   
809   /* character 0x70 ('p'): (width=4) */
810   0x07, 0x09, 0x09, 0x07, 0x01, 0x01, 0x01, 
811   
812   /* character 0x71 ('q'): (width=7) */
813   0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x6C, 
814   
815   /* character 0x72 ('r'): (width=5) */
816   0x0F, 0x11, 0x11, 0x0F, 0x09, 0x11, 0x11, 
817   
818   /* character 0x73 ('s'): (width=4) */
819   0x06, 0x09, 0x01, 0x06, 0x08, 0x09, 0x06, 
820   
821   /* character 0x74 ('t'): (width=5) */
822   0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 
823   
824   /* character 0x75 ('u'): (width=5) */
825   0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E, 
826   
827   /* character 0x76 ('v'): (width=7) */
828   0x41, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 
829   
830   /* character 0x77 ('w'): (width=7) */
831   0x49, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22, 
832   
833   /* character 0x78 ('x'): (width=5) */
834   0x11, 0x1B, 0x0A, 0x04, 0x0A, 0x1B, 0x11, 
835   
836   /* character 0x79 ('y'): (width=7) */
837   0x41, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08, 
838   
839   /* character 0x7A ('z'): (width=5) */
840   0x1F, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1F, 
841   
842   /* character 0x7B ('{'): (width=3) */
843   0x04, 0x02, 0x01, 0x01, 0x01, 0x02, 0x04, 
844   
845   /* character 0x7C ('|'): (width=1) */
846   0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 
847   
848   /* character 0x7D ('}'): (width=3) */
849   0x01, 0x02, 0x04, 0x04, 0x04, 0x02, 0x01, 
850
851 };
852
853 const unsigned char MetaWatch7width[PRINTABLE_CHARACTERS] = {
854 /*              width    char    hexcode */
855 /*              =====    ====    ======= */
856         2, /*  '  '    20      */
857                   1, /*   !      21      */
858                   3, /*   "      22      */
859                   7, /*   #      23      */
860                   5, /*   $      24      */
861                   7, /*   %      25      */
862                   5, /*   &      26      */
863                   3, /*   '      27      */
864                   3, /*   (      28      */
865                   3, /*   )      29      */
866                   7, /*   *      2A      */
867                   5, /*   +      2B      */
868                   1, /*   ,      2C      */
869                   4, /*   -      2D      */
870                   1, /*   .      2E      */
871                   4, /*   /      2F      */
872                   4, /*   0      30      */
873                   2, /*   1      31      */
874                   4, /*   2      32      */
875                   4, /*   3      33      */
876                   5, /*   4      34      */
877                   4, /*   5      35      */
878                   4, /*   6      36      */
879                   4, /*   7      37      */
880                   4, /*   8      38      */
881                   4, /*   9      39      */
882                   1, /*   :      3A      */
883                   1, /*   ;      3B      */
884                   3, /*   <      3C      */
885                   4, /*   =      3D      */
886                   3, /*   >      3E      */
887                   4, /*   ?      3F      */
888                   7, /*   @      40      */
889                   7, /*   A      41      */
890                   5, /*   B      42      */
891                   5, /*   C      43      */
892                   5, /*   D      44      */
893                   4, /*   E      45      */
894                   4, /*   F      46      */
895                   6, /*   G      47      */
896                   5, /*   H      48      */
897                   3, /*   I      49      */
898                   5, /*   J      4A      */
899                   5, /*   K      4B      */
900                   4, /*   L      4C      */
901                   7, /*   M      4D      */
902                   6, /*   N      4E      */
903                   6, /*   O      4F      */
904                   4, /*   P      50      */
905                   7, /*   Q      51      */
906                   5, /*   R      52      */
907                   4, /*   S      53      */
908                   5, /*   T      54      */
909                   5, /*   U      55      */
910                   7, /*   V      56      */
911                   7, /*   W      57      */
912                   5, /*   X      58      */
913                   7, /*   Y      59      */
914                   5, /*   Z      5A      */
915                   3, /*   [      5B      */
916                   4, /*   \      5C      */
917                   3, /*   ]      5D      */
918                   5, /*   ^      5E      */
919                   5, /*   _      5F      */
920                   1, /*   `      60      */
921                   7, /*   a      61      */
922                   5, /*   b      62      */
923                   5, /*   c      63      */
924                   5, /*   d      64      */
925                   4, /*   e      65      */
926                   4, /*   f      66      */
927                   6, /*   g      67      */
928                   5, /*   h      68      */
929                   3, /*   i      69      */
930                   5, /*   j      6A      */
931                   5, /*   k      6B      */
932                   4, /*   l      6C      */
933                   7, /*   m      6D      */
934                   6, /*   n      6E      */
935                   6, /*   o      6F      */
936                   4, /*   p      70      */
937                   7, /*   q      71      */
938                   5, /*   r      72      */
939                   4, /*   s      73      */
940                   5, /*   t      74      */
941                   5, /*   u      75      */
942                   7, /*   v      76      */
943                   7, /*   w      77      */
944                   5, /*   x      78      */
945                   7, /*   y      79      */
946                   5, /*   z      7A      */
947                   3, /*   {      7B      */
948                   1, /*   |      7C      */
949                   3, /*   }      7D      */
950 };
951
952
953 const unsigned int MetaWatch16table[PRINTABLE_CHARACTERS][16] = 
954 {
955   /* character 0x20 (' '): (width=4) */
956   0x0000, 0x0000, 0x0000, 0x0000, 
957   0x0000, 0x0000, 0x0000, 0x0000, 
958   0x0000, 0x0000, 0x0000, 0x0000, 
959   0x0000, 0x0000, 0x0000, 0x0000, 
960   
961   /* character 0x21 ('!'): (width=2) */
962   0x0000, 0x0000, 0x0003, 0x0003, 
963   0x0003, 0x0003, 0x0003, 0x0003, 
964   0x0003, 0x0003, 0x0000, 0x0003, 
965   0x0003, 0x0000, 0x0000, 0x0000, 
966   
967   /* character 0x22 ('"'): (width=5) */
968   0x0000, 0x0012, 0x001B, 0x001B, 
969   0x0009, 0x0000, 0x0000, 0x0000, 
970   0x0000, 0x0000, 0x0000, 0x0000, 
971   0x0000, 0x0000, 0x0000, 0x0000, 
972   
973   /* character 0x23 ('#'): (width=12) */
974   0x0000, 0x0000, 0x0000, 0x0110, 
975   0x0198, 0x0FFE, 0x07FF, 0x0198, 
976   0x0198, 0x0FFE, 0x07FF, 0x0198, 
977   0x0088, 0x0000, 0x0000, 0x0000, 
978   
979   /* character 0x24 ('$'): (width=6) */
980   0x000C, 0x000C, 0x001E, 0x003F, 
981   0x0033, 0x0003, 0x0007, 0x001E, 
982   0x0038, 0x0030, 0x0033, 0x003F, 
983   0x001E, 0x000C, 0x000C, 0x0000, 
984   
985   /* character 0x25 ('%'): (width=10) */
986   0x0000, 0x020E, 0x031F, 0x039B, 
987   0x01DF, 0x00EE, 0x0070, 0x0038, 
988   0x01DC, 0x03EE, 0x0367, 0x03E3, 
989   0x01C1, 0x0000, 0x0000, 0x0000, 
990   
991   /* character 0x26 ('&'): (width=10) */
992   0x0000, 0x0000, 0x001C, 0x003E, 
993   0x0036, 0x003E, 0x001C, 0x01BE, 
994   0x01F7, 0x00E3, 0x01F7, 0x03BE, 
995   0x031C, 0x0000, 0x0000, 0x0000, 
996   
997   /* character 0x27 ('''): (width=2) */
998   0x0000, 0x0002, 0x0003, 0x0003, 
999   0x0001, 0x0000, 0x0000, 0x0000, 
1000   0x0000, 0x0000, 0x0000, 0x0000, 
1001   0x0000, 0x0000, 0x0000, 0x0000, 
1002   
1003   /* character 0x28 ('('): (width=4) */
1004   0x0008, 0x0004, 0x0006, 0x0006, 
1005   0x0003, 0x0003, 0x0003, 0x0003, 
1006   0x0003, 0x0003, 0x0003, 0x0006, 
1007   0x0006, 0x0004, 0x0008, 0x0000, 
1008   
1009   /* character 0x29 (')'): (width=4) */
1010   0x0001, 0x0002, 0x0006, 0x0006, 
1011   0x000C, 0x000C, 0x000C, 0x000C, 
1012   0x000C, 0x000C, 0x000C, 0x0006, 
1013   0x0006, 0x0002, 0x0001, 0x0000, 
1014   
1015   /* character 0x2A ('*'): (width=8) */
1016   0x0000, 0x0000, 0x0018, 0x0018, 
1017   0x00DB, 0x00FF, 0x003C, 0x00FF, 
1018   0x00DB, 0x0018, 0x0018, 0x0000, 
1019   0x0000, 0x0000, 0x0000, 0x0000, 
1020   
1021   /* character 0x2B ('+'): (width=8) */
1022   0x0000, 0x0000, 0x0000, 0x0000, 
1023   0x0018, 0x0018, 0x0018, 0x00FF, 
1024   0x00FF, 0x0018, 0x0018, 0x0018, 
1025   0x0000, 0x0000, 0x0000, 0x0000, 
1026   
1027   /* character 0x2C (','): (width=2) */
1028   0x0000, 0x0000, 0x0000, 0x0000, 
1029   0x0000, 0x0000, 0x0000, 0x0000, 
1030   0x0000, 0x0000, 0x0000, 0x0002, 
1031   0x0003, 0x0003, 0x0001, 0x0000, 
1032   
1033   /* character 0x2D ('-'): (width=8) */
1034   0x0000, 0x0000, 0x0000, 0x0000, 
1035   0x0000, 0x0000, 0x0000, 0x00FF, 
1036   0x00FF, 0x0000, 0x0000, 0x0000, 
1037   0x0000, 0x0000, 0x0000, 0x0000, 
1038   
1039   /* character 0x2E ('.'): (width=2) */
1040   0x0000, 0x0000, 0x0000, 0x0000, 
1041   0x0000, 0x0000, 0x0000, 0x0000, 
1042   0x0000, 0x0000, 0x0000, 0x0003, 
1043   0x0003, 0x0000, 0x0000, 0x0000, 
1044   
1045   /* character 0x2F ('/'): (width=6) */
1046   0x0000, 0x0000, 0x0000, 0x0030, 
1047   0x0030, 0x0018, 0x0018, 0x000C, 
1048   0x000C, 0x0006, 0x0006, 0x0003, 
1049   0x0003, 0x0000, 0x0000, 0x0000, 
1050   
1051   /* character 0x30 ('0'): (width=7) */
1052   0x0000, 0x0000, 0x001C, 0x003E, 
1053   0x0036, 0x0063, 0x0063, 0x0063, 
1054   0x0063, 0x0063, 0x0036, 0x003E, 
1055   0x001C, 0x0000, 0x0000, 0x0000, 
1056   
1057   /* character 0x31 ('1'): (width=3) */
1058   0x0000, 0x0000, 0x0006, 0x0007, 
1059   0x0007, 0x0006, 0x0006, 0x0006, 
1060   0x0006, 0x0006, 0x0006, 0x0006, 
1061   0x0006, 0x0000, 0x0000, 0x0000, 
1062   
1063   /* character 0x32 ('2'): (width=6) */
1064   0x0000, 0x0000, 0x001E, 0x003F, 
1065   0x0033, 0x0030, 0x0038, 0x001C, 
1066   0x000E, 0x0007, 0x0003, 0x003F, 
1067   0x003F, 0x0000, 0x0000, 0x0000, 
1068   
1069   /* character 0x33 ('3'): (width=6) */
1070   0x0000, 0x0000, 0x001E, 0x003F, 
1071   0x0033, 0x0030, 0x001C, 0x003C, 
1072   0x0030, 0x0030, 0x0033, 0x003F, 
1073   0x001E, 0x0000, 0x0000, 0x0000, 
1074   
1075   /* character 0x34 ('4'): (width=7) */
1076   0x0000, 0x0000, 0x000C, 0x000C, 
1077   0x000C, 0x0036, 0x0036, 0x0033, 
1078   0x007F, 0x007F, 0x0030, 0x0030, 
1079   0x0030, 0x0000, 0x0000, 0x0000, 
1080   
1081   /* character 0x35 ('5'): (width=6) */
1082   0x0000, 0x0000, 0x003F, 0x003F, 
1083   0x0003, 0x0003, 0x001F, 0x003F, 
1084   0x0030, 0x0030, 0x0033, 0x003F, 
1085   0x001E, 0x0000, 0x0000, 0x0000, 
1086   
1087   /* character 0x36 ('6'): (width=6) */
1088   0x0000, 0x0000, 0x000C, 0x000E, 
1089   0x0006, 0x0003, 0x001F, 0x003F, 
1090   0x0033, 0x0033, 0x0033, 0x001F, 
1091   0x001E, 0x0000, 0x0000, 0x0000, 
1092   
1093   /* character 0x37 ('7'): (width=6) */
1094   0x0000, 0x0000, 0x003F, 0x003F, 
1095   0x0030, 0x0030, 0x0018, 0x0018, 
1096   0x000C, 0x000C, 0x000C, 0x000C, 
1097   0x000C, 0x0000, 0x0000, 0x0000, 
1098   
1099   /* character 0x38 ('8'): (width=6) */
1100   0x0000, 0x0000, 0x001E, 0x003F, 
1101   0x0033, 0x0033, 0x003F, 0x001E, 
1102   0x0033, 0x0033, 0x0033, 0x003F, 
1103   0x001E, 0x0000, 0x0000, 0x0000, 
1104   
1105   /* character 0x39 ('9'): (width=6) */
1106   0x0000, 0x0000, 0x001E, 0x003F, 
1107   0x0033, 0x0033, 0x0033, 0x003F, 
1108   0x003E, 0x0030, 0x0018, 0x001C, 
1109   0x000C, 0x0000, 0x0000, 0x0000, 
1110   
1111   /* character 0x3A (':'): (width=2) */
1112   0x0000, 0x0000, 0x0000, 0x0000, 
1113   0x0000, 0x0003, 0x0003, 0x0000, 
1114   0x0000, 0x0003, 0x0003, 0x0000, 
1115   0x0000, 0x0000, 0x0000, 0x0000, 
1116   
1117   /* character 0x3B (';'): (width=2) */
1118   0x0000, 0x0000, 0x0000, 0x0000, 
1119   0x0000, 0x0003, 0x0003, 0x0000, 
1120   0x0002, 0x0003, 0x0003, 0x0001, 
1121   0x0000, 0x0000, 0x0000, 0x0000, 
1122   
1123   /* character 0x3C ('<'): (width=8) */
1124   0x0000, 0x0000, 0x0000, 0x0000, 
1125   0x00C0, 0x00F0, 0x003C, 0x000F, 
1126   0x003C, 0x00F0, 0x00C0, 0x0000, 
1127   0x0000, 0x0000, 0x0000, 0x0000, 
1128   
1129   /* character 0x3D ('='): (width=7) */
1130   0x0000, 0x0000, 0x0000, 0x0000, 
1131   0x0000, 0x0000, 0x007F, 0x007F, 
1132   0x0000, 0x007F, 0x007F, 0x0000, 
1133   0x0000, 0x0000, 0x0000, 0x0000, 
1134   
1135   /* character 0x3E ('>'): (width=8) */
1136   0x0000, 0x0000, 0x0000, 0x0000, 
1137   0x0003, 0x000F, 0x003C, 0x00F0, 
1138   0x003C, 0x000F, 0x0003, 0x0000, 
1139   0x0000, 0x0000, 0x0000, 0x0000, 
1140   
1141   /* character 0x3F ('?'): (width=6) */
1142   0x0000, 0x0000, 0x001E, 0x003F, 
1143   0x0033, 0x0030, 0x0018, 0x001C, 
1144   0x000C, 0x000C, 0x0000, 0x000C, 
1145   0x000C, 0x0000, 0x0000, 0x0000, 
1146   
1147   /* character 0x40 ('@'): (width=11) */
1148   0x0000, 0x0000, 0x01F8, 0x03FE, 
1149   0x0706, 0x06F3, 0x06FB, 0x06DB, 
1150   0x07FB, 0x03F3, 0x0006, 0x01FE, 
1151   0x00F8, 0x0000, 0x0000, 0x0000, 
1152   
1153   /* character 0x41 ('A'): (width=9) */
1154   0x0000, 0x0000, 0x0010, 0x0010, 
1155   0x0038, 0x0038, 0x006C, 0x006C, 
1156   0x00C6, 0x00C6, 0x01FF, 0x0183, 
1157   0x0183, 0x0000, 0x0000, 0x0000, 
1158   
1159   /* character 0x42 ('B'): (width=7) */
1160   0x0000, 0x0000, 0x003F, 0x007F, 
1161   0x0063, 0x0063, 0x003F, 0x007F, 
1162   0x0063, 0x0063, 0x0063, 0x007F, 
1163   0x003F, 0x0000, 0x0000, 0x0000, 
1164   
1165   /* character 0x43 ('C'): (width=7) */
1166   0x0000, 0x0000, 0x003E, 0x007F, 
1167   0x0063, 0x0003, 0x0003, 0x0003, 
1168   0x0003, 0x0003, 0x0063, 0x007F, 
1169   0x003E, 0x0000, 0x0000, 0x0000, 
1170   
1171   /* character 0x44 ('D'): (width=7) */
1172   0x0000, 0x0000, 0x003F, 0x007F, 
1173   0x0063, 0x0063, 0x0063, 0x0063, 
1174   0x0063, 0x0063, 0x0063, 0x007F, 
1175   0x003F, 0x0000, 0x0000, 0x0000, 
1176   
1177   /* character 0x45 ('E'): (width=7) */
1178   0x0000, 0x0000, 0x007F, 0x007F, 
1179   0x0003, 0x0003, 0x001F, 0x001F, 
1180   0x0003, 0x0003, 0x0003, 0x007F, 
1181   0x007F, 0x0000, 0x0000, 0x0000, 
1182   
1183   /* character 0x46 ('F'): (width=6) */
1184   0x0000, 0x0000, 0x003F, 0x003F, 
1185   0x0003, 0x0003, 0x003F, 0x003F, 
1186   0x0003, 0x0003, 0x0003, 0x0003, 
1187   0x0003, 0x0000, 0x0000, 0x0000, 
1188   
1189   /* character 0x47 ('G'): (width=7) */
1190   0x0000, 0x0000, 0x003E, 0x007F, 
1191   0x0063, 0x0003, 0x0003, 0x007B, 
1192   0x007B, 0x0063, 0x0063, 0x007F, 
1193   0x003E, 0x0000, 0x0000, 0x0000, 
1194   
1195   /* character 0x48 ('H'): (width=7) */
1196   0x0000, 0x0000, 0x0063, 0x0063, 
1197   0x0063, 0x0063, 0x007F, 0x007F, 
1198   0x0063, 0x0063, 0x0063, 0x0063, 
1199   0x0063, 0x0000, 0x0000, 0x0000, 
1200   
1201   /* character 0x49 ('I'): (width=4) */
1202   0x0000, 0x0000, 0x000F, 0x000F, 
1203   0x0006, 0x0006, 0x0006, 0x0006, 
1204   0x0006, 0x0006, 0x0006, 0x000F, 
1205   0x000F, 0x0000, 0x0000, 0x0000, 
1206   
1207   /* character 0x4A ('J'): (width=6) */
1208   0x0000, 0x0000, 0x0030, 0x0030, 
1209   0x0030, 0x0030, 0x0030, 0x0030, 
1210   0x0030, 0x0030, 0x0033, 0x003F, 
1211   0x001E, 0x0000, 0x0000, 0x0000, 
1212   
1213   /* character 0x4B ('K'): (width=7) */
1214   0x0000, 0x0000, 0x0063, 0x0073, 
1215   0x003B, 0x001F, 0x000F, 0x0007, 
1216   0x000F, 0x001F, 0x003B, 0x0073, 
1217   0x0063, 0x0000, 0x0000, 0x0000, 
1218   
1219   /* character 0x4C ('L'): (width=6) */
1220   0x0000, 0x0000, 0x0003, 0x0003, 
1221   0x0003, 0x0003, 0x0003, 0x0003, 
1222   0x0003, 0x0003, 0x0003, 0x003F, 
1223   0x003F, 0x0000, 0x0000, 0x0000, 
1224   
1225   /* character 0x4D ('M'): (width=11) */
1226   0x0000, 0x0000, 0x0401, 0x0603, 
1227   0x0707, 0x078F, 0x07DF, 0x06FB, 
1228   0x0673, 0x0623, 0x0603, 0x0603, 
1229   0x0603, 0x0000, 0x0000, 0x0000, 
1230   
1231   /* character 0x4E ('N'): (width=9) */
1232   0x0000, 0x0000, 0x0181, 0x0183, 
1233   0x0187, 0x018F, 0x019F, 0x01BB, 
1234   0x01F3, 0x01E3, 0x01C3, 0x0183, 
1235   0x0103, 0x0000, 0x0000, 0x0000, 
1236   
1237   /* character 0x4F ('O'): (width=7) */
1238   0x0000, 0x0000, 0x003E, 0x007F, 
1239   0x0063, 0x0063, 0x0063, 0x0063, 
1240   0x0063, 0x0063, 0x0063, 0x007F, 
1241   0x003E, 0x0000, 0x0000, 0x0000, 
1242   
1243   /* character 0x50 ('P'): (width=7) */
1244   0x0000, 0x0000, 0x003F, 0x007F, 
1245   0x0063, 0x0063, 0x0063, 0x007F, 
1246   0x003F, 0x0003, 0x0003, 0x0003, 
1247   0x0003, 0x0000, 0x0000, 0x0000, 
1248   
1249   /* character 0x51 ('Q'): (width=8) */
1250   0x0000, 0x0000, 0x003E, 0x007F, 
1251   0x0063, 0x0063, 0x0063, 0x0063, 
1252   0x0063, 0x0063, 0x0063, 0x007F, 
1253   0x003E, 0x00F0, 0x0060, 0x0000, 
1254   
1255   /* character 0x52 ('R'): (width=7) */
1256   0x0000, 0x0000, 0x003F, 0x007F, 
1257   0x0063, 0x0063, 0x0063, 0x003F, 
1258   0x007F, 0x0063, 0x0063, 0x0063, 
1259   0x0063, 0x0000, 0x0000, 0x0000, 
1260   
1261   /* character 0x53 ('S'): (width=6) */
1262   0x0000, 0x0000, 0x001E, 0x003F, 
1263   0x0033, 0x0003, 0x0007, 0x001E, 
1264   0x0038, 0x0030, 0x0033, 0x003F, 
1265   0x001E, 0x0000, 0x0000, 0x0000, 
1266   
1267   /* character 0x54 ('T'): (width=6) */
1268   0x0000, 0x0000, 0x003F, 0x003F, 
1269   0x000C, 0x000C, 0x000C, 0x000C, 
1270   0x000C, 0x000C, 0x000C, 0x000C, 
1271   0x000C, 0x0000, 0x0000, 0x0000, 
1272   
1273   /* character 0x55 ('U'): (width=7) */
1274   0x0000, 0x0000, 0x0063, 0x0063, 
1275   0x0063, 0x0063, 0x0063, 0x0063, 
1276   0x0063, 0x0063, 0x0063, 0x007F, 
1277   0x003E, 0x0000, 0x0000, 0x0000, 
1278   
1279   /* character 0x56 ('V'): (width=7) */
1280   0x0000, 0x0000, 0x0063, 0x0063, 
1281   0x0063, 0x0036, 0x0036, 0x0036, 
1282   0x001C, 0x001C, 0x001C, 0x0008, 
1283   0x0008, 0x0000, 0x0000, 0x0000, 
1284   
1285   /* character 0x57 ('W'): (width=11) */
1286   0x0000, 0x0000, 0x0603, 0x0623, 
1287   0x0623, 0x0376, 0x0376, 0x0376, 
1288   0x01DC, 0x01DC, 0x01DC, 0x0088, 
1289   0x0088, 0x0000, 0x0000, 0x0000, 
1290   
1291   /* character 0x58 ('X'): (width=7) */
1292   0x0000, 0x0000, 0x0063, 0x0063, 
1293   0x0036, 0x0036, 0x001C, 0x001C, 
1294   0x001C, 0x0036, 0x0036, 0x0063, 
1295   0x0063, 0x0000, 0x0000, 0x0000, 
1296   
1297   /* character 0x59 ('Y'): (width=8) */
1298   0x0000, 0x0000, 0x00C3, 0x00C3, 
1299   0x0066, 0x0066, 0x003C, 0x003C, 
1300   0x0018, 0x0018, 0x0018, 0x0018, 
1301   0x0018, 0x0000, 0x0000, 0x0000, 
1302   
1303   /* character 0x5A ('Z'): (width=7) */
1304   0x0000, 0x0000, 0x007F, 0x007F, 
1305   0x0030, 0x0030, 0x0018, 0x0018, 
1306   0x000C, 0x000E, 0x0006, 0x007F, 
1307   0x007F, 0x0000, 0x0000, 0x0000, 
1308   
1309   /* character 0x5B ('['): (width=4) */
1310   0x000F, 0x000F, 0x0003, 0x0003, 
1311   0x0003, 0x0003, 0x0003, 0x0003, 
1312   0x0003, 0x0003, 0x0003, 0x0003, 
1313   0x0003, 0x000F, 0x000F, 0x0000, 
1314   
1315   /* character 0x5C ('\'): (width=6) */
1316   0x0000, 0x0000, 0x0000, 0x0003, 
1317   0x0003, 0x0006, 0x0006, 0x000C, 
1318   0x000C, 0x0018, 0x0018, 0x0030, 
1319   0x0030, 0x0000, 0x0000, 0x0000, 
1320   
1321   /* character 0x5D (']'): (width=4) */
1322   0x000F, 0x000F, 0x000C, 0x000C, 
1323   0x000C, 0x000C, 0x000C, 0x000C, 
1324   0x000C, 0x000C, 0x000C, 0x000C, 
1325   0x000C, 0x000F, 0x000F, 0x0000, 
1326   
1327   /* character 0x5E ('^'): (width=7) */
1328   0x0000, 0x0000, 0x0000, 0x0008, 
1329   0x0008, 0x001C, 0x001C, 0x0036, 
1330   0x0036, 0x0063, 0x0063, 0x0000, 
1331   0x0000, 0x0000, 0x0000, 0x0000, 
1332   
1333   /* character 0x5F ('_'): (width=9) */
1334   0x0000, 0x0000, 0x0000, 0x0000, 
1335   0x0000, 0x0000, 0x0000, 0x0000, 
1336   0x0000, 0x0000, 0x0000, 0x0000, 
1337   0x01FF, 0x0000, 0x0000, 0x0000, 
1338   
1339   /* character 0x60 ('`'): (width=3) */
1340   0x0000, 0x0000, 0x0000, 0x0001, 
1341   0x0003, 0x0006, 0x0004, 0x0000, 
1342   0x0000, 0x0000, 0x0000, 0x0000, 
1343   0x0000, 0x0000, 0x0000, 0x0000, 
1344   
1345   /* character 0x61 ('a'): (width=6) */
1346   0x0000, 0x0000, 0x0000, 0x0000, 
1347   0x0000, 0x001E, 0x003F, 0x0030, 
1348   0x003E, 0x003F, 0x0033, 0x003F, 
1349   0x003E, 0x0000, 0x0000, 0x0000, 
1350   
1351   /* character 0x62 ('b'): (width=6) */
1352   0x0000, 0x0000, 0x0003, 0x0003, 
1353   0x0003, 0x001F, 0x003F, 0x0033, 
1354   0x0033, 0x0033, 0x0033, 0x003F, 
1355   0x001F, 0x0000, 0x0000, 0x0000, 
1356   
1357   /* character 0x63 ('c'): (width=6) */
1358   0x0000, 0x0000, 0x0000, 0x0000, 
1359   0x0000, 0x001E, 0x003F, 0x0033, 
1360   0x0003, 0x0003, 0x0033, 0x003F, 
1361   0x001E, 0x0000, 0x0000, 0x0000, 
1362   
1363   /* character 0x64 ('d'): (width=6) */
1364   0x0000, 0x0000, 0x0030, 0x0030, 
1365   0x0030, 0x003E, 0x003F, 0x0033, 
1366   0x0033, 0x0033, 0x0033, 0x003F, 
1367   0x003E, 0x0000, 0x0000, 0x0000, 
1368   
1369   /* character 0x65 ('e'): (width=6) */
1370   0x0000, 0x0000, 0x0000, 0x0000, 
1371   0x0000, 0x001E, 0x003F, 0x0033, 
1372   0x003F, 0x003F, 0x0003, 0x003F, 
1373   0x001E, 0x0000, 0x0000, 0x0000, 
1374   
1375   /* character 0x66 ('f'): (width=4) */
1376   0x0000, 0x0000, 0x000C, 0x000E, 
1377   0x0006, 0x000F, 0x000F, 0x0006, 
1378   0x0006, 0x0006, 0x0006, 0x0006, 
1379   0x0006, 0x0000, 0x0000, 0x0000, 
1380   
1381   /* character 0x67 ('g'): (width=6) */
1382   0x0000, 0x0000, 0x0000, 0x0000, 
1383   0x0000, 0x003E, 0x003F, 0x0033, 
1384   0x0033, 0x0033, 0x0033, 0x003F, 
1385   0x003E, 0x0030, 0x003E, 0x001C, 
1386   
1387   /* character 0x68 ('h'): (width=6) */
1388   0x0000, 0x0000, 0x0003, 0x0003, 
1389   0x0003, 0x001F, 0x003F, 0x0033, 
1390   0x0033, 0x0033, 0x0033, 0x0033, 
1391   0x0033, 0x0000, 0x0000, 0x0000, 
1392   
1393   /* character 0x69 ('i'): (width=2) */
1394   0x0000, 0x0000, 0x0003, 0x0003, 
1395   0x0000, 0x0003, 0x0003, 0x0003, 
1396   0x0003, 0x0003, 0x0003, 0x0003, 
1397   0x0003, 0x0000, 0x0000, 0x0000, 
1398   
1399   /* character 0x6A ('j'): (width=5) */
1400   0x0000, 0x0000, 0x0018, 0x0018, 
1401   0x0000, 0x0018, 0x0018, 0x0018, 
1402   0x0018, 0x0018, 0x0018, 0x0018, 
1403   0x0018, 0x0018, 0x001F, 0x000E, 
1404   
1405   /* character 0x6B ('k'): (width=6) */
1406   0x0000, 0x0000, 0x0003, 0x0003, 
1407   0x0003, 0x0033, 0x003B, 0x001F, 
1408   0x000F, 0x000F, 0x001F, 0x003B, 
1409   0x0033, 0x0000, 0x0000, 0x0000, 
1410   
1411   /* character 0x6C ('l'): (width=2) */
1412   0x0000, 0x0000, 0x0003, 0x0003, 
1413   0x0003, 0x0003, 0x0003, 0x0003, 
1414   0x0003, 0x0003, 0x0003, 0x0003, 
1415   0x0003, 0x0000, 0x0000, 0x0000, 
1416   
1417   /* character 0x6D ('m'): (width=10) */
1418   0x0000, 0x0000, 0x0000, 0x0000, 
1419   0x0000, 0x01DB, 0x03FF, 0x0377, 
1420   0x0333, 0x0333, 0x0333, 0x0333, 
1421   0x0333, 0x0000, 0x0000, 0x0000, 
1422   
1423   /* character 0x6E ('n'): (width=6) */
1424   0x0000, 0x0000, 0x0000, 0x0000, 
1425   0x0000, 0x001B, 0x003F, 0x0037, 
1426   0x0033, 0x0033, 0x0033, 0x0033, 
1427   0x0033, 0x0000, 0x0000, 0x0000, 
1428   
1429   /* character 0x6F ('o'): (width=6) */
1430   0x0000, 0x0000, 0x0000, 0x0000, 
1431   0x0000, 0x001E, 0x003F, 0x0033, 
1432   0x0033, 0x0033, 0x0033, 0x003F, 
1433   0x001E, 0x0000, 0x0000, 0x0000, 
1434   
1435   /* character 0x70 ('p'): (width=6) */
1436   0x0000, 0x0000, 0x0000, 0x0000, 
1437   0x0000, 0x001F, 0x003F, 0x0033, 
1438   0x0033, 0x0033, 0x0033, 0x001F, 
1439   0x001F, 0x0003, 0x0003, 0x0003, 
1440   
1441   /* character 0x71 ('q'): (width=6) */
1442   0x0000, 0x0000, 0x0000, 0x0000, 
1443   0x0000, 0x003E, 0x003F, 0x0033, 
1444   0x0033, 0x0033, 0x0033, 0x003E, 
1445   0x003E, 0x0030, 0x0030, 0x0030, 
1446   
1447   /* character 0x72 ('r'): (width=5) */
1448   0x0000, 0x0000, 0x0000, 0x0000, 
1449   0x0000, 0x001B, 0x001F, 0x0007, 
1450   0x0003, 0x0003, 0x0003, 0x0003, 
1451   0x0003, 0x0000, 0x0000, 0x0000, 
1452   
1453   /* character 0x73 ('s'): (width=5) */
1454   0x0000, 0x0000, 0x0000, 0x0000, 
1455   0x0000, 0x000E, 0x001F, 0x0003, 
1456   0x000F, 0x001E, 0x0018, 0x001F, 
1457   0x000E, 0x0000, 0x0000, 0x0000, 
1458   
1459   /* character 0x74 ('t'): (width=4) */
1460   0x0000, 0x0000, 0x0004, 0x0006, 
1461   0x0006, 0x000F, 0x000F, 0x0006, 
1462   0x0006, 0x0006, 0x0006, 0x000E, 
1463   0x000C, 0x0000, 0x0000, 0x0000, 
1464   
1465   /* character 0x75 ('u'): (width=6) */
1466   0x0000, 0x0000, 0x0000, 0x0000, 
1467   0x0000, 0x0033, 0x0033, 0x0033, 
1468   0x0033, 0x0033, 0x0033, 0x003F, 
1469   0x003E, 0x0000, 0x0000, 0x0000, 
1470   
1471   /* character 0x76 ('v'): (width=7) */
1472   0x0000, 0x0000, 0x0000, 0x0000, 
1473   0x0000, 0x0063, 0x0063, 0x0036, 
1474   0x0036, 0x001C, 0x001C, 0x0008, 
1475   0x0008, 0x0000, 0x0000, 0x0000, 
1476   
1477   /* character 0x77 ('w'): (width=11) */
1478   0x0000, 0x0000, 0x0000, 0x0000, 
1479   0x0000, 0x0623, 0x0623, 0x0376, 
1480   0x0376, 0x01DC, 0x01DC, 0x0088, 
1481   0x0088, 0x0000, 0x0000, 0x0000, 
1482   
1483   /* character 0x78 ('x'): (width=7) */
1484   0x0000, 0x0000, 0x0000, 0x0000, 
1485   0x0000, 0x0063, 0x0077, 0x003E, 
1486   0x001C, 0x001C, 0x003E, 0x0077, 
1487   0x0063, 0x0000, 0x0000, 0x0000, 
1488   
1489   /* character 0x79 ('y'): (width=6) */
1490   0x0000, 0x0000, 0x0000, 0x0000, 
1491   0x0000, 0x0033, 0x0033, 0x0033, 
1492   0x0033, 0x0033, 0x0033, 0x003F, 
1493   0x003E, 0x0030, 0x003E, 0x001C, 
1494   
1495   /* character 0x7A ('z'): (width=6) */
1496   0x0000, 0x0000, 0x0000, 0x0000, 
1497   0x0000, 0x003F, 0x003F, 0x0030, 
1498   0x0018, 0x000C, 0x0006, 0x003F, 
1499   0x003F, 0x0000, 0x0000, 0x0000, 
1500   
1501   /* character 0x7B ('{'): (width=4) */
1502   0x0008, 0x0004, 0x0006, 0x0006, 
1503   0x0003, 0x0003, 0x0003, 0x0003, 
1504   0x0003, 0x0003, 0x0003, 0x0006, 
1505   0x0006, 0x0004, 0x0008, 0x0000, 
1506   
1507   /* character 0x7C ('|'): (width=2) */
1508   0x0000, 0x0003, 0x0003, 0x0003, 
1509   0x0003, 0x0003, 0x0000, 0x0000, 
1510   0x0003, 0x0003, 0x0003, 0x0003, 
1511   0x0003, 0x0000, 0x0000, 0x0000, 
1512   
1513   /* character 0x7D ('}'): (width=4) */
1514   0x0001, 0x0002, 0x0006, 0x0006, 
1515   0x000C, 0x000C, 0x000C, 0x000C, 
1516   0x000C, 0x000C, 0x000C, 0x0006, 
1517   0x0006, 0x0002, 0x0001, 0x0000, 
1518
1519 };
1520
1521 const unsigned char MetaWatch16width[PRINTABLE_CHARACTERS] = 
1522 {
1523 /*              width    char    hexcode */
1524 /*              =====    ====    ======= */
1525         4, /*  '  '    20      */
1526                   2, /*   !      21      */
1527                   5, /*   "      22      */
1528                  12, /*   #      23      */
1529                   6, /*   $      24      */
1530                  10, /*   %      25      */
1531                  10, /*   &      26      */
1532                   2, /*   '      27      */
1533                   4, /*   (      28      */
1534                   4, /*   )      29      */
1535                   8, /*   *      2A      */
1536                   8, /*   +      2B      */
1537                   2, /*   ,      2C      */
1538                   8, /*   -      2D      */
1539                   2, /*   .      2E      */
1540                   6, /*   /      2F      */
1541                   7, /*   0      30      */
1542                   3, /*   1      31      */
1543                   6, /*   2      32      */
1544                   6, /*   3      33      */
1545                   7, /*   4      34      */
1546                   6, /*   5      35      */
1547                   6, /*   6      36      */
1548                   6, /*   7      37      */
1549                   6, /*   8      38      */
1550                   6, /*   9      39      */
1551                   2, /*   :      3A      */
1552                   2, /*   ;      3B      */
1553                   8, /*   <      3C      */
1554                   7, /*   =      3D      */
1555                   8, /*   >      3E      */
1556                   6, /*   ?      3F      */
1557                  11, /*   @      40      */
1558                   9, /*   A      41      */
1559                   7, /*   B      42      */
1560                   7, /*   C      43      */
1561                   7, /*   D      44      */
1562                   7, /*   E      45      */
1563                   6, /*   F      46      */
1564                   7, /*   G      47      */
1565                   7, /*   H      48      */
1566                   4, /*   I      49      */
1567                   6, /*   J      4A      */
1568                   7, /*   K      4B      */
1569                   6, /*   L      4C      */
1570                  11, /*   M      4D      */
1571                   9, /*   N      4E      */
1572                   7, /*   O      4F      */
1573                   7, /*   P      50      */
1574                   8, /*   Q      51      */
1575                   7, /*   R      52      */
1576                   6, /*   S      53      */
1577                   6, /*   T      54      */
1578                   7, /*   U      55      */
1579                   7, /*   V      56      */
1580                  11, /*   W      57      */
1581                   7, /*   X      58      */
1582                   8, /*   Y      59      */
1583                   7, /*   Z      5A      */
1584                   4, /*   [      5B      */
1585                   6, /*   \      5C      */
1586                   4, /*   ]      5D      */
1587                   7, /*   ^      5E      */
1588                   9, /*   _      5F      */
1589                   3, /*   `      60      */
1590                   6, /*   a      61      */
1591                   6, /*   b      62      */
1592                   6, /*   c      63      */
1593                   6, /*   d      64      */
1594                   6, /*   e      65      */
1595                   4, /*   f      66      */
1596                   6, /*   g      67      */
1597                   6, /*   h      68      */
1598                   2, /*   i      69      */
1599                   5, /*   j      6A      */
1600                   6, /*   k      6B      */
1601                   2, /*   l      6C      */
1602                  10, /*   m      6D      */
1603                   6, /*   n      6E      */
1604                   6, /*   o      6F      */
1605                   6, /*   p      70      */
1606                   6, /*   q      71      */
1607                   5, /*   r      72      */
1608                   5, /*   s      73      */
1609                   4, /*   t      74      */
1610                   6, /*   u      75      */
1611                   7, /*   v      76      */
1612                  11, /*   w      77      */
1613                   7, /*   x      78      */
1614                   6, /*   y      79      */
1615                   6, /*   z      7A      */
1616                   4, /*   {      7B      */
1617                   2, /*   |      7C      */
1618                   4, /*   }      7D      */
1619 };
1620
1621 /******************************************************************************/
1622 const unsigned int MetaWatchTimeTable[TOTAL_TIME_CHARACTERS][19] = 
1623 {
1624   /* character 0x30 ('0'): (width=11, offset=0) */
1625   0x01FC, 0x03FE, 0x07FF, 0x07FF, 
1626   0x078F, 0x078F, 0x078F, 0x078F, 
1627   0x078F, 0x078F, 0x078F, 0x078F, 
1628   0x078F, 0x078F, 0x078F, 0x07FF, 
1629   0x07FF, 0x03FE, 0x01FC, 
1630   
1631   /* character 0x31 ('1'): (width=11, offset=38) */
1632   0x01C0, 0x01E0, 0x01F8, 0x01F8, 
1633   0x01F8, 0x01F8, 0x01E0, 0x01E0, 
1634   0x01E0, 0x01E0, 0x01E0, 0x01E0, 
1635   0x01E0, 0x01E0, 0x01E0, 0x01E0, 
1636   0x01E0, 0x01E0, 0x01E0, 
1637   
1638   /* character 0x32 ('2'): (width=11, offset=76) */
1639   0x01FC, 0x03FE, 0x07FF, 0x07FF, 
1640   0x078F, 0x078F, 0x0780, 0x07C0, 
1641   0x07E0, 0x03F0, 0x01F8, 0x00FC, 
1642   0x007E, 0x003F, 0x001F, 0x07FF, 
1643   0x07FF, 0x07FF, 0x07FF, 
1644   
1645   /* character 0x33 ('3'): (width=11, offset=114) */
1646   0x01FC, 0x03FE, 0x07FF, 0x07FF, 
1647   0x078F, 0x078F, 0x0780, 0x07C0, 
1648   0x03F0, 0x01F0, 0x03F0, 0x07C0, 
1649   0x0780, 0x078F, 0x078F, 0x07FF, 
1650   0x07FF, 0x03FE, 0x01FC, 
1651   
1652   /* character 0x34 ('4'): (width=11, offset=152) */
1653   0x003C, 0x07BC, 0x07BC, 0x079E, 
1654   0x079E, 0x078F, 0x078F, 0x07FF, 
1655   0x07FF, 0x07FF, 0x07FF, 0x0780, 
1656   0x0780, 0x0780, 0x0780, 0x0780, 
1657   0x0780, 0x0780, 0x0780, 
1658   
1659   /* character 0x35 ('5'): (width=11, offset=190) */
1660   0x07FF, 0x07FF, 0x07FF, 0x07FF, 
1661   0x000F, 0x000F, 0x000F, 0x03FF, 
1662   0x07FF, 0x07FF, 0x07FF, 0x0780, 
1663   0x0780, 0x0780, 0x07C0, 0x07FF, 
1664   0x03FF, 0x03FF, 0x00FF, 
1665   
1666   /* character 0x36 ('6'): (width=11, offset=228) */
1667   0x01F0, 0x01FC, 0x01FE, 0x01FE, 
1668   0x001F, 0x000F, 0x000F, 0x01FF, 
1669   0x03FF, 0x07FF, 0x07FF, 0x078F, 
1670   0x078F, 0x078F, 0x078F, 0x07FF, 
1671   0x07FF, 0x03FE, 0x01FC, 
1672   
1673   /* character 0x37 ('7'): (width=11, offset=266) */
1674   0x07FF, 0x07FF, 0x07FF, 0x07FF, 
1675   0x0780, 0x07C0, 0x03C0, 0x03E0, 
1676   0x01E0, 0x01F0, 0x00F0, 0x00F8, 
1677   0x0078, 0x0078, 0x0078, 0x0078, 
1678   0x0078, 0x0078, 0x0078, 
1679   
1680   /* character 0x38 ('8'): (width=11, offset=304) */
1681   0x01FC, 0x03FE, 0x07FF, 0x07FF, 
1682   0x078F, 0x078F, 0x078F, 0x07FF, 
1683   0x07FF, 0x03FE, 0x07FF, 0x078F, 
1684   0x078F, 0x078F, 0x078F, 0x07FF, 
1685   0x07FF, 0x03FE, 0x01FC, 
1686   
1687   /* character 0x39 ('9'): (width=11, offset=342) */
1688   0x01FC, 0x03FE, 0x07FF, 0x07FF, 
1689   0x078F, 0x078F, 0x078F, 0x078F, 
1690   0x07FF, 0x07FF, 0x07FE, 0x07FC, 
1691   0x0780, 0x0780, 0x07C0, 0x03FC, 
1692   0x03FC, 0x01FC, 0x007C, 
1693   
1694   /* character 0x3A (':'): (width=4, offset=380) */
1695   0x0000, 0x0000, 0x0000, 0x0000, 
1696   0x0006, 0x000F, 0x000F, 0x0006, 
1697   0x0000, 0x0000, 0x0000, 0x0006, 
1698   0x000F, 0x000F, 0x0006, 0x0000, 
1699   0x0000, 0x0000, 0x0000, 
1700   
1701   /* character 0x3B (';'): (width=11, offset=418) */
1702   0x0000, 0x0000, 0x0000, 0x0000, 
1703   0x0000, 0x0000, 0x0000, 0x0000, 
1704   0x0000, 0x0000, 0x0000, 0x0000, 
1705   0x0000, 0x0000, 0x0000, 0x0000, 
1706   0x0000, 0x0000, 0x0000, 
1707 };
1708
1709 const unsigned char MetaWatchTimeWidth[TOTAL_TIME_CHARACTERS] = 
1710 {
1711 /*              width    char    hexcode */
1712 /*              =====    ====    ======= */
1713                  11, /*   0      30      */
1714                  11, /*   1      31      */
1715                  11, /*   2      32      */
1716                  11, /*   3      33      */
1717                  11, /*   4      34      */
1718                  11, /*   5      35      */
1719                  11, /*   6      36      */
1720                  11, /*   7      37      */
1721                  11, /*   8      38      */
1722                  11, /*   9      39      */
1723                   4, /*   :      3A      */
1724                  11, /*  ' '     3B      */ 
1725 };
1726
1727 /******************************************************************************/
1728
1729 const unsigned char MetaWatchMonospaced10[PRINTABLE_CHARACTERS][10] =  
1730 {
1731   0x00,0x00,0x10,0x38,0x38,0x10,0x10,0x00,0x10,0x00,
1732   0x00,0x00,0x6C,0x6C,0x24,0x00,0x00,0x00,0x00,0x00,
1733   0x00,0x00,0x00,0x28,0x7C,0x28,0x28,0x7C,0x28,0x00,
1734   0x00,0x00,0x10,0x70,0x08,0x30,0x40,0x38,0x20,0x00,
1735   0x00,0x00,0x4C,0x4C,0x20,0x10,0x08,0x64,0x64,0x00,
1736   0x00,0x00,0x08,0x14,0x14,0x08,0x54,0x24,0x58,0x00,
1737   0x00,0x00,0x18,0x18,0x10,0x08,0x00,0x00,0x00,0x00,
1738   0x00,0x00,0x10,0x08,0x08,0x08,0x08,0x08,0x10,0x00,
1739   0x00,0x00,0x10,0x20,0x20,0x20,0x20,0x20,0x10,0x00,
1740   0x00,0x00,0x92,0x54,0x38,0xFE,0x38,0x54,0x92,0x00,
1741   0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,
1742   0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x10,0x08,
1743   0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,
1744   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,
1745   0x00,0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x00,0x00,
1746   0x00,0x00,0x38,0x44,0x64,0x54,0x4C,0x44,0x38,0x00,
1747   0x00,0x00,0x10,0x18,0x10,0x10,0x10,0x10,0x38,0x00,
1748   0x00,0x00,0x38,0x44,0x40,0x30,0x08,0x04,0x7C,0x00,
1749   0x00,0x00,0x38,0x44,0x40,0x38,0x40,0x44,0x38,0x00,
1750   0x00,0x00,0x20,0x30,0x28,0x24,0x7C,0x20,0x20,0x00,
1751   0x00,0x00,0x7C,0x04,0x04,0x3C,0x40,0x44,0x38,0x00,
1752   0x00,0x00,0x30,0x08,0x04,0x3C,0x44,0x44,0x38,0x00,
1753   0x00,0x00,0x7C,0x40,0x20,0x10,0x08,0x08,0x08,0x00,
1754   0x00,0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x38,0x00,
1755   0x00,0x00,0x38,0x44,0x44,0x78,0x40,0x20,0x18,0x00,
1756   0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x00,
1757   0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x10,
1758   0x00,0x00,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x00,
1759   0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,
1760   0x00,0x00,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x00,
1761   0x00,0x00,0x38,0x44,0x40,0x30,0x10,0x00,0x10,0x00,
1762   0x00,0x00,0x38,0x44,0x74,0x54,0x74,0x04,0x38,0x00,
1763   0x00,0x00,0x38,0x44,0x44,0x44,0x7C,0x44,0x44,0x00,
1764   0x00,0x00,0x3C,0x44,0x44,0x3C,0x44,0x44,0x3C,0x00,
1765   0x00,0x00,0x38,0x44,0x04,0x04,0x04,0x44,0x38,0x00,
1766   0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x00,
1767   0x00,0x00,0x7C,0x04,0x04,0x3C,0x04,0x04,0x7C,0x00,
1768   0x00,0x00,0x7C,0x04,0x04,0x3C,0x04,0x04,0x04,0x00,
1769   0x00,0x00,0x38,0x44,0x04,0x74,0x44,0x44,0x78,0x00,
1770   0x00,0x00,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x00,
1771   0x00,0x00,0x38,0x10,0x10,0x10,0x10,0x10,0x38,0x00,
1772   0x00,0x00,0x40,0x40,0x40,0x40,0x44,0x44,0x38,0x00,
1773   0x00,0x00,0x44,0x24,0x14,0x0C,0x14,0x24,0x44,0x00,
1774   0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x7C,0x00,
1775   0x00,0x00,0x44,0x6C,0x54,0x44,0x44,0x44,0x44,0x00,
1776   0x00,0x00,0x44,0x4C,0x54,0x64,0x44,0x44,0x44,0x00,
1777   0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,0x00,
1778   0x00,0x00,0x3C,0x44,0x44,0x3C,0x04,0x04,0x04,0x00,
1779   0x00,0x00,0x38,0x44,0x44,0x44,0x54,0x24,0x58,0x00,
1780   0x00,0x00,0x3C,0x44,0x44,0x3C,0x24,0x44,0x44,0x00,
1781   0x00,0x00,0x38,0x44,0x04,0x38,0x40,0x44,0x38,0x00,
1782   0x00,0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x00,
1783   0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,
1784   0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x28,0x10,0x00,
1785   0x00,0x00,0x44,0x44,0x54,0x54,0x54,0x54,0x28,0x00,
1786   0x00,0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x00,
1787   0x00,0x00,0x44,0x44,0x44,0x28,0x10,0x10,0x10,0x00,
1788   0x00,0x00,0x7C,0x40,0x20,0x10,0x08,0x04,0x7C,0x00,
1789   0x00,0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x38,0x00,
1790   0x00,0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x00,0x00,
1791   0x00,0x00,0x38,0x20,0x20,0x20,0x20,0x20,0x38,0x00,
1792   0x00,0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,
1793   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,
1794   0x00,0x18,0x18,0x08,0x10,0x00,0x00,0x00,0x00,0x00,
1795   0x00,0x00,0x00,0x00,0x38,0x40,0x78,0x44,0x78,0x00,
1796   0x00,0x00,0x04,0x04,0x3C,0x44,0x44,0x44,0x3C,0x00,
1797   0x00,0x00,0x00,0x00,0x38,0x44,0x04,0x44,0x38,0x00,
1798   0x00,0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x78,0x00,
1799   0x00,0x00,0x00,0x00,0x38,0x44,0x3C,0x04,0x38,0x00,
1800   0x00,0x00,0x60,0x10,0x10,0x78,0x10,0x10,0x10,0x00,
1801   0x00,0x00,0x00,0x78,0x44,0x44,0x78,0x40,0x38,0x00,
1802   0x00,0x00,0x08,0x08,0x38,0x48,0x48,0x48,0x48,0x00,
1803   0x00,0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x10,0x00,
1804   0x00,0x00,0x40,0x00,0x60,0x40,0x40,0x40,0x48,0x30,
1805   0x00,0x00,0x08,0x08,0x48,0x28,0x18,0x28,0x48,0x00,
1806   0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,
1807   0x00,0x00,0x00,0x00,0x2C,0x54,0x54,0x44,0x44,0x00,
1808   0x00,0x00,0x00,0x00,0x38,0x48,0x48,0x48,0x48,0x00,
1809   0x00,0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00,
1810   0x00,0x00,0x00,0x00,0x3C,0x44,0x44,0x3C,0x04,0x04,
1811   0x00,0x00,0x00,0x00,0x78,0x44,0x44,0x78,0x40,0x40,
1812   0x00,0x00,0x00,0x00,0x34,0x48,0x08,0x08,0x1C,0x00,
1813   0x00,0x00,0x00,0x00,0x38,0x04,0x38,0x40,0x38,0x00,
1814   0x00,0x00,0x00,0x10,0x78,0x10,0x10,0x50,0x20,0x00,
1815   0x00,0x00,0x00,0x00,0x48,0x48,0x48,0x68,0x50,0x00,
1816   0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x28,0x10,0x00,
1817   0x00,0x00,0x00,0x00,0x44,0x44,0x54,0x7C,0x28,0x00,
1818   0x00,0x00,0x00,0x00,0x44,0x28,0x10,0x28,0x44,0x00,
1819   0x00,0x00,0x00,0x00,0x48,0x48,0x48,0x70,0x40,0x70,
1820   0x00,0x00,0x00,0x00,0x78,0x40,0x30,0x08,0x78,0x00,
1821   0x00,0x00,0x30,0x08,0x08,0x0C,0x08,0x08,0x30,0x00,
1822   0x00,0x00,0x10,0x10,0x10,0x00,0x10,0x10,0x10,0x00,
1823   0x00,0x00,0x18,0x20,0x20,0x60,0x20,0x20,0x18,0x00,
1824   0x00,0x00,0x00,0x50,0x28,0x00,0x00,0x00,0x00,0x00,
1825 };
1826