Ryan Tseng
/
DisplayTest
Revision 0:87b78725a6dd, committed 2012-03-05
- Comitter:
- kagelump
- Date:
- Mon Mar 05 06:00:16 2012 +0000
- Commit message:
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/Arial12.h Mon Mar 05 06:00:16 2012 +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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/Arial14.h Mon Mar 05 06:00:16 2012 +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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/ArialB30.h Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,70 @@ + + +/* + * + * ArialB40 + * + * created with FontCreator + * written by F. Maximilian Thiele + * + * http://www.apetech.de/fontCreator + * me@apetech.de + * + * File Name : ArialB40.h + * Date : 22.02.2012 + * Font size in bytes : 6338 + * Font width : 20 + * Font height : 29 + * Font first char : 48 + * Font last char : 58 + * Font used chars : 10 + * + * 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 ARIALB30_H +#define ARIALB30_H + +#define ARIALB30_WIDTH 20 +#define ARIALB30_HEIGHT 29 + +static unsigned int ArialB30[] = { + 0x18, 0xC2, // size + 0x14, // width + 0x1D, // height + 0x30, // first char + 0x0A, // char count + + // char widths + 0x16, 0x10, 0x16, 0x16, 0x1A, 0x16, 0x16, 0x16, 0x16, 0x16, + + + // font data + 0x00, 0xE0, 0xF0, 0xFC, 0xFC, 0xFE, 0xFE, 0xFF, 0xFF, 0x3F, 0x1F, 0x1F, 0x3F, 0xFF, 0xFF, 0xFE, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x0F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x80, 0x00, 0x00, 0x80, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x08, 0x18, 0x38, 0x78, 0x78, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x78, 0x38, 0x38, 0x08, 0x00, 0x00, // 48 + 0x00, 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x3F, 0x1F, 0x1F, 0x0F, 0x0F, 0x07, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, // 49 + 0x00, 0x80, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE, 0xFF, 0xFF, 0x7F, 0x1F, 0x1F, 0x1F, 0x3F, 0xFF, 0xFF, 0xFE, 0xFE, 0xFC, 0xFC, 0xF0, 0xE0, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0x07, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xBF, 0x9F, 0x8F, 0x87, 0x87, 0x83, 0x81, 0x80, 0x80, 0x80, 0x80, 0xC0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, // 50 + 0xC0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE, 0xFE, 0xFF, 0x7F, 0x1F, 0x1F, 0x1F, 0x3F, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFC, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xF8, 0xF8, 0xF8, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xC7, 0x81, 0x00, 0x20, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00, 0x08, 0x18, 0x38, 0x78, 0x78, 0x78, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x78, 0x78, 0x38, 0x18, 0x08, 0x00, // 51 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFE, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFC, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, // 52 + 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3C, 0x3C, 0x3E, 0x7E, 0xFE, 0xFE, 0xFE, 0xFE, 0xFC, 0xF8, 0xF8, 0xE0, 0x80, 0x20, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xC0, 0x80, 0x00, 0x00, 0x80, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x08, 0x18, 0x38, 0x78, 0x78, 0x78, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x78, 0x38, 0x38, 0x18, 0x00, 0x00, // 53 + 0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE, 0xFE, 0xFF, 0x3F, 0x1F, 0x1F, 0x3F, 0xFF, 0xFF, 0xFE, 0xFE, 0x7C, 0x7C, 0x70, 0x40, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF8, 0x78, 0x7C, 0x7C, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x00, 0x0F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0x80, 0x00, 0x00, 0x00, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x08, 0x18, 0x38, 0x78, 0x78, 0x78, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x78, 0x38, 0x18, 0x08, 0x00, // 54 + 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF8, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 55 + 0x00, 0xE0, 0xF8, 0xFC, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0x3F, 0x1F, 0x1F, 0x3F, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFC, 0xF8, 0xE0, 0x00, 0x00, 0x03, 0x8F, 0xDF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0xF8, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xDF, 0x8F, 0x03, 0x00, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x81, 0x00, 0x00, 0x81, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7C, 0x00, 0x08, 0x38, 0x38, 0x78, 0x78, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x78, 0x38, 0x18, 0x08, 0x00, // 56 + 0xC0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE, 0xFF, 0xFF, 0x7F, 0x1F, 0x1F, 0x1F, 0x3F, 0x7F, 0xFE, 0xFE, 0xFE, 0xFC, 0xF8, 0xF0, 0xC0, 0x00, 0x1F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xC0, 0xC0, 0xC0, 0xE0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x40, 0xC0, 0xC1, 0xC3, 0xE7, 0xE7, 0xE7, 0xE7, 0x87, 0x07, 0x03, 0x83, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x0F, 0x00, 0x00, 0x08, 0x38, 0x38, 0x78, 0x78, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x78, 0x78, 0x38, 0x18, 0x08, 0x00, 0x00 // 57 + +}; + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/ArialB40.h Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,71 @@ + + +/* + * + * ArialB40 + * + * created with FontCreator + * written by F. Maximilian Thiele + * + * http://www.apetech.de/fontCreator + * me@apetech.de + * + * File Name : ArialB40.h + * Date : 22.02.2012 + * Font size in bytes : 6338 + * Font width : 20 + * Font height : 29 + * Font first char : 48 + * Font last char : 58 + * Font used chars : 10 + * + * 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 ARIALB40_H +#define ARIALB40_H + +#define ARIALB40_WIDTH 20 +#define ARIALB40_HEIGHT 29 + +static unsigned int ArialB40[] = { + 0x18, 0xC2, // size + 0x14, // width + 0x1D, // height + 0x30, // first char + 0x0A, // char count + + // char widths + 0x16, 0x10, 0x16, 0x16, 0x1A, 0x16, 0x16, 0x16, 0x16, 0x16, + + + // font data + 0x00, 0xE0, 0xF0, 0xFC, 0xFC, 0xFE, 0xFE, 0xFF, 0xFF, 0x3F, 0x1F, 0x1F, 0x3F, 0xFF, 0xFF, 0xFE, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x0F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x80, 0x00, 0x00, 0x80, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x08, 0x18, 0x38, 0x78, 0x78, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x78, 0x38, 0x38, 0x08, 0x00, 0x00, // 48 + 0x00, 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x3F, 0x1F, 0x1F, 0x0F, 0x0F, 0x07, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, // 49 + 0x00, 0x80, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE, 0xFF, 0xFF, 0x7F, 0x1F, 0x1F, 0x1F, 0x3F, 0xFF, 0xFF, 0xFE, 0xFE, 0xFC, 0xFC, 0xF0, 0xE0, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0x07, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xBF, 0x9F, 0x8F, 0x87, 0x87, 0x83, 0x81, 0x80, 0x80, 0x80, 0x80, 0xC0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, // 50 + 0xC0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE, 0xFE, 0xFF, 0x7F, 0x1F, 0x1F, 0x1F, 0x3F, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFC, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xF8, 0xF8, 0xF8, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xC7, 0x81, 0x00, 0x20, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00, 0x08, 0x18, 0x38, 0x78, 0x78, 0x78, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x78, 0x78, 0x38, 0x18, 0x08, 0x00, // 51 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFE, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFC, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, // 52 + 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3C, 0x3C, 0x3E, 0x7E, 0xFE, 0xFE, 0xFE, 0xFE, 0xFC, 0xF8, 0xF8, 0xE0, 0x80, 0x20, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xC0, 0x80, 0x00, 0x00, 0x80, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x08, 0x18, 0x38, 0x78, 0x78, 0x78, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x78, 0x38, 0x38, 0x18, 0x00, 0x00, // 53 + 0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE, 0xFE, 0xFF, 0x3F, 0x1F, 0x1F, 0x3F, 0xFF, 0xFF, 0xFE, 0xFE, 0x7C, 0x7C, 0x70, 0x40, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF8, 0x78, 0x7C, 0x7C, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x00, 0x0F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0x80, 0x00, 0x00, 0x00, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x08, 0x18, 0x38, 0x78, 0x78, 0x78, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x78, 0x38, 0x18, 0x08, 0x00, // 54 + 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF8, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 55 + 0x00, 0xE0, 0xF8, 0xFC, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0x3F, 0x1F, 0x1F, 0x3F, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFC, 0xF8, 0xE0, 0x00, 0x00, 0x03, 0x8F, 0xDF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0xF8, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xDF, 0x8F, 0x03, 0x00, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x81, 0x00, 0x00, 0x81, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7C, 0x00, 0x08, 0x38, 0x38, 0x78, 0x78, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x78, 0x38, 0x18, 0x08, 0x00, // 56 + 0xC0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE, 0xFF, 0xFF, 0x7F, 0x1F, 0x1F, 0x1F, 0x3F, 0x7F, 0xFE, 0xFE, 0xFE, 0xFC, 0xF8, 0xF0, 0xC0, 0x00, 0x1F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xC0, 0xC0, 0xC0, 0xE0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x40, 0xC0, 0xC1, 0xC3, 0xE7, 0xE7, 0xE7, 0xE7, 0x87, 0x07, 0x03, 0x83, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x0F, 0x00, 0x00, 0x08, 0x38, 0x38, 0x78, 0x78, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x78, 0x78, 0x38, 0x18, 0x08, 0x00, 0x00 // 57 + +}; + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/Comic24.h Mon Mar 05 06:00:16 2012 +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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/CourierNew_B30.h Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,70 @@ + + +/* + * + * CourierNew_B30 + * + * created with FontCreator + * written by F. Maximilian Thiele + * + * http://www.apetech.de/fontCreator + * me@apetech.de + * + * File Name : CourierNew_B30.h + * Date : 02.03.2012 + * Font size in bytes : 2543 + * Font width : 14 + * Font height : 19 + * Font first char : 48 + * Font last char : 58 + * Font used chars : 10 + * + * 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 COURIERNEW_B30_H +#define COURIERNEW_B30_H + +#define COURIERNEW_B30_WIDTH 14 +#define COURIERNEW_B30_HEIGHT 19 + +static unsigned int CourierNew_B30[]= { + 0x09, 0xEF, // size + 0x0E, // width + 0x13, // height + 0x30, // first char + 0x0A, // char count + + // char widths + 0x0D, 0x0D, 0x0E, 0x0E, 0x0D, 0x0E, 0x0D, 0x0D, 0x0D, 0x0D, + + + // font data + 0xE0, 0xF8, 0xFC, 0x1E, 0x0F, 0x07, 0x07, 0x07, 0x0F, 0x1E, 0xFC, 0xF8, 0xE0, 0x3F, 0xFF, 0xFF, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x20, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x20, 0x00, 0x00, // 48 + 0x1C, 0x1C, 0x1E, 0x0E, 0x0E, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, // 49 + 0x00, 0x70, 0x7C, 0x7E, 0x1E, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x8E, 0xFE, 0xFC, 0xF0, 0x00, 0x80, 0xC0, 0xE0, 0x70, 0x30, 0x38, 0x1C, 0x0E, 0x0F, 0x07, 0x03, 0x01, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, // 50 + 0x00, 0x1C, 0x1E, 0x0E, 0x0F, 0x87, 0x87, 0x87, 0x87, 0xCF, 0xFE, 0xFC, 0x78, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x87, 0x8F, 0xFE, 0xFC, 0xF8, 0x60, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x60, 0x20, 0x00, // 51 + 0x00, 0x00, 0x80, 0xC0, 0xF0, 0xF8, 0x3E, 0x0F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x38, 0x3E, 0x3F, 0x3F, 0x3B, 0x38, 0x38, 0x38, 0xFF, 0xFF, 0xFF, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, // 52 + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x87, 0xC7, 0xC7, 0xC7, 0xC7, 0x87, 0x87, 0x07, 0x00, 0xC0, 0xC0, 0x83, 0x83, 0x03, 0x01, 0x01, 0x01, 0x01, 0x81, 0x87, 0xFF, 0xFF, 0x7C, 0x20, 0x60, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x60, 0x20, 0x00, // 53 + 0x80, 0xE0, 0xF8, 0x7C, 0x3C, 0x9E, 0x8E, 0x87, 0x87, 0x07, 0x07, 0x0F, 0x0E, 0x3F, 0xFF, 0xFF, 0xCE, 0x87, 0x03, 0x03, 0x03, 0x07, 0x8F, 0xFF, 0xFE, 0xF8, 0x00, 0x00, 0x20, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x20, 0x00, // 54 + 0x1F, 0x1F, 0x1F, 0x07, 0x07, 0x07, 0x07, 0x07, 0x87, 0xF7, 0xFF, 0x7F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFC, 0xFF, 0x1F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, // 55 + 0x78, 0xFC, 0xFE, 0x8E, 0x07, 0x07, 0x07, 0x07, 0x07, 0x8E, 0xFE, 0xFC, 0x78, 0xF0, 0xFD, 0xFF, 0x8F, 0x07, 0x07, 0x07, 0x07, 0x07, 0x8F, 0xFF, 0xFD, 0xF8, 0x00, 0x20, 0x60, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x60, 0x20, 0x00, // 56 + 0xF0, 0xFC, 0xFE, 0x0E, 0x07, 0x07, 0x07, 0x07, 0x0E, 0x1E, 0xFC, 0xF8, 0xE0, 0x81, 0x87, 0x0F, 0x0F, 0x1E, 0x1C, 0x9C, 0x9C, 0xCE, 0xF7, 0xFF, 0x7F, 0x1F, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x60, 0x20, 0x00, 0x00, 0x00 // 57 + +}; + +#endif
Binary file KS0108/CourierNew_B70.h has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/HelveticaB35.h Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,70 @@ + + +/* + * + * HelveticaB35 + * + * created with FontCreator + * written by F. Maximilian Thiele + * + * http://www.apetech.de/fontCreator + * me@apetech.de + * + * File Name : HelveticaB35.h + * Date : 22.02.2012 + * Font size in bytes : 4000 + * Font width : 15 + * Font height : 24 + * Font first char : 48 + * Font last char : 58 + * Font used chars : 10 + * + * 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 HELVETICAB35_H +#define HELVETICAB35_H + +#define HELVETICAB35_WIDTH 15 +#define HELVETICAB35_HEIGHT 24 + +static unsigned int HelveticaB35[] = { + 0x0F, 0xA0, // size + 0x0F, // width + 0x18, // height + 0x30, // first char + 0x0A, // char count + + // char widths + 0x11, 0x0B, 0x11, 0x11, 0x12, 0x11, 0x11, 0x12, 0x11, 0x11, + + + // font data + 0x80, 0xF0, 0xFC, 0xFE, 0xFE, 0x7F, 0x1F, 0x0F, 0x0F, 0x0F, 0x1F, 0x7F, 0xFE, 0xFE, 0xFC, 0xF0, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x0F, 0x3F, 0x7F, 0x7F, 0xFE, 0xF8, 0xF0, 0xF0, 0xF0, 0xF8, 0xFE, 0x7F, 0x7F, 0x3F, 0x0F, 0x01, // 48 + 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 49 + 0xE0, 0xF8, 0xFC, 0xFE, 0xFE, 0x3F, 0x1F, 0x0F, 0x0F, 0x0F, 0x1F, 0x3F, 0xFE, 0xFE, 0xFC, 0xF8, 0xE0, 0x01, 0x01, 0x01, 0x01, 0x81, 0x80, 0xC0, 0xE0, 0xE0, 0xF0, 0xF8, 0xFC, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0xE0, 0xF8, 0xFE, 0xFF, 0xFF, 0xFF, 0xF7, 0xF3, 0xF1, 0xF1, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, // 50 + 0x00, 0xE0, 0xF8, 0xFC, 0xFE, 0xFE, 0x1F, 0x0F, 0x0F, 0x0F, 0x1F, 0xFF, 0xFE, 0xFE, 0xFC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1E, 0x1E, 0x1F, 0x3F, 0xFF, 0xFF, 0xFF, 0xF1, 0xC0, 0x07, 0x1F, 0x3F, 0x7F, 0x7F, 0xFC, 0xF8, 0xF0, 0xF0, 0xF0, 0xF8, 0xFC, 0x7F, 0x7F, 0x3F, 0x1F, 0x07, // 51 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0x7E, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xFE, 0xBF, 0x8F, 0x83, 0x81, 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x80, 0x80, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, // 52 + 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x3E, 0x3F, 0x3F, 0x3F, 0x3E, 0x1E, 0x0F, 0x0F, 0x0F, 0x1F, 0x3F, 0xFE, 0xFE, 0xFC, 0xF8, 0xE0, 0x06, 0x1E, 0x3E, 0x7E, 0x7E, 0xF8, 0xF0, 0xF0, 0xF0, 0xF0, 0xF8, 0x7C, 0x7F, 0x7F, 0x3F, 0x1F, 0x07, // 53 + 0x80, 0xF0, 0xF8, 0xFC, 0xFE, 0x7E, 0x1F, 0x0F, 0x0F, 0x0F, 0x1F, 0x7F, 0x7E, 0x7C, 0x78, 0x70, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x1E, 0x0F, 0x0F, 0x0F, 0x1F, 0x3F, 0xFE, 0xFE, 0xFC, 0xF8, 0xE0, 0x01, 0x0F, 0x1F, 0x3F, 0x7F, 0xFC, 0xF8, 0xF0, 0xF0, 0xF0, 0xF8, 0xFC, 0x7F, 0x7F, 0x3F, 0x1F, 0x07, // 54 + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x8F, 0xEF, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xFC, 0xFF, 0xFF, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 55 + 0x00, 0xF0, 0xFC, 0xFE, 0xFE, 0xFF, 0x1F, 0x0F, 0x0F, 0x0F, 0x1F, 0xFF, 0xFE, 0xFE, 0xFC, 0xF0, 0x00, 0xC0, 0xE1, 0xF3, 0xFF, 0xFF, 0x7F, 0x3F, 0x1E, 0x1E, 0x1E, 0x3F, 0x7F, 0xFF, 0xFF, 0xF3, 0xE1, 0xC0, 0x07, 0x1F, 0x3F, 0x7F, 0x7F, 0xFC, 0xF8, 0xF0, 0xF0, 0xF0, 0xF8, 0xFC, 0x7F, 0x7F, 0x3F, 0x1F, 0x07, // 56 + 0xE0, 0xF8, 0xFC, 0xFE, 0xFE, 0x3F, 0x1F, 0x0F, 0x0F, 0x0F, 0x1F, 0x3F, 0xFE, 0xFC, 0xF8, 0xF0, 0x80, 0x07, 0x1F, 0x3F, 0x7F, 0x7F, 0xFC, 0xF8, 0xF0, 0xF0, 0xF0, 0x78, 0x3C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0E, 0x1E, 0x3E, 0x7E, 0xFE, 0xF8, 0xF0, 0xF0, 0xF0, 0xF8, 0x7E, 0x7F, 0x3F, 0x1F, 0x0F, 0x01 // 57 + +}; + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/KS0108.cpp Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,835 @@ +#include "KS0108.h" + + +KS0108::KS0108 (PinName _RST,PinName _DI, PinName _RW, PinName _E, PinName _CS2, PinName _CS1, PinName DB0, PinName DB1, PinName DB2, PinName DB3, PinName DB4, PinName DB5, PinName DB6, PinName DB7) + : DB(DB0,DB1,DB2,DB3,DB4,DB5,DB6,DB7),RST (_RST),DI(_DI), RW(_RW), E(_E), CS2(_CS2), CS1(_CS1) { + + DB.output(); + 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 + Inverted = 0; +} + + + +void KS0108::WriteInstruction(unsigned int Command,unsigned int side){ + E.write(0); + DI.write(0); + RW.write(0); + + SelectSide(side); //select controller + + wait(0.0000003); //wait 300ns + E.write(1); + DB.output(); + DB.write(Command); + wait(0.0000001); + E.write(0); +} + + +void KS0108::WriteData(unsigned int data,unsigned char side){ + E.write(0); + DI.write(1); + RW.write(0); + + SelectSide(side); + + wait(0.0000003); // 300ns + E = 1; + DB.output(); + DB.write(data); + wait(0.0000001); + 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){ + + SelectSide(NONE); + col = col%SCREEN_WIDTH; + page = page%8; + + if(col<(SCREEN_WIDTH/2)){ + SelectSide(LEFT); + WriteInstruction(LCD_SET_PAGE|page,LEFT); + WriteInstruction(LCD_SET_ADD|col,LEFT); //set page and column position + WriteData(data,LEFT); //output data to D0-D7 + }else{ + + SelectSide(RIGHT); + 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 + } + + SelectSide(NONE); +} + + + +unsigned int KS0108::ReadData(){ + unsigned int data; + DB.input(); + + DI.write(1); + RW.write(1); + + E.write(1); + wait(0.00000045); + + data = DB.read(); + wait(0.0000001); + E.write(0); + DB.output(); + + return data; +} + +unsigned int KS0108::ReadStatus(){ + unsigned int status; + DB.input(); + + DI.write(0); + + RW.write(1); + E.write(1); + wait(0.00000045); + + status = DB.read(); + E.write(0); + wait(0.0000001); + DB.output(); + + return status; +} + + + +void KS0108::SelectSide(unsigned char side){ + if(side==LEFT) + {CS1.write(1);CS2.write(0);} + else if(side==RIGHT) + {CS1.write(0);CS2.write(1);} + else if (side==BOTH) + {CS1.write(1);CS2.write(1);} + else if (side==NONE) + {CS1.write(0);CS2.write(0);} +} + + +void KS0108::ClearScreen(){ + for (int col=0;col<128;col++) { + for (int page=0;page<8;page++) + { + WriteDataColPag(page,col,WHITE); + } + } +} + + +void KS0108::TurnOn(){ + WriteInstruction(LCD_ON,BOTH); +} + + +void KS0108::TurnOff(){ + WriteInstruction(LCD_OFF,BOTH); +} + + +/*******************************************************************************************/ + + +void KS0108::SetPixel(unsigned int x, unsigned int y, unsigned int color){ + + unsigned int position; + + SelectSide(NONE); + WriteInstruction(LCD_SET_ADD,NONE); + + if(x>=64){ + WriteInstruction(LCD_SET_PAGE|(y/8),RIGHT); + WriteInstruction(LCD_SET_ADD|x,RIGHT); + 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 + 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 + WriteInstruction(LCD_SET_ADD|x,LEFT); + if(color==WHITE) + WriteData(position&(~(1<<(y%8))),LEFT); + else + WriteData(position|(1<<(y%8)),LEFT); + + wait_us(450); + + } + +} + + + +void KS0108::FullRectangle(unsigned int Xaxis1, unsigned int Yaxis1, unsigned int Xaxis2 ,unsigned int Yaxis2,unsigned int color){ + + for(unsigned int i=Xaxis1;i<=Xaxis2;i++){ + for(unsigned int j=Yaxis1;j<=Yaxis2;j++){ + SetPixel(i,j,color); + } + } +} + + +void KS0108::EmptyRectangle(unsigned int Xaxis1,unsigned int Yaxis1, unsigned int Xaxis2,unsigned int Yaxis2,unsigned int color){ + unsigned int CurrentValue; + + /* Draw the two horizontal lines */ + for (CurrentValue = 0; CurrentValue < Xaxis2 - Xaxis1+ 1; CurrentValue++) + { + SetPixel(Xaxis1 + CurrentValue, Yaxis1,color); + SetPixel(Xaxis1 + CurrentValue, Yaxis2,color); + } + + /* draw the two vertical lines */ + for (CurrentValue = 0; CurrentValue < Yaxis2 - Yaxis1 + 1; CurrentValue++) + { + SetPixel(Xaxis1, Yaxis1 + CurrentValue,color); + SetPixel(Xaxis2, Yaxis1 + CurrentValue,color); + } +} + + +void KS0108::RoundRectangle(unsigned int x, unsigned int y, unsigned int width, unsigned int height, unsigned int radius, unsigned int color) { + int tSwitch, x1 = 0, y1 = radius; + tSwitch = 3 - 2 * radius; + + while (x1 <= y1) { + SetPixel(x+radius - x1, y+radius - y1, color); + SetPixel(x+radius - y1, y+radius - x1, color); + + SetPixel(x+width-radius + x1, y+radius - y1, color); + SetPixel(x+width-radius + y1, y+radius - x1, color); + + SetPixel(x+width-radius + x1, y+height-radius + y1, color); + SetPixel(x+width-radius + y1, y+height-radius + x1, color); + + SetPixel(x+radius - x1, y+height-radius + y1, color); + SetPixel(x+radius - y1, y+height-radius + x1, color); + + if (tSwitch < 0) { + tSwitch += (4 * x1 + 6); + } else { + tSwitch += (4 * (x1 - y1) + 10); + y1--; + } + x1++; + } + + HLineShort(x+radius,y, width-(2*radius), color); // top + HLineShort(x+radius,y+height, width-(2*radius), color); // bottom + VLineShort(x,y+radius,height-(2*radius), color); // left + VLineShort(x+width, y+radius,height-(2*radius), color); // right +} + + +void KS0108::HLine(unsigned int Xaxis1, unsigned int Xaxis2 ,unsigned int Yaxis,unsigned int color){ + FullRectangle(Xaxis1,Yaxis,Xaxis2,Yaxis,color); + +} + + +void KS0108::HLineShort(unsigned int Xaxis, unsigned int Yaxis,unsigned int width ,unsigned int color){ + FullRectangle(Xaxis,Yaxis,Xaxis+width,Yaxis,color); + +} + + +void KS0108::VLine(unsigned int Xaxis, unsigned int Yaxis1 ,unsigned int Yaxis2,unsigned int color){ + FullRectangle(Xaxis,Yaxis1,Xaxis,Yaxis2,color); +} + + +void KS0108::VLineShort(unsigned int Xaxis,unsigned int Yaxis, unsigned int height ,unsigned int color){ + FullRectangle(Xaxis,Yaxis,Xaxis,Yaxis+height,color); + +} + + +void KS0108::DegreeLine(unsigned int x, int y,unsigned int degree,unsigned int inner_radius,unsigned int outer_radius, unsigned int color){ + int fx,fy,tx,ty; + fx = x + dfloor(inner_radius * sin(degree * 3.14 / 180)); + fy = y - dfloor(inner_radius * cos(degree * 3.14 / 180)); + tx = x + dfloor(outer_radius * sin(degree * 3.14 / 180)); + ty = y - dfloor(outer_radius * cos(degree * 3.14 / 180)); + SlantyLine(fx,fy,tx,ty,color); +} + + +double KS0108::dfloor( double value ) { + + if (value < 0.0) + return ceil( value ); + else + return floor( value ); + +} + + +void KS0108::SlantyLine(unsigned int lX1, unsigned int lY1, unsigned int lX2,unsigned int lY2,unsigned int color){ + long lError, lDeltaX, lDeltaY, lYStep, bSteep; + + // A steep line has a bigger ordinate. + + if(((lY2 > lY1) ? (lY2 - lY1) : (lY1 - lY2)) > ((lX2 > lX1) ? (lX2 - lX1) : (lX1 - lX2))){ + bSteep = 1; + }else { + bSteep = 0; + } + + // If line is steep, swap the X and Y coordinates. + if(bSteep){ + lError = lX1; + lX1 = lY1; + lY1 = lError; + lError = lX2; + lX2 = lY2; + lY2 = lError; + } + + + // If the starting X coordinate is larger than the ending X coordinate, + // swap coordinates. + if(lX1 > lX2){ + lError = lX1; + lX1 = lX2; + lX2 = lError; + lError = lY1; + lY1 = lY2; + lY2 = lError; + } + + // Compute the difference between the start and end coordinates. + lDeltaX = lX2 - lX1; + lDeltaY = (lY2 > lY1) ? (lY2 - lY1) : (lY1 - lY2); + + 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. + lYStep = 1; + }else{ + lYStep = -1; + } + + for(; lX1 <= lX2; lX1++){ // Loop through all the points along the X axis of the line. + + // See if this is a steep line. + + if(bSteep){ + + // Plot this point of the line, swapping the X and Y coordinates. + + SetPixel(lY1, lX1,color); + } + else { // Plot this point of the line, using the coordinates as is. + SetPixel(lX1, lY1,color); + } + + // Increment the error term by the Y delta. + + lError += lDeltaY; + + if(lError > 0){ // See if the error term is now greater than zero. + + lY1 += lYStep; // Take a step in the Y axis. + + lError -= lDeltaX; // Decrement the error term by the X delta. + } + } +} + + + +void KS0108::Line(unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2, unsigned int color){ +unsigned int deltax, deltay, x,y, steep; +int lerror, ystep; + + steep = absDiff(y1,y2) > absDiff(x1,x2); //check slope + + if ( steep ){ + swap(x1, y1); + swap(x2, y2); + } + + if (x1 > x2){ + swap(x1, x2); + swap(y1, y2); + } + + deltax = x2 - x1; + deltay = absDiff(y2,y1); + lerror = deltax / 2; + y = y1; + if(y1 < y2) ystep = 1; else ystep = -1; + + for(x = x1; x <= x2; x++){ + if (steep) SetPixel(y,x, color); else SetPixel(x,y, color); + lerror -= deltay; + if (lerror < 0){ + y = y + ystep; + lerror += deltax; + } + } +} + + +void KS0108::EmptyCircle(unsigned int CenterX, unsigned int CenterY, unsigned int Radius,unsigned int color){ + unsigned int y=0, x=0, d = 0; + int part; + d = CenterY - CenterX; + y = Radius; + part = 3 - 2 * Radius; + + while (x <= y) { + SetPixel(CenterX + x, CenterY + y,color); + SetPixel(CenterX + x, CenterY - y,color); + SetPixel(CenterX - x, CenterY + y,color); + SetPixel(CenterX - x, CenterY - y,color); + SetPixel(CenterY + y - d, CenterY + x,color); + SetPixel(CenterY + y - d, CenterY - x,color); + SetPixel(CenterY - y - d, CenterY + x,color); + SetPixel(CenterY - y - d, CenterY - x,color); + + if (part < 0) part += (4 * x + 6); + else { + part += (4 * (x - y) + 10); + y--; + } + x++; + } + +} + + +void KS0108::FullCircle(unsigned int CenterX, unsigned int CenterY, unsigned int Radius,unsigned int color){ + +int f = 1 - Radius; +int ddF_x = 1; +int ddF_y = 2 * Radius; //changed sign of -2 +unsigned int x = 0; +unsigned int y = Radius; + + //Fill in the center between the two halves + + Line(CenterX, CenterY-Radius, CenterX, CenterY+Radius, color); + + while(x < y){ + if(f >= 0) + { + y--; + ddF_y += 2; + f += ddF_y; + } + x++; + ddF_x += 2; + f += ddF_x; + + /* + * Now draw vertical lines between the points on the circle rather than + * draw the points of the circle. This draws lines between the + * perimeter points on the upper and lower quadrants of the 2 halves of the circle. + */ + + Line(CenterX+x, CenterY+y, CenterX+x, CenterY-y, color); + Line(CenterX-x, CenterY+y, CenterX-x, CenterY-y, color); + Line(CenterX+y, CenterY+x, y+CenterX, CenterY-x, color); + Line(CenterX-y, CenterY+x, CenterX-y, CenterY-x, color); + } +} + + + +void KS0108::PlotEllipse(long CX, long CY, long XRadius,long YRadius, int color) { + + + long X, Y; + long XChange, YChange; + long EllipseError; + long TwoASquare,TwoBSquare; + long StoppingX, StoppingY; + TwoASquare = 2*XRadius*XRadius; + TwoBSquare = 2*YRadius*YRadius; + X = XRadius; + Y = 0; + XChange = YRadius*YRadius*(1-2*XRadius); + YChange = XRadius*XRadius; + EllipseError = 0; + StoppingX = TwoBSquare*XRadius; + StoppingY = 0; + + while ( StoppingX >=StoppingY ) //first set of points,y'>-1 + { + Plot4EllipsePoints(CX,CY,X,Y,color); + Y++; + StoppingY=StoppingY+ TwoASquare; + EllipseError = EllipseError+ YChange; + YChange=YChange+TwoASquare; + if ((2*EllipseError + XChange) > 0 ) { + X--; + StoppingX=StoppingX- TwoBSquare; + EllipseError=EllipseError+ XChange; + XChange=XChange+TwoBSquare; + } + } + + Y = YRadius; + X = 0; + YChange = XRadius*XRadius*(1-2*YRadius); + XChange = YRadius*YRadius; + EllipseError = 0; + StoppingY = TwoASquare*YRadius; + StoppingX = 0; + + while ( StoppingY >=StoppingX ) //{2nd set of points, y'< -1} + { + Plot4EllipsePoints(CX,CY,X,Y,color); + X++; + StoppingX=StoppingX + TwoBSquare; + EllipseError=EllipseError+ XChange; + XChange=XChange+TwoBSquare; + if ((2*EllipseError + YChange) > 0 ) { + Y--; + StoppingY=StoppingY- TwoASquare; + EllipseError=EllipseError+ YChange; + YChange=YChange+TwoASquare; + } + } +} + + + +void KS0108::Plot4EllipsePoints(long CX,long CY, long X, long Y, int color){ + SetPixel(CX+X, CY+Y, color); //{point in quadrant 1} + 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 + +} + + + + +/***********************************************************************************/ + + +void KS0108::FullScreenBMP (unsigned char *PictureData){ + unsigned int Page=0; + unsigned int Column=0; + + // Draw left side of the picture + SelectSide(LEFT); + for (Page = 0; Page < 8; Page++){ /* loop on the 8 pages */ + WriteInstruction(LCD_SET_PAGE | Page,LEFT); /* Set the page */ + for (Column = 0; Column < 64; Column++) + WriteData(PictureData[(128*Page)+Column],LEFT); + } + + // Draw right side of the picture + SelectSide(RIGHT); + for (Page = 0; Page < 8; Page++){ /* loop on the 8 pages */ + + WriteInstruction(LCD_SET_PAGE| Page,RIGHT); /* Set the page */ + for (Column = 64; Column < 128; Column++) + WriteData(PictureData[(128*Page)+Column],RIGHT); + } +} + +unsigned int KS0108::ReadArrayData(const unsigned int* ptr) { + return (*ptr); +} + +void KS0108::DrawBitmap(const unsigned int * bitmap, unsigned int x, unsigned int y, unsigned int color){ +unsigned int width, height; +unsigned int i, j; + + 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::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; + 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 + +} + + +/*****************************************************************************************/ + + + +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]); + } + } +} + + + +void KS0108::PutString(unsigned int x, unsigned int y,char* str){ + + while(*str != 0){ + 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); + PutString(x,y,buf); + +} + + +void KS0108::PrintInteger(int val,unsigned int x,unsigned int y){ + char buf[20] = {}; // prints up to 20 digits + 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)); + } +} + + + + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/KS0108.h Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,540 @@ +#ifndef KS0108_H +#define KS0108_H + +#define VERSION 2.0 + +#include <mbed.h> +#include "SystemFont5x7.h" + +/************************************************************************************/ +// Commands +#define LCD_ON 0x3F +#define LCD_OFF 0x3E +#define LCD_SET_ADD 0x40 +#define LCD_SET_PAGE 0xB8 +#define LCD_DISP_START 0xC0 + +//Controller directives +#define LEFT 0 +#define RIGHT 1 +#define BOTH 3 +#define NONE 4 + +// Colors +#define BLACK 0xFF +#define WHITE 0x00 + +//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) \ +do\ +{\ +uint8_t t;\ + t=a;\ + a=b;\ + b=t;\ +} while(0) + +/**************************************************************************************/ + +// Font Indices +#define FONT_LENGTH 0 +#define FONT_FIXED_WIDTH 2 +#define FONT_HEIGHT 3 +#define FONT_FIRST_CHAR 4 +#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 + +typedef struct { + unsigned int imgWidth; + unsigned int imgHeight; + unsigned char imgarray[MAX_IMG_SIZE]; +}Image; + + +typedef struct { + unsigned int x; + unsigned int y; + unsigned int page; +} LCDCoord; + + +/****************************************************************************************/ + + + +class KS0108 { +public: + + /** + *@brief Constructor, initializes the lcd on the respective pins. + *@param control pins RST,DI,RW,E,CS2,CS1 + *@param databus DB0-DB7 data pins + *@return none + */ + + KS0108 (PinName _RST,PinName _DI, PinName _RW, PinName _E, PinName _CS1, PinName _CS2, PinName DB0, PinName DB1, PinName DB2, PinName DB3, PinName DB4, PinName DB5, PinName DB6, PinName DB7); + + /** + *@brief Write instruction to the specific controller. + *@param Command command to send to the controller + *@param side controller side can be LEFT or RIGHT + *@return none + * + */ + void WriteInstruction(unsigned int Command,unsigned int side); + + /** + *@brief Write data byte to the controller. + *@param data data send to the controller chip + *@param side selected controller can be LEFT or RIGHT + *@return none + * + */ + 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 + *@param col col varies from 0-64 for each side + *@param data info to be written on given coordinates + *@return none + * + */ + void WriteDataColPag(unsigned int page, unsigned int col, unsigned int data); + + /** + *@brief Read data from display + *@param none + *@return none + * + */ + unsigned int ReadData(); + + /** + *@brief Read status of display , and check if it's busy + *@param none + *@return status status of display + * + */ + unsigned int ReadStatus(); + + /** + *@brief Select controller chip + * + *@param side controller side can be LEFT or RIGHT + *@return none + * + */ + 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 + * + *@param none + *@return none + * + */ + void ClearScreen(); + + + /** + *@brief Turn on display + * + *@param none + *@return none + * + */ + void TurnOn(); + + + /** + *@brief Turn Off display + * + *@param none + *@return none + * + */ + void TurnOff(); + + /*******************************Graphic functions************************************************/ + + /** + *@brief Set pixel to specific location on the screen. + *@param x coordinate varies from 0-128 + *@param y col varies from 0-64 + *@param color color of pixel, can be BLACK or WHITE + *@return none + * + */ + void SetPixel( unsigned int x, unsigned int y, unsigned int color); + + + /** + *@brief Draws a line from x1,y1 to x2,y1 + *@param Xaxis1 x coordinate of one side + *@param Xaxis2 x coordinate of one side + *@param Yaxis y coordinate both points + *@param color can be BLACK or WHITE + *@return none + * + */ + void HLine(unsigned int Xaxis1, unsigned int Xaxis2 ,unsigned int Yaxis,unsigned int color); + + /** + *@brief Draw a horizontal line + *@param Xaxis1 + *@param Xaxis2 + *@param width + *@param color can be BLACK or WHITE + *@return none + * + */ + void HLineShort(unsigned int Xaxis, unsigned int Yaxis,unsigned int width ,unsigned int color); + + /** + *@brief Draws a vertical line + *@param Xaxis + *@param Yaxis1 + *@param Yaxis2 + *@param color can be BLACK or WHITE + *@return none + * + */ + void VLine(unsigned int Xaxis, unsigned int Yaxis1 ,unsigned int Yaxis2,unsigned int color); + + /** + *@brief Draw a vertical line of a given width starting from X, Y + *@param Xaxis + *@param Yaxis + *@param height Height of line + *@param color can be BLACK or WHITE + *@return none + * + */ + void VLineShort(unsigned int Xaxis,unsigned int Yaxis, unsigned int height ,unsigned int color); + + + /** + *@brief Draws a line from x1,y1 to x2,y2. + *@param x1 x coordinate of one side + *@param y1 y coordinate of one side + *@param x2 x coordinate of other side + *@param y2 y coordinate of other side + *@param color can be BLACK or WHITE + *@return none + * + */ + void Line(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2, unsigned int color); + + + /** + *@brief Draws a slanty line from x1,y1 to x2,y2 + *@param lX1 x coordinate of one side + *@param lY1 y coordinate of one side + *@param lX2 x coordinate of other side + *@param lY2 y coordinate of other side + *@param color can be BLACK or WHITE + *@return none + * + */ + void SlantyLine(unsigned int lX1, unsigned int lY1, unsigned int lX2,unsigned int lY2,unsigned int color); + + /** + *@brief Draws a line from x,y at given degree from inner_radius to outer_radius. + *@param x + *@param y + *@param inner_radius + *@param outer_radius + *@param color can be BLACK or WHITE + *@return none + * + */ + void DegreeLine(unsigned int x, int y,unsigned int degree,unsigned int inner_radius,unsigned int outer_radius, unsigned int color); + + /** + *@brief Draw a filled reactangle + * + *@param Xaxis1 + *@param Yaxis1 + *@param Xaxis2 + *@param Yaxis2 + *@param color can be BLACK or WHITE + *@return none + * + */ + void FullRectangle(unsigned int Xaxis1, unsigned int Yaxis1, unsigned int Xaxis2 ,unsigned int Yaxis2,unsigned int color); + + /** + *@brief Draw an empty rectangle + *@param Xaxis1 + *@param Yaxis1 + *@param Xaxis2 + *@param Yaxis2 + *@param color can be BLACK or WHITE + *@return none + * + */ + void EmptyRectangle(unsigned int Xaxis1,unsigned int Yaxis1, unsigned int Xaxis2,unsigned int Yaxis2,unsigned int color); + + + /** + *@brief Draw a rectangle with round corners + *@param Xaxis1 x-coordinate of the top left point + *@param Yaxis1 y-coordinate of the top left point + *@param width rectangle width + *@param height rectangle height + *@param radius radius of the edges + *@param color can be BLACK or WHITE + *@return none + * + */ + 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 + *@param Radius circle radius + *@param color Color can be BLACK or WHITE + *@return none + * + */ + 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 + * http://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm + * Adapted from arduino lib + * + *@param CenterX center x coordinate + *@param CenterY center y coordinate + *@param Radius circle radius + *@param color Color can be BLACK or WHITE + */ + 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 + *@param XRadius x coordinate of other side + *@param YRadius y coordinate of other side + *@param color can be BLACK or WHITE + *@return none + * + * Ported the algorithm found at http://homepage.smc.edu/kennedy_john/belipse.pdf + * + */ + 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 Round a double + *@param double + *@return value + * + */ + 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 + * + *@param page row + *@param col column + *@param c integer value + *@return none + */ + void Putchar (int page, int col,unsigned char c); + + /** + *@brief Print a string on specified coordinates + * + *@param str char array + *@param x row + *@param y column + *@return none + */ + void PutString(unsigned int x, unsigned int y,char* str); + + /** + *@brief Print a float on specified coordinates + * + *@param val float value + *@param x row + *@param y column + *@return none + */ + void PrintFloat(float val, unsigned int x,unsigned int y); + + /** + *@brief Print an integer on specified coordinates + * + *@param val integer value + *@param x row + *@param y column + *@return none + */ + 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 Print a character + * + *@param c char + *@return none + */ + 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; + DigitalOut DI; + DigitalOut RW; + DigitalOut E; + DigitalInOut CS2; + DigitalInOut CS1; + bool Inverted; + + LCDCoord Coord; + FontCallback FontRead ; + unsigned int FontColor; + unsigned int* Font; + unsigned int color; + + +}; + + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/LucidaConsole_B30.h Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,69 @@ + + +/* + * + * new Font + * + * created with FontCreator + * written by F. Maximilian Thiele + * + * http://www.apetech.de/fontCreator + * me@apetech.de + * + * File Name : LucidaConsole_B30.h + * Date : 02.03.2012 + * Font size in bytes : 5746 + * Font width : 14 + * Font height : 30 + * Font first char : 48 + * Font last char : 58 + * Font used chars : 10 + * + * 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 NEW_FONT_H +#define NEW_FONT_H + +#define NEW_FONT_WIDTH 14 +#define NEW_FONT_HEIGHT 30 + +static unsigned int LucidaConsole_B30[] = { + 0x16, 0x72, // size + 0x0E, // width + 0x1E, // height + 0x30, // first char + 0x0A, // char count + + // char widths + 0x15, 0x15, 0x11, 0x11, 0x15, 0x10, 0x14, 0x12, 0x14, 0x14, + + + // font data + 0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0xFE, 0x1E, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x1E, 0x3E, 0xFE, 0xFC, 0xF8, 0xF0, 0xC0, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x0C, 0x1C, 0x3C, 0x7C, 0x78, 0xF0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0x78, 0x7C, 0x7C, 0x3C, 0x1C, 0x0C, 0x00, 0x00, // 48 + 0x38, 0x38, 0x38, 0x18, 0x1C, 0x1C, 0x1C, 0x1E, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, // 49 + 0x00, 0x1E, 0x1E, 0x0E, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x1F, 0xFE, 0xFE, 0xFC, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF8, 0xFF, 0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x80, 0xC0, 0xE0, 0xF8, 0xFC, 0x7E, 0x3F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, // 50 + 0x1E, 0x0E, 0x0F, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x1F, 0xFE, 0xFE, 0xFE, 0xFC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0x70, 0xF8, 0xF8, 0xFE, 0xFF, 0xCF, 0xCF, 0x87, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x78, 0x70, 0xF0, 0xF0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0x78, 0x7C, 0x7C, 0x3C, 0x1C, 0x0C, 0x00, // 51 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0xFC, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF8, 0xFC, 0x7F, 0x1F, 0x0F, 0x03, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1C, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, 0x00, 0x00, 0x00, // 52 + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x3C, 0x3C, 0x78, 0xF8, 0xF0, 0xF0, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x70, 0x70, 0xF0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0x78, 0x7C, 0x7C, 0x3C, 0x1C, 0x0C, 0x00, // 53 + 0x00, 0x80, 0xE0, 0xF0, 0xF8, 0xFC, 0x7E, 0x1E, 0x0F, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x0F, 0x0E, 0x1E, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0xF0, 0x70, 0x38, 0x38, 0x38, 0x38, 0x78, 0xF8, 0xF0, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x0C, 0x1C, 0x3C, 0x7C, 0x7C, 0xF0, 0xF0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF8, 0x7C, 0x7C, 0x3C, 0x1C, 0x0C, 0x00, // 54 + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x8F, 0xCF, 0xFF, 0xFF, 0xFF, 0x3F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF8, 0xFE, 0xFF, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF8, 0xFE, 0xFF, 0x7F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x7C, 0x7C, 0x7C, 0x7C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 55 + 0x00, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE, 0x1F, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x1F, 0xFE, 0xFE, 0xFE, 0xFC, 0xF0, 0x00, 0x00, 0x03, 0x07, 0x8F, 0xDF, 0xFF, 0xFF, 0xFC, 0xF8, 0xF8, 0xF0, 0xF8, 0xFC, 0xFE, 0xDF, 0x8F, 0x87, 0x03, 0x01, 0x00, 0xF8, 0xFE, 0xFF, 0xFF, 0xFF, 0x07, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0xF8, 0x04, 0x1C, 0x3C, 0x3C, 0x7C, 0x7C, 0xF8, 0xF0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0x7C, 0x7C, 0x3C, 0x1C, 0x0C, 0x04, // 56 + 0x80, 0xF0, 0xF8, 0xFC, 0xFE, 0x3E, 0x1F, 0x0F, 0x07, 0x07, 0x07, 0x0F, 0x0F, 0x3E, 0xFE, 0xFC, 0xF8, 0xF0, 0xC0, 0x00, 0x1F, 0x7F, 0xFF, 0xFF, 0xFF, 0xF0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x83, 0xE1, 0xFF, 0xFF, 0xFF, 0x7F, 0x0F, 0x00, 0x00, 0x78, 0x70, 0xF0, 0xF0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0x78, 0x7C, 0x3C, 0x1C, 0x0C, 0x04, 0x00, 0x00 // 57 + +}; + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/SystemFont5x7.h Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,147 @@ +/* + * + * System5x7 + * + * + * File Name : System5x7.h + * Date : 28 Oct 2008 + * Font size in bytes : 470 + * Font width : 5 + * Font height : 7 + * Font first char : 32 + * Font last char : 127 + * Font used chars : 94 + * + * 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 SYSTEM5x7_H +#define SYSTEM5x7_H + +#define SYSTEM5x7_WIDTH 5 +#define SYSTEM5x7_HEIGHT 7 + +static unsigned int System5x7[] = { + 0x0, 0x0, // size of zero indicates fixed width font, actual length is width * height + 0x05, // width + 0x07, // height + 0x20, // first char + 0x7f, // char count + + // Fixed width; char width table not used !!!! + + // font data + 0x00, 0x00, 0x00, 0x00, 0x00,// (space) + 0x00, 0x00, 0x5F, 0x00, 0x00,// ! + 0x00, 0x07, 0x00, 0x07, 0x00,// " + 0x14, 0x7F, 0x14, 0x7F, 0x14,// # + 0x24, 0x2A, 0x7F, 0x2A, 0x12,// $ + 0x23, 0x13, 0x08, 0x64, 0x62,// % + 0x36, 0x49, 0x55, 0x22, 0x50,// & + 0x00, 0x05, 0x03, 0x00, 0x00,// ' + 0x00, 0x1C, 0x22, 0x41, 0x00,// ( + 0x00, 0x41, 0x22, 0x1C, 0x00,// ) + 0x08, 0x2A, 0x1C, 0x2A, 0x08,// * + 0x08, 0x08, 0x3E, 0x08, 0x08,// + + 0x00, 0x50, 0x30, 0x00, 0x00,// , + 0x08, 0x08, 0x08, 0x08, 0x08,// - + 0x00, 0x60, 0x60, 0x00, 0x00,// . + 0x20, 0x10, 0x08, 0x04, 0x02,// / + 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0 + 0x00, 0x42, 0x7F, 0x40, 0x00,// 1 + 0x42, 0x61, 0x51, 0x49, 0x46,// 2 + 0x21, 0x41, 0x45, 0x4B, 0x31,// 3 + 0x18, 0x14, 0x12, 0x7F, 0x10,// 4 + 0x27, 0x45, 0x45, 0x45, 0x39,// 5 + 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6 + 0x01, 0x71, 0x09, 0x05, 0x03,// 7 + 0x36, 0x49, 0x49, 0x49, 0x36,// 8 + 0x06, 0x49, 0x49, 0x29, 0x1E,// 9 + 0x00, 0x36, 0x36, 0x00, 0x00,// : + 0x00, 0x56, 0x36, 0x00, 0x00,// ; + 0x00, 0x08, 0x14, 0x22, 0x41,// < + 0x14, 0x14, 0x14, 0x14, 0x14,// = + 0x41, 0x22, 0x14, 0x08, 0x00,// > + 0x02, 0x01, 0x51, 0x09, 0x06,// ? + 0x32, 0x49, 0x79, 0x41, 0x3E,// @ + 0x7E, 0x11, 0x11, 0x11, 0x7E,// A + 0x7F, 0x49, 0x49, 0x49, 0x36,// B + 0x3E, 0x41, 0x41, 0x41, 0x22,// C + 0x7F, 0x41, 0x41, 0x22, 0x1C,// D + 0x7F, 0x49, 0x49, 0x49, 0x41,// E + 0x7F, 0x09, 0x09, 0x01, 0x01,// F + 0x3E, 0x41, 0x41, 0x51, 0x32,// G + 0x7F, 0x08, 0x08, 0x08, 0x7F,// H + 0x00, 0x41, 0x7F, 0x41, 0x00,// I + 0x20, 0x40, 0x41, 0x3F, 0x01,// J + 0x7F, 0x08, 0x14, 0x22, 0x41,// K + 0x7F, 0x40, 0x40, 0x40, 0x40,// L + 0x7F, 0x02, 0x04, 0x02, 0x7F,// M + 0x7F, 0x04, 0x08, 0x10, 0x7F,// N + 0x3E, 0x41, 0x41, 0x41, 0x3E,// O + 0x7F, 0x09, 0x09, 0x09, 0x06,// P + 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q + 0x7F, 0x09, 0x19, 0x29, 0x46,// R + 0x46, 0x49, 0x49, 0x49, 0x31,// S + 0x01, 0x01, 0x7F, 0x01, 0x01,// T + 0x3F, 0x40, 0x40, 0x40, 0x3F,// U + 0x1F, 0x20, 0x40, 0x20, 0x1F,// V + 0x7F, 0x20, 0x18, 0x20, 0x7F,// W + 0x63, 0x14, 0x08, 0x14, 0x63,// X + 0x03, 0x04, 0x78, 0x04, 0x03,// Y + 0x61, 0x51, 0x49, 0x45, 0x43,// Z + 0x00, 0x00, 0x7F, 0x41, 0x41,// [ + 0x02, 0x04, 0x08, 0x10, 0x20,// "\" + 0x41, 0x41, 0x7F, 0x00, 0x00,// ] + 0x04, 0x02, 0x01, 0x02, 0x04,// ^ + 0x40, 0x40, 0x40, 0x40, 0x40,// _ + 0x00, 0x01, 0x02, 0x04, 0x00,// ` + 0x20, 0x54, 0x54, 0x54, 0x78,// a + 0x7F, 0x48, 0x44, 0x44, 0x38,// b + 0x38, 0x44, 0x44, 0x44, 0x20,// c + 0x38, 0x44, 0x44, 0x48, 0x7F,// d + 0x38, 0x54, 0x54, 0x54, 0x18,// e + 0x08, 0x7E, 0x09, 0x01, 0x02,// f + 0x08, 0x14, 0x54, 0x54, 0x3C,// g + 0x7F, 0x08, 0x04, 0x04, 0x78,// h + 0x00, 0x44, 0x7D, 0x40, 0x00,// i + 0x20, 0x40, 0x44, 0x3D, 0x00,// j + 0x00, 0x7F, 0x10, 0x28, 0x44,// k + 0x00, 0x41, 0x7F, 0x40, 0x00,// l + 0x7C, 0x04, 0x18, 0x04, 0x78,// m + 0x7C, 0x08, 0x04, 0x04, 0x78,// n + 0x38, 0x44, 0x44, 0x44, 0x38,// o + 0x7C, 0x14, 0x14, 0x14, 0x08,// p + 0x08, 0x14, 0x14, 0x18, 0x7C,// q + 0x7C, 0x08, 0x04, 0x04, 0x08,// r + 0x48, 0x54, 0x54, 0x54, 0x20,// s + 0x04, 0x3F, 0x44, 0x40, 0x20,// t + 0x3C, 0x40, 0x40, 0x20, 0x7C,// u + 0x1C, 0x20, 0x40, 0x20, 0x1C,// v + 0x3C, 0x40, 0x30, 0x40, 0x3C,// w + 0x44, 0x28, 0x10, 0x28, 0x44,// x + 0x0C, 0x50, 0x50, 0x50, 0x3C,// y + 0x44, 0x64, 0x54, 0x4C, 0x44,// z + 0x00, 0x08, 0x36, 0x41, 0x00,// { + 0x00, 0x00, 0x7F, 0x00, 0x00,// | + 0x00, 0x41, 0x36, 0x08, 0x00,// } + 0x08, 0x08, 0x2A, 0x1C, 0x08,// -> + 0x08, 0x1C, 0x2A, 0x08, 0x08 // <- + +}; + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/Verdana_digits24.h Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,113 @@ + + +/* + * + * Verdana28 + * + * created with FontCreator + * written by F. Maximilian Thiele + * + * http://www.apetech.de/fontCreator + * me@apetech.de + * + * File Name : Verdana_digits_24 + * Date : 01.05.2008 + * Font size in bytes : 3833 + * Font width : 10 + * Font height : 24 + * Font first char : 48 + * Font last char : 59 + * Font used chars : 11 + * + * 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 VERDANA24_H +#define VERDANA24_H + +#define VERDANA24_WIDTH 10 +#define VERDANA24_HEIGHT 24 + +static unsigned int Verdana24[] = { + 0x0E, 0xF9, // size + 0x0A, // width + 0x18, // height + 0x30, // first char + 0x0B, // char count + + // char widths + 0x10, 0x0D, 0x0F, 0x0F, 0x11, 0x0F, 0x10, 0x10, 0x10, 0x10, + 0x04, + + // font data + 0x80, 0xF0, 0xFC, 0x7E, 0x0E, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x1E, +0x7E, 0xFC, 0xF0, 0x80, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x0F, 0x3F, 0x7E, +0x70, 0xF0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0x70, 0x7E, 0x3F, 0x0F, 0x01, //48 + + 0x38, 0x38, 0x38, 0x38, 0x3C, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, +0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, +0xE0, 0xE0, 0xE0, // 49 + + 0x00, 0x1E, 0x0E, 0x0E, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x1E, 0xFE, +0xFC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, +0x78, 0x3E, 0x1F, 0x07, 0x01, 0x00, 0xF0, 0xF8, 0xFC, 0xFE, 0xEF, 0xE7, +0xE3, 0xE1, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, // 50 + + 0x00, 0x1E, 0x0E, 0x0E, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x1E, +0xFE, 0xFC, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x1C, +0x1E, 0x36, 0x77, 0xF3, 0xE1, 0xC0, 0x78, 0x70, 0x70, 0xF0, 0xE0, 0xE0, +0xE0, 0xE0, 0xE0, 0xF0, 0x70, 0x78, 0x3F, 0x1F, 0x0F, // 51 + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xF0, 0xF8, 0x7C, 0x1E, 0xFF, +0xFF, 0xFF, 0x00, 0x00, 0x00, 0xE0, 0xF0, 0xFC, 0xFE, 0xDF, 0xC7, 0xC3, +0xC1, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0xFF, 0xC0, 0xC0, 0xC0, 0x01, 0x01, +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFF, 0xFF, 0xFF, +0x01, 0x01, 0x01, // 52 + + 0x00, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, +0x07, 0x07, 0x07, 0x00, 0x1F, 0x1F, 0x0F, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, +0x1E, 0x1C, 0x3C, 0xF8, 0xF8, 0xE0, 0x78, 0x70, 0x70, 0xF0, 0xE0, 0xE0, +0xE0, 0xE0, 0xE0, 0xF0, 0x70, 0x7C, 0x3F, 0x1F, 0x07, // 53 + + 0x00, 0xC0, 0xF0, 0xF8, 0x3C, 0x1E, 0x0E, 0x0E, 0x07, 0x07, 0x07, 0x07, +0x07, 0x0F, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x1C, 0x1C, 0x0E, 0x0E, 0x0E, +0x0E, 0x0E, 0x0E, 0x1E, 0x3C, 0xF8, 0xF8, 0xE0, 0x03, 0x0F, 0x3F, 0x7C, +0x78, 0xF0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x70, 0x78, 0x3F, 0x1F, 0x07, //54 + + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x87, +0xE7, 0xFF, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, +0xF0, 0xFC, 0x3F, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, +0xF8, 0xFC, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //55 + + 0x00, 0xF0, 0xFC, 0xFE, 0x0E, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x1E, +0xFE, 0xFC, 0xF8, 0x00, 0x80, 0xE0, 0xF3, 0x77, 0x1F, 0x0E, 0x0E, 0x0C, +0x1C, 0x1C, 0x1C, 0x3E, 0x77, 0xF3, 0xE0, 0x80, 0x0F, 0x1F, 0x3F, 0x78, +0x70, 0xF0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x70, 0x78, 0x3F, 0x1F, 0x0F, //56 + + 0xE0, 0xF8, 0xFC, 0x1E, 0x0E, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x1E, +0x3E, 0xFC, 0xF0, 0xC0, 0x07, 0x1F, 0x1F, 0x3C, 0x78, 0x70, 0x70, 0x70, +0x70, 0x70, 0x70, 0x38, 0x38, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xF0, 0xE0, +0xE0, 0xE0, 0xE0, 0xE0, 0x70, 0x70, 0x78, 0x3C, 0x1F, 0x0F, 0x03, 0x00, //57 + + 0xC0, 0xC0, 0xC0, 0xC0, 0x03, 0x03, 0x03, 0x03, 0xF0, 0xF0, 0xF0, 0xF0 // 58 + +}; + +#endif \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/arial_bold_14.h Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,164 @@ + + +/* + * + * 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 + */ + +#ifndef ARIAL_BOLD_14_H +#define ARIAL_BOLD_14_H + +#define ARIAL_BOLD_14_WIDTH 10 +#define ARIAL_BOLD_14_HEIGHT 14 + +static unsigned int Arial_Bold_14[] = { + 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KS0108/vivaldi16.h Mon Mar 05 06:00:16 2012 +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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calsolimage.h Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,135 @@ +#ifndef IMAGE_H +#define IMAGE_H + +unsigned char pic[] = { +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,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,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,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,0x80,0x40,0x40,0x40,0x40, +0x40,0x40,0x80,0x00,0x80,0x40,0x40,0x40, +0x40,0x40,0x40,0x80,0x00,0x80,0x40,0x40, +0x40,0x40,0x40,0x40,0x80,0x00,0x80,0x40, +0x40,0x40,0x40,0x40,0x40,0x80,0x00,0x80, +0x40,0x40,0x40,0xC0,0x40,0x00,0x00,0x80, +0xC0,0xC0,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0, +0xC0,0xC0,0x80,0x80,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,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,0x00,0x00, +0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x40, +0x40,0x40,0x3F,0x00,0x3F,0x40,0x40,0x40, +0x40,0x40,0x40,0x3F,0x00,0x3F,0x40,0x40, +0x40,0x40,0x40,0x40,0x3F,0x00,0x3F,0x40, +0x40,0x40,0x40,0x40,0x40,0x3F,0x00,0x9F, +0xC4,0xF2,0xF9,0xFC,0xFE,0x7F,0x3F,0x1F, +0x07,0x07,0x03,0x03,0x03,0x01,0x03,0x03, +0x07,0xCF,0xCF,0xCF,0xC6,0xC6,0xC0,0xC0, +0xC0,0xC0,0x80,0x80,0xC0,0xE0,0xF0,0xF0, +0xF8,0xF8,0xF8,0xF8,0x58,0x00,0xA0,0xF8, +0xF8,0xF8,0x78,0x08,0x00,0x00,0x00,0x00, +0x80,0xC0,0xF0,0xF8,0xF8,0x78,0x78,0x78, +0x38,0x38,0x78,0x38,0x00,0x80,0xC0,0xE0, +0xF0,0xF8,0x78,0x78,0x78,0x38,0x78,0xF8, +0xF0,0xF0,0xC0,0x00,0x00,0x00,0x00,0xC0, +0xE8,0xF8,0xF8,0xF8,0x38,0x00,0x00,0x00, +0x00,0x00,0x00,0x7E,0x81,0x81,0x81,0x81, +0x81,0x81,0x7E,0x00,0x7E,0x81,0x81,0x81, +0x81,0x81,0x81,0x7E,0x00,0x7E,0x81,0x81, +0x81,0x81,0x81,0x81,0x7E,0x00,0x7E,0x81, +0x81,0x81,0x61,0x1D,0xC3,0xF8,0xFE,0xFF, +0xFF,0x3F,0x07,0x03,0x00,0x00,0x00,0x00, +0x00,0x18,0x18,0x18,0xD8,0xD8,0xD8,0xD8, +0xD8,0xD8,0x58,0x18,0xE8,0xF0,0xF8,0xFC, +0x3F,0x3F,0x1F,0x0F,0x03,0x03,0xF1,0xFF, +0xFF,0xFF,0x3F,0x07,0xF0,0xFE,0xFF,0xFF, +0x5F,0x07,0x00,0x00,0x00,0x00,0x00,0x00, +0x03,0x1F,0xFF,0xFF,0xFF,0x80,0x00,0x00, +0x00,0x00,0xE0,0xF8,0xFF,0xFF,0x3F,0x0F, +0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xC0, +0xFF,0xFF,0xFF,0x3F,0x00,0xC0,0xFC,0xFF, +0xFF,0xFF,0x17,0x01,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xFC,0x02,0x02,0x02,0x02, +0x02,0x02,0xFC,0x00,0xFC,0x02,0x02,0x02, +0x02,0x02,0x02,0xFC,0x00,0xFC,0x02,0x02, +0x02,0x02,0x02,0x02,0xFC,0x00,0xFC,0x02, +0x02,0xFE,0x00,0x74,0xFF,0xFF,0xFF,0xFF, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x40,0x78,0x78,0x78,0x78,0x78,0x78,0x78, +0x78,0xF8,0xFD,0xFF,0xFF,0x7F,0x7F,0x79, +0x78,0x78,0x78,0x78,0xF8,0xFF,0xFF,0xFF, +0x3F,0x03,0xF0,0xFD,0xFF,0xFF,0xBF,0x83, +0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80, +0x80,0xC0,0xEF,0xFF,0xFF,0xFF,0x78,0x00, +0x00,0x11,0xFF,0xFF,0xFF,0xF1,0xC0,0x80, +0x80,0x80,0xC0,0xC0,0xF0,0xF8,0xFE,0x7F, +0x3F,0x0F,0x01,0xC0,0xF4,0xFF,0xFF,0xFF, +0x8F,0x80,0x80,0x80,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xF8,0x05,0x05,0x05,0x05, +0x05,0x05,0xF8,0x00,0xF8,0x05,0x05,0x05, +0x05,0x05,0x05,0xF8,0x00,0xF8,0x05,0x05, +0x05,0x05,0x05,0x05,0xF8,0x00,0xF8,0x05, +0x05,0x05,0x38,0xC0,0x0F,0x3F,0x7F,0xFF, +0xFC,0xF0,0xE0,0xC0,0xE0,0xE0,0xE0,0xE0, +0xE0,0xF0,0xF8,0xFC,0x78,0x70,0x00,0x00, +0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00, +0x00,0x00,0x00,0x06,0x07,0x07,0x07,0x01, +0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x00,0x04,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x03,0x03,0x01,0x00,0x00, +0x00,0x00,0x00,0x01,0x03,0x07,0x07,0x07, +0x07,0x07,0x07,0x03,0x03,0x01,0x00,0x00, +0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x03,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02, +0x02,0x02,0x01,0x00,0x01,0x02,0x02,0x02, +0x02,0x02,0x02,0x01,0x00,0x01,0x02,0x02, +0x02,0x02,0x02,0x02,0x01,0x00,0x01,0x02, +0x02,0x02,0x02,0x02,0x03,0x02,0x00,0x00, +0x01,0x01,0x03,0x03,0x03,0x03,0x03,0x03, +0x03,0x01,0x01,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,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,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,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,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, +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,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,278 @@ +// Display Test +//#include "mbed.h" +#include "KS0108.h" +#include "calsolimage.h" +#include "numbers.h" +#include "Arial12.h" +#include "Arial14.h" +#include "arial_bold_14.h" +#include "ArialB40.h" +#include "SystemFont5x7.h" +#include "HelveticaB35.h" +#include "CourierNew_B70.h" + +// Declare each of the things you're going to use +// The display +KS0108 display(p23,p21,p22,p20,p24,p25,p17,p18,p19,p30,p29,p28,p27,p26); +// The button on the breadboard +DigitalIn topButton(p13); +// For printing things to the computer +Serial pc(USBTX,USBRX); +// Timers +Timer timer1; +Timer timer2; +Timer testTimer; + +// Declare methods, the actual body is down there. +// You have to do this for C +void rules (unsigned char *); +void random (unsigned char *); + +// This is where your programs starts running +int main() { + // Initialize variables + int dist = 20; + int demo = 0; + int i = 0; + topButton.mode(PullUp); + // Display CalSol logo + display.FullScreenBMP(pic); + wait(0.2); + + timer1.start(); // For button stuff + timer2.start(); + + int percentage = 0; //integer value from 0 to 100 (battery) + int speed = 150; //integer value from 0 to 999 + double current = 15.2; //double value from 0 to 99.9 + + while(1) { + if(!topButton) { + if(timer1.read_ms() > 200) { + demo++; + display.ClearScreen(); + if(demo > 3) { + demo = 0; + } + timer1.reset(); + } + } + switch(demo) { + case 0: + if(timer2.read_ms() > 500) { + rules(pic); + display.FullScreenBMP(pic); + timer2.reset(); + } + break; + + case 1: + + //GRID: + //speed: 70x64, ( 0, 0) + //current: 57x23, (71, 0) + //battery: 57x40, (71, 23) + display.HLineShort(71, 64-24, 57, BLACK); + display.VLineShort(71, 0, 64, BLACK); + + + /* + /* + //CURRENT + display.SelectFont(Arial_Bold_14, WHITE, ReadData); + display.GotoXY(78, 8); + display.PrintNumber(current); // this doesn't work with doubles + display.SelectFont(System5x7, WHITE, ReadData); + display.GotoXY(110, 8); + display.PrintString("Amp"); + */ + + + //BATTERY + display.RoundRectangle(82, 2, 40, 24, 4, BLACK); //body: 40x24 + display.EmptyRectangle(78, 10, 78+4, 10+8, BLACK);//head: 4x8 + display.SelectFont(System5x7, WHITE, ReadData); + display.GotoXY(108, 24+8); + display.PrintString("%"); + + + //PERCENTAGE (reasonable update rate: testTimer.read_ms()/700) + /* + int INITIAL_PERCENTAGE = 100; + int percentage = INITIAL_PERCENTAGE; // values 0-100 + int newPercentage = percentage; // values 0-100 + int barPosition = 86+(int)(((double)(100-percentage)/100.0)*32); + int newBarPosition = 86+(int)(((double)(100-newPercentage)/100.0)*32); //x-coordinates + + display.SelectFont(System5x7, BLACK, ReadData); + + //draw initial box + display.FullRectangle(barPosition, 2+4, 86+32, 2+24-4, BLACK); //inside: 32x16 + int y = 32; //y coordinate for percenage. for testing/fixing font + + testTimer.start(); + + while (newPercentage <= 100 && newPercentage >= 0) //testing update rate/centering + { + if (testTimer.read_ms()%700 == 0) + { + //account for number of digits + + if (newPercentage > 99) + display.GotoXY(88, y); + else if (newPercentage >= 10) + { + if (percentage > 99) + display.FullRectangle(88, y, 88+5, y+7, WHITE); + display.GotoXY(94, y); + } + else + { + if (percentage >= 10) + display.FullRectangle(88, y, 88+5*2+1, y+7, WHITE); + display.GotoXY(100,y); + } + + + display.PrintNumber(newPercentage); + + + + barPosition = 86+(int)(((double)(100-percentage)/100.0)*32); + newBarPosition = 86+(int)(((double)(100-newPercentage)/100.0)*32); + + //draw increase or decrease in percentage + if (newBarPosition < barPosition) //percentage increase + display.FullRectangle(newBarPosition, 2+4, barPosition, 2+24-4, BLACK); + else if (newBarPosition > barPosition) //percentage decrease + display.FullRectangle(barPosition, 2+4, newBarPosition, 2+24-4, WHITE); + + + //update percentages + percentage = newPercentage; + //newPercentage = testTimer.read_ms()/700; //slow increase + newPercentage = INITIAL_PERCENTAGE-(testTimer.read_ms()/700); //rapid decrease + + } + }*/ + + //SPEED + + display.SelectFont(System5x7, WHITE, ReadData); + display.GotoXY(26, 48); + display.PrintString("MPH"); + testTimer.start(); + + display.SelectFont(CourierNew_B70, WHITE, ReadData); + /* while (true){ + if (testTimer.read_ms()%700 == 1) + {*/ // for testing + //speed = testTimer.read_ms()/1000; + speed += (int)((rand()%3)-2); + + //display.FullRectangle(0, 16, 70, 44, WHITE); //clears space too slowly. find alternative + + if (speed > 99) // 3digits + display.GotoXY(1, 16); + else if (speed >= 10) // 2digits + display.GotoXY(3+10, 16); + else //1digit + display.GotoXY(3+10*2, 16); + + display.PrintNumber(speed); + /*} + }*/ + */ + break; + case 2: + // This block does the bar graph stuff. + if(timer2.read_ms() > 100) { + // display.PutString(3,2,"I can has mbed too"); + // display.PrintFloat(123.23,4,5); + display.VLine(6+i,47,56,BLACK); + if (i < 10){dist = 30;} + else if (i < 100){dist = 25;} + else {dist = 20;} + display.PrintInteger(i,6,dist); + i++; + if(i > 100) { + i = 0; + display.ClearScreen(); + } + timer2.reset(); + } + break; + case 3: + if(timer2.read_ms() > 500) { + rules(pic); + display.FullScreenBMP(pic); + timer2.reset(); + } + default: + break; + } + } +} + +//For Conway's Game of Life +void rules (unsigned char * array) { + char neighborArray[128][64]; + // Get number of neighbors + for (int x = 0; x < 128; x++) { + for (int y = 0;y < 64; y++) { + neighborArray[x][y] = 0; + } + } + for (int y = 0;y < 64; y++) { + for (int x = 0; x < 128; x++) { + if (array[x + (y/8*8)*16] & (1<<(y%8))) { + if (x != 0) { + neighborArray[x-1][y] += 1; + if (y != 0) { + neighborArray[x-1][y-1] += 1; + } + if (y != 127) { + neighborArray[x-1][y+1] += 1; + } + } + if (x != 127) { + neighborArray[x+1][y] += 1; + if (y != 0) { + neighborArray[x+1][y-1] += 1; + } + if (y != 127) { + neighborArray[x+1][y+1] += 1; + } + } + if (y != 0) { + neighborArray[x][y-1] += 1; + } + if (y != 63){ + neighborArray[x][y+1] += 1; + } + } + } + } + int arrayIndex; + for (int y = 0;y < 64; y++) { + for (int x = 0; x < 128; x++) { + arrayIndex = x + (y/8*8)*16; + if (neighborArray[x][y] == 3) { + array[arrayIndex] |= (1<<(y%8)); + } else if (neighborArray[x][y] == 2) { + continue; + } else { + array[arrayIndex] &= ~(1<<(y%8)); + } + } + } +} + +//Is this used anywhere? +void random (unsigned char * array) { + for (int y = 0;y < 64; y += 8) { + for (int x = 0; x < 128; x++) { + array[x + y*16] = (unsigned char) rand(); + } + } +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/078e4b97a13e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/numbers.h Mon Mar 05 06:00:16 2012 +0000 @@ -0,0 +1,6 @@ +#ifndef NUMBERS_H +#define NUMBERS_H + +const unsigned int four[] = {0x00,0x1f,0x10,0x10,0x10,0xff,0x00,0x00}; + +#endif \ No newline at end of file