Added custom fonts. Added triangle drawing function
Dependents: sc100016x4lcd REVO_Updated_Steering Driving_game Arkanoid_v1 ... more
Revision 5:e4b50f4c13a8, committed 2011-05-02
- Comitter:
- DimiterK
- Date:
- Mon May 02 19:05:30 2011 +0000
- Parent:
- 4:bdc04bb2ffc1
- Commit message:
- Ver 2.0
Changed in this revision
diff -r bdc04bb2ffc1 -r e4b50f4c13a8 Arial12.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Arial12.h Mon May 02 19:05:30 2011 +0000 @@ -0,0 +1,163 @@ + + +/* + * + * Arial12 + * + * created with FontCreator + * written by F. Maximilian Thiele + * + * http://www.apetech.de/fontCreator + * me@apetech.de + * + * File Name : Arial12 + * Date : 25.12.2010 + * Font size in bytes : 5754 + * Font width : 10 + * Font height : 12 + * Font first char : 32 + * Font last char : 128 + * Font used chars : 96 + * + * The font data are defined as + * + * struct _FONT_ { + * uint16_t font_Size_in_Bytes_over_all_included_Size_it_self; + * uint8_t font_Width_in_Pixel_for_fixed_drawing; + * uint8_t font_Height_in_Pixel_for_all_characters; + * unit8_t font_First_Char; + * uint8_t font_Char_Count; + * + * uint8_t font_Char_Widths[font_Last_Char - font_First_Char +1]; + * // for each character the separate width in pixels, + * // characters < 128 have an implicit virtual right empty row + * + * uint8_t font_data[]; + * // bit field of all characters + */ + +#ifndef ARIAL12_H +#define ARIAL12_H + +#define ARIAL12_WIDTH 10 +#define ARIAL12_HEIGHT 12 + +unsigned int Arial12[] = { + 0x16, 0x7A, // size + 0x0A, // width + 0x0C, // height + 0x20, // first char + 0x60, // char count + + // char widths + 0x00, 0x01, 0x03, 0x07, 0x05, 0x09, 0x07, 0x01, 0x03, 0x03, + 0x05, 0x05, 0x01, 0x03, 0x01, 0x03, 0x05, 0x03, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x01, 0x01, 0x05, 0x06, + 0x05, 0x05, 0x0B, 0x07, 0x06, 0x07, 0x07, 0x06, 0x05, 0x07, + 0x07, 0x01, 0x05, 0x07, 0x06, 0x07, 0x07, 0x07, 0x06, 0x07, + 0x07, 0x06, 0x07, 0x07, 0x07, 0x0B, 0x07, 0x07, 0x07, 0x02, + 0x03, 0x02, 0x05, 0x07, 0x02, 0x05, 0x05, 0x04, 0x05, 0x05, + 0x03, 0x05, 0x05, 0x01, 0x02, 0x05, 0x01, 0x09, 0x05, 0x05, + 0x05, 0x05, 0x03, 0x05, 0x03, 0x05, 0x05, 0x09, 0x05, 0x05, + 0x05, 0x03, 0x01, 0x03, 0x06, 0x07, + + // font data + 0x7F, 0x10, // 33 + 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, // 34 + 0x24, 0xE4, 0x3C, 0xE7, 0x3C, 0x27, 0x24, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, // 35 + 0xCE, 0x11, 0xFF, 0x11, 0xE2, 0x00, 0x10, 0x30, 0x10, 0x00, // 36 + 0x0E, 0x11, 0x11, 0xCE, 0x38, 0xE6, 0x11, 0x10, 0xE0, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, // 37 + 0xE0, 0x1E, 0x11, 0x29, 0xC6, 0xA0, 0x00, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, 0x10, // 38 + 0x07, 0x00, // 39 + 0xF8, 0x06, 0x01, 0x00, 0x30, 0x40, // 40 + 0x01, 0x06, 0xF8, 0x40, 0x30, 0x00, // 41 + 0x02, 0x0A, 0x07, 0x0A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // 42 + 0x10, 0x10, 0x7C, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // 43 + 0x00, 0x70, // 44 + 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, // 45 + 0x00, 0x10, // 46 + 0x80, 0x7C, 0x03, 0x10, 0x00, 0x00, // 47 + 0xFE, 0x01, 0x01, 0x01, 0xFE, 0x00, 0x10, 0x10, 0x10, 0x00, // 48 + 0x04, 0x02, 0xFF, 0x00, 0x00, 0x10, // 49 + 0x02, 0x81, 0x41, 0x31, 0x0E, 0x10, 0x10, 0x10, 0x10, 0x10, // 50 + 0x82, 0x01, 0x11, 0x11, 0xEE, 0x00, 0x10, 0x10, 0x10, 0x00, // 51 + 0x60, 0x58, 0x46, 0xFF, 0x40, 0x00, 0x00, 0x00, 0x10, 0x00, // 52 + 0x9C, 0x0B, 0x09, 0x09, 0xF1, 0x00, 0x10, 0x10, 0x10, 0x00, // 53 + 0xFE, 0x11, 0x09, 0x09, 0xF2, 0x00, 0x10, 0x10, 0x10, 0x00, // 54 + 0x01, 0xC1, 0x39, 0x05, 0x03, 0x00, 0x10, 0x00, 0x00, 0x00, // 55 + 0xEE, 0x11, 0x11, 0x11, 0xEE, 0x00, 0x10, 0x10, 0x10, 0x00, // 56 + 0x9E, 0x21, 0x21, 0x11, 0xFE, 0x00, 0x10, 0x10, 0x10, 0x00, // 57 + 0x04, 0x10, // 58 + 0x04, 0x70, // 59 + 0x10, 0x28, 0x28, 0x28, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, // 60 + 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 61 + 0x44, 0x28, 0x28, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // 62 + 0x06, 0x01, 0x61, 0x11, 0x0E, 0x00, 0x00, 0x10, 0x00, 0x00, // 63 + 0xF0, 0x0C, 0xE2, 0x12, 0x09, 0x09, 0xF1, 0x19, 0x02, 0x86, 0x78, 0x10, 0x20, 0x40, 0x90, 0x90, 0x90, 0x90, 0x90, 0x50, 0x40, 0x20, // 64 + 0x80, 0x70, 0x2E, 0x21, 0x2E, 0x70, 0x80, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // 65 + 0xFF, 0x11, 0x11, 0x11, 0x11, 0xEE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, // 66 + 0x7C, 0x82, 0x01, 0x01, 0x01, 0x82, 0x44, 0x00, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, // 67 + 0xFF, 0x01, 0x01, 0x01, 0x01, 0x82, 0x7C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, // 68 + 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, // 69 + 0xFF, 0x11, 0x11, 0x11, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, // 70 + 0x7C, 0x82, 0x01, 0x01, 0x11, 0x92, 0x74, 0x00, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, // 71 + 0xFF, 0x10, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // 72 + 0xFF, 0x10, // 73 + 0xC0, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x10, 0x10, 0x10, 0x00, // 74 + 0xFF, 0x20, 0x10, 0x28, 0x44, 0x82, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // 75 + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, // 76 + 0xFF, 0x06, 0x78, 0x80, 0x78, 0x06, 0xFF, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, // 77 + 0xFF, 0x02, 0x0C, 0x10, 0x60, 0x80, 0xFF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // 78 + 0x7C, 0x82, 0x01, 0x01, 0x01, 0x82, 0x7C, 0x00, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, // 79 + 0xFF, 0x11, 0x11, 0x11, 0x11, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // 80 + 0x7C, 0x82, 0x01, 0x41, 0x41, 0x82, 0x7C, 0x00, 0x00, 0x10, 0x10, 0x10, 0x00, 0x10, // 81 + 0xFF, 0x11, 0x11, 0x11, 0x31, 0xD1, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // 82 + 0xCE, 0x11, 0x11, 0x11, 0x11, 0xE6, 0x00, 0x10, 0x10, 0x10, 0x10, 0x00, // 83 + 0x01, 0x01, 0x01, 0xFF, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // 84 + 0x7F, 0x80, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, // 85 + 0x03, 0x1C, 0x60, 0x80, 0x60, 0x1C, 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // 86 + 0x07, 0x78, 0x80, 0x70, 0x0E, 0x01, 0x0E, 0x70, 0x80, 0x7C, 0x03, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // 87 + 0x01, 0xC6, 0x28, 0x10, 0x6C, 0x82, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // 88 + 0x01, 0x06, 0x08, 0xF0, 0x08, 0x06, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // 89 + 0x00, 0x81, 0x61, 0x11, 0x0D, 0x03, 0x01, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, // 90 + 0xFF, 0x01, 0x70, 0x40, // 91 + 0x03, 0x7C, 0x80, 0x00, 0x00, 0x10, // 92 + 0x01, 0xFF, 0x40, 0x70, // 93 + 0x10, 0x0E, 0x01, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // 94 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // 95 + 0x01, 0x02, 0x00, 0x00, // 96 + 0xC8, 0x24, 0x24, 0xA4, 0xF8, 0x00, 0x10, 0x10, 0x00, 0x10, // 97 + 0xFF, 0x88, 0x04, 0x04, 0xF8, 0x10, 0x00, 0x10, 0x10, 0x00, // 98 + 0xF8, 0x04, 0x04, 0x88, 0x00, 0x10, 0x10, 0x00, // 99 + 0xF8, 0x04, 0x04, 0x88, 0xFF, 0x00, 0x10, 0x10, 0x00, 0x10, // 100 + 0xF8, 0x24, 0x24, 0x24, 0xB8, 0x00, 0x10, 0x10, 0x10, 0x00, // 101 + 0x04, 0xFE, 0x05, 0x00, 0x10, 0x00, // 102 + 0xF8, 0x04, 0x04, 0x88, 0xFC, 0x40, 0x50, 0x50, 0x40, 0x30, // 103 + 0xFF, 0x08, 0x04, 0x04, 0xF8, 0x10, 0x00, 0x00, 0x00, 0x10, // 104 + 0xFD, 0x10, // 105 + 0x00, 0xFD, 0x40, 0x30, // 106 + 0xFF, 0x20, 0x30, 0xC8, 0x04, 0x10, 0x00, 0x00, 0x00, 0x10, // 107 + 0xFF, 0x10, // 108 + 0xFC, 0x08, 0x04, 0x04, 0xF8, 0x08, 0x04, 0x04, 0xF8, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, // 109 + 0xFC, 0x08, 0x04, 0x04, 0xF8, 0x10, 0x00, 0x00, 0x00, 0x10, // 110 + 0xF8, 0x04, 0x04, 0x04, 0xF8, 0x00, 0x10, 0x10, 0x10, 0x00, // 111 + 0xFC, 0x88, 0x04, 0x04, 0xF8, 0x70, 0x00, 0x10, 0x10, 0x00, // 112 + 0xF8, 0x04, 0x04, 0x88, 0xFC, 0x00, 0x10, 0x10, 0x00, 0x70, // 113 + 0xFC, 0x08, 0x04, 0x10, 0x00, 0x00, // 114 + 0x98, 0x24, 0x24, 0x24, 0xC8, 0x00, 0x10, 0x10, 0x10, 0x00, // 115 + 0x04, 0xFF, 0x04, 0x00, 0x10, 0x10, // 116 + 0xFC, 0x00, 0x00, 0x80, 0xFC, 0x00, 0x10, 0x10, 0x00, 0x10, // 117 + 0x0C, 0x70, 0x80, 0x70, 0x0C, 0x00, 0x00, 0x10, 0x00, 0x00, // 118 + 0x0C, 0x70, 0x80, 0x70, 0x0C, 0x70, 0x80, 0x70, 0x0C, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // 119 + 0x04, 0xD8, 0x60, 0x98, 0x04, 0x10, 0x00, 0x00, 0x00, 0x10, // 120 + 0x0C, 0x70, 0x80, 0x70, 0x0C, 0x00, 0x40, 0x30, 0x00, 0x00, // 121 + 0x04, 0xC4, 0x24, 0x1C, 0x04, 0x10, 0x10, 0x10, 0x10, 0x10, // 122 + 0x20, 0xDE, 0x01, 0x00, 0x30, 0x40, // 123 + 0xFF, 0x70, // 124 + 0x01, 0xDE, 0x20, 0x40, 0x30, 0x00, // 125 + 0x20, 0x10, 0x10, 0x20, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 126 + 0xFE, 0x02, 0x02, 0x02, 0x02, 0x02, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10 // 127 + +}; + +#endif
diff -r bdc04bb2ffc1 -r e4b50f4c13a8 Arial14.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Arial14.h Mon May 02 19:05:30 2011 +0000 @@ -0,0 +1,161 @@ +/* + * + * Arial_14 + * + * created with FontCreator + * written by F. Maximilian Thiele + * + * http://www.apetech.de/fontCreator + * me@apetech.de + * + * File Name : Arial14.h + * Date : 02.05.2008 + * Font size in bytes : 7788 + * Font width : 10 + * Font height : 14 + * Font first char : 32 + * Font last char : 128 + * Font used chars : 96 + * + * The font data are defined as + * + * struct _FONT_ { + * uint16_t font_Size_in_Bytes_over_all_included_Size_it_self; + * uint8_t font_Width_in_Pixel_for_fixed_drawing; + * uint8_t font_Height_in_Pixel_for_all_characters; + * unit8_t font_First_Char; + * uint8_t font_Char_Count; + * + * uint8_t font_Char_Widths[font_Last_Char - font_First_Char +1]; + * // for each character the separate width in pixels, + * // characters < 128 have an implicit virtual right empty row + * + * uint8_t font_data[]; + * // bit field of all characters + */ + +#ifndef ARIAL_14_H +#define ARIAL_14_H + +#define ARIAL_14_WIDTH 10 +#define ARIAL_14_HEIGHT 14 + +unsigned int Arial_14[] = { + 0x1E, 0x6C, // size + 0x0A, // width + 0x0E, // height + 0x20, // first char + 0x60, // char count + + // char widths + 0x00, 0x01, 0x03, 0x08, 0x07, 0x0A, 0x08, 0x01, 0x03, 0x03, + 0x05, 0x07, 0x01, 0x04, 0x01, 0x04, 0x06, 0x03, 0x06, 0x06, + 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x01, 0x01, 0x06, 0x06, + 0x06, 0x06, 0x0D, 0x09, 0x07, 0x08, 0x08, 0x07, 0x07, 0x09, + 0x07, 0x01, 0x05, 0x08, 0x07, 0x09, 0x07, 0x09, 0x07, 0x09, + 0x08, 0x07, 0x07, 0x07, 0x09, 0x0D, 0x08, 0x09, 0x08, 0x02, + 0x04, 0x02, 0x05, 0x08, 0x02, 0x06, 0x06, 0x05, 0x06, 0x06, + 0x04, 0x06, 0x06, 0x01, 0x02, 0x06, 0x01, 0x09, 0x06, 0x06, + 0x06, 0x06, 0x04, 0x05, 0x04, 0x06, 0x07, 0x09, 0x06, 0x07, + 0x06, 0x03, 0x01, 0x03, 0x07, 0x07, + + // font data + 0xFE, 0x14, // 33 + 0x1E, 0x00, 0x1E, 0x00, 0x00, 0x00, // 34 + 0x90, 0x90, 0xF8, 0x96, 0x90, 0xF8, 0x96, 0x90, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, // 35 + 0x18, 0x24, 0x22, 0xFF, 0x42, 0x42, 0x84, 0x08, 0x10, 0x10, 0x3C, 0x10, 0x08, 0x04, // 36 + 0x1C, 0x22, 0x22, 0x1C, 0xC0, 0x30, 0x8C, 0x42, 0x40, 0x80, 0x00, 0x00, 0x10, 0x0C, 0x00, 0x00, 0x0C, 0x10, 0x10, 0x0C, // 37 + 0x80, 0x5C, 0x22, 0x62, 0x92, 0x0C, 0x80, 0x00, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x08, 0x10, // 38 + 0x1E, 0x00, // 39 + 0xF0, 0x0C, 0x02, 0x1C, 0x60, 0x80, // 40 + 0x02, 0x0C, 0xF0, 0x80, 0x60, 0x1C, // 41 + 0x04, 0x14, 0x0E, 0x14, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, // 42 + 0x40, 0x40, 0x40, 0xF8, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, // 43 + 0x00, 0x70, // 44 + 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, // 45 + 0x00, 0x10, // 46 + 0x00, 0xC0, 0x38, 0x06, 0x18, 0x04, 0x00, 0x00, // 47 + 0xFC, 0x02, 0x02, 0x02, 0x02, 0xFC, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x0C, // 48 + 0x08, 0x04, 0xFE, 0x00, 0x00, 0x1C, // 49 + 0x0C, 0x02, 0x02, 0x82, 0x42, 0x3C, 0x10, 0x18, 0x14, 0x10, 0x10, 0x10, // 50 + 0x0C, 0x02, 0x22, 0x22, 0x22, 0xDC, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x0C, // 51 + 0x80, 0x40, 0x30, 0x08, 0x04, 0xFE, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1C, 0x04, // 52 + 0x38, 0x16, 0x12, 0x12, 0x12, 0xE2, 0x0C, 0x10, 0x10, 0x10, 0x18, 0x04, // 53 + 0xF8, 0x44, 0x22, 0x22, 0x22, 0xC4, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x0C, // 54 + 0x02, 0x02, 0x02, 0xE2, 0x1A, 0x06, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, // 55 + 0xDC, 0x22, 0x22, 0x22, 0x22, 0xDC, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x0C, // 56 + 0x3C, 0x42, 0x42, 0x42, 0x22, 0xFC, 0x08, 0x10, 0x10, 0x10, 0x08, 0x04, // 57 + 0x08, 0x10, // 58 + 0x08, 0x70, // 59 + 0x40, 0xA0, 0xA0, 0x10, 0x10, 0x08, 0x00, 0x00, 0x00, 0x04, 0x04, 0x08, // 60 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 61 + 0x08, 0x10, 0x10, 0xA0, 0xA0, 0x40, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, // 62 + 0x0C, 0x02, 0x82, 0x42, 0x22, 0x1C, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, // 63 + 0xE0, 0x18, 0x04, 0xC4, 0x22, 0x12, 0x12, 0x12, 0xA2, 0x72, 0x04, 0x08, 0xF0, 0x0C, 0x30, 0x40, 0x4C, 0x90, 0x90, 0x90, 0x88, 0x9C, 0x90, 0x50, 0x4C, 0x20, // 64 + 0x00, 0x80, 0xE0, 0x9C, 0x82, 0x9C, 0xE0, 0x80, 0x00, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x18, // 65 + 0xFE, 0x22, 0x22, 0x22, 0x22, 0x22, 0xDC, 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C, // 66 + 0xF8, 0x04, 0x02, 0x02, 0x02, 0x02, 0x04, 0x08, 0x04, 0x08, 0x10, 0x10, 0x10, 0x10, 0x08, 0x04, // 67 + 0xFE, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0xF8, 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x04, // 68 + 0xFE, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, // 69 + 0xFE, 0x22, 0x22, 0x22, 0x22, 0x22, 0x02, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 70 + 0xF8, 0x04, 0x02, 0x02, 0x02, 0x42, 0x42, 0x44, 0xC8, 0x04, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x04, // 71 + 0xFE, 0x20, 0x20, 0x20, 0x20, 0x20, 0xFE, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, // 72 + 0xFE, 0x1C, // 73 + 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0C, 0x10, 0x10, 0x10, 0x0C, // 74 + 0xFE, 0x80, 0x40, 0x20, 0x50, 0x88, 0x04, 0x02, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x10, // 75 + 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, // 76 + 0xFE, 0x0C, 0x30, 0xC0, 0x00, 0xC0, 0x30, 0x0C, 0xFE, 0x1C, 0x00, 0x00, 0x04, 0x18, 0x04, 0x00, 0x00, 0x1C, // 77 + 0xFE, 0x04, 0x18, 0x60, 0x80, 0x00, 0xFE, 0x1C, 0x00, 0x00, 0x00, 0x04, 0x08, 0x1C, // 78 + 0xF8, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0xF8, 0x04, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x04, // 79 + 0xFE, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 80 + 0xF8, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0xF8, 0x04, 0x08, 0x10, 0x10, 0x10, 0x14, 0x08, 0x1C, 0x10, // 81 + 0xFE, 0x42, 0x42, 0x42, 0xC2, 0x42, 0x42, 0x3C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x10, // 82 + 0x1C, 0x22, 0x22, 0x22, 0x42, 0x42, 0x8C, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C, // 83 + 0x02, 0x02, 0x02, 0xFE, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, // 84 + 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x04, 0x08, 0x10, 0x10, 0x10, 0x08, 0x04, // 85 + 0x06, 0x18, 0x60, 0x80, 0x00, 0x80, 0x60, 0x18, 0x06, 0x00, 0x00, 0x00, 0x04, 0x18, 0x04, 0x00, 0x00, 0x00, // 86 + 0x06, 0x38, 0xC0, 0x00, 0xC0, 0x3C, 0x02, 0x3C, 0xC0, 0x00, 0xC0, 0x38, 0x06, 0x00, 0x00, 0x04, 0x18, 0x04, 0x00, 0x00, 0x00, 0x04, 0x18, 0x04, 0x00, 0x00, // 87 + 0x02, 0x0C, 0x90, 0x60, 0x60, 0x90, 0x0C, 0x02, 0x10, 0x0C, 0x00, 0x00, 0x00, 0x04, 0x0C, 0x10, // 88 + 0x02, 0x04, 0x18, 0x20, 0xC0, 0x20, 0x18, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, // 89 + 0x00, 0x02, 0x82, 0x42, 0x22, 0x1A, 0x06, 0x02, 0x10, 0x18, 0x14, 0x10, 0x10, 0x10, 0x10, 0x10, // 90 + 0xFE, 0x02, 0xFC, 0x80, // 91 + 0x06, 0x38, 0xC0, 0x00, 0x00, 0x00, 0x04, 0x18, // 92 + 0x02, 0xFE, 0x80, 0xFC, // 93 + 0x20, 0x1C, 0x02, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // 94 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // 95 + 0x02, 0x04, 0x00, 0x00, // 96 + 0x10, 0x88, 0x48, 0x48, 0x48, 0xF0, 0x0C, 0x10, 0x10, 0x10, 0x08, 0x1C, // 97 + 0xFE, 0x10, 0x08, 0x08, 0x08, 0xF0, 0x1C, 0x08, 0x10, 0x10, 0x10, 0x0C, // 98 + 0xF0, 0x08, 0x08, 0x08, 0x10, 0x0C, 0x10, 0x10, 0x10, 0x08, // 99 + 0xF0, 0x08, 0x08, 0x08, 0x10, 0xFE, 0x0C, 0x10, 0x10, 0x10, 0x08, 0x1C, // 100 + 0xF0, 0x48, 0x48, 0x48, 0x48, 0x70, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x08, // 101 + 0x08, 0xFC, 0x0A, 0x0A, 0x00, 0x1C, 0x00, 0x00, // 102 + 0xF0, 0x08, 0x08, 0x08, 0x10, 0xF8, 0x4C, 0x90, 0x90, 0x90, 0x88, 0x7C, // 103 + 0xFE, 0x10, 0x08, 0x08, 0x08, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x1C, // 104 + 0xFA, 0x1C, // 105 + 0x00, 0xFA, 0x80, 0x7C, // 106 + 0xFE, 0x80, 0x40, 0xA0, 0x10, 0x08, 0x1C, 0x00, 0x00, 0x00, 0x0C, 0x10, // 107 + 0xFE, 0x1C, // 108 + 0xF8, 0x10, 0x08, 0x08, 0xF0, 0x10, 0x08, 0x08, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x1C, // 109 + 0xF8, 0x10, 0x08, 0x08, 0x08, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x1C, // 110 + 0xF0, 0x08, 0x08, 0x08, 0x08, 0xF0, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x0C, // 111 + 0xF8, 0x10, 0x08, 0x08, 0x08, 0xF0, 0xFC, 0x08, 0x10, 0x10, 0x10, 0x0C, // 112 + 0xF0, 0x08, 0x08, 0x08, 0x10, 0xF8, 0x0C, 0x10, 0x10, 0x10, 0x08, 0xFC, // 113 + 0xF8, 0x10, 0x08, 0x08, 0x1C, 0x00, 0x00, 0x00, // 114 + 0x30, 0x48, 0x48, 0x48, 0x90, 0x08, 0x10, 0x10, 0x10, 0x0C, // 115 + 0x08, 0xFE, 0x08, 0x08, 0x00, 0x1C, 0x10, 0x10, // 116 + 0xF8, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0C, 0x10, 0x10, 0x10, 0x08, 0x1C, // 117 + 0x18, 0x60, 0x80, 0x00, 0x80, 0x60, 0x18, 0x00, 0x00, 0x04, 0x18, 0x04, 0x00, 0x00, // 118 + 0x18, 0xE0, 0x00, 0xE0, 0x18, 0xE0, 0x00, 0xE0, 0x18, 0x00, 0x04, 0x18, 0x04, 0x00, 0x04, 0x18, 0x04, 0x00, // 119 + 0x08, 0x30, 0xC0, 0xC0, 0x30, 0x08, 0x10, 0x0C, 0x00, 0x00, 0x0C, 0x10, // 120 + 0x18, 0x60, 0x80, 0x00, 0x80, 0x60, 0x18, 0x00, 0x80, 0x8C, 0x70, 0x0C, 0x00, 0x00, // 121 + 0x08, 0x08, 0x88, 0x68, 0x18, 0x08, 0x10, 0x18, 0x14, 0x10, 0x10, 0x10, // 122 + 0x80, 0x7C, 0x02, 0x00, 0x7C, 0x80, // 123 + 0xFE, 0xFC, // 124 + 0x02, 0x7C, 0x80, 0x80, 0x7C, 0x00, // 125 + 0x40, 0x20, 0x20, 0x60, 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 126 + 0xFC, 0x04, 0x04, 0x04, 0x04, 0x04, 0xFC, 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1C // 127 + +}; + +#endif
diff -r bdc04bb2ffc1 -r e4b50f4c13a8 Comic24.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Comic24.h Mon May 02 19:05:30 2011 +0000 @@ -0,0 +1,163 @@ + + +/* + * + * Comic24 + * + * created with FontCreator + * written by F. Maximilian Thiele + * + * http://www.apetech.de/fontCreator + * me@apetech.de + * + * File Name : Comic24.h + * Date : 25.12.2010 + * Font size in bytes : 32031 + * Font width : 10 + * Font height : 29 + * Font first char : 32 + * Font last char : 128 + * Font used chars : 96 + * + * The font data are defined as + * + * struct _FONT_ { + * uint16_t font_Size_in_Bytes_over_all_included_Size_it_self; + * uint8_t font_Width_in_Pixel_for_fixed_drawing; + * uint8_t font_Height_in_Pixel_for_all_characters; + * unit8_t font_First_Char; + * uint8_t font_Char_Count; + * + * uint8_t font_Char_Widths[font_Last_Char - font_First_Char +1]; + * // for each character the separate width in pixels, + * // characters < 128 have an implicit virtual right empty row + * + * uint8_t font_data[]; + * // bit field of all characters + */ + +#ifndef COMIC24_H +#define COMIC24_H + +#define COMIC24_WIDTH 10 +#define COMIC24_HEIGHT 29 + +unsigned int Comic24[] = { + 0x7D, 0x1F, // size + 0x0A, // width + 0x1D, // height + 0x20, // first char + 0x60, // char count + + // char widths + 0x00, 0x03, 0x06, 0x13, 0x0E, 0x12, 0x10, 0x02, 0x07, 0x07, + 0x0B, 0x0A, 0x04, 0x09, 0x03, 0x0B, 0x0D, 0x09, 0x0B, 0x0B, + 0x0F, 0x0D, 0x0D, 0x0E, 0x0D, 0x0D, 0x04, 0x05, 0x08, 0x0A, + 0x09, 0x0B, 0x14, 0x0F, 0x0D, 0x0E, 0x0E, 0x0C, 0x0C, 0x10, + 0x0F, 0x0B, 0x0F, 0x0D, 0x0C, 0x12, 0x12, 0x11, 0x0B, 0x15, + 0x0E, 0x10, 0x11, 0x10, 0x0E, 0x15, 0x10, 0x0F, 0x10, 0x06, + 0x0B, 0x06, 0x0B, 0x0F, 0x06, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, + 0x0B, 0x0C, 0x0A, 0x03, 0x08, 0x0B, 0x03, 0x0F, 0x0B, 0x0B, + 0x0B, 0x0B, 0x0A, 0x0A, 0x0B, 0x0A, 0x0B, 0x0F, 0x0D, 0x0D, + 0x0C, 0x09, 0x03, 0x08, 0x0D, 0x0A, + + // font data + 0xFC, 0xFC, 0xFC, 0xFF, 0xFF, 0xFF, 0x0D, 0x1D, 0x19, 0x00, 0x00, 0x00, // 33 + 0xFC, 0xFC, 0x00, 0x00, 0xFC, 0xFC, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 34 + 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE0, 0xF8, 0xFC, 0xFC, 0xC0, 0xC0, 0xC0, 0xE0, 0xFC, 0xFC, 0xDC, 0xC0, 0xC0, 0xC0, 0xC1, 0xC1, 0xC1, 0xF9, 0xFF, 0xFF, 0xCF, 0xC1, 0xC1, 0xC1, 0xF1, 0xFF, 0xFF, 0xCF, 0xC1, 0xC1, 0xC1, 0x01, 0x01, 0x19, 0x1F, 0x1F, 0x07, 0x01, 0x01, 0x01, 0x01, 0x1D, 0x1F, 0x1F, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 35 + 0x80, 0xE0, 0xF0, 0x70, 0x38, 0xFF, 0xFF, 0xFF, 0x38, 0x38, 0x38, 0x30, 0x30, 0x00, 0x07, 0x0F, 0x0F, 0x1E, 0x1C, 0xFF, 0xFF, 0xFF, 0x1C, 0x1C, 0x38, 0xF8, 0xF0, 0xE0, 0x1C, 0x3C, 0x3C, 0x38, 0x38, 0xFF, 0xFF, 0xFF, 0x38, 0x3C, 0x1E, 0x1F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 36 + 0xE0, 0xF0, 0xF8, 0x38, 0x38, 0xF8, 0xF0, 0xE0, 0x00, 0x80, 0xE0, 0xF8, 0x78, 0x18, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x07, 0xC7, 0xE3, 0xF9, 0x7E, 0xDF, 0xE7, 0xF1, 0x70, 0x70, 0x70, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x1C, 0x1F, 0x1F, 0x07, 0x01, 0x00, 0x07, 0x0F, 0x1F, 0x1C, 0x1C, 0x1C, 0x0F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 37 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0x38, 0x38, 0xF8, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0x70, 0x7B, 0x3F, 0x3F, 0xFE, 0xFF, 0xE7, 0xC3, 0xF9, 0xF8, 0xF0, 0x00, 0x0F, 0x1F, 0x3F, 0x38, 0x70, 0x70, 0x70, 0x70, 0x78, 0x3D, 0x3F, 0x1F, 0x3F, 0xFF, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 38 + 0xFC, 0xFC, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, // 39 + 0x00, 0x80, 0xE0, 0xF0, 0x78, 0x3C, 0x1C, 0xFC, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x07, 0x3F, 0xFF, 0xF8, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0x18, 0x18, // 40 + 0x1C, 0x3C, 0x78, 0xF0, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFC, 0x80, 0x80, 0xE0, 0xF8, 0xFF, 0x3F, 0x07, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, // 41 + 0x70, 0x70, 0xF0, 0xE0, 0xFC, 0xFC, 0xFC, 0xF0, 0x70, 0x70, 0x70, 0x00, 0x0E, 0x0F, 0x0F, 0x07, 0x03, 0x07, 0x0F, 0x0F, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 42 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0xFE, 0xFE, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 43 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0x38, 0x08, 0x08, 0x00, 0x00, // 44 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 45 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, // 46 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF8, 0x38, 0x00, 0x00, 0x80, 0xC0, 0xF0, 0xFC, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x38, 0x3E, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 47 + 0x00, 0xC0, 0xE0, 0xF0, 0x78, 0x38, 0x38, 0x38, 0x78, 0xF0, 0xF0, 0xC0, 0x00, 0xFE, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x07, 0x0F, 0x1F, 0x3C, 0x38, 0x38, 0x38, 0x3C, 0x1F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 48 + 0xC0, 0xE0, 0xF0, 0xF0, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 49 + 0xC0, 0xE0, 0xF0, 0x78, 0x38, 0x38, 0x38, 0x78, 0xF0, 0xF0, 0xE0, 0x00, 0xC0, 0xE0, 0xF0, 0x70, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x03, 0x0F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 50 + 0x00, 0x60, 0x70, 0x78, 0x38, 0x38, 0x38, 0x78, 0xF0, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x3E, 0x7E, 0xFF, 0xF7, 0xE3, 0x0E, 0x1E, 0x1E, 0x38, 0x38, 0x38, 0x38, 0x3C, 0x1F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 51 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x60, 0xF0, 0xF8, 0xFC, 0xFE, 0xEF, 0xE7, 0xE3, 0xE1, 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 52 + 0x00, 0xF8, 0xF8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x18, 0x00, 0x3C, 0x3F, 0x3F, 0x1E, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x0F, 0xFE, 0xFC, 0xF0, 0x0E, 0x1E, 0x1E, 0x3C, 0x38, 0x38, 0x38, 0x38, 0x3C, 0x1E, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 53 + 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0x78, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFE, 0xFF, 0x1F, 0x0F, 0x0E, 0x0E, 0x0E, 0x0E, 0x1C, 0xFC, 0xF8, 0xF0, 0x03, 0x0F, 0x1F, 0x1E, 0x3C, 0x38, 0x38, 0x38, 0x3C, 0x1E, 0x1F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 54 + 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xB8, 0xF8, 0xF8, 0xF8, 0x78, 0x18, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF8, 0xFC, 0x7F, 0x1F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1F, 0x1F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 55 + 0x00, 0xC0, 0xE0, 0xF0, 0x78, 0x38, 0x38, 0x38, 0x38, 0xF0, 0xF0, 0xC0, 0x00, 0xC0, 0xE3, 0xF7, 0x7F, 0x3E, 0x1C, 0x1C, 0x1C, 0x3E, 0x7F, 0xF7, 0xF3, 0xC0, 0x07, 0x0F, 0x1F, 0x3C, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1C, 0x1F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 56 + 0x80, 0xE0, 0xF0, 0x70, 0x38, 0x38, 0x38, 0x38, 0x78, 0xF0, 0xF0, 0xE0, 0x80, 0x0F, 0x1F, 0x3F, 0x38, 0x70, 0x70, 0x70, 0x70, 0xF8, 0xF8, 0xFF, 0x7F, 0x1F, 0x00, 0x1C, 0x1C, 0x1C, 0x1E, 0x0E, 0x0E, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 57 + 0x00, 0x00, 0x00, 0x00, 0x0C, 0x1E, 0x1E, 0x1C, 0x0E, 0x1E, 0x1E, 0x1C, 0x00, 0x00, 0x00, 0x00, // 58 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1E, 0x1E, 0x00, 0xC0, 0xF0, 0xF8, 0x78, 0x38, 0x08, 0x08, 0x08, 0x00, 0x00, // 59 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xE0, 0xF0, 0xF8, 0xDC, 0x8E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 60 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 61 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1E, 0xBC, 0xF8, 0xF0, 0xE0, 0x60, 0x0C, 0x0E, 0x0F, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 62 + 0x60, 0x70, 0x78, 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, 0xE0, 0x80, 0x00, 0x00, 0xE0, 0xE0, 0xF0, 0x78, 0x38, 0x1C, 0x1F, 0x0F, 0x07, 0x00, 0x0C, 0x1E, 0x1E, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 63 + 0x00, 0x80, 0xE0, 0xF0, 0xF0, 0x78, 0x38, 0x1C, 0x9C, 0x9C, 0x9C, 0x1C, 0x1C, 0x38, 0x38, 0x78, 0xF0, 0xE0, 0xC0, 0x00, 0xFE, 0xFF, 0xFF, 0x03, 0x78, 0xFE, 0xFF, 0xC7, 0xC3, 0xE3, 0xF9, 0xFC, 0xFC, 0xC0, 0xC0, 0xC0, 0xE1, 0xFF, 0x7F, 0x3F, 0x00, 0x07, 0x0F, 0x1F, 0x1E, 0x3C, 0x39, 0x71, 0x71, 0x71, 0x70, 0x70, 0x71, 0x39, 0x39, 0x39, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 64 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xF0, 0xF8, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF8, 0xFE, 0xFF, 0xE7, 0xE3, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x38, 0x3F, 0x3F, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1F, 0x3F, 0x3F, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 65 + 0xF0, 0xF8, 0xF8, 0x38, 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, 0xE0, 0xC0, 0x00, 0xFF, 0xFF, 0xFF, 0x38, 0x38, 0x38, 0x38, 0x38, 0x7C, 0xFF, 0xFF, 0xE7, 0x80, 0x1F, 0x3F, 0x3F, 0x38, 0x38, 0x38, 0x3C, 0x1C, 0x1C, 0x1E, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 66 + 0x00, 0x00, 0x00, 0x80, 0xE0, 0xE0, 0xF0, 0x78, 0x38, 0x38, 0x38, 0xF8, 0xF8, 0xF0, 0xF0, 0xFC, 0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, 0x1E, 0x38, 0x38, 0x38, 0x38, 0x3C, 0x1C, 0x1E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 67 + 0xF0, 0xF8, 0xF8, 0x30, 0x70, 0x60, 0xE0, 0xE0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0xFF, 0xFE, 0xF8, 0x1F, 0x1F, 0x1F, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3C, 0x1C, 0x1F, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 68 + 0xF8, 0xF8, 0xF8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x10, 0xFF, 0xFF, 0xFF, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x10, 0x0F, 0x1F, 0x3F, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 69 + 0xF8, 0xF8, 0xF8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x30, 0x10, 0xFF, 0xFF, 0xFF, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x08, 0x00, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 70 + 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0x70, 0x38, 0x38, 0x38, 0x38, 0x70, 0x70, 0x60, 0x00, 0x00, 0xF0, 0xFE, 0xFF, 0x0F, 0x63, 0x70, 0x70, 0x70, 0x38, 0x38, 0x38, 0xB8, 0xF8, 0xF8, 0xF8, 0x38, 0x07, 0x0F, 0x1F, 0x3C, 0x38, 0x38, 0x38, 0x38, 0x3C, 0x1C, 0x1E, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 71 + 0xF0, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF8, 0xF0, 0xFF, 0xFF, 0xFF, 0x70, 0x70, 0x70, 0x70, 0x38, 0x38, 0x38, 0x38, 0x38, 0xFF, 0xFF, 0xFF, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 72 + 0x10, 0x38, 0x38, 0x38, 0xF8, 0xF8, 0xF8, 0x38, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x38, 0x3F, 0x3F, 0x3F, 0x38, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 73 + 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x38, 0x38, 0xF8, 0xF8, 0xF8, 0x38, 0x38, 0x38, 0x10, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x1F, 0x1C, 0x3C, 0x38, 0x38, 0x3F, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 74 + 0xF0, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0x78, 0x30, 0x00, 0xFF, 0xFF, 0xFF, 0xFC, 0xFE, 0xDF, 0x8F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x3F, 0x01, 0x03, 0x07, 0x07, 0x0F, 0x1E, 0x1C, 0x3C, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 75 + 0xF0, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x3F, 0x38, 0x38, 0x38, 0x38, 0x3C, 0x1C, 0x1C, 0x1C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 76 + 0x00, 0x00, 0x80, 0xF0, 0xF8, 0xF8, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x0F, 0x7F, 0xFF, 0xF8, 0x80, 0xE0, 0xFC, 0xFF, 0x3F, 0x1F, 0xFF, 0xFF, 0xC0, 0x00, 0x3E, 0x3F, 0x1F, 0x01, 0x00, 0x00, 0x07, 0x3F, 0x3F, 0x3F, 0x0F, 0x01, 0x00, 0x00, 0x03, 0x1F, 0x3F, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 77 + 0xF0, 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xF0, 0xFF, 0xFF, 0xFF, 0x01, 0x03, 0x07, 0x1F, 0x3E, 0x7C, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 78 + 0x00, 0x00, 0x80, 0xE0, 0xE0, 0xF0, 0x78, 0x38, 0x38, 0x38, 0x38, 0x38, 0x78, 0xF0, 0xF0, 0xE0, 0x80, 0xF8, 0xFF, 0xFF, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x3F, 0x01, 0x07, 0x0F, 0x1F, 0x1C, 0x3C, 0x38, 0x38, 0x38, 0x38, 0x3C, 0x1E, 0x1F, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 79 + 0xF0, 0xF8, 0xF8, 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, 0xE0, 0xC0, 0xFF, 0xFF, 0xFF, 0x38, 0x38, 0x38, 0x3C, 0x1C, 0x1F, 0x0F, 0x03, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 80 + 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0x70, 0x70, 0x38, 0x38, 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x03, 0x0F, 0x1F, 0x1E, 0x38, 0x38, 0x70, 0x77, 0x7F, 0x7F, 0x7E, 0x7C, 0x38, 0x78, 0xFC, 0xFE, 0xCF, 0x87, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0x38, 0x38, 0x18, // 81 + 0xF0, 0xF8, 0xF8, 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF9, 0x3F, 0x3F, 0x0F, 0x00, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x01, 0x01, 0x03, 0x07, 0x07, 0x0F, 0x1E, 0x1E, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 82 + 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0x70, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x30, 0x30, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x1E, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, 0xF8, 0xF0, 0xE0, 0x07, 0x1F, 0x1F, 0x3C, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3C, 0x1C, 0x1C, 0x1E, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 83 + 0x10, 0x38, 0x38, 0x38, 0x38, 0x38, 0xF8, 0xF8, 0xF8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 84 + 0xF0, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF8, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x1F, 0x01, 0x07, 0x0F, 0x1F, 0x3C, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1C, 0x1F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 85 + 0x78, 0xF8, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xF8, 0x38, 0x00, 0x03, 0x3F, 0xFF, 0xFC, 0xC0, 0x80, 0xF0, 0xFE, 0x7F, 0x1F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0F, 0x3F, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 86 + 0x38, 0xF8, 0xF8, 0xC0, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xF8, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF8, 0xF8, 0x38, 0x00, 0x03, 0x1F, 0xFF, 0xF0, 0xC0, 0xFC, 0xFF, 0x7F, 0x07, 0xFF, 0xFF, 0xC0, 0x80, 0xE0, 0xF8, 0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3F, 0x3F, 0x3F, 0x03, 0x00, 0x00, 0x03, 0x3F, 0x3F, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 87 + 0x00, 0x38, 0x78, 0xF8, 0xF0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0xF8, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x83, 0xE7, 0xFF, 0xFF, 0x7C, 0xFF, 0xFF, 0xC7, 0x83, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3E, 0x1F, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, 0x3E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 88 + 0x38, 0xF8, 0xF8, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF8, 0xF8, 0x38, 0x00, 0x00, 0x01, 0x07, 0x0F, 0x3F, 0x7C, 0xF8, 0xF0, 0xFC, 0x7F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x3E, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 89 + 0x10, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xB8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x38, 0x10, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF8, 0x7C, 0x3E, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3C, 0x3F, 0x3F, 0x3B, 0x39, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 90 + 0xFC, 0xFC, 0xFC, 0x1C, 0x1C, 0x1C, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0x80, 0x80, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // 91 + 0x38, 0xF8, 0xF8, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x3F, 0xFF, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1F, 0x7F, 0x7C, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 92 + 0x1C, 0x1C, 0x1C, 0xFC, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // 93 + 0x60, 0x70, 0x78, 0x3C, 0x1E, 0x0E, 0x1E, 0x3C, 0x78, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 94 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, // 95 + 0x06, 0x0E, 0x1E, 0x7C, 0x78, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 96 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF8, 0xFC, 0x3C, 0x1E, 0x0E, 0x0E, 0xFE, 0xFC, 0xFC, 0x00, 0x07, 0x1F, 0x1F, 0x3C, 0x38, 0x38, 0x3C, 0x1F, 0x1F, 0x3F, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 97 + 0xF8, 0xFC, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x1C, 0x1E, 0x0E, 0x0E, 0x0E, 0x3C, 0xFC, 0xF8, 0xE0, 0x7F, 0x7F, 0x7F, 0x78, 0x70, 0x70, 0x70, 0x78, 0x3C, 0x3F, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 98 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0x7C, 0x1E, 0x0E, 0x0E, 0x0E, 0x1E, 0x1C, 0x18, 0x07, 0x0F, 0x1F, 0x3C, 0x38, 0x38, 0x38, 0x38, 0x1C, 0x1C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 99 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFC, 0xF8, 0xE0, 0xF8, 0xFC, 0x3C, 0x0E, 0x0E, 0x0E, 0x0E, 0x1E, 0xFF, 0xFF, 0xFF, 0x07, 0x0F, 0x1F, 0x3C, 0x38, 0x38, 0x38, 0x38, 0x3C, 0x3F, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 100 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF8, 0xFC, 0xBC, 0xDE, 0xCE, 0xEE, 0xEE, 0x7E, 0x7C, 0x38, 0x07, 0x0F, 0x1F, 0x3F, 0x39, 0x39, 0x38, 0x38, 0x3C, 0x1C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 101 + 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0x3C, 0x1C, 0x1C, 0x1C, 0x08, 0x04, 0x0E, 0x0E, 0xFF, 0xFF, 0xFF, 0x0E, 0x0E, 0x0E, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 102 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF8, 0x3C, 0x1E, 0x0E, 0x0E, 0x0E, 0x0E, 0xFE, 0xFC, 0x78, 0x07, 0x1F, 0x1F, 0x3C, 0x38, 0x38, 0x38, 0x9C, 0xFF, 0xFF, 0xFF, 0x00, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x38, 0x38, 0x18, 0x00, 0x00, // 103 + 0xF8, 0xFC, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x7C, 0x1C, 0x0E, 0x0E, 0xFE, 0xFE, 0xFC, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 104 + 0x70, 0x70, 0x70, 0xFC, 0xFE, 0xFC, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, // 105 + 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xFC, 0x00, 0xC0, 0xC0, 0x80, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x18, 0x38, 0x78, 0x70, 0x70, 0x78, 0x38, 0x18, // 106 + 0xF8, 0xFC, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xC0, 0xE0, 0xF0, 0xF8, 0xBC, 0x1E, 0x0E, 0x06, 0x1F, 0x3F, 0x1F, 0x01, 0x00, 0x01, 0x07, 0x0F, 0x1F, 0x3E, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 107 + 0xF8, 0xFC, 0xF8, 0xFF, 0xFF, 0xFF, 0x3F, 0x7F, 0x3F, 0x00, 0x00, 0x00, // 108 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFE, 0x3C, 0x1C, 0x0E, 0xFE, 0xFE, 0xFC, 0x1C, 0x0E, 0x0E, 0xFE, 0xFE, 0xFC, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 109 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFC, 0x3C, 0x1E, 0x0E, 0x0E, 0xFE, 0xFC, 0xF8, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 110 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF8, 0xFC, 0x3C, 0x0E, 0x0E, 0x0E, 0x1E, 0xFC, 0xF8, 0xF0, 0x07, 0x0F, 0x1F, 0x3C, 0x38, 0x38, 0x38, 0x3C, 0x1F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 111 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xFE, 0x1C, 0x0E, 0x0E, 0x0E, 0x1E, 0xFC, 0xFC, 0xF0, 0xFF, 0xFF, 0xFF, 0x38, 0x38, 0x38, 0x38, 0x3C, 0x1F, 0x0F, 0x03, 0x78, 0xF8, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 112 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0x3C, 0x1E, 0x0E, 0x0E, 0x0E, 0xFE, 0xFE, 0xFE, 0x07, 0x0F, 0x1F, 0x1C, 0x38, 0x38, 0x38, 0x38, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xF8, 0x78, // 113 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0x3C, 0x1C, 0x0E, 0x0E, 0x7E, 0x7E, 0x7C, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 114 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x7C, 0xFE, 0xEE, 0xCE, 0xCE, 0x9E, 0x1E, 0x1E, 0x1C, 0x1C, 0x3C, 0x38, 0x38, 0x39, 0x39, 0x1F, 0x1F, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 115 + 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0E, 0x0E, 0x0E, 0xFF, 0xFF, 0xFF, 0x0E, 0x0E, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 116 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xFC, 0x07, 0x1F, 0x3F, 0x38, 0x38, 0x38, 0x38, 0x3F, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 117 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x7E, 0xFE, 0xF8, 0xC0, 0x00, 0xC0, 0xF8, 0xFE, 0x7E, 0x0E, 0x00, 0x00, 0x01, 0x07, 0x3F, 0x3E, 0x3F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 118 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xFE, 0xC0, 0x80, 0xF0, 0xFC, 0xFE, 0xFE, 0xE0, 0x00, 0xF0, 0xFE, 0xFE, 0x1E, 0x00, 0x0F, 0x3F, 0x3F, 0x3F, 0x0F, 0x01, 0x01, 0x0F, 0x3F, 0x3F, 0x3F, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 119 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0E, 0x1E, 0xFC, 0xF8, 0xF0, 0xF0, 0xF8, 0x7C, 0x3E, 0x1E, 0x0E, 0x18, 0x1C, 0x1E, 0x0F, 0x07, 0x03, 0x01, 0x03, 0x07, 0x1F, 0x3E, 0x3C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 120 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x1E, 0x7E, 0xFC, 0xF0, 0xE0, 0x80, 0x80, 0xE0, 0xF8, 0xFE, 0x3E, 0x0E, 0x00, 0x00, 0x00, 0x01, 0xC3, 0xFF, 0xFF, 0x7F, 0x1F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x78, 0x78, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 121 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0E, 0x0E, 0x0E, 0x8E, 0xCE, 0xEE, 0xFE, 0xFE, 0x3E, 0x1E, 0x0E, 0x38, 0x38, 0x3C, 0x3E, 0x3F, 0x3F, 0x3B, 0x39, 0x38, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 122 + 0x00, 0x00, 0xE0, 0xF8, 0xFC, 0x1C, 0x1C, 0x1C, 0x18, 0xE0, 0xF0, 0xFF, 0xBF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3F, 0xFF, 0xFF, 0xC0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0x18, 0x18, 0x18, // 123 + 0xFC, 0xFC, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x08, 0x08, // 124 + 0x1C, 0x1C, 0x1C, 0xFC, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xBF, 0xFF, 0xF0, 0xE0, 0x80, 0x80, 0xC0, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, // 125 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, 0x70, 0x38, 0x38, 0x78, 0x78, 0xF0, 0xE0, 0xE0, 0xF8, 0x78, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 126 + 0xFC, 0xFC, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xFC, 0xFC, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // 127 + +}; + +#endif
diff -r bdc04bb2ffc1 -r e4b50f4c13a8 KS0108.cpp --- a/KS0108.cpp Thu Feb 10 03:06:19 2011 +0000 +++ b/KS0108.cpp Mon May 02 19:05:30 2011 +0000 @@ -1,28 +1,3 @@ -/************************************************************************* -Copyright (c) 2010 Dimiter Kentri - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*******************************************************************************/ - -/* - *@Includes - */ #include "KS0108.h" @@ -33,10 +8,11 @@ CS1.output(); CS2.output(); RST.write(0); wait_us(10); - RST.write(1); //reset screen - E.write(0); - ClearScreen(); //clear display - WriteInstruction(LCD_ON, BOTH); //turn on lcd + RST.write(1); //reset screen + E.write(0); + ClearScreen(); //clear display + WriteInstruction(LCD_ON, BOTH); //turn on lcd + Inverted = 0; } @@ -48,7 +24,7 @@ SelectSide(side); //select controller - wait(0.0000003); // 300ns + wait(0.0000003); //wait 300ns E.write(1); DB.output(); DB.write(Command); @@ -72,6 +48,79 @@ E = 0; } +void KS0108::WriteData(unsigned int data) { + unsigned int displayData, yOffset, chip; + + if(Coord.x >= SCREEN_WIDTH) + return; + chip = Coord.x/CHIP_WIDTH; + wait(0.000000450); // 300ns + + if(Coord.x % CHIP_WIDTH == 0 && chip > 0){ + GotoXY(Coord.x, Coord.y); + } + + DI.write(1); // D/I = 1 + RW.write(0); // R/W = 0 + DB.output(); // data port is output + + yOffset = Coord.y%8; + + if(yOffset != 0) { // first page + + displayData = ReadData(); + + DI.write(1); // D/I = 1 + RW.write(0); // R/W = 0 + SelectSide(chip); + DB.output(); + // data port is output + displayData |= data << yOffset; + if(Inverted) displayData = ~displayData; + DB.write(displayData); // write data + wait(0.0000003); // 300ns + E.write(1); + wait(0.0000001); + E.write(0); + + // second page + GotoXY(Coord.x, Coord.y+8); + + displayData = ReadData(); + + DI.write(1); // D/I = 1 + RW.write(0); // R/W = 0 + SelectSide(chip); + + DB.output(); // data port is output + + displayData |= data >> (8-yOffset); + + if(Inverted) + displayData = ~displayData; + DB.write(displayData); // write data + + wait(0.0000003); // 300ns + E.write(1); + wait(0.0000001); + E.write(0); + + GotoXY(Coord.x+1, Coord.y-8); + }else { + + // just this code gets executed if the write is on a single page + if(Inverted) + data = ~data; + wait(0.0000003); // 300nsEN_DELAY(); + DB.write(data); // write data + wait(0.0000003); // 300ns + E = 1; + wait(0.0000001); + E = 0; + Coord.x++; + } +} + void KS0108::WriteDataColPag(unsigned int page, unsigned int col, unsigned int data){ @@ -82,7 +131,7 @@ if(col<(SCREEN_WIDTH/2)){ SelectSide(LEFT); WriteInstruction(LCD_SET_PAGE|page,LEFT); - WriteInstruction(LCD_SET_ADD|col,LEFT); //set page and column position + WriteInstruction(LCD_SET_ADD|col,LEFT); //set page and column position WriteData(data,LEFT); //output data to D0-D7 }else{ @@ -90,19 +139,21 @@ col -= (SCREEN_WIDTH/2); WriteInstruction(LCD_SET_PAGE|page,RIGHT); WriteInstruction(LCD_SET_ADD|col,RIGHT); //set page and column position - WriteData(data,RIGHT); //output data to D0-D7 + WriteData(data,RIGHT); //output data to D0-D7 } SelectSide(NONE); } + unsigned int KS0108::ReadData(){ unsigned int data; DB.input(); - DI.write(1); + DI.write(1); RW.write(1); + E.write(1); wait(0.00000045); @@ -114,7 +165,6 @@ return data; } - unsigned int KS0108::ReadStatus(){ unsigned int status; DB.input(); @@ -131,7 +181,8 @@ DB.output(); return status; -} +} + void KS0108::SelectSide(unsigned char side){ @@ -165,6 +216,7 @@ WriteInstruction(LCD_OFF,BOTH); } + /*******************************************************************************************/ @@ -178,19 +230,19 @@ if(x>=64){ WriteInstruction(LCD_SET_PAGE|(y/8),RIGHT); WriteInstruction(LCD_SET_ADD|x,RIGHT); - position = ReadData(); //dummy read - position = ReadData(); //actual read + position = ReadData(); //dummy read + position = ReadData(); //actual read WriteInstruction(LCD_SET_ADD|x,RIGHT); if(color==WHITE) - WriteData(position&(~(1<<(y%8))),RIGHT); // draw a white pixel + WriteData(position&(~(1<<(y%8))),RIGHT); // draw a white pixel else WriteData(position|(1<<(y%8)),RIGHT); wait_us(450); }else{ WriteInstruction(LCD_SET_PAGE|(y/8),LEFT); WriteInstruction(LCD_SET_ADD|x,LEFT); - position = ReadData(); //dummy read - position = ReadData(); //actual read + position = ReadData(); //dummy read + position = ReadData(); //actual read WriteInstruction(LCD_SET_ADD|x,LEFT); if(color==WHITE) WriteData(position&(~(1<<(y%8))),LEFT); @@ -333,7 +385,7 @@ // If the starting X coordinate is larger than the ending X coordinate, - // swap the start and end coordinates. + // swap coordinates. if(lX1 > lX2){ lError = lX1; lX1 = lX2; @@ -349,7 +401,7 @@ lError = -lDeltaX / 2; // Initialize the error term to negative half the X delta. - if(lY1 < lY2){ // Determine the direction to step in the Y axis when required. + if(lY1 < lY2){ // Determine the direction to step in the Y axis when required. lYStep = 1; }else{ lYStep = -1; @@ -373,11 +425,11 @@ lError += lDeltaY; - if(lError > 0){ // See if the error term is now greater than zero. + if(lError > 0){ // See if the error term is now greater than zero. - lY1 += lYStep; // Take a step in the Y axis. + lY1 += lYStep; // Take a step in the Y axis. - lError -= lDeltaX; // Decrement the error term by the X delta. + lError -= lDeltaX; // Decrement the error term by the X delta. } } } @@ -501,7 +553,7 @@ StoppingX = TwoBSquare*XRadius; StoppingY = 0; - while ( StoppingX >=StoppingY ) //first set of points,y'>-1 + while ( StoppingX >=StoppingY ) //first set of points,y'>-1 { Plot4EllipsePoints(CX,CY,X,Y,color); Y++; @@ -524,7 +576,7 @@ StoppingY = TwoASquare*YRadius; StoppingX = 0; - while ( StoppingY >=StoppingX ) //{2nd set of points, y'< -1} + while ( StoppingY >=StoppingX ) //{2nd set of points, y'< -1} { Plot4EllipsePoints(CX,CY,X,Y,color); X++; @@ -547,8 +599,32 @@ SetPixel(CX-X, CY+Y, color); //{point in quadrant 2} SetPixel(CX-X, CY-Y, color); //{point in quadrant 3} SetPixel(CX+X, CY-Y, color); //{point in quadrant 4} +} + + +void KS0108::RightTriangle ( int topx, int topy, int rightx, int righty) { + + //draw rectangle one line at a time + Line( topx,topy, rightx,righty,BLACK ); //draw hypotenuse + Line ( topx,righty,topx,topy,BLACK); //draw perpendicular + Line (topx,righty, rightx,righty,BLACK); // draw base + } +void KS0108::Triangle ( int topx, int topy, int rightx, int righty) { + int base =0; + base = 2* rightx-topx; + //draw rectangle one line at a time + Line( topx,topy, rightx,righty,BLACK ); //draw hypotenuse + Line ( topx,righty,topx,topy,BLACK); //draw perpendicular + Line(topx-base/2,righty, rightx,righty,BLACK); // draw base + Line(topx-base/2, righty, topx,topy,BLACK); // draw hypotenuse + +} + + + + /***********************************************************************************/ @@ -574,44 +650,58 @@ } } -void KS0108::CustomImage(Image* image,unsigned int x, unsigned int y, unsigned int color){ - unsigned int i, j, bit_idx, pixelByte, imgHeight, imgSize; +unsigned int KS0108::ReadArrayData(const unsigned int* ptr) { + return (*ptr); +} - imgHeight = image->imgHeight; //get height of the image array - imgSize = (image->imgWidth)>>3; //number of bytes = width of icon/8 +void KS0108::DrawBitmap(const unsigned int * bitmap, unsigned int x, unsigned int y, unsigned int color){ +unsigned int width, height; +unsigned int i, j; - for(i=0;i<imgHeight;i++){ - for(j=0;j<imgSize;j++){ - pixelByte = image->imgarray[i*imgSize+j]; - for(bit_idx=0;bit_idx<8;bit_idx++){ - if(pixelByte&(0x80>>bit_idx)) - SetPixel(x+bit_idx+8*j, y+i, color); - else - SetPixel(x+bit_idx+8*j, y+i, !color); - } - } - } -} + width = ReadArrayData(bitmap++); + height = ReadArrayData(bitmap++); + for(j = 0; j < height / 8; j++) { + GotoXY(x, y + (j*8) ); + for(i = 0; i < width; i++) { + unsigned int displayData = ReadArrayData(bitmap++); + if(color == BLACK) + WriteData(displayData); + else + WriteData(~displayData); + } + } +} /******************************************************************************************/ -void KS0108::CursorXY(unsigned int x, unsigned int y){ +void KS0108::GotoXY(unsigned int x, unsigned int y) { + unsigned int chip, cmd; + if( (x > SCREEN_WIDTH-1) || (y > SCREEN_HEIGHT-1) ) // exit if coordinates are not legal - return; + return; + Coord.x = x; // save new coordinates + Coord.y = y; + + if(y/8 != Coord.page) { + Coord.page = y/8; + cmd = LCD_SET_PAGE | Coord.page; // set y address on all chips + for(chip=0; chip < 2; chip++){ + WriteInstruction(cmd, chip); + } + } + chip = Coord.x/64; + x = x % 64; + cmd = LCD_SET_ADD | x; + WriteInstruction(cmd, chip); // set x address on active chip - if(y<(SCREEN_WIDTH/2)){ - SelectSide(LEFT); - WriteInstruction(LCD_SET_PAGE|(y/8),RIGHT); - WriteInstruction(LCD_SET_ADD|x,RIGHT); - }else{ - SelectSide(RIGHT); - WriteInstruction(LCD_SET_PAGE|(y/8),RIGHT); - WriteInstruction(LCD_SET_ADD|x,RIGHT); - } } - -void KS0108::Putc (int page, int col,unsigned char c) { + +/*****************************************************************************************/ + + + +void KS0108::Putchar (int page, int col,unsigned char c) { if (c>31 && c<127){ for(int i=0;i<5;i++){ WriteDataColPag(page,col+i,System5x7[((c-32)*5+i)+6]); @@ -624,15 +714,13 @@ void KS0108::PutString(unsigned int x, unsigned int y,char* str){ while(*str != 0){ - Putc(x,y,*str); + Putchar(x,y,*str); str++; y+=System5x7[2]; } } - - void KS0108::PrintFloat(float val, unsigned int x,unsigned int y){ char buf[20] = {}; // prints up to 20 digits sprintf(buf,"%f",val); @@ -646,3 +734,102 @@ sprintf(buf,"%d",val); PutString(x,y,buf); } + +void KS0108::SelectFont(unsigned int* font,unsigned int color, FontCallback callback) { + Font = font; + FontRead = callback; + FontColor = color; +} + + +int KS0108::PrintChar(char c) { + unsigned int width = 0; + unsigned int height = FontRead(Font+FONT_HEIGHT); + unsigned int bytes = (height+7)/8; + + unsigned int firstChar = FontRead(Font+FONT_FIRST_CHAR); + unsigned int charCount = FontRead(Font+FONT_CHAR_COUNT); + + unsigned int index = 0; + unsigned int x=Coord.x , y=Coord.y; + + if(c < firstChar || c >= (firstChar+charCount)) { + return 1; + } + c-= firstChar; + + if( FontRead(Font+FONT_LENGTH) == 0 && FontRead(Font+FONT_LENGTH+1) == 0) { + // zero length is flag indicating fixed width font (array does not contain width data entries) + width = FontRead(Font+FONT_FIXED_WIDTH); + index = c*bytes*width+FONT_WIDTH_TABLE; + } + else{ + // variable width font, read width data, to get the index + for(unsigned int i=0; i<c; i++) { + index += FontRead(Font+FONT_WIDTH_TABLE+i); + } + index = index*bytes+charCount+FONT_WIDTH_TABLE; + width = FontRead(Font+FONT_WIDTH_TABLE+c); + } + + // last but not least, draw the character + for(unsigned int i=0; i<bytes; i++) { + unsigned int page = i*width; + for(unsigned int j=0; j<width; j++) { + unsigned int data = FontRead(Font+index+page+j); + + if(height > 8 && height < (i+1)*8) { + data >>= (i+1)*8-height; + } + + WriteData(data); + + } + // 1px gap between chars + WriteData(0x00); + GotoXY(x,Coord.y+8); + + } + GotoXY(x+width+1, y); + + + return 0; +} + +void KS0108::PrintString(char* str) { + int x = Coord.x; + while(*str != 0) { + if(*str == '\n') { + GotoXY(x, Coord.y+ FontRead(Font+FONT_HEIGHT)); + } else { + PrintChar(*str); + } + str++; + } +} + +void KS0108::PrintNumber(long n){ + char buf[10]; // prints up to 10 digits + char i=0; + if(n==0) + PrintChar('0'); + else{ + if(n < 0){ + PrintChar('-'); + n = -n; + } + while(n>0 && i <= 10){ + buf[i++] = n % 10; // n % base + n /= 10; // n/= base + } + for(; i >0; i--) + PrintChar((char) (buf[i-1] < 10 ? '0' + buf[i-1] : 'A' + buf[i-1] - 10)); + } +} + + + + + + +
diff -r bdc04bb2ffc1 -r e4b50f4c13a8 KS0108.h --- a/KS0108.h Thu Feb 10 03:06:19 2011 +0000 +++ b/KS0108.h Mon May 02 19:05:30 2011 +0000 @@ -1,31 +1,9 @@ -/************************************************************************* -Copyright (c) 2010 Dimiter Kentri - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*******************************************************************************/ - #ifndef KS0108_H #define KS0108_H -#define VERSION 1.11 +#define VERSION 2.0 -#include "mbed.h" +#include <mbed.h> #include "SystemFont5x7.h" /************************************************************************************/ @@ -37,8 +15,8 @@ #define LCD_DISP_START 0xC0 //Controller directives -#define LEFT 1 -#define RIGHT 2 +#define LEFT 0 +#define RIGHT 1 #define BOTH 3 #define NONE 4 @@ -49,8 +27,10 @@ //Screen dimensions #define SCREEN_HEIGHT 64 #define SCREEN_WIDTH 128 +#define CHIP_WIDTH 64 /***********************************************************************************/ +//helper functions #define absDiff(x,y) ((x>y) ? (x-y) : (y-x)) #define swap(a,b) \ @@ -60,8 +40,7 @@ t=a;\ a=b;\ b=t;\ -} while(0) - +} while(0) /**************************************************************************************/ @@ -73,6 +52,15 @@ #define FONT_CHAR_COUNT 5 #define FONT_WIDTH_TABLE 6 + +/*************************Callback function definietion for fonts *********************/ +typedef unsigned int (*FontCallback)(unsigned int*); + +/*************************Callback function for reading font array*********************/ +static unsigned int ReadData(unsigned int* ptr) { + return *ptr; +} + /*************************************************************************************/ #define MAX_IMG_SIZE 128*64 @@ -82,7 +70,17 @@ unsigned char imgarray[MAX_IMG_SIZE]; }Image; -/**************************************************************************************/ + +typedef struct { + unsigned int x; + unsigned int y; + unsigned int page; +} LCDCoord; + + +/****************************************************************************************/ + + class KS0108 { public: @@ -114,6 +112,15 @@ */ void WriteData(unsigned int data ,unsigned char side); + + /** + *@brief Write data byte to the controller (overloaded function). + * + *@param data data send to the controller chip + *@return none + */ + void WriteData(unsigned int data); + /** *@brief Write data byte to the screen on specific page and column *@param page page varies from 0-7 for each side @@ -149,6 +156,17 @@ */ void SelectSide(unsigned char side); + + /** + *@brief Set cursor to specified coordinates + * + *@param x row + *@param y column + *@return none + */ + void GotoXY(unsigned int x, unsigned int y); + + /** *@brief Clears display * @@ -158,7 +176,7 @@ */ void ClearScreen(); - + /** *@brief Turn on display * @@ -312,8 +330,33 @@ */ void RoundRectangle(unsigned int x, unsigned int y, unsigned int width, unsigned int height, unsigned int radius, unsigned int color); + + /** + *Draws a triangle . + *@param + *@param + *@param + *@param + *@return none + * + */ + + void Triangle ( int topx, int topy, int rightx, int righty); + - /* + /** + *Draws a right angle triangle . + *@param + *@param + *@param + *@param + *@return none + * + */ + void RightTriangle ( int topx, int topy, int rightx, int righty); + + + /** *Draws an empty circle centered a x,y with radius R and specific color. *@param CenterX center x coordinate *@param CenterY center y coordinate @@ -324,7 +367,7 @@ */ void EmptyCircle(unsigned int CenterX, unsigned int CenterY, unsigned int Radius,unsigned int color); - /* + /** * Circle fill Code is merely a modification of the midpoint * circle algorithem which is an adaption of Bresenham's line algorithm * http://en.wikipedia.org/wiki/Midpoint_circle_algorithm @@ -338,7 +381,7 @@ */ void FullCircle(unsigned int CenterX, unsigned int CenterY, unsigned int Radius,unsigned int color); - /* + /** *Draws an ellipse. *@param CX x coordinate of one side *@param CY y coordinate of one side @@ -353,27 +396,7 @@ void PlotEllipse(long CX, long CY, long XRadius,long YRadius, int color); void Plot4EllipsePoints(long CX,long CY, long X, long Y, int color); - /** - *@brief Draws an image on screen. - *@param IamgeData 128x64 image array - *@return none - * - * - */ - void FullScreenBMP (unsigned char *ImageData); - - - /** - *@brief Draw a 1 bit bmp image at specified coordinates - * - *@param image struct containing img size and array - *@param x x-coordinate - *@param y y-coordinate - *@param color can be BLACK or WHITE - *@return none - */ - void CustomImage(Image* image,unsigned int x, unsigned int y, unsigned int color); - + /** *@brief Round a double *@param double @@ -383,6 +406,38 @@ double dfloor( double value ); + /*****************************Bitmaps *****************************************************************/ + + /** + *@brief Draws an image on screen. + *@param PictureData 128x64 image array + *@return none + * + * + */ + void FullScreenBMP (unsigned char *ImageData); + + /** + *@brief Draw a 1-bit bitmap + * + *@param image struct containing img size and array + *@param x x-coordinate + *@param y y-coordinate + *@param color can be BLACK or WHITE + *@return none + */ + void DrawBitmap(const unsigned int * bitmap, unsigned int x, unsigned int y, unsigned int color); + + /** + *@brief Static function , mplemented to read an array + *@param ptr data array + *@return none + */ + unsigned int ReadArrayData(const unsigned int* ptr); + + + /*************************************Font functions **************************************/ + /** *@brief Print a character on specified coordinates * @@ -391,7 +446,7 @@ *@param c integer value *@return none */ - void Putc (int page, int col,unsigned char c); + void Putchar (int page, int col,unsigned char c); /** *@brief Print a string on specified coordinates @@ -423,17 +478,45 @@ */ void PrintInteger(int val,unsigned int x,unsigned int y); + + /** + *@brief Select a specific font + * + *@param font font array + *@param color font color , can be BLACK or WHITE + *@param callback function pointer to load font + *@return none + */ + void SelectFont(unsigned int* font,unsigned int color, FontCallback callback); + + /** - *@brief Set cursor to specified coordinates + *@brief Print a character * - *@param x row - *@param y column + *@param c char *@return none */ - void CursorXY( unsigned int x, unsigned int y); + int PrintChar(char c); - - + + /** + *@brief Print a character string + * + *@param str char string + *@return none + */ + void PrintString(char* str); + + + /** + *@brief Print a number + * + *@param n number + *@return none + */ + void PrintNumber(long n); + + private: BusInOut DB; DigitalOut RST; @@ -442,9 +525,15 @@ DigitalOut E; DigitalInOut CS2; DigitalInOut CS1; - + bool Inverted; + + LCDCoord Coord; + FontCallback FontRead ; + unsigned int FontColor; + unsigned int* Font; unsigned int color; - unsigned int* Font; + + };
diff -r bdc04bb2ffc1 -r e4b50f4c13a8 arial_bold_14.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/arial_bold_14.h Mon May 02 19:05:30 2011 +0000 @@ -0,0 +1,167 @@ + + +/* + * + * Arial Bold 14 + * + * created with FontCreator + * written by F. Maximilian Thiele + * + * http://www.apetech.de/fontCreator + * me@apetech.de + * + * File Name : arial_bold_14 + * Date : 29.01.2005 + * Font size in bytes : 8712 + * Font width : 10 + * Font height : 14 + * Font first char : 32 + * Font last char : 128 + * Font used chars : 96 + * + * The font data are defined as + * + * struct _FONT_ { + * uint16_t font_Size_in_Bytes_over_all_included_Size_it_self; + * uint8_t font_Width_in_Pixel_for_fixed_drawing; + * uint8_t font_Height_in_Pixel_for_all_characters; + * unit8_t font_First_Char; + * uint8_t font_Char_Count; + * + * uint8_t font_Char_Widths[font_Last_Char - font_First_Char +1]; + * // for each character the separate width in pixels, + * // characters < 128 have an implicit virtual right empty row + * + * uint8_t font_data[]; + * // bit field of all characters + */ + +#include <inttypes.h> +#include <avr/pgmspace.h> + +#ifndef ARIAL_BOLD_14_H +#define ARIAL_BOLD_14_H + +#define ARIAL_BOLD_14_WIDTH 10 +#define ARIAL_BOLD_14_HEIGHT 14 + +static uint8_t Arial_Bold_14[] PROGMEM = { + 0x22, 0x08, // size + 0x0A, // width + 0x0E, // height + 0x20, // first char + 0x60, // char count + + // char widths + 0x04, 0x02, 0x05, 0x06, 0x07, 0x08, 0x09, 0x02, 0x03, 0x03, + 0x05, 0x08, 0x02, 0x04, 0x02, 0x04, 0x07, 0x04, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x02, 0x02, 0x07, 0x07, + 0x07, 0x08, 0x0E, 0x09, 0x08, 0x08, 0x08, 0x07, 0x07, 0x09, + 0x08, 0x02, 0x07, 0x08, 0x07, 0x0B, 0x08, 0x09, 0x07, 0x09, + 0x09, 0x07, 0x08, 0x08, 0x09, 0x0D, 0x07, 0x08, 0x08, 0x04, + 0x04, 0x04, 0x06, 0x08, 0x03, 0x07, 0x07, 0x06, 0x07, 0x07, + 0x05, 0x07, 0x07, 0x02, 0x03, 0x06, 0x02, 0x0A, 0x07, 0x07, + 0x07, 0x07, 0x05, 0x06, 0x05, 0x07, 0x07, 0x0B, 0x06, 0x07, + 0x05, 0x05, 0x01, 0x05, 0x07, 0x08, + + // font data + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 32 + 0xFE, 0xFE, 0x18, 0x18, // 33 + 0x1E, 0x1E, 0x00, 0x1E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, // 34 + 0x90, 0xF8, 0x9E, 0x90, 0xF8, 0x9E, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, // 35 + 0x18, 0x3C, 0x26, 0xFF, 0x66, 0xCC, 0x88, 0x04, 0x0C, 0x18, 0x3C, 0x18, 0x0C, 0x04, // 36 + 0x1C, 0x22, 0x1C, 0xC0, 0x30, 0x8E, 0x40, 0x80, 0x00, 0x00, 0x18, 0x04, 0x00, 0x0C, 0x10, 0x0C, // 37 + 0x80, 0xCC, 0x7E, 0x72, 0xF2, 0xDE, 0x0C, 0x80, 0x00, 0x0C, 0x1C, 0x10, 0x10, 0x10, 0x1C, 0x0C, 0x1C, 0x10, // 38 + 0x1E, 0x1E, 0x00, 0x00, // 39 + 0xF0, 0xFC, 0x06, 0x1C, 0x7C, 0xC0, // 40 + 0x06, 0xFC, 0xF0, 0xC0, 0x7C, 0x1C, // 41 + 0x14, 0x14, 0x0E, 0x14, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, // 42 + 0x60, 0x60, 0x60, 0xFC, 0xFC, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00, // 43 + 0x00, 0x00, 0x58, 0x38, // 44 + 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, // 45 + 0x00, 0x00, 0x18, 0x18, // 46 + 0x00, 0xC0, 0x38, 0x06, 0x18, 0x04, 0x00, 0x00, // 47 + 0xF8, 0xFC, 0x0E, 0x06, 0x0E, 0xFC, 0xF8, 0x04, 0x0C, 0x1C, 0x18, 0x1C, 0x0C, 0x04, // 48 + 0x18, 0x0C, 0xFE, 0xFE, 0x00, 0x00, 0x1C, 0x1C, // 49 + 0x18, 0x1C, 0x86, 0xC6, 0x66, 0x3E, 0x1C, 0x18, 0x1C, 0x1C, 0x18, 0x18, 0x18, 0x18, // 50 + 0x88, 0x8C, 0x06, 0x26, 0x26, 0xFE, 0xDC, 0x04, 0x0C, 0x1C, 0x18, 0x18, 0x0C, 0x04, // 51 + 0xC0, 0xE0, 0xB8, 0x8C, 0xFE, 0xFE, 0x80, 0x04, 0x04, 0x04, 0x04, 0x1C, 0x1C, 0x04, // 52 + 0x70, 0x7E, 0x3E, 0x36, 0x36, 0xF6, 0xC6, 0x0C, 0x1C, 0x18, 0x18, 0x18, 0x0C, 0x04, // 53 + 0xF8, 0xFC, 0x6E, 0x66, 0x66, 0xEE, 0xCC, 0x04, 0x0C, 0x18, 0x18, 0x18, 0x1C, 0x0C, // 54 + 0x06, 0x06, 0x06, 0xE6, 0x76, 0x1E, 0x06, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x00, // 55 + 0x9C, 0xFE, 0x66, 0x66, 0x66, 0xFE, 0x9C, 0x0C, 0x1C, 0x18, 0x18, 0x18, 0x1C, 0x0C, // 56 + 0x3C, 0x7E, 0x66, 0x66, 0x66, 0xFC, 0xF8, 0x0C, 0x1C, 0x18, 0x18, 0x1C, 0x0C, 0x04, // 57 + 0x18, 0x18, 0x18, 0x18, // 58 + 0x18, 0x18, 0x58, 0x38, // 59 + 0x60, 0x60, 0xF0, 0xF0, 0x98, 0x98, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x0C, // 60 + 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 61 + 0x0C, 0x98, 0x98, 0xF0, 0xF0, 0x60, 0x60, 0x0C, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, // 62 + 0x08, 0x0C, 0x06, 0xC6, 0xE6, 0x76, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, // 63 + 0xE0, 0x30, 0x08, 0xC4, 0xF6, 0x3A, 0x1A, 0x1A, 0xF2, 0xFA, 0x7E, 0x04, 0x08, 0xF0, 0x0C, 0x30, 0x60, 0x4C, 0x9C, 0x98, 0x98, 0x8C, 0x9C, 0x9C, 0x90, 0x48, 0x4C, 0x20, // 64 + 0x00, 0xC0, 0xF8, 0xBE, 0x86, 0xBE, 0xF8, 0xC0, 0x00, 0x18, 0x1C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1C, 0x18, // 65 + 0xFE, 0xFE, 0x66, 0x66, 0x66, 0x66, 0xFE, 0xDC, 0x1C, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x1C, 0x0C, // 66 + 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x0E, 0x9C, 0x08, 0x04, 0x0C, 0x1C, 0x18, 0x18, 0x1C, 0x0C, 0x04, // 67 + 0xFE, 0xFE, 0x06, 0x06, 0x06, 0x0E, 0xFC, 0xF8, 0x1C, 0x1C, 0x18, 0x18, 0x18, 0x1C, 0x0C, 0x04, // 68 + 0xFE, 0xFE, 0x66, 0x66, 0x66, 0x66, 0x66, 0x1C, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, // 69 + 0xFE, 0xFE, 0x66, 0x66, 0x66, 0x66, 0x06, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, // 70 + 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0xC6, 0xCE, 0xDC, 0xC8, 0x04, 0x0C, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x0C, 0x04, // 71 + 0xFE, 0xFE, 0x60, 0x60, 0x60, 0x60, 0xFE, 0xFE, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, // 72 + 0xFE, 0xFE, 0x1C, 0x1C, // 73 + 0x80, 0x80, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x0C, 0x1C, 0x18, 0x18, 0x18, 0x1C, 0x0C, // 74 + 0xFE, 0xFE, 0x60, 0x30, 0x78, 0xEC, 0x86, 0x02, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x04, 0x1C, 0x18, // 75 + 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, // 76 + 0xFE, 0xFE, 0x0E, 0x7C, 0xE0, 0x00, 0xE0, 0x7C, 0x0E, 0xFE, 0xFE, 0x1C, 0x1C, 0x00, 0x00, 0x0C, 0x1C, 0x0C, 0x00, 0x00, 0x1C, 0x1C, // 77 + 0xFE, 0xFE, 0x1C, 0x78, 0xE0, 0x80, 0xFE, 0xFE, 0x1C, 0x1C, 0x00, 0x00, 0x04, 0x0C, 0x1C, 0x1C, // 78 + 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x06, 0x0E, 0xFC, 0xF8, 0x04, 0x0C, 0x1C, 0x18, 0x18, 0x18, 0x1C, 0x0C, 0x04, // 79 + 0xFE, 0xFE, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, // 80 + 0xF8, 0xFC, 0x0E, 0x06, 0x86, 0x06, 0x0E, 0xFC, 0xF8, 0x04, 0x0C, 0x1C, 0x18, 0x18, 0x1C, 0x0C, 0x1C, 0x24, // 81 + 0xFE, 0xFE, 0x66, 0x66, 0xE6, 0xE6, 0xBE, 0x1C, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x0C, 0x1C, 0x18, 0x10, // 82 + 0x3C, 0x7E, 0x66, 0x66, 0x66, 0xEE, 0xCC, 0x0C, 0x1C, 0x18, 0x18, 0x18, 0x1C, 0x0C, // 83 + 0x06, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x00, // 84 + 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x04, 0x0C, 0x1C, 0x18, 0x18, 0x1C, 0x0C, 0x04, // 85 + 0x02, 0x1E, 0xFC, 0xE0, 0x00, 0xE0, 0xFC, 0x1E, 0x02, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, // 86 + 0x06, 0xFE, 0xF8, 0x00, 0xF0, 0xFE, 0x0E, 0xFE, 0xF0, 0x00, 0xF8, 0xFE, 0x06, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x00, // 87 + 0x06, 0x0E, 0xF8, 0xF0, 0xF8, 0x0E, 0x06, 0x18, 0x1C, 0x04, 0x00, 0x04, 0x1C, 0x18, // 88 + 0x06, 0x0E, 0x38, 0xF0, 0xF0, 0x38, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x00, // 89 + 0x06, 0x06, 0x86, 0xE6, 0x76, 0x1E, 0x0E, 0x06, 0x18, 0x1C, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, // 90 + 0xFE, 0xFE, 0x06, 0x06, 0xFC, 0xFC, 0xC0, 0xC0, // 91 + 0x06, 0x38, 0xC0, 0x00, 0x00, 0x00, 0x04, 0x18, // 92 + 0x06, 0x06, 0xFE, 0xFE, 0xC0, 0xC0, 0xFC, 0xFC, // 93 + 0x20, 0x38, 0x0E, 0x0E, 0x38, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 94 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // 95 + 0x02, 0x06, 0x04, 0x00, 0x00, 0x00, // 96 + 0x10, 0x98, 0xD8, 0x58, 0xF8, 0xF0, 0x00, 0x0C, 0x1C, 0x18, 0x18, 0x0C, 0x1C, 0x10, // 97 + 0xFE, 0xFE, 0x30, 0x18, 0x38, 0xF0, 0xE0, 0x1C, 0x1C, 0x0C, 0x18, 0x1C, 0x0C, 0x04, // 98 + 0xE0, 0xF0, 0x18, 0x18, 0x38, 0x30, 0x04, 0x0C, 0x18, 0x18, 0x1C, 0x0C, // 99 + 0xE0, 0xF0, 0x38, 0x18, 0x30, 0xFE, 0xFE, 0x04, 0x0C, 0x1C, 0x18, 0x0C, 0x1C, 0x1C, // 100 + 0xE0, 0xF0, 0xD8, 0xD8, 0xD8, 0xF0, 0xE0, 0x04, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x08, // 101 + 0x18, 0xFC, 0xFE, 0x1A, 0x1A, 0x00, 0x1C, 0x1C, 0x00, 0x00, // 102 + 0xE0, 0xF0, 0x38, 0x18, 0x30, 0xF8, 0xF8, 0x64, 0xEC, 0xDC, 0xD8, 0xCC, 0xFC, 0x7C, // 103 + 0xFE, 0xFE, 0x30, 0x18, 0x18, 0xF8, 0xF0, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x1C, 0x1C, // 104 + 0xFA, 0xFA, 0x1C, 0x1C, // 105 + 0x00, 0xFA, 0xFA, 0xC0, 0xFC, 0x7C, // 106 + 0xFE, 0xFE, 0xE0, 0xF0, 0x98, 0x08, 0x1C, 0x1C, 0x00, 0x04, 0x1C, 0x18, // 107 + 0xFE, 0xFE, 0x1C, 0x1C, // 108 + 0xF8, 0xF8, 0x10, 0x18, 0xF8, 0xF0, 0x18, 0x18, 0xF8, 0xF0, 0x1C, 0x1C, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x1C, 0x1C, // 109 + 0xF8, 0xF8, 0x30, 0x18, 0x18, 0xF8, 0xF0, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x1C, 0x1C, // 110 + 0xE0, 0xF0, 0x38, 0x18, 0x38, 0xF0, 0xE0, 0x04, 0x0C, 0x1C, 0x18, 0x1C, 0x0C, 0x04, // 111 + 0xF8, 0xF8, 0x30, 0x18, 0x38, 0xF0, 0xE0, 0xFC, 0xFC, 0x0C, 0x18, 0x1C, 0x0C, 0x04, // 112 + 0xE0, 0xF0, 0x38, 0x18, 0x30, 0xF8, 0xF8, 0x04, 0x0C, 0x1C, 0x18, 0x0C, 0xFC, 0xFC, // 113 + 0xF8, 0xF8, 0x30, 0x18, 0x18, 0x1C, 0x1C, 0x00, 0x00, 0x00, // 114 + 0x70, 0xF8, 0xD8, 0xD8, 0xD8, 0x90, 0x08, 0x18, 0x18, 0x18, 0x1C, 0x0C, // 115 + 0x18, 0xFC, 0xFE, 0x18, 0x18, 0x00, 0x0C, 0x1C, 0x18, 0x18, // 116 + 0xF8, 0xF8, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0x0C, 0x1C, 0x18, 0x18, 0x0C, 0x1C, 0x1C, // 117 + 0x38, 0xF8, 0xC0, 0x00, 0xC0, 0xF8, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x00, // 118 + 0x18, 0xF8, 0xE0, 0x00, 0xF0, 0x38, 0xF0, 0x00, 0xE0, 0xF8, 0x18, 0x00, 0x00, 0x1C, 0x1C, 0x0C, 0x00, 0x0C, 0x1C, 0x1C, 0x00, 0x00, // 119 + 0x18, 0x38, 0xE0, 0xE0, 0x38, 0x18, 0x18, 0x1C, 0x04, 0x04, 0x1C, 0x18, // 120 + 0x18, 0xF8, 0xE0, 0x00, 0xE0, 0xF8, 0x18, 0x00, 0x84, 0xFC, 0xF8, 0x3C, 0x04, 0x00, // 121 + 0x18, 0x98, 0xD8, 0x78, 0x38, 0x1C, 0x1C, 0x18, 0x18, 0x18, // 122 + 0x80, 0xFC, 0x7E, 0x06, 0x06, 0x00, 0x7C, 0xFC, 0xC0, 0xC0, // 123 + 0xFE, 0xFC, // 124 + 0x06, 0x06, 0x7E, 0xFC, 0x80, 0xC0, 0xC0, 0xFC, 0x7C, 0x00, // 125 + 0x60, 0x30, 0x30, 0x70, 0x60, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 126 + 0xFE, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0xFE, 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1C // 127 + +}; + +#endif
diff -r bdc04bb2ffc1 -r e4b50f4c13a8 vivaldi16.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vivaldi16.h Mon May 02 19:05:30 2011 +0000 @@ -0,0 +1,164 @@ + + +/* + * + * vivaldi16 + * + * created with FontCreator + * written by F. Maximilian Thiele + * + * http://www.apetech.de/fontCreator + * me@apetech.de + * + * File Name : vivaldi16.h + * Date : 31.12.2010 + * Font size in bytes : 22998 + * Font width : 10 + * Font height : 16 + * Font first char : 32 + * Font last char : 128 + * Font used chars : 96 + * + * The font data are defined as + * + * struct _FONT_ { + * uint16_t font_Size_in_Bytes_over_all_included_Size_it_self; + * uint8_t font_Width_in_Pixel_for_fixed_drawing; + * uint8_t font_Height_in_Pixel_for_all_characters; + * unit8_t font_First_Char; + * uint8_t font_Char_Count; + * + * uint8_t font_Char_Widths[font_Last_Char - font_First_Char +1]; + * // for each character the separate width in pixels, + * // characters < 128 have an implicit virtual right empty row + * + * uint8_t font_data[]; + * // bit field of all characters + */ + + +#ifndef VIVALDI16_H +#define VIVALDI16_H + +#define VIVALDI16_WIDTH 10 +#define VIVALDI16_HEIGHT 16 + +unsigned int vivaldi16[] = { + 0x59, 0xD6, // size + 0x0A, // width + 0x10, // height + 0x20, // first char + 0x60, // char count + + // char widths + 0x00, 0x05, 0x08, 0x15, 0x10, 0x15, 0x16, 0x04, 0x0B, 0x0B, + 0x07, 0x08, 0x05, 0x07, 0x05, 0x0B, 0x12, 0x0E, 0x11, 0x11, + 0x13, 0x12, 0x13, 0x0E, 0x12, 0x13, 0x05, 0x06, 0x06, 0x08, + 0x06, 0x0C, 0x0A, 0x16, 0x16, 0x14, 0x18, 0x15, 0x15, 0x16, + 0x19, 0x0E, 0x11, 0x19, 0x15, 0x1B, 0x17, 0x14, 0x16, 0x15, + 0x18, 0x12, 0x13, 0x17, 0x15, 0x1D, 0x17, 0x14, 0x13, 0x06, + 0x0B, 0x06, 0x08, 0x08, 0x06, 0x0E, 0x0F, 0x0E, 0x10, 0x0E, + 0x0C, 0x0F, 0x12, 0x0A, 0x08, 0x13, 0x09, 0x1B, 0x12, 0x0F, + 0x10, 0x0F, 0x0E, 0x0D, 0x0A, 0x12, 0x11, 0x19, 0x13, 0x11, + 0x0E, 0x08, 0x04, 0x08, 0x08, 0x05, + + // font data + 0x18, 0x7C, 0xFC, 0x7C, 0x18, 0x08, 0x1C, 0x1D, 0x1C, 0x08, // 33 + 0x1C, 0x7C, 0x7C, 0x1C, 0x04, 0x7C, 0x7C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 34 + 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0xC0, 0xE0, 0xF8, 0x78, 0x78, 0x48, 0xC0, 0xC0, 0xF0, 0xF8, 0x78, 0x58, 0x40, 0x40, 0x40, 0x04, 0x02, 0x0A, 0x0A, 0x0E, 0x0F, 0x07, 0x03, 0x03, 0x0A, 0x0E, 0x0E, 0x0F, 0x07, 0x03, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, // 35 + 0xF0, 0xF8, 0xF8, 0xFC, 0xEC, 0xEC, 0xCC, 0xCE, 0xCE, 0xCE, 0xD8, 0xD8, 0xD8, 0xBC, 0x80, 0x00, 0x1F, 0x0E, 0x0C, 0x0D, 0x0D, 0x09, 0x19, 0x79, 0x79, 0x79, 0x1B, 0x1B, 0x1F, 0x1F, 0x0F, 0x07, // 36 + 0x30, 0x78, 0xFC, 0x8C, 0x84, 0x84, 0x8C, 0xFC, 0x78, 0x30, 0x80, 0x40, 0x30, 0x98, 0x8C, 0x84, 0x84, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x18, 0x0C, 0x06, 0x03, 0x00, 0x06, 0x0F, 0x1F, 0x11, 0x10, 0x10, 0x11, 0x1F, 0x0F, 0x06, // 37 + 0x00, 0x00, 0x80, 0x80, 0x80, 0xC0, 0xF8, 0xFC, 0xFE, 0xFE, 0xE6, 0xE6, 0xFE, 0x3C, 0x58, 0x40, 0xC0, 0xC0, 0xC0, 0x40, 0x40, 0x40, 0x06, 0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x1C, 0x18, 0x19, 0x1B, 0x1B, 0x1F, 0x1F, 0x1F, 0x1E, 0x1E, 0x1F, 0x1F, 0x1D, 0x1C, 0x1E, 0x0E, // 38 + 0x1C, 0x7C, 0x7C, 0x3C, 0x00, 0x00, 0x00, 0x00, // 39 + 0xC0, 0xE0, 0xF0, 0xF0, 0xF8, 0x38, 0x0C, 0x0C, 0x04, 0x04, 0x02, 0x03, 0x07, 0x0F, 0x1F, 0x1F, 0x3C, 0x30, 0x20, 0x40, 0x40, 0x40, // 40 + 0x02, 0x04, 0x04, 0x04, 0x0C, 0x38, 0xF8, 0xF0, 0xF0, 0xE0, 0xC0, 0x40, 0x40, 0x20, 0x20, 0x30, 0x3C, 0x1F, 0x1F, 0x0F, 0x07, 0x03, // 41 + 0x20, 0xA0, 0xE0, 0x7C, 0xE0, 0x20, 0x20, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, // 42 + 0xC0, 0xC0, 0xC0, 0xF8, 0xF8, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, // 43 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x5C, 0x7C, 0x3C, 0x18, // 44 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, // 45 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x1C, 0x1C, 0x08, // 46 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x38, 0x1C, 0x04, 0x40, 0x60, 0x70, 0x18, 0x0E, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, // 47 + 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0xF8, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0xFC, 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x01, 0x07, 0x07, 0x0F, 0x0F, 0x1F, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x1C, 0x1F, 0x0F, 0x0F, 0x07, 0x03, 0x01, // 48 + 0x04, 0x04, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x18, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x18, 0x10, 0x10, // 49 + 0x30, 0x78, 0x78, 0x78, 0x7C, 0x9C, 0x0C, 0x0C, 0x0C, 0x8C, 0xDC, 0xFC, 0xFC, 0xF8, 0xF8, 0x78, 0x70, 0x10, 0x18, 0x18, 0x1C, 0x1E, 0x1E, 0x1B, 0x1B, 0x1B, 0x19, 0x19, 0x19, 0x18, 0x18, 0x1C, 0x1E, 0x1F, // 50 + 0x00, 0x10, 0x38, 0x38, 0x3C, 0x0C, 0x0C, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0xFC, 0x78, 0x78, 0x78, 0x30, 0x06, 0x0F, 0x0F, 0x0F, 0x1F, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x1C, 0x1F, 0x1F, 0x0F, 0x0F, 0x0F, 0x06, // 51 + 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0x60, 0x70, 0x30, 0x18, 0x1C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x13, 0x13, 0x13, 0x1B, 0x1B, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1B, 0x1B, 0x13, 0x11, // 52 + 0x00, 0x00, 0x78, 0x7C, 0xFC, 0xCC, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0xEC, 0xEC, 0xEC, 0xCC, 0xC4, 0x84, 0x00, 0x06, 0x0F, 0x0F, 0x0F, 0x1F, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1C, 0x1F, 0x0F, 0x0F, 0x0F, 0x07, 0x03, // 53 + 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0xF8, 0xBC, 0x8C, 0xCC, 0xCC, 0xCC, 0xCC, 0xDC, 0xDC, 0xD8, 0x98, 0x98, 0x80, 0x00, 0x03, 0x07, 0x07, 0x0F, 0x0F, 0x1F, 0x1D, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1D, 0x1F, 0x1F, 0x0F, 0x0F, 0x07, 0x07, // 54 + 0x7C, 0x3C, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x8C, 0xCC, 0xEC, 0xFC, 0x7C, 0x1C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x11, 0x00, 0x00, 0x00, // 55 + 0x70, 0xF8, 0xF8, 0xF8, 0xEC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0xF8, 0xB8, 0x90, 0x00, 0x06, 0x0E, 0x0F, 0x0F, 0x1D, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1B, 0x1B, 0x1F, 0x0F, 0x0F, 0x07, 0x07, // 56 + 0x70, 0xF0, 0xF8, 0xF8, 0xFC, 0xFC, 0xFC, 0xDC, 0x8C, 0x8C, 0x8C, 0x8C, 0xDC, 0xFC, 0xF8, 0xF8, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x0C, 0x0C, 0x0D, 0x1D, 0x1D, 0x19, 0x19, 0x19, 0x19, 0x18, 0x1E, 0x0F, 0x0F, 0x0F, 0x07, 0x03, 0x01, // 57 + 0x40, 0xE0, 0xE0, 0xE0, 0x40, 0x08, 0x1C, 0x1C, 0x1C, 0x08, // 58 + 0x20, 0x70, 0x70, 0x70, 0x20, 0x00, 0x00, 0x58, 0x5C, 0x7C, 0x3C, 0x18, // 59 + 0xE0, 0xE0, 0xF0, 0x78, 0x38, 0x3C, 0x01, 0x03, 0x07, 0x07, 0x0F, 0x1E, // 60 + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, // 61 + 0x3C, 0x38, 0x78, 0xF0, 0xE0, 0xE0, 0x1E, 0x0F, 0x07, 0x07, 0x03, 0x01, // 62 + 0x18, 0x38, 0x3C, 0x3C, 0x4C, 0x0C, 0x8C, 0xCC, 0xFC, 0x78, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x1D, 0x1C, 0x08, 0x00, 0x00, 0x00, // 63 + 0xE0, 0x10, 0xC8, 0xC4, 0x64, 0x24, 0xE4, 0xE8, 0x18, 0xF0, 0x03, 0x04, 0x09, 0x13, 0x12, 0x13, 0x13, 0x12, 0x09, 0x04, // 64 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xC4, 0xFC, 0xFC, 0x3C, 0x3C, 0x7C, 0xFC, 0xFC, 0xFC, 0xFC, 0xC4, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x18, 0x1C, 0x1F, 0x1F, 0x1F, 0x1B, 0x13, 0x13, 0x13, 0x13, 0x13, 0x1B, 0x1F, 0x1F, 0x1F, 0x1F, 0x1E, 0x1C, 0x18, 0x10, 0x10, // 65 + 0x04, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0xFC, 0xFC, 0xFC, 0x7C, 0x78, 0x30, 0x10, 0x10, 0x18, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1F, 0x1F, 0x1F, 0x1E, 0x0E, // 66 + 0xC0, 0xE0, 0xF0, 0xF0, 0xF8, 0xF8, 0xFC, 0x3C, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x18, 0x38, 0x7C, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x0F, 0x0F, 0x1F, 0x1E, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x03, // 67 + 0x04, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x3C, 0xFC, 0xFC, 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x10, 0x10, 0x10, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1C, 0x1F, 0x1F, 0x0F, 0x0F, 0x07, 0x07, 0x03, // 68 + 0x04, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xEC, 0xEC, 0x0C, 0x1C, 0x1C, 0xFC, 0x10, 0x10, 0x18, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x19, 0x1B, 0x18, 0x1C, 0x1E, 0x1F, // 69 + 0x04, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xEC, 0xEC, 0x0C, 0x1C, 0x3C, 0x7C, 0x10, 0x10, 0x18, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x18, 0x10, 0x10, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, // 70 + 0xC0, 0xE0, 0xF0, 0xF0, 0xF8, 0xF8, 0x3C, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x18, 0x38, 0x38, 0x7C, 0x00, 0x00, 0x00, 0x01, 0x07, 0x07, 0x0F, 0x0F, 0x0F, 0x1E, 0x1C, 0x18, 0x18, 0x19, 0x19, 0x1B, 0x1B, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x03, 0x01, 0x01, // 71 + 0x04, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xCC, 0xC4, 0xC4, 0xC4, 0xC4, 0xCC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x0C, 0x0C, 0x04, 0x04, 0x10, 0x10, 0x10, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x19, 0x11, 0x11, 0x11, 0x11, 0x19, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x10, 0x10, 0x10, // 72 + 0x04, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x0C, 0x0C, 0x04, 0x04, 0x10, 0x10, 0x18, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x18, 0x10, 0x10, // 73 + 0x00, 0x00, 0x00, 0x00, 0x84, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x0C, 0x0C, 0x04, 0x04, 0x07, 0x0F, 0x0F, 0x1F, 0x1C, 0x18, 0x18, 0x18, 0x1F, 0x1F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, // 74 + 0x04, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x8C, 0x84, 0xC4, 0xC4, 0xE4, 0xFC, 0xFC, 0xFC, 0xBC, 0x1C, 0x0C, 0x0C, 0x04, 0x04, 0x04, 0x10, 0x10, 0x18, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1B, 0x11, 0x11, 0x10, 0x10, 0x1B, 0x1F, 0x1F, 0x1F, 0x1F, 0x1E, 0x1C, 0x18, 0x10, 0x10, // 75 + 0x04, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x0C, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x10, 0x10, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1C, 0x1E, 0x1F, 0x1F, // 76 + 0x04, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0x1C, 0x7C, 0xFC, 0xFC, 0xF8, 0xE0, 0xC0, 0xF0, 0xFC, 0x7C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x0C, 0x0C, 0x04, 0x04, 0x10, 0x10, 0x18, 0x18, 0x1F, 0x1F, 0x1F, 0x18, 0x18, 0x11, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x11, 0x18, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x18, 0x10, 0x10, // 77 + 0x04, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0x7C, 0xFC, 0xFC, 0xF8, 0xF0, 0xE4, 0xC4, 0x8C, 0x8C, 0xFC, 0xFC, 0xFC, 0x0C, 0x0C, 0x04, 0x04, 0x10, 0x10, 0x18, 0x18, 0x1F, 0x1F, 0x1F, 0x18, 0x18, 0x11, 0x13, 0x07, 0x0F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, // 78 + 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0xF8, 0x3C, 0x1C, 0x0C, 0x0C, 0x0C, 0x1C, 0x3C, 0xFC, 0xF8, 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x01, 0x03, 0x07, 0x0F, 0x0F, 0x0F, 0x1E, 0x1C, 0x18, 0x18, 0x18, 0x1C, 0x1E, 0x1F, 0x0F, 0x0F, 0x0F, 0x07, 0x03, 0x01, // 79 + 0x04, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0xFC, 0xFC, 0xF8, 0xF8, 0xF8, 0x70, 0x10, 0x10, 0x18, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x19, 0x19, 0x11, 0x11, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, // 80 + 0xC0, 0xE0, 0xF0, 0xF0, 0xF8, 0xF8, 0xFC, 0x3C, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x3C, 0xF8, 0xF8, 0xF0, 0xF0, 0xE0, 0xC0, 0x03, 0x07, 0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x1C, 0x1E, 0x39, 0xF9, 0xFF, 0xFE, 0xF8, 0xDC, 0xDF, 0x9F, 0x8F, 0x0F, 0x07, 0x03, // 81 + 0x04, 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0xFC, 0xFC, 0xFC, 0xF8, 0x78, 0x70, 0x00, 0x00, 0x10, 0x10, 0x10, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x19, 0x11, 0x11, 0x11, 0x01, 0x07, 0x1F, 0x1F, 0x1F, 0x1E, 0x1C, 0x18, 0x10, 0x10, // 82 + 0x78, 0x7C, 0xFC, 0xFE, 0xF6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xEC, 0xEC, 0xFC, 0xDC, 0xFC, 0x80, 0x00, 0x00, 0x1F, 0x1E, 0x0C, 0x0D, 0x1D, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1B, 0x1F, 0x0F, 0x0F, 0x07, // 83 + 0x40, 0x3C, 0x3C, 0x1C, 0x0C, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x0C, 0x0C, 0x0C, 0x1C, 0x3C, 0x3C, 0x40, 0x00, 0x00, 0x00, 0x10, 0x10, 0x18, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x18, 0x10, 0x10, 0x00, 0x00, 0x00, // 84 + 0x04, 0x0C, 0x0C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x0C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0C, 0xFC, 0xFC, 0xFC, 0x0C, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x07, 0x07, 0x0F, 0x0F, 0x1F, 0x1F, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1C, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, // 85 + 0x04, 0x0C, 0x0C, 0x1C, 0x7C, 0xFC, 0xFC, 0xFC, 0xFC, 0xEC, 0xC4, 0x04, 0x00, 0x04, 0xC4, 0xEC, 0xFC, 0x7C, 0x1C, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x13, 0x1F, 0x1F, 0x1F, 0x1F, 0x1E, 0x1F, 0x1F, 0x1B, 0x11, 0x10, 0x00, 0x00, 0x00, // 86 + 0x04, 0x0C, 0x1C, 0x7C, 0xFC, 0xFC, 0xFC, 0xEC, 0xC4, 0x04, 0x84, 0xE4, 0xFC, 0xFC, 0x3C, 0xFC, 0xFC, 0xFC, 0xF4, 0xC4, 0x84, 0x84, 0xE4, 0xFC, 0xFC, 0x3C, 0x0C, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1B, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1B, 0x10, 0x00, 0x10, 0x1B, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, // 87 + 0x04, 0x04, 0x0C, 0x0C, 0x1C, 0x3C, 0x3C, 0x7C, 0xFC, 0xFC, 0xF4, 0xE4, 0xE4, 0xF4, 0xFC, 0x3C, 0x3C, 0x1C, 0x0C, 0x0C, 0x04, 0x04, 0x00, 0x10, 0x10, 0x10, 0x18, 0x1C, 0x1C, 0x1E, 0x1F, 0x17, 0x13, 0x13, 0x13, 0x17, 0x1F, 0x1F, 0x1F, 0x1E, 0x1E, 0x1C, 0x18, 0x18, 0x10, 0x10, // 88 + 0x04, 0x04, 0x0C, 0x0C, 0x1C, 0x3C, 0x7C, 0xFC, 0xFC, 0xFC, 0xE4, 0xC4, 0xC4, 0xE4, 0x7C, 0x3C, 0x1C, 0x0C, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x18, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x18, 0x10, 0x10, 0x00, 0x00, 0x00, // 89 + 0x00, 0x00, 0x7C, 0x3C, 0x1C, 0x0C, 0x8C, 0x8C, 0xCC, 0xEC, 0xFC, 0xFC, 0xFC, 0x7C, 0x7C, 0x3C, 0x1C, 0x0C, 0x84, 0x10, 0x10, 0x18, 0x1C, 0x1E, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1B, 0x19, 0x18, 0x18, 0x18, 0x18, 0x1C, 0x1F, 0x1F, // 90 + 0xFC, 0xFC, 0xFC, 0xFC, 0x04, 0x04, 0x7F, 0x7F, 0x7F, 0x7F, 0x40, 0x40, // 91 + 0x04, 0x0C, 0x1C, 0x30, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0E, 0x38, 0x70, 0x40, // 92 + 0x04, 0x04, 0xFC, 0xFC, 0xFC, 0xFC, 0x40, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, // 93 + 0x80, 0xF0, 0xFC, 0x3C, 0x3C, 0xFC, 0xF0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 94 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, // 95 + 0x02, 0x02, 0x06, 0x06, 0x0E, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 96 + 0xC0, 0xC0, 0xE0, 0xE0, 0x60, 0x60, 0x60, 0x60, 0xE0, 0xE0, 0xC0, 0xC0, 0x00, 0x00, 0x0C, 0x1E, 0x1E, 0x1E, 0x1A, 0x1B, 0x1B, 0x09, 0x0F, 0x1F, 0x1F, 0x1F, 0x18, 0x0C, // 97 + 0x04, 0x04, 0xFC, 0xFC, 0xFC, 0xFE, 0xC0, 0x60, 0x60, 0x60, 0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x1F, 0x0F, 0x07, 0x0F, 0x1C, 0x18, 0x18, 0x1C, 0x1F, 0x1F, 0x0F, 0x0F, 0x07, // 98 + 0x00, 0x80, 0xC0, 0xC0, 0xE0, 0x60, 0x20, 0x20, 0x20, 0x60, 0xE0, 0xC0, 0xC0, 0x00, 0x07, 0x07, 0x0F, 0x0F, 0x1F, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0C, 0x06, // 99 + 0x80, 0xC0, 0xC0, 0xE0, 0xE0, 0xE4, 0x64, 0x64, 0xC4, 0xFC, 0xFC, 0xFC, 0xFE, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x1F, 0x1F, 0x18, 0x18, 0x18, 0x0C, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x10, 0x10, // 100 + 0x00, 0x80, 0xC0, 0xC0, 0xE0, 0xE0, 0x20, 0x20, 0x20, 0x60, 0xC0, 0xC0, 0x80, 0x00, 0x07, 0x0F, 0x0F, 0x0F, 0x1F, 0x1E, 0x1A, 0x1A, 0x1A, 0x1A, 0x1B, 0x1B, 0x0B, 0x0A, // 101 + 0x40, 0x60, 0x60, 0xF8, 0xFC, 0xFE, 0xFE, 0xFE, 0x62, 0x62, 0x6E, 0x0E, 0x10, 0x10, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x10, 0x10, 0x10, // 102 + 0x00, 0x80, 0xC0, 0xC0, 0xE0, 0x20, 0x20, 0x20, 0x20, 0xE0, 0xE0, 0xC0, 0xF0, 0x50, 0x30, 0x40, 0x7C, 0xFF, 0xD9, 0x99, 0x9A, 0x9A, 0x9E, 0x9E, 0x9F, 0x9F, 0x9D, 0xFD, 0x78, 0x30, // 103 + 0x04, 0x04, 0x04, 0xFC, 0xFC, 0xFC, 0xFE, 0xC0, 0x40, 0x60, 0x60, 0xE0, 0xE0, 0xE0, 0xC0, 0xC0, 0x00, 0x00, 0x10, 0x10, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x10, // 104 + 0x20, 0x20, 0x60, 0xE8, 0xFC, 0xFC, 0xFC, 0x08, 0x00, 0x00, 0x10, 0x10, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x10, 0x10, // 105 + 0x20, 0x20, 0x20, 0x68, 0xFC, 0xFC, 0xFC, 0xE8, 0xE0, 0xE0, 0xE0, 0xC0, 0xFF, 0xFF, 0x7F, 0x7F, // 106 + 0x04, 0x04, 0x04, 0xFC, 0xFC, 0xFC, 0xFE, 0x00, 0x20, 0xA0, 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x60, 0x20, 0x20, 0x20, 0x10, 0x10, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x16, 0x13, 0x13, 0x17, 0x1F, 0x1F, 0x1F, 0x1E, 0x1C, 0x18, 0x10, 0x10, // 107 + 0x04, 0x04, 0xFC, 0xFC, 0xFC, 0xFC, 0xFE, 0x00, 0x00, 0x10, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x10, // 108 + 0x20, 0x20, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0x80, 0x40, 0x60, 0x60, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, 0xC0, 0x40, 0x60, 0x60, 0xE0, 0xE0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x10, 0x10, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x10, 0x10, // 109 + 0x20, 0x20, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0x80, 0x40, 0x60, 0x60, 0xE0, 0xE0, 0xE0, 0xC0, 0xC0, 0x00, 0x00, 0x10, 0x10, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x10, // 110 + 0x00, 0x80, 0xC0, 0xC0, 0xE0, 0xE0, 0x60, 0x60, 0x60, 0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x00, 0x03, 0x07, 0x0F, 0x0F, 0x1F, 0x1C, 0x18, 0x18, 0x18, 0x1C, 0x1F, 0x0F, 0x0F, 0x07, 0x07, // 111 + 0x20, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x60, 0x60, 0x60, 0xE0, 0xE0, 0xC0, 0xC0, 0x00, 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8C, 0x98, 0x98, 0x98, 0x1F, 0x1F, 0x0F, 0x0F, 0x07, // 112 + 0x00, 0xC0, 0xC0, 0xE0, 0xE0, 0x60, 0x60, 0x60, 0xE0, 0xC0, 0xC0, 0xC0, 0xE0, 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x1F, 0x1C, 0x18, 0x98, 0x98, 0x8C, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x80, // 113 + 0x20, 0x20, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0x80, 0x40, 0x60, 0xE0, 0xE0, 0xE0, 0xC0, 0x10, 0x10, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x10, 0x10, 0x11, 0x01, 0x01, 0x00, // 114 + 0xC0, 0xC0, 0xE0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0x20, 0x40, 0x60, 0xE0, 0x00, 0x1D, 0x1F, 0x1B, 0x1F, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x1F, 0x0F, 0x0E, // 115 + 0x40, 0x60, 0xE0, 0xF0, 0xF8, 0xFC, 0x60, 0x60, 0x20, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x1F, 0x1F, 0x18, 0x18, 0x1A, 0x0C, // 116 + 0x20, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x20, 0x20, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x1F, 0x1F, 0x1F, 0x18, 0x18, 0x08, 0x0C, 0x1F, 0x1F, 0x1F, 0x1F, 0x18, 0x10, 0x10, // 117 + 0x20, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x20, 0x00, 0x20, 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x20, 0x00, 0x00, 0x00, 0x01, 0x13, 0x1F, 0x1F, 0x1F, 0x1E, 0x1C, 0x1E, 0x1F, 0x17, 0x11, 0x00, 0x00, 0x00, // 118 + 0x20, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x20, 0x20, 0x20, 0x20, 0xE0, 0xE0, 0xE0, 0x60, 0x20, 0x00, 0x00, 0x00, 0x11, 0x17, 0x1F, 0x1F, 0x1F, 0x1C, 0x1F, 0x1F, 0x13, 0x01, 0x13, 0x1F, 0x1F, 0x1F, 0x1E, 0x1C, 0x1F, 0x17, 0x11, 0x00, 0x00, 0x00, // 119 + 0x20, 0x20, 0x60, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xA0, 0xA0, 0xA0, 0xA0, 0xE0, 0xE0, 0x60, 0x60, 0x20, 0x20, 0x00, 0x10, 0x10, 0x10, 0x18, 0x18, 0x1C, 0x1F, 0x17, 0x17, 0x17, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x18, 0x10, 0x10, 0x10, // 120 + 0x20, 0x60, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x20, 0x20, 0x20, 0x20, 0xE0, 0xE0, 0xE0, 0x60, 0x20, 0x00, 0x00, 0x40, 0xE0, 0xE1, 0xE3, 0xCF, 0xDF, 0xFF, 0x7E, 0x3E, 0x1F, 0x07, 0x03, 0x00, 0x00, 0x00, // 121 + 0x00, 0xE0, 0x60, 0x20, 0x20, 0xA0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x20, 0x11, 0x18, 0x1C, 0x1E, 0x1F, 0x1F, 0x1F, 0x1F, 0x1B, 0x19, 0x18, 0x18, 0x1C, 0x1F, // 122 + 0x00, 0xFC, 0xFC, 0xFC, 0xFC, 0x04, 0x04, 0x04, 0x01, 0x7F, 0xFF, 0xFF, 0xFE, 0x80, 0x80, 0x80, // 123 + 0xFC, 0xFC, 0xFC, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, // 124 + 0x04, 0x04, 0x04, 0xFC, 0xFC, 0xFC, 0xF8, 0x00, 0x80, 0x80, 0x80, 0xFE, 0xFF, 0xFF, 0x7F, 0x01, // 125 + 0x08, 0x0E, 0x07, 0x07, 0x0F, 0x0E, 0x0F, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 126 + 0xFE, 0x02, 0x02, 0x02, 0xFE, 0x1F, 0x10, 0x10, 0x10, 0x1F // 127 + +}; + +#endif