From a03500b5bbf376bb275002887ec566872efb40c4 Mon Sep 17 00:00:00 2001 From: Nils Faerber Date: Tue, 19 Mar 2013 20:22:58 +0100 Subject: [PATCH] Add fixes for it to work properly on microcontroller --- ui/Fonts.c | 2029 ++++++++++++++++++++------------------- ui/Fonts.h | 8 +- ui/LcdDisplay.c | 23 +- ui/LcdDisplay.h | 3 +- ui/Makefile.am | 2 +- ui/oswald-ui.c | 6 + ui/oswald-ui.h | 1 + ui/oswald.h | 6 +- ui/oswald_main.c | 6 +- ui/oswald_screens.c | 123 +++ ui/oswald_screens.h | 2 + ui/oswald_strings.c | 4 +- ui/oswald_strings.h | 2 +- ui/oswald_watch_faces.c | 15 +- 14 files changed, 1187 insertions(+), 1043 deletions(-) diff --git a/ui/Fonts.c b/ui/Fonts.c index ac8c73d..54929ce 100644 --- a/ui/Fonts.c +++ b/ui/Fonts.c @@ -22,8 +22,9 @@ const unsigned char MetaWatch5table[PRINTABLE_CHARACTERS][5]; const unsigned char MetaWatch7table[PRINTABLE_CHARACTERS][7]; -const unsigned int MetaWatch16table[PRINTABLE_CHARACTERS][16]; -const unsigned int MetaWatchTimeTable[TOTAL_TIME_CHARACTERS][19]; +const u16t MetaWatch16table[PRINTABLE_CHARACTERS][16]; +const u16t MetaWatchTimeTable[TOTAL_TIME_CHARACTERS][19]; +const unsigned char MetaWatchMonospaced10Table[PRINTABLE_CHARACTERS][10]; const unsigned char MetaWatch5width[PRINTABLE_CHARACTERS]; const unsigned char MetaWatch7width[PRINTABLE_CHARACTERS]; @@ -73,9 +74,15 @@ void SetFont(etFontType Type) CurrentFont.Height = 19; CurrentFont.Spacing = 1; break; - + + case MetaWatchMonospaced10: + CurrentFont.Type = Type; + CurrentFont.Height = 10; + CurrentFont.Spacing = 0; + break; + default: - printf("Undefined Font Selected\r\n"); + //printf("Undefined Font Selected\r\n"); break; } } @@ -98,6 +105,7 @@ unsigned char GetCharacterWidth(unsigned char Character) case MetaWatch7: Width = MetaWatch7width[index]; break; case MetaWatch16: Width = MetaWatch16width[index]; break; case MetaWatchTime: Width = MetaWatchTimeWidth[index]; break; + case MetaWatchMonospaced10: Width = 7; break; default : break; } @@ -145,7 +153,7 @@ unsigned char MapCharacterToIndex(unsigned char CharIn) } -void GetCharacterBitmap(unsigned char Character,unsigned int * pBitmap) +void GetCharacterBitmap(unsigned char Character, u16t *pBitmap) { unsigned char index = MapCharacterToIndex(Character); @@ -155,11 +163,11 @@ void GetCharacterBitmap(unsigned char Character,unsigned int * pBitmap) switch (CurrentFont.Type) { case MetaWatch5: - pBitmap[row] = (unsigned int)MetaWatch5table[index][row]; + pBitmap[row] = (u16t)MetaWatch5table[index][row]; break; case MetaWatch7: - pBitmap[row] = (unsigned int)MetaWatch7table[index][row]; + pBitmap[row] = (u16t)MetaWatch7table[index][row]; break; case MetaWatch16: @@ -170,6 +178,9 @@ void GetCharacterBitmap(unsigned char Character,unsigned int * pBitmap) pBitmap[row] = MetaWatchTimeTable[index][row]; break; + case MetaWatchMonospaced10: + pBitmap[row] = MetaWatchMonospaced10Table[index][row]; + break; default: break; } @@ -181,293 +192,293 @@ void GetCharacterBitmap(unsigned char Character,unsigned int * pBitmap) const unsigned char MetaWatch5table[PRINTABLE_CHARACTERS][5] = { /* character 0x20 (' '): (width = 2) */ - 0x00, 0x00, 0x00, 0x00, 0x00, + {0x00, 0x00, 0x00, 0x00, 0x00,}, /* character 0x21 ('!'): (width=1) */ - 0x01, 0x01, 0x01, 0x00, 0x01, + {0x01, 0x01, 0x01, 0x00, 0x01,}, /* character 0x22 ('"'): (width=3) */ - 0x05, 0x05, 0x00, 0x00, 0x00, + {0x05, 0x05, 0x00, 0x00, 0x00,}, /* character 0x23 ('#'): (width=5) */ - 0x0A, 0x1F, 0x0A, 0x1F, 0x0A, - + { 0x0A, 0x1F, 0x0A, 0x1F, 0x0A,}, + { /* character 0x24 ('$'): (width=3) */ - 0x00, 0x00, 0x00, 0x00, 0x00, - + 0x00, 0x00, 0x00, 0x00, 0x00,}, + { /* character 0x25 ('%'): (width=3) */ - 0x00, 0x00, 0x00, 0x00, 0x00, - + 0x00, 0x00, 0x00, 0x00, 0x00,}, + { /* character 0x26 ('&'): (width=5) */ - 0x02, 0x05, 0x16, 0x09, 0x1E, - + 0x02, 0x05, 0x16, 0x09, 0x1E,}, + { /* character 0x27 ('''): (width=1) */ - 0x01, 0x01, 0x00, 0x00, 0x00, - + 0x01, 0x01, 0x00, 0x00, 0x00,}, + { /* character 0x28 ('('): (width=2) */ - 0x02, 0x01, 0x01, 0x01, 0x02, - + 0x02, 0x01, 0x01, 0x01, 0x02,}, + { /* character 0x29 (')'): (width=2) */ - 0x01, 0x02, 0x02, 0x02, 0x01, - + 0x01, 0x02, 0x02, 0x02, 0x01,}, + { /* character 0x2A ('*'): (width=5) */ - 0x0A, 0x04, 0x1F, 0x04, 0x0A, - + 0x0A, 0x04, 0x1F, 0x04, 0x0A,}, + { /* character 0x2B ('+'): (width=5) */ - 0x04, 0x04, 0x1F, 0x04, 0x04, - + 0x04, 0x04, 0x1F, 0x04, 0x04,}, + { /* character 0x2C (','): (width=1) */ - 0x00, 0x00, 0x00, 0x01, 0x01, - + 0x00, 0x00, 0x00, 0x01, 0x01,}, + { /* character 0x2D ('-'): (width=3) */ - 0x00, 0x00, 0x07, 0x00, 0x00, - + 0x00, 0x00, 0x07, 0x00, 0x00,}, + { /* character 0x2E ('.'): (width=1) */ - 0x00, 0x00, 0x00, 0x00, 0x01, - + 0x00, 0x00, 0x00, 0x00, 0x01,}, + { /* character 0x2F ('/'): (width=5) */ - 0x10, 0x08, 0x04, 0x02, 0x01, - + 0x10, 0x08, 0x04, 0x02, 0x01,}, + { /* character 0x30 ('0'): (width=4) */ - 0x06, 0x09, 0x09, 0x09, 0x06, - + 0x06, 0x09, 0x09, 0x09, 0x06,}, + { /* character 0x31 ('1'): (width=3) */ - 0x03, 0x02, 0x02, 0x02, 0x07, - + 0x03, 0x02, 0x02, 0x02, 0x07,}, + { /* character 0x32 ('2'): (width=4) */ - 0x06, 0x09, 0x04, 0x02, 0x0F, - + 0x06, 0x09, 0x04, 0x02, 0x0F,}, + { /* character 0x33 ('3'): (width=4) */ - 0x0F, 0x08, 0x06, 0x08, 0x07, - + 0x0F, 0x08, 0x06, 0x08, 0x07,}, + { /* character 0x34 ('4'): (width=4) */ - 0x04, 0x06, 0x05, 0x0F, 0x04, - + 0x04, 0x06, 0x05, 0x0F, 0x04,}, + { /* character 0x35 ('5'): (width=4) */ - 0x0F, 0x01, 0x0F, 0x08, 0x07, - + 0x0F, 0x01, 0x0F, 0x08, 0x07,}, + { /* character 0x36 ('6'): (width=4) */ - 0x06, 0x01, 0x07, 0x09, 0x06, - + 0x06, 0x01, 0x07, 0x09, 0x06,}, + { /* character 0x37 ('7'): (width=4) */ - 0x0F, 0x08, 0x04, 0x02, 0x02, - + 0x0F, 0x08, 0x04, 0x02, 0x02,}, + { /* character 0x38 ('8'): (width=4) */ - 0x06, 0x09, 0x06, 0x09, 0x06, - + 0x06, 0x09, 0x06, 0x09, 0x06,}, + { /* character 0x39 ('9'): (width=4) */ - 0x06, 0x09, 0x0E, 0x08, 0x06, - + 0x06, 0x09, 0x0E, 0x08, 0x06,}, + { /* character 0x3A (':'): (width=1) */ - 0x00, 0x01, 0x00, 0x01, 0x00, - + 0x00, 0x01, 0x00, 0x01, 0x00,}, + { /* character 0x3B (';'): (width=2) */ - 0x00, 0x02, 0x00, 0x02, 0x01, - + 0x00, 0x02, 0x00, 0x02, 0x01,}, + { /* character 0x3C ('<'): (width=3) */ - 0x04, 0x02, 0x01, 0x02, 0x04, - + 0x04, 0x02, 0x01, 0x02, 0x04,}, + { /* character 0x3D ('='): (width=4) */ - 0x00, 0x0F, 0x00, 0x0F, 0x00, - + 0x00, 0x0F, 0x00, 0x0F, 0x00,}, + { /* character 0x3E ('>'): (width=3) */ - 0x01, 0x02, 0x04, 0x02, 0x01, - + 0x01, 0x02, 0x04, 0x02, 0x01,}, + { /* character 0x3F ('?'): (width=3) */ - 0x03, 0x04, 0x02, 0x00, 0x02, - + 0x03, 0x04, 0x02, 0x00, 0x02,}, + { /* character 0x40 ('@'): (width=3) */ - 0x00, 0x00, 0x00, 0x00, 0x00, - + 0x00, 0x00, 0x00, 0x00, 0x00,}, + { /* character 0x41 ('A'): (width=5) */ - 0x04, 0x04, 0x0A, 0x0E, 0x11, - + 0x04, 0x04, 0x0A, 0x0E, 0x11,}, + { /* character 0x42 ('B'): (width=4) */ - 0x07, 0x09, 0x07, 0x09, 0x07, - + 0x07, 0x09, 0x07, 0x09, 0x07,}, + { /* character 0x43 ('C'): (width=4) */ - 0x06, 0x09, 0x01, 0x09, 0x06, - + 0x06, 0x09, 0x01, 0x09, 0x06,}, + { /* character 0x44 ('D'): (width=4) */ - 0x07, 0x09, 0x09, 0x09, 0x07, - + 0x07, 0x09, 0x09, 0x09, 0x07,}, + { /* character 0x45 ('E'): (width=4) */ - 0x0F, 0x01, 0x07, 0x01, 0x0F, - + 0x0F, 0x01, 0x07, 0x01, 0x0F,}, + { /* character 0x46 ('F'): (width=4) */ - 0x0F, 0x01, 0x07, 0x01, 0x01, - + 0x0F, 0x01, 0x07, 0x01, 0x01,}, + { /* character 0x47 ('G'): (width=4) */ - 0x06, 0x01, 0x0D, 0x09, 0x06, - + 0x06, 0x01, 0x0D, 0x09, 0x06,}, + { /* character 0x48 ('H'): (width=4) */ - 0x09, 0x09, 0x0F, 0x09, 0x09, - + 0x09, 0x09, 0x0F, 0x09, 0x09,}, + { /* character 0x49 ('I'): (width=3) */ - 0x07, 0x02, 0x02, 0x02, 0x07, - + 0x07, 0x02, 0x02, 0x02, 0x07,}, + { /* character 0x4A ('J'): (width=4) */ - 0x08, 0x08, 0x08, 0x09, 0x06, - + 0x08, 0x08, 0x08, 0x09, 0x06,}, + { /* character 0x4B ('K'): (width=4) */ - 0x09, 0x05, 0x03, 0x05, 0x09, - + 0x09, 0x05, 0x03, 0x05, 0x09,}, + { /* character 0x4C ('L'): (width=4) */ - 0x01, 0x01, 0x01, 0x01, 0x0F, - + 0x01, 0x01, 0x01, 0x01, 0x0F,}, + { /* character 0x4D ('M'): (width=5) */ - 0x11, 0x1B, 0x15, 0x11, 0x11, - + 0x11, 0x1B, 0x15, 0x11, 0x11,}, + { /* character 0x4E ('N'): (width=5) */ - 0x11, 0x13, 0x15, 0x19, 0x11, - + 0x11, 0x13, 0x15, 0x19, 0x11,}, + { /* character 0x4F ('O'): (width=4) */ - 0x06, 0x09, 0x09, 0x09, 0x06, - + 0x06, 0x09, 0x09, 0x09, 0x06,}, + { /* character 0x50 ('P'): (width=4) */ - 0x07, 0x09, 0x07, 0x01, 0x01, - + 0x07, 0x09, 0x07, 0x01, 0x01,}, + { /* character 0x51 ('Q'): (width=5) */ - 0x06, 0x09, 0x09, 0x09, 0x1E, - + 0x06, 0x09, 0x09, 0x09, 0x1E,}, + { /* character 0x52 ('R'): (width=4) */ - 0x07, 0x09, 0x07, 0x09, 0x09, - + 0x07, 0x09, 0x07, 0x09, 0x09,}, + { /* character 0x53 ('S'): (width=4) */ - 0x0E, 0x01, 0x06, 0x08, 0x07, - + 0x0E, 0x01, 0x06, 0x08, 0x07,}, + { /* character 0x54 ('T'): (width=3) */ - 0x07, 0x02, 0x02, 0x02, 0x02, - + 0x07, 0x02, 0x02, 0x02, 0x02,}, + { /* character 0x55 ('U'): (width=4) */ - 0x09, 0x09, 0x09, 0x09, 0x06, - + 0x09, 0x09, 0x09, 0x09, 0x06,}, + { /* character 0x56 ('V'): (width=5) */ - 0x11, 0x0A, 0x0A, 0x04, 0x04, - + 0x11, 0x0A, 0x0A, 0x04, 0x04,}, + { /* character 0x57 ('W'): (width=5) */ - 0x15, 0x15, 0x0A, 0x0A, 0x0A, - + 0x15, 0x15, 0x0A, 0x0A, 0x0A,}, + { /* character 0x58 ('X'): (width=4) */ - 0x09, 0x09, 0x06, 0x09, 0x09, - + 0x09, 0x09, 0x06, 0x09, 0x09,}, + { /* character 0x59 ('Y'): (width=5) */ - 0x11, 0x0A, 0x04, 0x04, 0x04, - + 0x11, 0x0A, 0x04, 0x04, 0x04,}, + { /* character 0x5A ('Z'): (width=4) */ - 0x0F, 0x04, 0x02, 0x01, 0x0F, - + 0x0F, 0x04, 0x02, 0x01, 0x0F,}, + { /* character 0x5B ('['): (width=2) */ - 0x03, 0x01, 0x01, 0x01, 0x03, - + 0x03, 0x01, 0x01, 0x01, 0x03,}, + { /* character 0x5C ('\'): (width=5) */ - 0x01, 0x02, 0x04, 0x08, 0x10, - + 0x01, 0x02, 0x04, 0x08, 0x10,}, + { /* character 0x5D (']'): (width=2) */ - 0x03, 0x02, 0x02, 0x02, 0x03, - + 0x03, 0x02, 0x02, 0x02, 0x03,}, + { /* character 0x5E ('^'): (width=5) */ - 0x04, 0x0A, 0x11, 0x00, 0x00, - + 0x04, 0x0A, 0x11, 0x00, 0x00,}, + { /* character 0x5F ('_'): (width=4) */ - 0x00, 0x00, 0x00, 0x00, 0x0F, - + 0x00, 0x00, 0x00, 0x00, 0x0F,}, + { /* character 0x60 ('`'): (width=1) */ - 0x01, 0x01, 0x00, 0x00, 0x00, - + 0x01, 0x01, 0x00, 0x00, 0x00,}, + { /* character 0x61 ('a'): (width=5) */ - 0x04, 0x04, 0x0A, 0x0E, 0x11, - + 0x04, 0x04, 0x0A, 0x0E, 0x11,}, + { /* character 0x62 ('b'): (width=4) */ - 0x07, 0x09, 0x07, 0x09, 0x07, - + 0x07, 0x09, 0x07, 0x09, 0x07,}, + { /* character 0x63 ('c'): (width=4) */ - 0x06, 0x09, 0x01, 0x09, 0x06, - + 0x06, 0x09, 0x01, 0x09, 0x06,}, + { /* character 0x64 ('d'): (width=4) */ - 0x07, 0x09, 0x09, 0x09, 0x07, - + 0x07, 0x09, 0x09, 0x09, 0x07,}, + { /* character 0x65 ('e'): (width=4) */ - 0x0F, 0x01, 0x07, 0x01, 0x0F, - + 0x0F, 0x01, 0x07, 0x01, 0x0F,}, + { /* character 0x66 ('f'): (width=4) */ - 0x0F, 0x01, 0x07, 0x01, 0x01, - + 0x0F, 0x01, 0x07, 0x01, 0x01,}, + { /* character 0x67 ('g'): (width=4) */ - 0x06, 0x01, 0x0D, 0x09, 0x06, - + 0x06, 0x01, 0x0D, 0x09, 0x06,}, + { /* character 0x68 ('h'): (width=4) */ - 0x09, 0x09, 0x0F, 0x09, 0x09, - + 0x09, 0x09, 0x0F, 0x09, 0x09,}, + { /* character 0x69 ('i'): (width=3) */ - 0x07, 0x02, 0x02, 0x02, 0x07, - + 0x07, 0x02, 0x02, 0x02, 0x07,}, + { /* character 0x6A ('j'): (width=4) */ - 0x08, 0x08, 0x08, 0x09, 0x06, - + 0x08, 0x08, 0x08, 0x09, 0x06,}, + { /* character 0x6B ('k'): (width=4) */ - 0x09, 0x05, 0x03, 0x05, 0x09, - + 0x09, 0x05, 0x03, 0x05, 0x09,}, + { /* character 0x6C ('l'): (width=4) */ - 0x01, 0x01, 0x01, 0x01, 0x0F, - + 0x01, 0x01, 0x01, 0x01, 0x0F,}, + { /* character 0x6D ('m'): (width=5) */ - 0x11, 0x1B, 0x15, 0x11, 0x11, - + 0x11, 0x1B, 0x15, 0x11, 0x11,}, + { /* character 0x6E ('n'): (width=5) */ - 0x11, 0x13, 0x15, 0x19, 0x11, - + 0x11, 0x13, 0x15, 0x19, 0x11,}, + { /* character 0x6F ('o'): (width=4) */ - 0x06, 0x09, 0x09, 0x09, 0x06, - + 0x06, 0x09, 0x09, 0x09, 0x06,}, + { /* character 0x70 ('p'): (width=4) */ - 0x07, 0x09, 0x07, 0x01, 0x01, - + 0x07, 0x09, 0x07, 0x01, 0x01,}, + { /* character 0x71 ('q'): (width=5) */ - 0x06, 0x09, 0x09, 0x09, 0x1E, - + 0x06, 0x09, 0x09, 0x09, 0x1E,}, + { /* character 0x72 ('r'): (width=4) */ - 0x07, 0x09, 0x07, 0x09, 0x09, - + 0x07, 0x09, 0x07, 0x09, 0x09,}, + { /* character 0x73 ('s'): (width=4) */ - 0x0E, 0x01, 0x06, 0x08, 0x07, - + 0x0E, 0x01, 0x06, 0x08, 0x07,}, + { /* character 0x74 ('t'): (width=3) */ - 0x07, 0x02, 0x02, 0x02, 0x02, - + 0x07, 0x02, 0x02, 0x02, 0x02,}, + { /* character 0x75 ('u'): (width=4) */ - 0x09, 0x09, 0x09, 0x09, 0x06, - + 0x09, 0x09, 0x09, 0x09, 0x06,}, + { /* character 0x76 ('v'): (width=5) */ - 0x11, 0x0A, 0x0A, 0x04, 0x04, - + 0x11, 0x0A, 0x0A, 0x04, 0x04,}, + { /* character 0x77 ('w'): (width=5) */ - 0x15, 0x15, 0x0A, 0x0A, 0x0A, - + 0x15, 0x15, 0x0A, 0x0A, 0x0A,}, + { /* character 0x78 ('x'): (width=4) */ - 0x09, 0x09, 0x06, 0x09, 0x09, - + 0x09, 0x09, 0x06, 0x09, 0x09,}, + { /* character 0x79 ('y'): (width=5) */ - 0x11, 0x0A, 0x04, 0x04, 0x04, - + 0x11, 0x0A, 0x04, 0x04, 0x04,}, + { /* character 0x7A ('z'): (width=4) */ - 0x0F, 0x04, 0x02, 0x01, 0x0F, - + 0x0F, 0x04, 0x02, 0x01, 0x0F,}, + { /* character 0x7B ('{'): (width=3) */ - 0x00, 0x00, 0x00, 0x00, 0x00, - + 0x00, 0x00, 0x00, 0x00, 0x00,}, + { /* character 0x7C ('|'): (width=1) */ - 0x01, 0x01, 0x01, 0x01, 0x01, - + 0x01, 0x01, 0x01, 0x01, 0x01,}, + { /* character 0x7D ('}'): (width=3) */ - 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00,}, }; const unsigned char MetaWatch5width[PRINTABLE_CHARACTERS] = { /* width char hexcode */ /* ===== ==== ======= */ - 2, /* ' ' 20 */ + 2, /* ' ' 20 */ 1, /* ! 21 */ 3, /* " 22 */ 5, /* # 23 */ @@ -567,286 +578,285 @@ const unsigned char MetaWatch7table[PRINTABLE_CHARACTERS][7] = { /* character 0x20 (' '): (width = 2) */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,}, /* character 0x21 ('!'): (width=1) */ - 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, - + {0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01,}, + { /* character 0x22 ('"'): (width=3) */ - 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, - + 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,}, + { /* character 0x23 ('#'): (width=7) */ - 0x00, 0x28, 0x7E, 0x14, 0x3F, 0x0A, 0x00, - + 0x00, 0x28, 0x7E, 0x14, 0x3F, 0x0A, 0x00,}, + { /* character 0x24 ('$'): (width=5) */ - 0x04, 0x1E, 0x05, 0x0E, 0x14, 0x0F, 0x04, - + 0x04, 0x1E, 0x05, 0x0E, 0x14, 0x0F, 0x04,}, + { /* character 0x25 ('%'): (width=7) */ - 0x42, 0x25, 0x15, 0x2A, 0x54, 0x52, 0x21, - + 0x42, 0x25, 0x15, 0x2A, 0x54, 0x52, 0x21,}, + { /* character 0x26 ('&'): (width=5) */ - 0x02, 0x05, 0x05, 0x02, 0x15, 0x09, 0x16, - + 0x02, 0x05, 0x05, 0x02, 0x15, 0x09, 0x16,}, + { /* character 0x27 ('''): (width=3) */ - 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, - + 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,}, + { /* character 0x28 ('('): (width=3) */ - 0x04, 0x02, 0x01, 0x01, 0x01, 0x02, 0x04, - + 0x04, 0x02, 0x01, 0x01, 0x01, 0x02, 0x04,}, + { /* character 0x29 (')'): (width=3) */ - 0x01, 0x02, 0x04, 0x04, 0x04, 0x02, 0x01, - + 0x01, 0x02, 0x04, 0x04, 0x04, 0x02, 0x01,}, + { /* character 0x2A ('*'): (width=7) */ - 0x08, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x08, - + 0x08, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x08,}, + { /* character 0x2B ('+'): (width=5) */ - 0x00, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x00, - + 0x00, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x00,}, + { /* character 0x2C (','): (width=1) */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, - + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,}, + { /* character 0x2D ('-'): (width=4) */ - 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, - + 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,}, + { /* character 0x2E ('.'): (width=1) */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,}, + { /* character 0x2F ('/'): (width=4) */ - 0x08, 0x08, 0x04, 0x06, 0x02, 0x01, 0x01, - + 0x08, 0x08, 0x04, 0x06, 0x02, 0x01, 0x01,}, + { /* character 0x30 ('0'): (width=4) */ - 0x06, 0x09, 0x09, 0x09, 0x09, 0x09, 0x06, - + 0x06, 0x09, 0x09, 0x09, 0x09, 0x09, 0x06,}, + { /* character 0x31 ('1'): (width=2) */ - 0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, - + 0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02,}, + { /* character 0x32 ('2'): (width=4) */ - 0x06, 0x09, 0x08, 0x04, 0x02, 0x01, 0x0F, - + 0x06, 0x09, 0x08, 0x04, 0x02, 0x01, 0x0F,}, + { /* character 0x33 ('3'): (width=4) */ - 0x06, 0x09, 0x08, 0x06, 0x08, 0x09, 0x06, - + 0x06, 0x09, 0x08, 0x06, 0x08, 0x09, 0x06,}, + { /* character 0x34 ('4'): (width=5) */ - 0x04, 0x04, 0x0A, 0x09, 0x1F, 0x08, 0x08, - + 0x04, 0x04, 0x0A, 0x09, 0x1F, 0x08, 0x08,}, + { /* character 0x35 ('5'): (width=4) */ - 0x0F, 0x01, 0x07, 0x08, 0x08, 0x09, 0x06, - + 0x0F, 0x01, 0x07, 0x08, 0x08, 0x09, 0x06,}, + { /* character 0x36 ('6'): (width=4) */ - 0x06, 0x01, 0x07, 0x09, 0x09, 0x09, 0x06, - + 0x06, 0x01, 0x07, 0x09, 0x09, 0x09, 0x06,}, + { /* character 0x37 ('7'): (width=4) */ - 0x0F, 0x08, 0x04, 0x04, 0x02, 0x02, 0x02, - + 0x0F, 0x08, 0x04, 0x04, 0x02, 0x02, 0x02,}, + { /* character 0x38 ('8'): (width=4) */ - 0x06, 0x09, 0x09, 0x06, 0x09, 0x09, 0x06, - + 0x06, 0x09, 0x09, 0x06, 0x09, 0x09, 0x06,}, + { /* character 0x39 ('9'): (width=4) */ - 0x06, 0x09, 0x09, 0x09, 0x0E, 0x08, 0x06, - + 0x06, 0x09, 0x09, 0x09, 0x0E, 0x08, 0x06,}, + { /* character 0x3A (':'): (width=1) */ - 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, - + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00,}, + { /* character 0x3B (';'): (width=1) */ - 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, - + 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01,}, + { /* character 0x3C ('<'): (width=3) */ - 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - + 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,}, + { /* character 0x3D ('='): (width=4) */ - 0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00, - + 0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00,}, + { /* character 0x3E ('>'): (width=3) */ - 0x00, 0x01, 0x02, 0x04, 0x02, 0x01, 0x00, - + 0x00, 0x01, 0x02, 0x04, 0x02, 0x01, 0x00,}, + { /* character 0x3F ('?'): (width=4) */ - 0x07, 0x08, 0x04, 0x02, 0x02, 0x00, 0x02, - + 0x07, 0x08, 0x04, 0x02, 0x02, 0x00, 0x02,}, + { /* character 0x40 ('@'): (width=7) */ - 0x3C, 0x42, 0x59, 0x55, 0x39, 0x02, 0x3C, - + 0x3C, 0x42, 0x59, 0x55, 0x39, 0x02, 0x3C,}, + { /* character 0x41 ('A'): (width=7) */ - 0x08, 0x08, 0x14, 0x14, 0x3E, 0x22, 0x41, - + 0x08, 0x08, 0x14, 0x14, 0x3E, 0x22, 0x41,}, + { /* character 0x42 ('B'): (width=5) */ - 0x0F, 0x11, 0x11, 0x0F, 0x11, 0x11, 0x0F, - + 0x0F, 0x11, 0x11, 0x0F, 0x11, 0x11, 0x0F,}, + { /* character 0x43 ('C'): (width=5) */ - 0x0C, 0x12, 0x01, 0x01, 0x01, 0x12, 0x0C, - + 0x0C, 0x12, 0x01, 0x01, 0x01, 0x12, 0x0C,}, + { /* character 0x44 ('D'): (width=5) */ - 0x07, 0x09, 0x11, 0x11, 0x11, 0x09, 0x07, - + 0x07, 0x09, 0x11, 0x11, 0x11, 0x09, 0x07,}, + { /* character 0x45 ('E'): (width=4) */ - 0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x0F, - + 0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x0F,}, + { /* character 0x46 ('F'): (width=4) */ - 0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x01, - + 0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x01,}, + { /* character 0x47 ('G'): (width=6) */ - 0x0C, 0x12, 0x01, 0x39, 0x21, 0x12, 0x0C, - + 0x0C, 0x12, 0x01, 0x39, 0x21, 0x12, 0x0C,}, + { /* character 0x48 ('H'): (width=5) */ - 0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11, - + 0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11,}, + { /* character 0x49 ('I'): (width=3) */ - 0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x07, - + 0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x07,}, + { /* character 0x4A ('J'): (width=5) */ - 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x0E, - + 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x0E,}, + { /* character 0x4B ('K'): (width=5) */ - 0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11, - + 0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11,}, + { /* character 0x4C ('L'): (width=4) */ - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0F, - + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0F,}, + { /* character 0x4D ('M'): (width=7) */ - 0x41, 0x63, 0x63, 0x55, 0x55, 0x49, 0x49, - + 0x41, 0x63, 0x63, 0x55, 0x55, 0x49, 0x49,}, + { /* character 0x4E ('N'): (width=6) */ - 0x21, 0x23, 0x25, 0x2D, 0x29, 0x31, 0x21, - + 0x21, 0x23, 0x25, 0x2D, 0x29, 0x31, 0x21,}, + { /* character 0x4F ('O'): (width=6) */ - 0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x0C, - + 0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x0C,}, + { /* character 0x50 ('P'): (width=4) */ - 0x07, 0x09, 0x09, 0x07, 0x01, 0x01, 0x01, - + 0x07, 0x09, 0x09, 0x07, 0x01, 0x01, 0x01,}, + { /* character 0x51 ('Q'): (width=7) */ - 0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x6C, - + 0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x6C,}, + { /* character 0x52 ('R'): (width=5) */ - 0x0F, 0x11, 0x11, 0x0F, 0x09, 0x11, 0x11, - + 0x0F, 0x11, 0x11, 0x0F, 0x09, 0x11, 0x11,}, + { /* character 0x53 ('S'): (width=4) */ - 0x06, 0x09, 0x01, 0x06, 0x08, 0x09, 0x06, - + 0x06, 0x09, 0x01, 0x06, 0x08, 0x09, 0x06,}, + { /* character 0x54 ('T'): (width=5) */ - 0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - + 0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,}, + { /* character 0x55 ('U'): (width=5) */ - 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E, - + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E,}, + { /* character 0x56 ('V'): (width=7) */ - 0x41, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, - + 0x41, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08,}, + { /* character 0x57 ('W'): (width=7) */ - 0x49, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22, - + 0x49, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22,}, + { /* character 0x58 ('X'): (width=5) */ - 0x11, 0x1B, 0x0A, 0x04, 0x0A, 0x1B, 0x11, - + 0x11, 0x1B, 0x0A, 0x04, 0x0A, 0x1B, 0x11,}, + { /* character 0x59 ('Y'): (width=7) */ - 0x41, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08, - + 0x41, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08,}, + { /* character 0x5A ('Z'): (width=5) */ - 0x1F, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1F, - + 0x1F, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1F,}, + { /* character 0x5B ('['): (width=3) */ - 0x07, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, - + 0x07, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07,}, + { /* character 0x5C ('\'): (width=4) */ - 0x01, 0x01, 0x02, 0x06, 0x04, 0x08, 0x08, - + 0x01, 0x01, 0x02, 0x06, 0x04, 0x08, 0x08,}, + { /* character 0x5D (']'): (width=3) */ - 0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, - + 0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07,}, + { /* character 0x5E ('^'): (width=5) */ - 0x04, 0x0A, 0x11, 0x00, 0x00, 0x00, 0x00, - + 0x04, 0x0A, 0x11, 0x00, 0x00, 0x00, 0x00,}, + { /* character 0x5F ('_'): (width=5) */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, - + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F,}, + { /* character 0x60 ('`'): (width=1) */ - 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,}, + { /* character 0x61 ('a'): (width=7) */ - 0x08, 0x08, 0x14, 0x14, 0x3E, 0x22, 0x41, - + 0x08, 0x08, 0x14, 0x14, 0x3E, 0x22, 0x41,}, + { /* character 0x62 ('b'): (width=5) */ - 0x0F, 0x11, 0x11, 0x0F, 0x11, 0x11, 0x0F, - + 0x0F, 0x11, 0x11, 0x0F, 0x11, 0x11, 0x0F,}, + { /* character 0x63 ('c'): (width=5) */ - 0x0C, 0x12, 0x01, 0x01, 0x01, 0x12, 0x0C, - + 0x0C, 0x12, 0x01, 0x01, 0x01, 0x12, 0x0C,}, + { /* character 0x64 ('d'): (width=5) */ - 0x07, 0x09, 0x11, 0x11, 0x11, 0x09, 0x07, - + 0x07, 0x09, 0x11, 0x11, 0x11, 0x09, 0x07,}, + { /* character 0x65 ('e'): (width=4) */ - 0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x0F, - + 0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x0F,}, + { /* character 0x66 ('f'): (width=4) */ - 0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x01, - + 0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x01,}, + { /* character 0x67 ('g'): (width=6) */ - 0x0C, 0x12, 0x01, 0x39, 0x21, 0x12, 0x0C, - + 0x0C, 0x12, 0x01, 0x39, 0x21, 0x12, 0x0C,}, + { /* character 0x68 ('h'): (width=5) */ - 0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11, - + 0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11,}, + { /* character 0x69 ('i'): (width=3) */ - 0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x07, - + 0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x07,}, + { /* character 0x6A ('j'): (width=5) */ - 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x0E, - + 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x0E,}, + { /* character 0x6B ('k'): (width=5) */ - 0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11, - + 0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11,}, + { /* character 0x6C ('l'): (width=4) */ - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0F, - + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0F,}, + { /* character 0x6D ('m'): (width=7) */ - 0x41, 0x63, 0x63, 0x55, 0x55, 0x49, 0x49, - + 0x41, 0x63, 0x63, 0x55, 0x55, 0x49, 0x49,}, + { /* character 0x6E ('n'): (width=6) */ - 0x21, 0x23, 0x25, 0x2D, 0x29, 0x31, 0x21, - + 0x21, 0x23, 0x25, 0x2D, 0x29, 0x31, 0x21,}, + { /* character 0x6F ('o'): (width=6) */ - 0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x0C, - + 0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x0C,}, + { /* character 0x70 ('p'): (width=4) */ - 0x07, 0x09, 0x09, 0x07, 0x01, 0x01, 0x01, - + 0x07, 0x09, 0x09, 0x07, 0x01, 0x01, 0x01,}, + { /* character 0x71 ('q'): (width=7) */ - 0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x6C, - + 0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x6C,}, + { /* character 0x72 ('r'): (width=5) */ - 0x0F, 0x11, 0x11, 0x0F, 0x09, 0x11, 0x11, - + 0x0F, 0x11, 0x11, 0x0F, 0x09, 0x11, 0x11,}, + { /* character 0x73 ('s'): (width=4) */ - 0x06, 0x09, 0x01, 0x06, 0x08, 0x09, 0x06, - + 0x06, 0x09, 0x01, 0x06, 0x08, 0x09, 0x06,}, + { /* character 0x74 ('t'): (width=5) */ - 0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - + 0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,}, + { /* character 0x75 ('u'): (width=5) */ - 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E, - + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E,}, + { /* character 0x76 ('v'): (width=7) */ - 0x41, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, - + 0x41, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08,}, + { /* character 0x77 ('w'): (width=7) */ - 0x49, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22, - + 0x49, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22,}, + { /* character 0x78 ('x'): (width=5) */ - 0x11, 0x1B, 0x0A, 0x04, 0x0A, 0x1B, 0x11, - + 0x11, 0x1B, 0x0A, 0x04, 0x0A, 0x1B, 0x11,}, + { /* character 0x79 ('y'): (width=7) */ - 0x41, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08, - + 0x41, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08,}, + { /* character 0x7A ('z'): (width=5) */ - 0x1F, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1F, - + 0x1F, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1F,}, + { /* character 0x7B ('{'): (width=3) */ - 0x04, 0x02, 0x01, 0x01, 0x01, 0x02, 0x04, - + 0x04, 0x02, 0x01, 0x01, 0x01, 0x02, 0x04,}, + { /* character 0x7C ('|'): (width=1) */ - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,}, + { /* character 0x7D ('}'): (width=3) */ - 0x01, 0x02, 0x04, 0x04, 0x04, 0x02, 0x01, + 0x01, 0x02, 0x04, 0x04, 0x04, 0x02, 0x01,}, }; @@ -950,572 +960,570 @@ const unsigned char MetaWatch7width[PRINTABLE_CHARACTERS] = { }; -const unsigned int MetaWatch16table[PRINTABLE_CHARACTERS][16] = +const u16t MetaWatch16table[PRINTABLE_CHARACTERS][16] = { /* character 0x20 (' '): (width=4) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, + {0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000}, /* character 0x21 ('!'): (width=2) */ - 0x0000, 0x0000, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0000, 0x0003, - 0x0003, 0x0000, 0x0000, 0x0000, - + {0x0000, 0x0000, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0000, 0x0003, + 0x0003, 0x0000, 0x0000, 0x0000}, /* character 0x22 ('"'): (width=5) */ - 0x0000, 0x0012, 0x001B, 0x001B, - 0x0009, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, + {0x0000, 0x0012, 0x001B, 0x001B, + 0x0009, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000}, /* character 0x23 ('#'): (width=12) */ - 0x0000, 0x0000, 0x0000, 0x0110, - 0x0198, 0x0FFE, 0x07FF, 0x0198, - 0x0198, 0x0FFE, 0x07FF, 0x0198, - 0x0088, 0x0000, 0x0000, 0x0000, + {0x0000, 0x0000, 0x0000, 0x0110, + 0x0198, 0x0FFE, 0x07FF, 0x0198, + 0x0198, 0x0FFE, 0x07FF, 0x0198, + 0x0088, 0x0000, 0x0000, 0x0000}, /* character 0x24 ('$'): (width=6) */ - 0x000C, 0x000C, 0x001E, 0x003F, - 0x0033, 0x0003, 0x0007, 0x001E, - 0x0038, 0x0030, 0x0033, 0x003F, - 0x001E, 0x000C, 0x000C, 0x0000, + {0x000C, 0x000C, 0x001E, 0x003F, + 0x0033, 0x0003, 0x0007, 0x001E, + 0x0038, 0x0030, 0x0033, 0x003F, + 0x001E, 0x000C, 0x000C, 0x0000}, /* character 0x25 ('%'): (width=10) */ - 0x0000, 0x020E, 0x031F, 0x039B, - 0x01DF, 0x00EE, 0x0070, 0x0038, - 0x01DC, 0x03EE, 0x0367, 0x03E3, - 0x01C1, 0x0000, 0x0000, 0x0000, + {0x0000, 0x020E, 0x031F, 0x039B, + 0x01DF, 0x00EE, 0x0070, 0x0038, + 0x01DC, 0x03EE, 0x0367, 0x03E3, + 0x01C1, 0x0000, 0x0000, 0x0000}, /* character 0x26 ('&'): (width=10) */ - 0x0000, 0x0000, 0x001C, 0x003E, - 0x0036, 0x003E, 0x001C, 0x01BE, - 0x01F7, 0x00E3, 0x01F7, 0x03BE, - 0x031C, 0x0000, 0x0000, 0x0000, + {0x0000, 0x0000, 0x001C, 0x003E, + 0x0036, 0x003E, 0x001C, 0x01BE, + 0x01F7, 0x00E3, 0x01F7, 0x03BE, + 0x031C, 0x0000, 0x0000, 0x0000}, /* character 0x27 ('''): (width=2) */ - 0x0000, 0x0002, 0x0003, 0x0003, - 0x0001, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - + {0x0000, 0x0002, 0x0003, 0x0003, + 0x0001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000}, + { /* character 0x28 ('('): (width=4) */ - 0x0008, 0x0004, 0x0006, 0x0006, - 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0006, - 0x0006, 0x0004, 0x0008, 0x0000, - + 0x0008, 0x0004, 0x0006, 0x0006, + 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0006, + 0x0006, 0x0004, 0x0008, 0x0000}, + { /* character 0x29 (')'): (width=4) */ - 0x0001, 0x0002, 0x0006, 0x0006, - 0x000C, 0x000C, 0x000C, 0x000C, - 0x000C, 0x000C, 0x000C, 0x0006, - 0x0006, 0x0002, 0x0001, 0x0000, - + 0x0001, 0x0002, 0x0006, 0x0006, + 0x000C, 0x000C, 0x000C, 0x000C, + 0x000C, 0x000C, 0x000C, 0x0006, + 0x0006, 0x0002, 0x0001, 0x0000}, + { /* character 0x2A ('*'): (width=8) */ - 0x0000, 0x0000, 0x0018, 0x0018, - 0x00DB, 0x00FF, 0x003C, 0x00FF, - 0x00DB, 0x0018, 0x0018, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0018, 0x0018, + 0x00DB, 0x00FF, 0x003C, 0x00FF, + 0x00DB, 0x0018, 0x0018, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000}, + { /* character 0x2B ('+'): (width=8) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0018, 0x0018, 0x0018, 0x00FF, - 0x00FF, 0x0018, 0x0018, 0x0018, - 0x0000, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0018, 0x0018, 0x0018, 0x00FF, + 0x00FF, 0x0018, 0x0018, 0x0018, + 0x0000, 0x0000, 0x0000, 0x0000}, + { /* character 0x2C (','): (width=2) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0002, - 0x0003, 0x0003, 0x0001, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0002, + 0x0003, 0x0003, 0x0001, 0x0000}, + { /* character 0x2D ('-'): (width=8) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x00FF, - 0x00FF, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00FF, + 0x00FF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000}, + { /* character 0x2E ('.'): (width=2) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0003, - 0x0003, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0003, + 0x0003, 0x0000, 0x0000, 0x0000}, + { /* character 0x2F ('/'): (width=6) */ - 0x0000, 0x0000, 0x0000, 0x0030, - 0x0030, 0x0018, 0x0018, 0x000C, - 0x000C, 0x0006, 0x0006, 0x0003, - 0x0003, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0030, + 0x0030, 0x0018, 0x0018, 0x000C, + 0x000C, 0x0006, 0x0006, 0x0003, + 0x0003, 0x0000, 0x0000, 0x0000}, + { /* character 0x30 ('0'): (width=7) */ - 0x0000, 0x0000, 0x001C, 0x003E, - 0x0036, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0036, 0x003E, - 0x001C, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x001C, 0x003E, + 0x0036, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0036, 0x003E, + 0x001C, 0x0000, 0x0000, 0x0000}, + { /* character 0x31 ('1'): (width=3) */ - 0x0000, 0x0000, 0x0006, 0x0007, - 0x0007, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0006, 0x0007, + 0x0007, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0000, 0x0000, 0x0000}, + { /* character 0x32 ('2'): (width=6) */ - 0x0000, 0x0000, 0x001E, 0x003F, - 0x0033, 0x0030, 0x0038, 0x001C, - 0x000E, 0x0007, 0x0003, 0x003F, - 0x003F, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x001E, 0x003F, + 0x0033, 0x0030, 0x0038, 0x001C, + 0x000E, 0x0007, 0x0003, 0x003F, + 0x003F, 0x0000, 0x0000, 0x0000}, + { /* character 0x33 ('3'): (width=6) */ - 0x0000, 0x0000, 0x001E, 0x003F, - 0x0033, 0x0030, 0x001C, 0x003C, - 0x0030, 0x0030, 0x0033, 0x003F, - 0x001E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x001E, 0x003F, + 0x0033, 0x0030, 0x001C, 0x003C, + 0x0030, 0x0030, 0x0033, 0x003F, + 0x001E, 0x0000, 0x0000, 0x0000}, + { /* character 0x34 ('4'): (width=7) */ - 0x0000, 0x0000, 0x000C, 0x000C, - 0x000C, 0x0036, 0x0036, 0x0033, - 0x007F, 0x007F, 0x0030, 0x0030, - 0x0030, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x000C, 0x000C, + 0x000C, 0x0036, 0x0036, 0x0033, + 0x007F, 0x007F, 0x0030, 0x0030, + 0x0030, 0x0000, 0x0000, 0x0000}, + { /* character 0x35 ('5'): (width=6) */ - 0x0000, 0x0000, 0x003F, 0x003F, - 0x0003, 0x0003, 0x001F, 0x003F, - 0x0030, 0x0030, 0x0033, 0x003F, - 0x001E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x003F, 0x003F, + 0x0003, 0x0003, 0x001F, 0x003F, + 0x0030, 0x0030, 0x0033, 0x003F, + 0x001E, 0x0000, 0x0000, 0x0000}, + { /* character 0x36 ('6'): (width=6) */ - 0x0000, 0x0000, 0x000C, 0x000E, - 0x0006, 0x0003, 0x001F, 0x003F, - 0x0033, 0x0033, 0x0033, 0x001F, - 0x001E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x000C, 0x000E, + 0x0006, 0x0003, 0x001F, 0x003F, + 0x0033, 0x0033, 0x0033, 0x001F, + 0x001E, 0x0000, 0x0000, 0x0000}, + { /* character 0x37 ('7'): (width=6) */ - 0x0000, 0x0000, 0x003F, 0x003F, - 0x0030, 0x0030, 0x0018, 0x0018, - 0x000C, 0x000C, 0x000C, 0x000C, - 0x000C, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x003F, 0x003F, + 0x0030, 0x0030, 0x0018, 0x0018, + 0x000C, 0x000C, 0x000C, 0x000C, + 0x000C, 0x0000, 0x0000, 0x0000}, + { /* character 0x38 ('8'): (width=6) */ - 0x0000, 0x0000, 0x001E, 0x003F, - 0x0033, 0x0033, 0x003F, 0x001E, - 0x0033, 0x0033, 0x0033, 0x003F, - 0x001E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x001E, 0x003F, + 0x0033, 0x0033, 0x003F, 0x001E, + 0x0033, 0x0033, 0x0033, 0x003F, + 0x001E, 0x0000, 0x0000, 0x0000}, + { /* character 0x39 ('9'): (width=6) */ - 0x0000, 0x0000, 0x001E, 0x003F, - 0x0033, 0x0033, 0x0033, 0x003F, - 0x003E, 0x0030, 0x0018, 0x001C, - 0x000C, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x001E, 0x003F, + 0x0033, 0x0033, 0x0033, 0x003F, + 0x003E, 0x0030, 0x0018, 0x001C, + 0x000C, 0x0000, 0x0000, 0x0000}, + { /* character 0x3A (':'): (width=2) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0003, 0x0003, 0x0000, - 0x0000, 0x0003, 0x0003, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0003, 0x0003, 0x0000, + 0x0000, 0x0003, 0x0003, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000}, /* character 0x3B (';'): (width=2) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0003, 0x0003, 0x0000, - 0x0002, 0x0003, 0x0003, 0x0001, - 0x0000, 0x0000, 0x0000, 0x0000, - + {0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0003, 0x0003, 0x0000, + 0x0002, 0x0003, 0x0003, 0x0001, + 0x0000, 0x0000, 0x0000, 0x0000}, + { /* character 0x3C ('<'): (width=8) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x00C0, 0x00F0, 0x003C, 0x000F, - 0x003C, 0x00F0, 0x00C0, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x00C0, 0x00F0, 0x003C, 0x000F, + 0x003C, 0x00F0, 0x00C0, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000}, + { /* character 0x3D ('='): (width=7) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x007F, 0x007F, - 0x0000, 0x007F, 0x007F, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x007F, 0x007F, + 0x0000, 0x007F, 0x007F, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000}, + { /* character 0x3E ('>'): (width=8) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0003, 0x000F, 0x003C, 0x00F0, - 0x003C, 0x000F, 0x0003, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0003, 0x000F, 0x003C, 0x00F0, + 0x003C, 0x000F, 0x0003, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000}, + { /* character 0x3F ('?'): (width=6) */ - 0x0000, 0x0000, 0x001E, 0x003F, - 0x0033, 0x0030, 0x0018, 0x001C, - 0x000C, 0x000C, 0x0000, 0x000C, - 0x000C, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x001E, 0x003F, + 0x0033, 0x0030, 0x0018, 0x001C, + 0x000C, 0x000C, 0x0000, 0x000C, + 0x000C, 0x0000, 0x0000, 0x0000}, + { /* character 0x40 ('@'): (width=11) */ - 0x0000, 0x0000, 0x01F8, 0x03FE, - 0x0706, 0x06F3, 0x06FB, 0x06DB, - 0x07FB, 0x03F3, 0x0006, 0x01FE, - 0x00F8, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x01F8, 0x03FE, + 0x0706, 0x06F3, 0x06FB, 0x06DB, + 0x07FB, 0x03F3, 0x0006, 0x01FE, + 0x00F8, 0x0000, 0x0000, 0x0000}, + { /* character 0x41 ('A'): (width=9) */ - 0x0000, 0x0000, 0x0010, 0x0010, - 0x0038, 0x0038, 0x006C, 0x006C, - 0x00C6, 0x00C6, 0x01FF, 0x0183, - 0x0183, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0010, 0x0010, + 0x0038, 0x0038, 0x006C, 0x006C, + 0x00C6, 0x00C6, 0x01FF, 0x0183, + 0x0183, 0x0000, 0x0000, 0x0000}, + { /* character 0x42 ('B'): (width=7) */ - 0x0000, 0x0000, 0x003F, 0x007F, - 0x0063, 0x0063, 0x003F, 0x007F, - 0x0063, 0x0063, 0x0063, 0x007F, - 0x003F, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x003F, 0x007F, + 0x0063, 0x0063, 0x003F, 0x007F, + 0x0063, 0x0063, 0x0063, 0x007F, + 0x003F, 0x0000, 0x0000, 0x0000}, + { /* character 0x43 ('C'): (width=7) */ - 0x0000, 0x0000, 0x003E, 0x007F, - 0x0063, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0063, 0x007F, - 0x003E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x003E, 0x007F, + 0x0063, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0063, 0x007F, + 0x003E, 0x0000, 0x0000, 0x0000}, + { /* character 0x44 ('D'): (width=7) */ - 0x0000, 0x0000, 0x003F, 0x007F, - 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x007F, - 0x003F, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x003F, 0x007F, + 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x007F, + 0x003F, 0x0000, 0x0000, 0x0000}, + { /* character 0x45 ('E'): (width=7) */ - 0x0000, 0x0000, 0x007F, 0x007F, - 0x0003, 0x0003, 0x001F, 0x001F, - 0x0003, 0x0003, 0x0003, 0x007F, - 0x007F, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x007F, 0x007F, + 0x0003, 0x0003, 0x001F, 0x001F, + 0x0003, 0x0003, 0x0003, 0x007F, + 0x007F, 0x0000, 0x0000, 0x0000}, + { /* character 0x46 ('F'): (width=6) */ - 0x0000, 0x0000, 0x003F, 0x003F, - 0x0003, 0x0003, 0x003F, 0x003F, - 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x003F, 0x003F, + 0x0003, 0x0003, 0x003F, 0x003F, + 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0000, 0x0000, 0x0000}, + { /* character 0x47 ('G'): (width=7) */ - 0x0000, 0x0000, 0x003E, 0x007F, - 0x0063, 0x0003, 0x0003, 0x007B, - 0x007B, 0x0063, 0x0063, 0x007F, - 0x003E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x003E, 0x007F, + 0x0063, 0x0003, 0x0003, 0x007B, + 0x007B, 0x0063, 0x0063, 0x007F, + 0x003E, 0x0000, 0x0000, 0x0000}, + { /* character 0x48 ('H'): (width=7) */ - 0x0000, 0x0000, 0x0063, 0x0063, - 0x0063, 0x0063, 0x007F, 0x007F, - 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0063, 0x0063, + 0x0063, 0x0063, 0x007F, 0x007F, + 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0000, 0x0000, 0x0000}, + { /* character 0x49 ('I'): (width=4) */ - 0x0000, 0x0000, 0x000F, 0x000F, - 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x000F, - 0x000F, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x000F, 0x000F, + 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x000F, + 0x000F, 0x0000, 0x0000, 0x0000}, + { /* character 0x4A ('J'): (width=6) */ - 0x0000, 0x0000, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0033, 0x003F, - 0x001E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0033, 0x003F, + 0x001E, 0x0000, 0x0000, 0x0000}, + { /* character 0x4B ('K'): (width=7) */ - 0x0000, 0x0000, 0x0063, 0x0073, - 0x003B, 0x001F, 0x000F, 0x0007, - 0x000F, 0x001F, 0x003B, 0x0073, - 0x0063, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0063, 0x0073, + 0x003B, 0x001F, 0x000F, 0x0007, + 0x000F, 0x001F, 0x003B, 0x0073, + 0x0063, 0x0000, 0x0000, 0x0000}, + { /* character 0x4C ('L'): (width=6) */ - 0x0000, 0x0000, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x003F, - 0x003F, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x003F, + 0x003F, 0x0000, 0x0000, 0x0000}, + { /* character 0x4D ('M'): (width=11) */ - 0x0000, 0x0000, 0x0401, 0x0603, - 0x0707, 0x078F, 0x07DF, 0x06FB, - 0x0673, 0x0623, 0x0603, 0x0603, - 0x0603, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0401, 0x0603, + 0x0707, 0x078F, 0x07DF, 0x06FB, + 0x0673, 0x0623, 0x0603, 0x0603, + 0x0603, 0x0000, 0x0000, 0x0000}, + { /* character 0x4E ('N'): (width=9) */ - 0x0000, 0x0000, 0x0181, 0x0183, - 0x0187, 0x018F, 0x019F, 0x01BB, - 0x01F3, 0x01E3, 0x01C3, 0x0183, - 0x0103, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0181, 0x0183, + 0x0187, 0x018F, 0x019F, 0x01BB, + 0x01F3, 0x01E3, 0x01C3, 0x0183, + 0x0103, 0x0000, 0x0000, 0x0000}, + { /* character 0x4F ('O'): (width=7) */ - 0x0000, 0x0000, 0x003E, 0x007F, - 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x007F, - 0x003E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x003E, 0x007F, + 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x007F, + 0x003E, 0x0000, 0x0000, 0x0000}, + { /* character 0x50 ('P'): (width=7) */ - 0x0000, 0x0000, 0x003F, 0x007F, - 0x0063, 0x0063, 0x0063, 0x007F, - 0x003F, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x003F, 0x007F, + 0x0063, 0x0063, 0x0063, 0x007F, + 0x003F, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0000, 0x0000, 0x0000}, + { /* character 0x51 ('Q'): (width=8) */ - 0x0000, 0x0000, 0x003E, 0x007F, - 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x007F, - 0x003E, 0x00F0, 0x0060, 0x0000, - + 0x0000, 0x0000, 0x003E, 0x007F, + 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x007F, + 0x003E, 0x00F0, 0x0060, 0x0000}, + { /* character 0x52 ('R'): (width=7) */ - 0x0000, 0x0000, 0x003F, 0x007F, - 0x0063, 0x0063, 0x0063, 0x003F, - 0x007F, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x003F, 0x007F, + 0x0063, 0x0063, 0x0063, 0x003F, + 0x007F, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0000, 0x0000, 0x0000}, + { /* character 0x53 ('S'): (width=6) */ - 0x0000, 0x0000, 0x001E, 0x003F, - 0x0033, 0x0003, 0x0007, 0x001E, - 0x0038, 0x0030, 0x0033, 0x003F, - 0x001E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x001E, 0x003F, + 0x0033, 0x0003, 0x0007, 0x001E, + 0x0038, 0x0030, 0x0033, 0x003F, + 0x001E, 0x0000, 0x0000, 0x0000}, + { /* character 0x54 ('T'): (width=6) */ - 0x0000, 0x0000, 0x003F, 0x003F, - 0x000C, 0x000C, 0x000C, 0x000C, - 0x000C, 0x000C, 0x000C, 0x000C, - 0x000C, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x003F, 0x003F, + 0x000C, 0x000C, 0x000C, 0x000C, + 0x000C, 0x000C, 0x000C, 0x000C, + 0x000C, 0x0000, 0x0000, 0x0000}, + { /* character 0x55 ('U'): (width=7) */ - 0x0000, 0x0000, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x007F, - 0x003E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x007F, + 0x003E, 0x0000, 0x0000, 0x0000}, + { /* character 0x56 ('V'): (width=7) */ - 0x0000, 0x0000, 0x0063, 0x0063, - 0x0063, 0x0036, 0x0036, 0x0036, - 0x001C, 0x001C, 0x001C, 0x0008, - 0x0008, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0063, 0x0063, + 0x0063, 0x0036, 0x0036, 0x0036, + 0x001C, 0x001C, 0x001C, 0x0008, + 0x0008, 0x0000, 0x0000, 0x0000}, + { /* character 0x57 ('W'): (width=11) */ - 0x0000, 0x0000, 0x0603, 0x0623, - 0x0623, 0x0376, 0x0376, 0x0376, - 0x01DC, 0x01DC, 0x01DC, 0x0088, - 0x0088, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0603, 0x0623, + 0x0623, 0x0376, 0x0376, 0x0376, + 0x01DC, 0x01DC, 0x01DC, 0x0088, + 0x0088, 0x0000, 0x0000, 0x0000}, + { /* character 0x58 ('X'): (width=7) */ - 0x0000, 0x0000, 0x0063, 0x0063, - 0x0036, 0x0036, 0x001C, 0x001C, - 0x001C, 0x0036, 0x0036, 0x0063, - 0x0063, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0063, 0x0063, + 0x0036, 0x0036, 0x001C, 0x001C, + 0x001C, 0x0036, 0x0036, 0x0063, + 0x0063, 0x0000, 0x0000, 0x0000}, + { /* character 0x59 ('Y'): (width=8) */ - 0x0000, 0x0000, 0x00C3, 0x00C3, - 0x0066, 0x0066, 0x003C, 0x003C, - 0x0018, 0x0018, 0x0018, 0x0018, - 0x0018, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x00C3, 0x00C3, + 0x0066, 0x0066, 0x003C, 0x003C, + 0x0018, 0x0018, 0x0018, 0x0018, + 0x0018, 0x0000, 0x0000, 0x0000}, + { /* character 0x5A ('Z'): (width=7) */ - 0x0000, 0x0000, 0x007F, 0x007F, - 0x0030, 0x0030, 0x0018, 0x0018, - 0x000C, 0x000E, 0x0006, 0x007F, - 0x007F, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x007F, 0x007F, + 0x0030, 0x0030, 0x0018, 0x0018, + 0x000C, 0x000E, 0x0006, 0x007F, + 0x007F, 0x0000, 0x0000, 0x0000}, + { /* character 0x5B ('['): (width=4) */ - 0x000F, 0x000F, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x000F, 0x000F, 0x0000, - + 0x000F, 0x000F, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x000F, 0x000F, 0x0000}, + { /* character 0x5C ('\'): (width=6) */ - 0x0000, 0x0000, 0x0000, 0x0003, - 0x0003, 0x0006, 0x0006, 0x000C, - 0x000C, 0x0018, 0x0018, 0x0030, - 0x0030, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0003, + 0x0003, 0x0006, 0x0006, 0x000C, + 0x000C, 0x0018, 0x0018, 0x0030, + 0x0030, 0x0000, 0x0000, 0x0000}, + { /* character 0x5D (']'): (width=4) */ - 0x000F, 0x000F, 0x000C, 0x000C, - 0x000C, 0x000C, 0x000C, 0x000C, - 0x000C, 0x000C, 0x000C, 0x000C, - 0x000C, 0x000F, 0x000F, 0x0000, - + 0x000F, 0x000F, 0x000C, 0x000C, + 0x000C, 0x000C, 0x000C, 0x000C, + 0x000C, 0x000C, 0x000C, 0x000C, + 0x000C, 0x000F, 0x000F, 0x0000}, + { /* character 0x5E ('^'): (width=7) */ - 0x0000, 0x0000, 0x0000, 0x0008, - 0x0008, 0x001C, 0x001C, 0x0036, - 0x0036, 0x0063, 0x0063, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0008, + 0x0008, 0x001C, 0x001C, 0x0036, + 0x0036, 0x0063, 0x0063, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000}, + { /* character 0x5F ('_'): (width=9) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - 0x01FF, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x01FF, 0x0000, 0x0000, 0x0000}, + { /* character 0x60 ('`'): (width=3) */ - 0x0000, 0x0000, 0x0000, 0x0001, - 0x0003, 0x0006, 0x0004, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0001, + 0x0003, 0x0006, 0x0004, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000}, + { /* character 0x61 ('a'): (width=6) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x001E, 0x003F, 0x0030, - 0x003E, 0x003F, 0x0033, 0x003F, - 0x003E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x001E, 0x003F, 0x0030, + 0x003E, 0x003F, 0x0033, 0x003F, + 0x003E, 0x0000, 0x0000, 0x0000}, + { /* character 0x62 ('b'): (width=6) */ - 0x0000, 0x0000, 0x0003, 0x0003, - 0x0003, 0x001F, 0x003F, 0x0033, - 0x0033, 0x0033, 0x0033, 0x003F, - 0x001F, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0003, 0x0003, + 0x0003, 0x001F, 0x003F, 0x0033, + 0x0033, 0x0033, 0x0033, 0x003F, + 0x001F, 0x0000, 0x0000, 0x0000}, + { /* character 0x63 ('c'): (width=6) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x001E, 0x003F, 0x0033, - 0x0003, 0x0003, 0x0033, 0x003F, - 0x001E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x001E, 0x003F, 0x0033, + 0x0003, 0x0003, 0x0033, 0x003F, + 0x001E, 0x0000, 0x0000, 0x0000}, + { /* character 0x64 ('d'): (width=6) */ - 0x0000, 0x0000, 0x0030, 0x0030, - 0x0030, 0x003E, 0x003F, 0x0033, - 0x0033, 0x0033, 0x0033, 0x003F, - 0x003E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0030, 0x0030, + 0x0030, 0x003E, 0x003F, 0x0033, + 0x0033, 0x0033, 0x0033, 0x003F, + 0x003E, 0x0000, 0x0000, 0x0000}, + { /* character 0x65 ('e'): (width=6) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x001E, 0x003F, 0x0033, - 0x003F, 0x003F, 0x0003, 0x003F, - 0x001E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x001E, 0x003F, 0x0033, + 0x003F, 0x003F, 0x0003, 0x003F, + 0x001E, 0x0000, 0x0000, 0x0000}, + { /* character 0x66 ('f'): (width=4) */ - 0x0000, 0x0000, 0x000C, 0x000E, - 0x0006, 0x000F, 0x000F, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x000C, 0x000E, + 0x0006, 0x000F, 0x000F, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0000, 0x0000, 0x0000}, + { /* character 0x67 ('g'): (width=6) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x003E, 0x003F, 0x0033, - 0x0033, 0x0033, 0x0033, 0x003F, - 0x003E, 0x0030, 0x003E, 0x001C, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x003E, 0x003F, 0x0033, + 0x0033, 0x0033, 0x0033, 0x003F, + 0x003E, 0x0030, 0x003E, 0x001C}, + { /* character 0x68 ('h'): (width=6) */ - 0x0000, 0x0000, 0x0003, 0x0003, - 0x0003, 0x001F, 0x003F, 0x0033, - 0x0033, 0x0033, 0x0033, 0x0033, - 0x0033, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0003, 0x0003, + 0x0003, 0x001F, 0x003F, 0x0033, + 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0000, 0x0000, 0x0000}, + { /* character 0x69 ('i'): (width=2) */ - 0x0000, 0x0000, 0x0003, 0x0003, - 0x0000, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0003, 0x0003, + 0x0000, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0000, 0x0000, 0x0000}, + { /* character 0x6A ('j'): (width=5) */ - 0x0000, 0x0000, 0x0018, 0x0018, - 0x0000, 0x0018, 0x0018, 0x0018, - 0x0018, 0x0018, 0x0018, 0x0018, - 0x0018, 0x0018, 0x001F, 0x000E, - + 0x0000, 0x0000, 0x0018, 0x0018, + 0x0000, 0x0018, 0x0018, 0x0018, + 0x0018, 0x0018, 0x0018, 0x0018, + 0x0018, 0x0018, 0x001F, 0x000E}, + { /* character 0x6B ('k'): (width=6) */ - 0x0000, 0x0000, 0x0003, 0x0003, - 0x0003, 0x0033, 0x003B, 0x001F, - 0x000F, 0x000F, 0x001F, 0x003B, - 0x0033, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0003, 0x0003, + 0x0003, 0x0033, 0x003B, 0x001F, + 0x000F, 0x000F, 0x001F, 0x003B, + 0x0033, 0x0000, 0x0000, 0x0000}, + { /* character 0x6C ('l'): (width=2) */ - 0x0000, 0x0000, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0000, 0x0000, 0x0000}, + { /* character 0x6D ('m'): (width=10) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x01DB, 0x03FF, 0x0377, - 0x0333, 0x0333, 0x0333, 0x0333, - 0x0333, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x01DB, 0x03FF, 0x0377, + 0x0333, 0x0333, 0x0333, 0x0333, + 0x0333, 0x0000, 0x0000, 0x0000}, + { /* character 0x6E ('n'): (width=6) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x001B, 0x003F, 0x0037, - 0x0033, 0x0033, 0x0033, 0x0033, - 0x0033, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x001B, 0x003F, 0x0037, + 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0000, 0x0000, 0x0000}, + { /* character 0x6F ('o'): (width=6) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x001E, 0x003F, 0x0033, - 0x0033, 0x0033, 0x0033, 0x003F, - 0x001E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x001E, 0x003F, 0x0033, + 0x0033, 0x0033, 0x0033, 0x003F, + 0x001E, 0x0000, 0x0000, 0x0000}, + { /* character 0x70 ('p'): (width=6) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x001F, 0x003F, 0x0033, - 0x0033, 0x0033, 0x0033, 0x001F, - 0x001F, 0x0003, 0x0003, 0x0003, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x001F, 0x003F, 0x0033, + 0x0033, 0x0033, 0x0033, 0x001F, + 0x001F, 0x0003, 0x0003, 0x0003}, + { /* character 0x71 ('q'): (width=6) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x003E, 0x003F, 0x0033, - 0x0033, 0x0033, 0x0033, 0x003E, - 0x003E, 0x0030, 0x0030, 0x0030, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x003E, 0x003F, 0x0033, + 0x0033, 0x0033, 0x0033, 0x003E, + 0x003E, 0x0030, 0x0030, 0x0030}, + { /* character 0x72 ('r'): (width=5) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x001B, 0x001F, 0x0007, - 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x001B, 0x001F, 0x0007, + 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0000, 0x0000, 0x0000}, + { /* character 0x73 ('s'): (width=5) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x000E, 0x001F, 0x0003, - 0x000F, 0x001E, 0x0018, 0x001F, - 0x000E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x000E, 0x001F, 0x0003, + 0x000F, 0x001E, 0x0018, 0x001F, + 0x000E, 0x0000, 0x0000, 0x0000}, + { /* character 0x74 ('t'): (width=4) */ - 0x0000, 0x0000, 0x0004, 0x0006, - 0x0006, 0x000F, 0x000F, 0x0006, - 0x0006, 0x0006, 0x0006, 0x000E, - 0x000C, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0004, 0x0006, + 0x0006, 0x000F, 0x000F, 0x0006, + 0x0006, 0x0006, 0x0006, 0x000E, + 0x000C, 0x0000, 0x0000, 0x0000}, + { /* character 0x75 ('u'): (width=6) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0033, 0x0033, 0x0033, - 0x0033, 0x0033, 0x0033, 0x003F, - 0x003E, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x003F, + 0x003E, 0x0000, 0x0000, 0x0000}, + { /* character 0x76 ('v'): (width=7) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0063, 0x0063, 0x0036, - 0x0036, 0x001C, 0x001C, 0x0008, - 0x0008, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0063, 0x0063, 0x0036, + 0x0036, 0x001C, 0x001C, 0x0008, + 0x0008, 0x0000, 0x0000, 0x0000}, + { /* character 0x77 ('w'): (width=11) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0623, 0x0623, 0x0376, - 0x0376, 0x01DC, 0x01DC, 0x0088, - 0x0088, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0623, 0x0623, 0x0376, + 0x0376, 0x01DC, 0x01DC, 0x0088, + 0x0088, 0x0000, 0x0000, 0x0000}, + { /* character 0x78 ('x'): (width=7) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0063, 0x0077, 0x003E, - 0x001C, 0x001C, 0x003E, 0x0077, - 0x0063, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0063, 0x0077, 0x003E, + 0x001C, 0x001C, 0x003E, 0x0077, + 0x0063, 0x0000, 0x0000, 0x0000}, + { /* character 0x79 ('y'): (width=6) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0033, 0x0033, 0x0033, - 0x0033, 0x0033, 0x0033, 0x003F, - 0x003E, 0x0030, 0x003E, 0x001C, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x003F, + 0x003E, 0x0030, 0x003E, 0x001C}, + { /* character 0x7A ('z'): (width=6) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x003F, 0x003F, 0x0030, - 0x0018, 0x000C, 0x0006, 0x003F, - 0x003F, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x003F, 0x003F, 0x0030, + 0x0018, 0x000C, 0x0006, 0x003F, + 0x003F, 0x0000, 0x0000, 0x0000}, + { /* character 0x7B ('{'): (width=4) */ - 0x0008, 0x0004, 0x0006, 0x0006, - 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0006, - 0x0006, 0x0004, 0x0008, 0x0000, - + 0x0008, 0x0004, 0x0006, 0x0006, + 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0006, + 0x0006, 0x0004, 0x0008, 0x0000}, + { /* character 0x7C ('|'): (width=2) */ - 0x0000, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0000, 0x0000, - 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0000, 0x0000, + 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0000, 0x0000, 0x0000}, + { /* character 0x7D ('}'): (width=4) */ - 0x0001, 0x0002, 0x0006, 0x0006, - 0x000C, 0x000C, 0x000C, 0x000C, - 0x000C, 0x000C, 0x000C, 0x0006, - 0x0006, 0x0002, 0x0001, 0x0000, - + 0x0001, 0x0002, 0x0006, 0x0006, + 0x000C, 0x000C, 0x000C, 0x000C, + 0x000C, 0x000C, 0x000C, 0x0006, + 0x0006, 0x0002, 0x0001, 0x0000}, }; const unsigned char MetaWatch16width[PRINTABLE_CHARACTERS] = @@ -1619,91 +1627,91 @@ const unsigned char MetaWatch16width[PRINTABLE_CHARACTERS] = }; /******************************************************************************/ -const unsigned int MetaWatchTimeTable[TOTAL_TIME_CHARACTERS][19] = +const u16t MetaWatchTimeTable[TOTAL_TIME_CHARACTERS][19] = { /* character 0x30 ('0'): (width=11, offset=0) */ - 0x01FC, 0x03FE, 0x07FF, 0x07FF, - 0x078F, 0x078F, 0x078F, 0x078F, - 0x078F, 0x078F, 0x078F, 0x078F, - 0x078F, 0x078F, 0x078F, 0x07FF, - 0x07FF, 0x03FE, 0x01FC, - + {0x01FC, 0x03FE, 0x07FF, 0x07FF, + 0x078F, 0x078F, 0x078F, 0x078F, + 0x078F, 0x078F, 0x078F, 0x078F, + 0x078F, 0x078F, 0x078F, 0x07FF, + 0x07FF, 0x03FE, 0x01FC}, + { /* character 0x31 ('1'): (width=11, offset=38) */ - 0x01C0, 0x01E0, 0x01F8, 0x01F8, - 0x01F8, 0x01F8, 0x01E0, 0x01E0, - 0x01E0, 0x01E0, 0x01E0, 0x01E0, - 0x01E0, 0x01E0, 0x01E0, 0x01E0, - 0x01E0, 0x01E0, 0x01E0, - + 0x01C0, 0x01E0, 0x01F8, 0x01F8, + 0x01F8, 0x01F8, 0x01E0, 0x01E0, + 0x01E0, 0x01E0, 0x01E0, 0x01E0, + 0x01E0, 0x01E0, 0x01E0, 0x01E0, + 0x01E0, 0x01E0, 0x01E0}, + { /* character 0x32 ('2'): (width=11, offset=76) */ - 0x01FC, 0x03FE, 0x07FF, 0x07FF, - 0x078F, 0x078F, 0x0780, 0x07C0, - 0x07E0, 0x03F0, 0x01F8, 0x00FC, - 0x007E, 0x003F, 0x001F, 0x07FF, - 0x07FF, 0x07FF, 0x07FF, - + 0x01FC, 0x03FE, 0x07FF, 0x07FF, + 0x078F, 0x078F, 0x0780, 0x07C0, + 0x07E0, 0x03F0, 0x01F8, 0x00FC, + 0x007E, 0x003F, 0x001F, 0x07FF, + 0x07FF, 0x07FF, 0x07FF}, + { /* character 0x33 ('3'): (width=11, offset=114) */ - 0x01FC, 0x03FE, 0x07FF, 0x07FF, - 0x078F, 0x078F, 0x0780, 0x07C0, - 0x03F0, 0x01F0, 0x03F0, 0x07C0, - 0x0780, 0x078F, 0x078F, 0x07FF, - 0x07FF, 0x03FE, 0x01FC, - + 0x01FC, 0x03FE, 0x07FF, 0x07FF, + 0x078F, 0x078F, 0x0780, 0x07C0, + 0x03F0, 0x01F0, 0x03F0, 0x07C0, + 0x0780, 0x078F, 0x078F, 0x07FF, + 0x07FF, 0x03FE, 0x01FC}, + { /* character 0x34 ('4'): (width=11, offset=152) */ - 0x003C, 0x07BC, 0x07BC, 0x079E, - 0x079E, 0x078F, 0x078F, 0x07FF, - 0x07FF, 0x07FF, 0x07FF, 0x0780, - 0x0780, 0x0780, 0x0780, 0x0780, - 0x0780, 0x0780, 0x0780, - + 0x003C, 0x07BC, 0x07BC, 0x079E, + 0x079E, 0x078F, 0x078F, 0x07FF, + 0x07FF, 0x07FF, 0x07FF, 0x0780, + 0x0780, 0x0780, 0x0780, 0x0780, + 0x0780, 0x0780, 0x0780}, + { /* character 0x35 ('5'): (width=11, offset=190) */ - 0x07FF, 0x07FF, 0x07FF, 0x07FF, - 0x000F, 0x000F, 0x000F, 0x03FF, - 0x07FF, 0x07FF, 0x07FF, 0x0780, - 0x0780, 0x0780, 0x07C0, 0x07FF, - 0x03FF, 0x03FF, 0x00FF, - + 0x07FF, 0x07FF, 0x07FF, 0x07FF, + 0x000F, 0x000F, 0x000F, 0x03FF, + 0x07FF, 0x07FF, 0x07FF, 0x0780, + 0x0780, 0x0780, 0x07C0, 0x07FF, + 0x03FF, 0x03FF, 0x00FF}, + { /* character 0x36 ('6'): (width=11, offset=228) */ - 0x01F0, 0x01FC, 0x01FE, 0x01FE, - 0x001F, 0x000F, 0x000F, 0x01FF, - 0x03FF, 0x07FF, 0x07FF, 0x078F, - 0x078F, 0x078F, 0x078F, 0x07FF, - 0x07FF, 0x03FE, 0x01FC, - + 0x01F0, 0x01FC, 0x01FE, 0x01FE, + 0x001F, 0x000F, 0x000F, 0x01FF, + 0x03FF, 0x07FF, 0x07FF, 0x078F, + 0x078F, 0x078F, 0x078F, 0x07FF, + 0x07FF, 0x03FE, 0x01FC}, + { /* character 0x37 ('7'): (width=11, offset=266) */ - 0x07FF, 0x07FF, 0x07FF, 0x07FF, - 0x0780, 0x07C0, 0x03C0, 0x03E0, - 0x01E0, 0x01F0, 0x00F0, 0x00F8, - 0x0078, 0x0078, 0x0078, 0x0078, - 0x0078, 0x0078, 0x0078, - + 0x07FF, 0x07FF, 0x07FF, 0x07FF, + 0x0780, 0x07C0, 0x03C0, 0x03E0, + 0x01E0, 0x01F0, 0x00F0, 0x00F8, + 0x0078, 0x0078, 0x0078, 0x0078, + 0x0078, 0x0078, 0x0078}, + { /* character 0x38 ('8'): (width=11, offset=304) */ - 0x01FC, 0x03FE, 0x07FF, 0x07FF, - 0x078F, 0x078F, 0x078F, 0x07FF, - 0x07FF, 0x03FE, 0x07FF, 0x078F, - 0x078F, 0x078F, 0x078F, 0x07FF, - 0x07FF, 0x03FE, 0x01FC, - + 0x01FC, 0x03FE, 0x07FF, 0x07FF, + 0x078F, 0x078F, 0x078F, 0x07FF, + 0x07FF, 0x03FE, 0x07FF, 0x078F, + 0x078F, 0x078F, 0x078F, 0x07FF, + 0x07FF, 0x03FE, 0x01FC}, + { /* character 0x39 ('9'): (width=11, offset=342) */ - 0x01FC, 0x03FE, 0x07FF, 0x07FF, - 0x078F, 0x078F, 0x078F, 0x078F, - 0x07FF, 0x07FF, 0x07FE, 0x07FC, - 0x0780, 0x0780, 0x07C0, 0x03FC, - 0x03FC, 0x01FC, 0x007C, - + 0x01FC, 0x03FE, 0x07FF, 0x07FF, + 0x078F, 0x078F, 0x078F, 0x078F, + 0x07FF, 0x07FF, 0x07FE, 0x07FC, + 0x0780, 0x0780, 0x07C0, 0x03FC, + 0x03FC, 0x01FC, 0x007C}, + { /* character 0x3A (':'): (width=4, offset=380) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0006, 0x000F, 0x000F, 0x0006, - 0x0000, 0x0000, 0x0000, 0x0006, - 0x000F, 0x000F, 0x0006, 0x0000, - 0x0000, 0x0000, 0x0000, - + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0006, 0x000F, 0x000F, 0x0006, + 0x0000, 0x0000, 0x0000, 0x0006, + 0x000F, 0x000F, 0x0006, 0x0000, + 0x0000, 0x0000, 0x0000}, + { /* character 0x3B (';'): (width=11, offset=418) */ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000}, }; const unsigned char MetaWatchTimeWidth[TOTAL_TIME_CHARACTERS] = @@ -1726,101 +1734,102 @@ const unsigned char MetaWatchTimeWidth[TOTAL_TIME_CHARACTERS] = /******************************************************************************/ -const unsigned char MetaWatchMonospaced10[PRINTABLE_CHARACTERS][10] = +const unsigned char MetaWatchMonospaced10Table[PRINTABLE_CHARACTERS][10] = { - 0x00,0x00,0x10,0x38,0x38,0x10,0x10,0x00,0x10,0x00, - 0x00,0x00,0x6C,0x6C,0x24,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x28,0x7C,0x28,0x28,0x7C,0x28,0x00, - 0x00,0x00,0x10,0x70,0x08,0x30,0x40,0x38,0x20,0x00, - 0x00,0x00,0x4C,0x4C,0x20,0x10,0x08,0x64,0x64,0x00, - 0x00,0x00,0x08,0x14,0x14,0x08,0x54,0x24,0x58,0x00, - 0x00,0x00,0x18,0x18,0x10,0x08,0x00,0x00,0x00,0x00, - 0x00,0x00,0x10,0x08,0x08,0x08,0x08,0x08,0x10,0x00, - 0x00,0x00,0x10,0x20,0x20,0x20,0x20,0x20,0x10,0x00, - 0x00,0x00,0x92,0x54,0x38,0xFE,0x38,0x54,0x92,0x00, - 0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x10,0x08, - 0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00, - 0x00,0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x00,0x00, - 0x00,0x00,0x38,0x44,0x64,0x54,0x4C,0x44,0x38,0x00, - 0x00,0x00,0x10,0x18,0x10,0x10,0x10,0x10,0x38,0x00, - 0x00,0x00,0x38,0x44,0x40,0x30,0x08,0x04,0x7C,0x00, - 0x00,0x00,0x38,0x44,0x40,0x38,0x40,0x44,0x38,0x00, - 0x00,0x00,0x20,0x30,0x28,0x24,0x7C,0x20,0x20,0x00, - 0x00,0x00,0x7C,0x04,0x04,0x3C,0x40,0x44,0x38,0x00, - 0x00,0x00,0x30,0x08,0x04,0x3C,0x44,0x44,0x38,0x00, - 0x00,0x00,0x7C,0x40,0x20,0x10,0x08,0x08,0x08,0x00, - 0x00,0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x38,0x00, - 0x00,0x00,0x38,0x44,0x44,0x78,0x40,0x20,0x18,0x00, - 0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x00, - 0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x10, - 0x00,0x00,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x00, - 0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00, - 0x00,0x00,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x00, - 0x00,0x00,0x38,0x44,0x40,0x30,0x10,0x00,0x10,0x00, - 0x00,0x00,0x38,0x44,0x74,0x54,0x74,0x04,0x38,0x00, - 0x00,0x00,0x38,0x44,0x44,0x44,0x7C,0x44,0x44,0x00, - 0x00,0x00,0x3C,0x44,0x44,0x3C,0x44,0x44,0x3C,0x00, - 0x00,0x00,0x38,0x44,0x04,0x04,0x04,0x44,0x38,0x00, - 0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x00, - 0x00,0x00,0x7C,0x04,0x04,0x3C,0x04,0x04,0x7C,0x00, - 0x00,0x00,0x7C,0x04,0x04,0x3C,0x04,0x04,0x04,0x00, - 0x00,0x00,0x38,0x44,0x04,0x74,0x44,0x44,0x78,0x00, - 0x00,0x00,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x00, - 0x00,0x00,0x38,0x10,0x10,0x10,0x10,0x10,0x38,0x00, - 0x00,0x00,0x40,0x40,0x40,0x40,0x44,0x44,0x38,0x00, - 0x00,0x00,0x44,0x24,0x14,0x0C,0x14,0x24,0x44,0x00, - 0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x7C,0x00, - 0x00,0x00,0x44,0x6C,0x54,0x44,0x44,0x44,0x44,0x00, - 0x00,0x00,0x44,0x4C,0x54,0x64,0x44,0x44,0x44,0x00, - 0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,0x00, - 0x00,0x00,0x3C,0x44,0x44,0x3C,0x04,0x04,0x04,0x00, - 0x00,0x00,0x38,0x44,0x44,0x44,0x54,0x24,0x58,0x00, - 0x00,0x00,0x3C,0x44,0x44,0x3C,0x24,0x44,0x44,0x00, - 0x00,0x00,0x38,0x44,0x04,0x38,0x40,0x44,0x38,0x00, - 0x00,0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x00, - 0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00, - 0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x28,0x10,0x00, - 0x00,0x00,0x44,0x44,0x54,0x54,0x54,0x54,0x28,0x00, - 0x00,0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x00, - 0x00,0x00,0x44,0x44,0x44,0x28,0x10,0x10,0x10,0x00, - 0x00,0x00,0x7C,0x40,0x20,0x10,0x08,0x04,0x7C,0x00, - 0x00,0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x38,0x00, - 0x00,0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x00,0x00, - 0x00,0x00,0x38,0x20,0x20,0x20,0x20,0x20,0x38,0x00, - 0x00,0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00, - 0x00,0x18,0x18,0x08,0x10,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x38,0x40,0x78,0x44,0x78,0x00, - 0x00,0x00,0x04,0x04,0x3C,0x44,0x44,0x44,0x3C,0x00, - 0x00,0x00,0x00,0x00,0x38,0x44,0x04,0x44,0x38,0x00, - 0x00,0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x78,0x00, - 0x00,0x00,0x00,0x00,0x38,0x44,0x3C,0x04,0x38,0x00, - 0x00,0x00,0x60,0x10,0x10,0x78,0x10,0x10,0x10,0x00, - 0x00,0x00,0x00,0x78,0x44,0x44,0x78,0x40,0x38,0x00, - 0x00,0x00,0x08,0x08,0x38,0x48,0x48,0x48,0x48,0x00, - 0x00,0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x10,0x00, - 0x00,0x00,0x40,0x00,0x60,0x40,0x40,0x40,0x48,0x30, - 0x00,0x00,0x08,0x08,0x48,0x28,0x18,0x28,0x48,0x00, - 0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00, - 0x00,0x00,0x00,0x00,0x2C,0x54,0x54,0x44,0x44,0x00, - 0x00,0x00,0x00,0x00,0x38,0x48,0x48,0x48,0x48,0x00, - 0x00,0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00, - 0x00,0x00,0x00,0x00,0x3C,0x44,0x44,0x3C,0x04,0x04, - 0x00,0x00,0x00,0x00,0x78,0x44,0x44,0x78,0x40,0x40, - 0x00,0x00,0x00,0x00,0x34,0x48,0x08,0x08,0x1C,0x00, - 0x00,0x00,0x00,0x00,0x38,0x04,0x38,0x40,0x38,0x00, - 0x00,0x00,0x00,0x10,0x78,0x10,0x10,0x50,0x20,0x00, - 0x00,0x00,0x00,0x00,0x48,0x48,0x48,0x68,0x50,0x00, - 0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x28,0x10,0x00, - 0x00,0x00,0x00,0x00,0x44,0x44,0x54,0x7C,0x28,0x00, - 0x00,0x00,0x00,0x00,0x44,0x28,0x10,0x28,0x44,0x00, - 0x00,0x00,0x00,0x00,0x48,0x48,0x48,0x70,0x40,0x70, - 0x00,0x00,0x00,0x00,0x78,0x40,0x30,0x08,0x78,0x00, - 0x00,0x00,0x30,0x08,0x08,0x0C,0x08,0x08,0x30,0x00, - 0x00,0x00,0x10,0x10,0x10,0x00,0x10,0x10,0x10,0x00, - 0x00,0x00,0x18,0x20,0x20,0x60,0x20,0x20,0x18,0x00, - 0x00,0x00,0x00,0x50,0x28,0x00,0x00,0x00,0x00,0x00, + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, + {0x00,0x00,0x10,0x38,0x38,0x10,0x10,0x00,0x10,0x00}, + {0x00,0x00,0x6C,0x6C,0x24,0x00,0x00,0x00,0x00,0x00}, + {0x00,0x00,0x00,0x28,0x7C,0x28,0x28,0x7C,0x28,0x00}, + {0x00,0x00,0x10,0x70,0x08,0x30,0x40,0x38,0x20,0x00}, + {0x00,0x00,0x4C,0x4C,0x20,0x10,0x08,0x64,0x64,0x00}, + {0x00,0x00,0x08,0x14,0x14,0x08,0x54,0x24,0x58,0x00}, + {0x00,0x00,0x18,0x18,0x10,0x08,0x00,0x00,0x00,0x00}, + {0x00,0x00,0x10,0x08,0x08,0x08,0x08,0x08,0x10,0x00}, + {0x00,0x00,0x10,0x20,0x20,0x20,0x20,0x20,0x10,0x00}, + {0x00,0x00,0x92,0x54,0x38,0xFE,0x38,0x54,0x92,0x00}, + {0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00}, + {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x10,0x08}, + {0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00}, + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00}, + {0x00,0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x00,0x00}, + {0x00,0x00,0x38,0x44,0x64,0x54,0x4C,0x44,0x38,0x00}, + {0x00,0x00,0x10,0x18,0x10,0x10,0x10,0x10,0x38,0x00}, + {0x00,0x00,0x38,0x44,0x40,0x30,0x08,0x04,0x7C,0x00}, + {0x00,0x00,0x38,0x44,0x40,0x38,0x40,0x44,0x38,0x00}, + {0x00,0x00,0x20,0x30,0x28,0x24,0x7C,0x20,0x20,0x00}, + {0x00,0x00,0x7C,0x04,0x04,0x3C,0x40,0x44,0x38,0x00}, + {0x00,0x00,0x30,0x08,0x04,0x3C,0x44,0x44,0x38,0x00}, + {0x00,0x00,0x7C,0x40,0x20,0x10,0x08,0x08,0x08,0x00}, + {0x00,0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x38,0x00}, + {0x00,0x00,0x38,0x44,0x44,0x78,0x40,0x20,0x18,0x00}, + {0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x00}, + {0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x10}, + {0x00,0x00,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x00}, + {0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00}, + {0x00,0x00,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x00}, + {0x00,0x00,0x38,0x44,0x40,0x30,0x10,0x00,0x10,0x00}, + {0x00,0x00,0x38,0x44,0x74,0x54,0x74,0x04,0x38,0x00}, + {0x00,0x00,0x38,0x44,0x44,0x44,0x7C,0x44,0x44,0x00}, + {0x00,0x00,0x3C,0x44,0x44,0x3C,0x44,0x44,0x3C,0x00}, + {0x00,0x00,0x38,0x44,0x04,0x04,0x04,0x44,0x38,0x00}, + {0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x00}, + {0x00,0x00,0x7C,0x04,0x04,0x3C,0x04,0x04,0x7C,0x00}, + {0x00,0x00,0x7C,0x04,0x04,0x3C,0x04,0x04,0x04,0x00}, + {0x00,0x00,0x38,0x44,0x04,0x74,0x44,0x44,0x78,0x00}, + {0x00,0x00,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x00}, + {0x00,0x00,0x38,0x10,0x10,0x10,0x10,0x10,0x38,0x00}, + {0x00,0x00,0x40,0x40,0x40,0x40,0x44,0x44,0x38,0x00}, + {0x00,0x00,0x44,0x24,0x14,0x0C,0x14,0x24,0x44,0x00}, + {0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x7C,0x00}, + {0x00,0x00,0x44,0x6C,0x54,0x44,0x44,0x44,0x44,0x00}, + {0x00,0x00,0x44,0x4C,0x54,0x64,0x44,0x44,0x44,0x00}, + {0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,0x00}, + {0x00,0x00,0x3C,0x44,0x44,0x3C,0x04,0x04,0x04,0x00}, + {0x00,0x00,0x38,0x44,0x44,0x44,0x54,0x24,0x58,0x00}, + {0x00,0x00,0x3C,0x44,0x44,0x3C,0x24,0x44,0x44,0x00}, + {0x00,0x00,0x38,0x44,0x04,0x38,0x40,0x44,0x38,0x00}, + {0x00,0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x00}, + {0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00}, + {0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x28,0x10,0x00}, + {0x00,0x00,0x44,0x44,0x54,0x54,0x54,0x54,0x28,0x00}, + {0x00,0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x00}, + {0x00,0x00,0x44,0x44,0x44,0x28,0x10,0x10,0x10,0x00}, + {0x00,0x00,0x7C,0x40,0x20,0x10,0x08,0x04,0x7C,0x00}, + {0x00,0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x38,0x00}, + {0x00,0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x00,0x00}, + {0x00,0x00,0x38,0x20,0x20,0x20,0x20,0x20,0x38,0x00}, + {0x00,0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00}, + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00}, + {0x00,0x18,0x18,0x08,0x10,0x00,0x00,0x00,0x00,0x00}, + {0x00,0x00,0x00,0x00,0x38,0x40,0x78,0x44,0x78,0x00}, + {0x00,0x00,0x04,0x04,0x3C,0x44,0x44,0x44,0x3C,0x00}, + {0x00,0x00,0x00,0x00,0x38,0x44,0x04,0x44,0x38,0x00}, + {0x00,0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x78,0x00}, + {0x00,0x00,0x00,0x00,0x38,0x44,0x3C,0x04,0x38,0x00}, + {0x00,0x00,0x60,0x10,0x10,0x78,0x10,0x10,0x10,0x00}, + {0x00,0x00,0x00,0x78,0x44,0x44,0x78,0x40,0x38,0x00}, + {0x00,0x00,0x08,0x08,0x38,0x48,0x48,0x48,0x48,0x00}, + {0x00,0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x10,0x00}, + {0x00,0x00,0x40,0x00,0x60,0x40,0x40,0x40,0x48,0x30}, + {0x00,0x00,0x08,0x08,0x48,0x28,0x18,0x28,0x48,0x00}, + {0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00}, + {0x00,0x00,0x00,0x00,0x2C,0x54,0x54,0x44,0x44,0x00}, + {0x00,0x00,0x00,0x00,0x38,0x48,0x48,0x48,0x48,0x00}, + {0x00,0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00}, + {0x00,0x00,0x00,0x00,0x3C,0x44,0x44,0x3C,0x04,0x04}, + {0x00,0x00,0x00,0x00,0x78,0x44,0x44,0x78,0x40,0x40}, + {0x00,0x00,0x00,0x00,0x34,0x48,0x08,0x08,0x1C,0x00}, + {0x00,0x00,0x00,0x00,0x38,0x04,0x38,0x40,0x38,0x00}, + {0x00,0x00,0x00,0x10,0x78,0x10,0x10,0x50,0x20,0x00}, + {0x00,0x00,0x00,0x00,0x48,0x48,0x48,0x68,0x50,0x00}, + {0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x28,0x10,0x00}, + {0x00,0x00,0x00,0x00,0x44,0x44,0x54,0x7C,0x28,0x00}, + {0x00,0x00,0x00,0x00,0x44,0x28,0x10,0x28,0x44,0x00}, + {0x00,0x00,0x00,0x00,0x48,0x48,0x48,0x70,0x40,0x70}, + {0x00,0x00,0x00,0x00,0x78,0x40,0x30,0x08,0x78,0x00}, + {0x00,0x00,0x30,0x08,0x08,0x0C,0x08,0x08,0x30,0x00}, + {0x00,0x00,0x10,0x10,0x10,0x00,0x10,0x10,0x10,0x00}, + {0x00,0x00,0x18,0x20,0x20,0x60,0x20,0x20,0x18,0x00}, +// {0x00,0x00,0x00,0x50,0x28,0x00,0x00,0x00,0x00,0x00}, }; diff --git a/ui/Fonts.h b/ui/Fonts.h index 42576c0..014ff69 100644 --- a/ui/Fonts.h +++ b/ui/Fonts.h @@ -23,6 +23,8 @@ */ /******************************************************************************/ +#include "oswald.h" + #ifndef FONTS_H #define FONTS_H @@ -38,8 +40,8 @@ typedef enum MetaWatch5Oled, MetaWatch7Oled, MetaWatch16Oled, - MetaWatchIconOled - + MetaWatchIconOled, + MetaWatchMonospaced10 } etFontType; /*! Use to size the bitmap used in the Display Task for printing characters FOR @@ -84,7 +86,7 @@ unsigned char MapDigitToIndex(unsigned char Digit); * The function works with ints so that it is generic for both types * */ -void GetCharacterBitmap(unsigned char Character,unsigned int * pBitmap); +void GetCharacterBitmap(unsigned char Character, u16t *pBitmap); /*! Get the width for a specified character * * diff --git a/ui/LcdDisplay.c b/ui/LcdDisplay.c index 87bae7f..dbf775f 100644 --- a/ui/LcdDisplay.c +++ b/ui/LcdDisplay.c @@ -4,11 +4,6 @@ #include "LcdDisplay.h" -#define NUM_LCD_ROWS 96 -#define NUM_LCD_COL_BYTES ( 12 ) -#define MAX_FONT_ROWS ( 19 ) - - void DrawLcdLineBresenham(u8t xstart, u8t ystart, u8t xend, u8t yend) { int x, y, t, dx, dy, incx, incy, pdx, pdy, ddx, ddy, es, el, err; @@ -51,6 +46,7 @@ void DrawLcdLineBresenham(u8t xstart, u8t ystart, u8t xend, u8t yend) } lcd_set_pixel(x, y, TRUE); } + // lcd_update_display(); } void DrawLcdLineBresenhamWW(u8t xstart, u8t ystart, u8t xend, u8t yend, u8t thickness) @@ -107,16 +103,17 @@ void DrawLcdLineBresenhamWW(u8t xstart, u8t ystart, u8t xend, u8t yend, u8t thic lcd_set_pixel(x, y+i, TRUE); } } + // lcd_update_display(); } u8t WriteLcdCharacter(u8t x, u8t y, u8t Character) { u8t CharacterHeight = GetCharacterHeight(); u8t CharacterWidth = GetCharacterWidth(Character); - unsigned int bitmap[MAX_FONT_ROWS]; - register lx, ly; + u16t bitmap[MAX_FONT_ROWS]; + int lx, ly; - GetCharacterBitmap(Character,(unsigned int*)&bitmap); + GetCharacterBitmap(Character, bitmap); // printf("cw=%d ch=%d\n", CharacterWidth, CharacterHeight); for (ly=0; lypixmap), state ? ui_g->darea->style->black_gc : ui_g->darea->style->white_gc, ix, iy+1); gdk_draw_point(GDK_DRAWABLE(ui_g->pixmap), state ? ui_g->darea->style->black_gc : ui_g->darea->style->white_gc, ix+1, iy+1); +// gtk_widget_queue_draw(ui_g->darea); +} + +/* updates the actual LCD so that drawing becomes visible */ +void lcd_update_display(void) +{ gtk_widget_queue_draw(ui_g->darea); } diff --git a/ui/oswald-ui.h b/ui/oswald-ui.h index 90353d0..363327a 100644 --- a/ui/oswald-ui.h +++ b/ui/oswald-ui.h @@ -18,6 +18,7 @@ typedef struct { void lcd_set_pixel(gint x, gint y, gboolean state); void lcd_clear_display(void); +void lcd_update_display(void); void enable_centisecond_timer(void); void disable_centisecond_timer(void); diff --git a/ui/oswald.h b/ui/oswald.h index f92651d..9a341e3 100644 --- a/ui/oswald.h +++ b/ui/oswald.h @@ -1,7 +1,7 @@ #ifndef _OSWALD_H #define _OSWALD_H -#define DEBUG 1 +//#define DEBUG 1 #ifdef DEBUG #define dbg_out( args... ) fprintf(stderr, args) #else @@ -40,11 +40,11 @@ typedef enum { IDLE_SCREEN = 0, ACCEL_DISPLAY_SCREEN, MENU_TEST_SCREEN, -// SCREEN2_SCREEN, -// SCREEN3_SCREEN, + STOP_WATCH_SCREEN, // APPLICATION_SCREEN, LAST_SCREEN, // a marker for the last (not valid) screen) DATETIME_SETTING_SCREEN, + SCREENS_END, } screen_number; typedef enum { diff --git a/ui/oswald_main.c b/ui/oswald_main.c index df95ebb..15091a6 100644 --- a/ui/oswald_main.c +++ b/ui/oswald_main.c @@ -13,7 +13,7 @@ */ clock_state OswaldClk; watch_state OswaldState; -watch_screen OswaldScreens[LAST_SCREEN]; +watch_screen OswaldScreens[SCREENS_END]; void oswald_change_to_screen(screen_number screen_id) @@ -107,7 +107,6 @@ void oswald_handle_button_press(watch_button button) OswaldState.screen_id = IDLE_SCREEN; }; OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; - //oswald_update_screen(); OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); break; case BUTTON_F: @@ -153,6 +152,9 @@ void oswald_init(void) OswaldScreens[MENU_TEST_SCREEN].event_mask = EVENT_USER_BUTTONS; OswaldScreens[MENU_TEST_SCREEN].event_func = test_menu_handle_events; + OswaldScreens[STOP_WATCH_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_CS_TIMER; + OswaldScreens[STOP_WATCH_SCREEN].event_func = stop_watch_handle_events; + OswaldState.screen_id = IDLE_SCREEN; OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; diff --git a/ui/oswald_screens.c b/ui/oswald_screens.c index 171d7b6..cbe2956 100644 --- a/ui/oswald_screens.c +++ b/ui/oswald_screens.c @@ -82,6 +82,7 @@ void draw_accel_screen(accel_data_t *accel_data) WriteLcdNumber(20, 18, accel_data->y); WriteLcdString(2, 34, "Z:"); WriteLcdNumber(20, 34, accel_data->z); + lcd_update_display(); } void accel_handle_events(u16t event, void *data) @@ -170,6 +171,8 @@ void draw_datetime_setup_screen(datetime_setup_data_t *sdata) WriteLcdString(2, 79, "_"); } WriteLcdString(15, 79, "dd.mm. mm/dd"); + + lcd_update_display(); } void datetime_handle_updown(u8t pos, s8t incr) @@ -298,6 +301,7 @@ void draw_menu_test_screen(void) WriteLcdString(2, 56, "Item 5"); WriteLcdString(50, 20+(9*test_menu.menu_pos), "*"); + lcd_update_display(); } static void handle_menu_user_buttons(watch_button button) @@ -333,3 +337,122 @@ void test_menu_handle_events(u16t event, void *data) }; } + +typedef struct { + u8t hr; + u8t min; + u8t sec; + u8t csec; + u8t lapse_hr; + u8t lapse_min; + u8t lapse_sec; + u8t lapse_csec; + boolean running; +} stopwatch_data_t; +static stopwatch_data_t stopwatch_screen = { 0, 0, 0, 0, 0, 0, 0, 0, FALSE }; + + +static void update_stop_watch_screen(stopwatch_data_t *sdata) +{ + SetFont(MetaWatchMonospaced10); + + WriteLcdNumber(0, 30, sdata->hr); + WriteLcdCharacter(14, 30, ':'); + WriteLcdNumber(19, 30, sdata->min); + WriteLcdCharacter(33, 30, ':'); + WriteLcdNumber(38, 30, sdata->sec); + WriteLcdCharacter(52, 30, '.'); + WriteLcdNumber(57, 30, sdata->csec / 10); + + WriteLcdNumber(0, 50, sdata->lapse_hr); + WriteLcdCharacter(14, 50, ':'); + WriteLcdNumber(19, 50, sdata->lapse_min); + WriteLcdCharacter(33, 50, ':'); + WriteLcdNumber(38, 50, sdata->lapse_sec); + WriteLcdCharacter(52, 50, '.'); + WriteLcdNumber(57, 50, sdata->lapse_csec / 10); + + lcd_update_display(); +} + +static void draw_stop_watch_screen(stopwatch_data_t *sdata) +{ + SetFont(MetaWatch16); + WriteLcdString(2, 5, "StopWatch"); + + update_stop_watch_screen(sdata); +} + +static void handle_stop_watch_buttons(watch_button button) +{ + switch (button) { + case BUTTON_A: // start/stop + if (stopwatch_screen.running) { + disable_centisecond_timer(); + stopwatch_screen.running = FALSE; + } else { + enable_centisecond_timer(); + stopwatch_screen.running = TRUE; + } + break; + case BUTTON_B: // lapse + stopwatch_screen.lapse_hr = stopwatch_screen.hr; + stopwatch_screen.lapse_min = stopwatch_screen.min; + stopwatch_screen.lapse_sec = stopwatch_screen.sec; + stopwatch_screen.lapse_csec = stopwatch_screen.csec; + break; + case BUTTON_D: // reset + stopwatch_screen.hr = 0; + stopwatch_screen.min = 0; + stopwatch_screen.sec = 0; + stopwatch_screen.csec = 0; + stopwatch_screen.lapse_hr = 0; + stopwatch_screen.lapse_min = 0; + stopwatch_screen.lapse_sec = 0; + stopwatch_screen.lapse_csec = 0; + break; + default: + break; + } +} + +void stop_watch_handle_events(u16t event, void *data) +{ + switch (event) { + case EVENT_USER_BUTTONS: + dbg_out("button event %d\n", *(int *)data); + handle_stop_watch_buttons(*(watch_button *)data); + update_stop_watch_screen(&stopwatch_screen); + break; + case EVENT_SCREEN_VISIBLE: + lcd_clear_display(); + draw_stop_watch_screen(&stopwatch_screen); + break; + case EVENT_SCREEN_DESTROY: + disable_centisecond_timer(); + stopwatch_screen.running = FALSE; + break; + case EVENT_CS_TIMER: + stopwatch_screen.csec++; + if (stopwatch_screen.csec > 99) { + stopwatch_screen.csec = 0; + stopwatch_screen.sec++; + }; + if (stopwatch_screen.sec > 59) { + stopwatch_screen.sec = 0; + stopwatch_screen.min++; + }; + if (stopwatch_screen.min > 59) { + stopwatch_screen.min = 0; + stopwatch_screen.hr++; + }; + if (stopwatch_screen.hr > 59) { + stopwatch_screen.hr = 0; + }; + if (stopwatch_screen.csec % 10 == 0) + update_stop_watch_screen(&stopwatch_screen); + break; + default: + break; + }; +} diff --git a/ui/oswald_screens.h b/ui/oswald_screens.h index 5df7c59..0cca47c 100644 --- a/ui/oswald_screens.h +++ b/ui/oswald_screens.h @@ -10,5 +10,7 @@ void datetime_setup_events(u16t event, void *data); void test_menu_handle_events(u16t event, void *data); +void stop_watch_handle_events(u16t event, void *data); + #endif diff --git a/ui/oswald_strings.c b/ui/oswald_strings.c index 1c621bc..5eff42d 100644 --- a/ui/oswald_strings.c +++ b/ui/oswald_strings.c @@ -2,9 +2,9 @@ #include "oswald_strings.h" -u16t oswald_strlen(u8t *string) +u16t oswald_strlen(char *string) { - register i=0; + int i=0; if (string == NULL) return 0; diff --git a/ui/oswald_strings.h b/ui/oswald_strings.h index 55881db..c9ebbee 100644 --- a/ui/oswald_strings.h +++ b/ui/oswald_strings.h @@ -1,7 +1,7 @@ #ifndef _OSWALD_STRINGS_H #define _OSWALD_STRINGS_H -u16t oswald_strlen(u8t *string); +u16t oswald_strlen(char *string); char* itoa(s16t value, char* result, int base); #endif diff --git a/ui/oswald_watch_faces.c b/ui/oswald_watch_faces.c index f8897df..548a6bb 100644 --- a/ui/oswald_watch_faces.c +++ b/ui/oswald_watch_faces.c @@ -10,10 +10,10 @@ void DrawLcdAnaClock(boolean show_seconds) { - unsigned char *bbuf; - char daystr[5]; - int len; - register i, x, y, x2, y2; + //unsigned char *bbuf; + //char daystr[5]; + //int len; + int i, x, y, x2, y2; double tmp, mf; s8t hour, minute, seconds; @@ -63,12 +63,13 @@ void DrawLcdAnaClock(boolean show_seconds) //snprintf(daystr, 5, "%d", day); // mw_buf_print(mwbuf, 74, 45, daystr, 0, MW_WHITE, MW_BLACK); + lcd_update_display(); } void DrawLcdDigitalClock(boolean show_seconds) { - gint gRow = 3; - gint gColumn = 4; + int gRow = 3; + int gColumn = 4; SetFont(MetaWatchTime); @@ -84,5 +85,5 @@ void DrawLcdDigitalClock(boolean show_seconds) gRow += WriteLcdCharacter(gRow, gColumn, (OswaldClk.second / 10)); gRow += WriteLcdCharacter(gRow, gColumn, (OswaldClk.second % 10)); }; + lcd_update_display(); } - -- 2.39.2