Revision 0:87b78725a6dd, committed 2012-03-05
- Comitter:
- kagelump
- Date:
- Mon Mar 05 06:00:16 2012 +0000
- Commit message:
Changed in this revision
diff -r 000000000000 -r 87b78725a6dd KS0108/Arial12.h
--- /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
diff -r 000000000000 -r 87b78725a6dd KS0108/Arial14.h
--- /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
diff -r 000000000000 -r 87b78725a6dd KS0108/ArialB30.h
--- /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
diff -r 000000000000 -r 87b78725a6dd KS0108/ArialB40.h
--- /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
diff -r 000000000000 -r 87b78725a6dd KS0108/Comic24.h
--- /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
diff -r 000000000000 -r 87b78725a6dd KS0108/CourierNew_B30.h
--- /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
diff -r 000000000000 -r 87b78725a6dd KS0108/CourierNew_B70.h
Binary file KS0108/CourierNew_B70.h has changed
diff -r 000000000000 -r 87b78725a6dd KS0108/HelveticaB35.h
--- /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
diff -r 000000000000 -r 87b78725a6dd KS0108/KS0108.cpp
--- /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));
+ }
+}
+
+
+
+
+
+
+
diff -r 000000000000 -r 87b78725a6dd KS0108/KS0108.h
--- /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
diff -r 000000000000 -r 87b78725a6dd KS0108/LucidaConsole_B30.h
--- /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
diff -r 000000000000 -r 87b78725a6dd KS0108/SystemFont5x7.h
--- /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
diff -r 000000000000 -r 87b78725a6dd KS0108/Verdana_digits24.h
--- /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
diff -r 000000000000 -r 87b78725a6dd KS0108/arial_bold_14.h
--- /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
diff -r 000000000000 -r 87b78725a6dd KS0108/vivaldi16.h
--- /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
diff -r 000000000000 -r 87b78725a6dd calsolimage.h
--- /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
diff -r 000000000000 -r 87b78725a6dd main.cpp
--- /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
diff -r 000000000000 -r 87b78725a6dd mbed.bld
--- /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
diff -r 000000000000 -r 87b78725a6dd numbers.h
--- /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