73 #include <propeller.h>
83 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
84 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
85 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
86 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
87 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
88 0x00, 0x80, 0x80, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
89 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
90 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
91 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
92 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00,
93 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80,
94 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0xff,
95 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00,
96 0x80, 0xff, 0xff, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80,
97 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x8c, 0x8e, 0x84, 0x00, 0x00, 0x80, 0xf8,
98 0xf8, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
99 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xc0, 0x80,
100 0x00, 0xe0, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
101 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xc7, 0x01, 0x01,
102 0x01, 0x01, 0x83, 0xff, 0xff, 0x00, 0x00, 0x7c, 0xfe, 0xc7, 0x01, 0x01, 0x01, 0x01, 0x83, 0xff,
103 0xff, 0xff, 0x00, 0x38, 0xfe, 0xc7, 0x83, 0x01, 0x01, 0x01, 0x83, 0xc7, 0xff, 0xff, 0x00, 0x00,
104 0x01, 0xff, 0xff, 0x01, 0x01, 0x00, 0xff, 0xff, 0x07, 0x01, 0x01, 0x01, 0x00, 0x00, 0x7f, 0xff,
105 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x01, 0xff,
106 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
107 0x03, 0x0f, 0x3f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xc7, 0xc7, 0x8f,
108 0x8f, 0x9f, 0xbf, 0xff, 0xff, 0xc3, 0xc0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc,
109 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xf0, 0xe0, 0xc0, 0x00, 0x01, 0x03, 0x03, 0x03,
110 0x03, 0x03, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01,
111 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00,
112 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
113 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x00, 0x00, 0x00, 0x03,
114 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
115 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1f, 0x0f,
116 0x87, 0xc7, 0xf7, 0xff, 0xff, 0x1f, 0x1f, 0x3d, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0x7c, 0x7d, 0xff,
117 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x07, 0x00, 0x30, 0x30, 0x00, 0x00,
118 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
119 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
120 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc0, 0x00,
121 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00,
122 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
123 0x00, 0xc0, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x1f,
124 0x0f, 0x07, 0x1f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0,
125 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0x00,
126 0x00, 0xfc, 0xfe, 0xfc, 0x0c, 0x06, 0x06, 0x0e, 0xfc, 0xf8, 0x00, 0x00, 0xf0, 0xf8, 0x1c, 0x0e,
127 0x06, 0x06, 0x06, 0x0c, 0xff, 0xff, 0xff, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xfc,
128 0xfe, 0xfc, 0x00, 0x18, 0x3c, 0x7e, 0x66, 0xe6, 0xce, 0x84, 0x00, 0x00, 0x06, 0xff, 0xff, 0x06,
129 0x06, 0xfc, 0xfe, 0xfc, 0x0c, 0x06, 0x06, 0x06, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0x00, 0xc0, 0xf8,
130 0xfc, 0x4e, 0x46, 0x46, 0x46, 0x4e, 0x7c, 0x78, 0x40, 0x18, 0x3c, 0x76, 0xe6, 0xce, 0xcc, 0x80,
131 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
132 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x0f, 0x03,
133 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00,
134 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x03, 0x07, 0x0e, 0x0c,
135 0x18, 0x18, 0x0c, 0x06, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x01, 0x0f, 0x0e, 0x0c, 0x18, 0x0c, 0x0f,
136 0x07, 0x01, 0x00, 0x04, 0x0e, 0x0c, 0x18, 0x0c, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
137 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x07,
138 0x07, 0x0c, 0x0c, 0x18, 0x1c, 0x0c, 0x06, 0x06, 0x00, 0x04, 0x0e, 0x0c, 0x18, 0x0c, 0x0f, 0x07,
139 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
140 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
141 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
142 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
143 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
144 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
145 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
146 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
147 0xf0, 0xab, 0xbc, 0x0a, 0x00, 0x00, 0x68, 0x5c, 0x5d, 0x0a, 0xfc, 0x54, 0x55, 0xac, 0xbc, 0xa0,
148 0x05, 0xae, 0xfc, 0xa0, 0x56, 0xba, 0xbc, 0x08, 0x53, 0x0a, 0xbc, 0x80, 0x04, 0xac, 0xfc, 0x80,
149 0x05, 0xae, 0xfc, 0xe4, 0x10, 0xaa, 0xfc, 0x28, 0x01, 0xaa, 0x7c, 0x86, 0x10, 0x00, 0x68, 0x5c,
150 0x02, 0xaa, 0x7c, 0x86, 0x2e, 0x00, 0x68, 0x5c, 0xf0, 0xa5, 0x3c, 0x08, 0x00, 0x00, 0x7c, 0x5c,
151 0x01, 0xaa, 0xfc, 0xa0, 0x5d, 0xaa, 0xbc, 0x2c, 0x55, 0xaa, 0x3c, 0x61, 0x55, 0xec, 0xbf, 0x70,
152 0x55, 0xe8, 0xbf, 0x70, 0x01, 0xac, 0xfc, 0xa0, 0x5e, 0xac, 0xbc, 0x2c, 0x56, 0xac, 0x3c, 0x61,
153 0x56, 0xec, 0xbf, 0x70, 0x56, 0xe8, 0xbf, 0x70, 0x01, 0xb4, 0xfc, 0xa0, 0x5f, 0xb4, 0xbc, 0x2c,
154 0x5a, 0xb4, 0x3c, 0x61, 0x5a, 0xec, 0xbf, 0x70, 0x5a, 0xe8, 0xbf, 0x74, 0x61, 0xae, 0xbc, 0xa0,
155 0x80, 0xb2, 0xfc, 0xa0, 0x08, 0xb0, 0xfc, 0xa0, 0x59, 0xae, 0x3c, 0x61, 0x55, 0xe8, 0xbf, 0x70,
156 0x01, 0xb2, 0xfc, 0x28, 0x56, 0xac, 0x3c, 0x61, 0x56, 0xe8, 0xbf, 0x74, 0x56, 0xac, 0x3c, 0x61,
157 0x56, 0xe8, 0xbf, 0x70, 0x22, 0xb0, 0xfc, 0xe4, 0x5a, 0xb4, 0x3c, 0x61, 0x5a, 0xe8, 0xbf, 0x70,
158 0xf0, 0xa5, 0x3c, 0x08, 0x00, 0x00, 0x7c, 0x5c, 0x01, 0xaa, 0xfc, 0xa0, 0x5d, 0xaa, 0xbc, 0x2c,
159 0x55, 0xaa, 0x3c, 0x61, 0x55, 0xec, 0xbf, 0x70, 0x55, 0xe8, 0xbf, 0x70, 0x01, 0xac, 0xfc, 0xa0,
160 0x5e, 0xac, 0xbc, 0x2c, 0x56, 0xac, 0x3c, 0x61, 0x56, 0xec, 0xbf, 0x70, 0x56, 0xe8, 0xbf, 0x70,
161 0x01, 0xb4, 0xfc, 0xa0, 0x5f, 0xb4, 0xbc, 0x2c, 0x5a, 0xb4, 0x3c, 0x61, 0x5a, 0xec, 0xbf, 0x70,
162 0x5a, 0xe8, 0xbf, 0x70, 0x61, 0xb6, 0xbc, 0xa0, 0x54, 0xb8, 0xbc, 0xa0, 0x5b, 0xae, 0xbc, 0x00,
163 0x01, 0xb6, 0xfc, 0x80, 0x5a, 0xb4, 0x3c, 0x61, 0x5a, 0xe8, 0xbf, 0x74, 0x80, 0xb2, 0xfc, 0xa0,
164 0x08, 0xb0, 0xfc, 0xa0, 0x59, 0xae, 0x3c, 0x61, 0x55, 0xe8, 0xbf, 0x70, 0x01, 0xb2, 0xfc, 0x28,
165 0x56, 0xac, 0x3c, 0x61, 0x56, 0xe8, 0xbf, 0x74, 0x56, 0xac, 0x3c, 0x61, 0x56, 0xe8, 0xbf, 0x70,
166 0x45, 0xb0, 0xfc, 0xe4, 0x5a, 0xb4, 0x3c, 0x61, 0x5a, 0xe8, 0xbf, 0x70, 0x3f, 0xb8, 0xfc, 0xe4,
167 0xf0, 0xa5, 0x3c, 0x08, 0x00, 0x00, 0x7c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
168 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
169 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
170 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
171 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
172 0xff, 0xfc, 0xf8, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0xff, 0xa5, 0x99, 0xa5, 0xff, 0x00, 0x00, 0x00,
173 0x01, 0x07, 0x0f, 0x3f, 0xff, 0x00, 0x00, 0x00, 0x81, 0x42, 0x24, 0x18, 0x18, 0x00, 0x00, 0x00,
174 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
175 0xff, 0x81, 0x81, 0x81, 0xff, 0x00, 0x00, 0x00, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x00, 0x00, 0x00,
176 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x00, 0x00, 0x00, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x00, 0x00, 0x00,
177 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x00, 0x00, 0x00, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x00, 0x00, 0x00,
178 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x00, 0x00, 0x00, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x00, 0x00, 0x00,
179 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
180 0x7e, 0xbd, 0xdb, 0xe7, 0xe7, 0x00, 0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x00, 0x00, 0x00,
181 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0xe7, 0x99, 0xe7, 0xff, 0x00, 0x00, 0x00,
182 0xff, 0xff, 0x81, 0x81, 0xff, 0x00, 0x00, 0x00, 0xff, 0x81, 0x81, 0xff, 0xff, 0x00, 0x00, 0x00,
183 0xff, 0x81, 0x81, 0x81, 0xff, 0x00, 0x00, 0x00, 0xff, 0x81, 0x81, 0x81, 0xff, 0x00, 0x00, 0x00,
184 0xff, 0x81, 0x81, 0x81, 0xff, 0x00, 0x00, 0x00, 0xff, 0x81, 0x81, 0x81, 0xff, 0x00, 0x00, 0x00,
185 0xff, 0x81, 0x81, 0x81, 0xff, 0x00, 0x00, 0x00, 0xff, 0x81, 0x81, 0x81, 0xff, 0x00, 0x00, 0x00,
186 0xff, 0x81, 0x81, 0x81, 0xff, 0x00, 0x00, 0x00, 0xff, 0x81, 0x81, 0x81, 0xff, 0x00, 0x00, 0x00,
187 0xff, 0x81, 0x81, 0x81, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
188 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x05, 0x00, 0x03, 0x05, 0x00, 0x00, 0x00,
189 0x14, 0x3e, 0x14, 0x3e, 0x14, 0x00, 0x00, 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12, 0x00, 0x00, 0x00,
190 0x63, 0x10, 0x08, 0x04, 0x63, 0x00, 0x00, 0x00, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x00, 0x00,
191 0x00, 0x00, 0x05, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00, 0x00, 0x00,
192 0x41, 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x18, 0x7e, 0x18, 0x24, 0x00, 0x00, 0x00,
193 0x08, 0x08, 0x3e, 0x08, 0x08, 0x00, 0x00, 0x00, 0xa0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
194 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
195 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x3e, 0x51, 0x49, 0x45, 0x3e, 0x00, 0x00, 0x00,
196 0x00, 0x42, 0x7f, 0x40, 0x00, 0x00, 0x00, 0x00, 0x62, 0x51, 0x51, 0x49, 0x46, 0x00, 0x00, 0x00,
197 0x22, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00, 0x00, 0x18, 0x14, 0x12, 0x7f, 0x10, 0x00, 0x00, 0x00,
198 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 0x00, 0x00, 0x3c, 0x4a, 0x49, 0x49, 0x30, 0x00, 0x00, 0x00,
199 0x01, 0x71, 0x09, 0x05, 0x03, 0x00, 0x00, 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00, 0x00,
200 0x06, 0x49, 0x49, 0x29, 0x1e, 0x00, 0x00, 0x00, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
201 0xb6, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x00, 0x00,
202 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00,
203 0x02, 0x01, 0x51, 0x09, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x41, 0x5d, 0x51, 0x4e, 0x00, 0x00, 0x00,
204 0x7c, 0x12, 0x11, 0x12, 0x7c, 0x00, 0x00, 0x00, 0x7f, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00, 0x00,
205 0x1c, 0x22, 0x41, 0x41, 0x22, 0x00, 0x00, 0x00, 0x7f, 0x41, 0x41, 0x22, 0x1c, 0x00, 0x00, 0x00,
206 0x7f, 0x49, 0x49, 0x49, 0x41, 0x00, 0x00, 0x00, 0x7f, 0x09, 0x09, 0x09, 0x01, 0x00, 0x00, 0x00,
207 0x3e, 0x41, 0x41, 0x51, 0x32, 0x00, 0x00, 0x00, 0x7f, 0x08, 0x08, 0x08, 0x7f, 0x00, 0x00, 0x00,
208 0x41, 0x41, 0x7f, 0x41, 0x41, 0x00, 0x00, 0x00, 0x20, 0x40, 0x40, 0x40, 0x3f, 0x00, 0x00, 0x00,
209 0x7f, 0x08, 0x14, 0x22, 0x41, 0x00, 0x00, 0x00, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00,
210 0x7f, 0x02, 0x0c, 0x02, 0x7f, 0x00, 0x00, 0x00, 0x7f, 0x04, 0x08, 0x10, 0x7f, 0x00, 0x00, 0x00,
211 0x3e, 0x41, 0x41, 0x41, 0x3e, 0x00, 0x00, 0x00, 0x7f, 0x09, 0x09, 0x09, 0x06, 0x00, 0x00, 0x00,
212 0x3e, 0x41, 0x51, 0x21, 0x5e, 0x00, 0x00, 0x00, 0x7f, 0x09, 0x19, 0x29, 0x46, 0x00, 0x00, 0x00,
213 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, 0x00, 0x00, 0x01, 0x01, 0x7f, 0x01, 0x01, 0x00, 0x00, 0x00,
214 0x3f, 0x40, 0x40, 0x40, 0x3f, 0x00, 0x00, 0x00, 0x07, 0x18, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00,
215 0x3f, 0x40, 0x38, 0x40, 0x3f, 0x00, 0x00, 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, 0x00, 0x00,
216 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, 0x00, 0x00, 0x61, 0x51, 0x49, 0x45, 0x43, 0x00, 0x00, 0x00,
217 0x7f, 0x7f, 0x41, 0x41, 0x41, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x60, 0x00, 0x00, 0x00,
218 0x41, 0x41, 0x41, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x10, 0x08, 0x04, 0x08, 0x10, 0x00, 0x00, 0x00,
219 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x00, 0x00, 0x00, 0x00,
220 0x20, 0x54, 0x54, 0x54, 0x78, 0x00, 0x00, 0x00, 0x7f, 0x44, 0x44, 0x44, 0x38, 0x00, 0x00, 0x00,
221 0x38, 0x44, 0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x38, 0x44, 0x44, 0x44, 0x7f, 0x00, 0x00, 0x00,
222 0x38, 0x54, 0x54, 0x54, 0x58, 0x00, 0x00, 0x00, 0x08, 0x7e, 0x09, 0x09, 0x02, 0x00, 0x00, 0x00,
223 0x18, 0xa4, 0xa4, 0xa4, 0x78, 0x00, 0x00, 0x00, 0x7f, 0x04, 0x04, 0x04, 0x78, 0x00, 0x00, 0x00,
224 0x00, 0x44, 0x7d, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x84, 0x7d, 0x00, 0x00, 0x00, 0x00,
225 0x6f, 0x10, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x00, 0x41, 0x7f, 0x40, 0x00, 0x00, 0x00, 0x00,
226 0x7c, 0x04, 0x38, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0x04, 0x04, 0x04, 0x78, 0x00, 0x00, 0x00,
227 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, 0x00, 0x00, 0xfc, 0x24, 0x24, 0x24, 0x18, 0x00, 0x00, 0x00,
228 0x18, 0x24, 0x24, 0x24, 0xfc, 0x00, 0x00, 0x00, 0x7c, 0x08, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00,
229 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, 0x00, 0x00, 0x04, 0x3f, 0x44, 0x44, 0x20, 0x00, 0x00, 0x00,
230 0x3c, 0x40, 0x40, 0x20, 0x7c, 0x00, 0x00, 0x00, 0x1c, 0x20, 0x40, 0x20, 0x1c, 0x00, 0x00, 0x00,
231 0x7c, 0x40, 0x30, 0x40, 0x7c, 0x00, 0x00, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00,
232 0x1c, 0xa0, 0xa0, 0xa0, 0x7c, 0x00, 0x00, 0x00, 0x44, 0x64, 0x54, 0x4c, 0x44, 0x00, 0x00, 0x00,
233 0x08, 0x3e, 0x77, 0x41, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
234 0x41, 0x41, 0x77, 0x3e, 0x08, 0x00, 0x00, 0x00, 0x04, 0x02, 0x06, 0x04, 0x02, 0x00, 0x00, 0x00,
235 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
238 volatile screen badgeScreen;
240 volatile int screenLock = 0;
243 int32_t screen_setcommand( int32_t cmd, int32_t argptr);
247 int32_t screen_SHIFTOUT(int32_t Dpin, int32_t Cpin, int32_t CSpin, int32_t Bits, int32_t Value)
249 int32_t _parm__0012[5];
250 _parm__0012[0] = Dpin;
251 _parm__0012[1] = Cpin;
252 _parm__0012[2] = CSpin;
253 _parm__0012[3] = Bits;
254 _parm__0012[4] = Value;
255 screen_setcommand(1, (int32_t)(&_parm__0012[0]));
259 int32_t screen_WRITEBUFF(int32_t Dpin, int32_t Cpin, int32_t CSpin, int32_t Bits, int32_t Addr)
261 int32_t _parm__0013[5];
262 _parm__0013[0] = Dpin;
263 _parm__0013[1] = Cpin;
264 _parm__0013[2] = CSpin;
265 _parm__0013[3] = Bits;
266 _parm__0013[4] = Addr;
267 screen_setcommand(2, (int32_t)(&_parm__0013[0]));
271 int32_t screen_start(
void)
278 okay = (
self->cog =
cognew((int32_t)(&(*(int32_t *)&oleddat[1024])), (int32_t)(&self->command)) + 1);
284 int32_t screen_setcommand(int32_t cmd, int32_t argptr)
289 self->command = (cmd << 16) + argptr;
290 while (self->command)
299 int32_t screen_init(int32_t ChipSelect, int32_t DataCommand, int32_t TheData, int32_t TheClock, int32_t Reset, int32_t VCC_state, int32_t Type)
304 self->CS = ChipSelect;
305 self->DC = DataCommand;
306 self->DATA = TheData;
307 self->CLK = TheClock;
309 self->vccstate = VCC_state;
310 self->displayType = Type;
311 if (self->displayType == TYPE_128X32) {
312 self->displayWidth = SSD1306_LCDWIDTH;
313 self->displayHeight = SSD1306_LCDHEIGHT32;
315 self->displayWidth = SSD1306_LCDWIDTH;
316 self->displayHeight = SSD1306_LCDHEIGHT64;
319 screen_HIGH(self->RST);
323 screen_LOW(self->RST);
327 screen_HIGH(self->RST);
328 if (self->displayType == TYPE_128X32) {
332 screen_ssd1306_Command(SSD1306_DISPLAYOFF);
333 screen_ssd1306_Command(SSD1306_SETDISPLAYCLOCKDIV);
334 screen_ssd1306_Command(128);
335 screen_ssd1306_Command(SSD1306_SETMULTIPLEX);
336 screen_ssd1306_Command(31);
337 screen_ssd1306_Command(SSD1306_SETDISPLAYOFFSET);
338 screen_ssd1306_Command(0);
339 screen_ssd1306_Command((SSD1306_SETSTARTLINE | 0x0));
340 screen_ssd1306_Command(SSD1306_CHARGEPUMP);
341 if (self->vccstate == SSD1306_EXTERNALVCC) {
342 screen_ssd1306_Command(16);
344 screen_ssd1306_Command(20);
346 screen_ssd1306_Command(SSD1306_MEMORYMODE);
347 screen_ssd1306_Command(0);
348 screen_ssd1306_Command((SSD1306_SEGREMAP | 0x1));
349 screen_ssd1306_Command(SSD1306_COMSCANDEC);
350 screen_ssd1306_Command(SSD1306_SETCOMPINS);
351 screen_ssd1306_Command(2);
352 screen_ssd1306_Command(SSD1306_SETCONTRAST);
353 screen_ssd1306_Command(143);
354 screen_ssd1306_Command(SSD1306_SETPRECHARGE);
355 if (self->vccstate == SSD1306_EXTERNALVCC) {
356 screen_ssd1306_Command(34);
359 screen_ssd1306_Command(241);
361 screen_ssd1306_Command(SSD1306_SETVCOMDETECT);
362 screen_ssd1306_Command(64);
363 screen_ssd1306_Command(SSD1306_DISPLAYALLON_RESUME);
364 screen_ssd1306_Command(SSD1306_NORMALDISPLAY);
366 screen_ssd1306_Command(SSD1306_DISPLAYON);
371 screen_ssd1306_Command(SSD1306_DISPLAYOFF);
373 screen_ssd1306_Command(SSD1306_SETLOWCOLUMN);
375 screen_ssd1306_Command(SSD1306_SETHIGHCOLUMN);
377 screen_ssd1306_Command(SSD1306_SETSTARTLINE);
378 screen_ssd1306_Command(SSD1306_SETCONTRAST);
379 if (self->vccstate == SSD1306_EXTERNALVCC) {
380 screen_ssd1306_Command(159);
382 screen_ssd1306_Command(207);
384 screen_ssd1306_Command(161);
385 screen_ssd1306_Command(SSD1306_NORMALDISPLAY);
386 screen_ssd1306_Command(SSD1306_DISPLAYALLON_RESUME);
387 screen_ssd1306_Command(SSD1306_SETMULTIPLEX);
388 screen_ssd1306_Command(63);
389 screen_ssd1306_Command(SSD1306_SETDISPLAYOFFSET);
391 screen_ssd1306_Command(0);
392 screen_ssd1306_Command(SSD1306_SETDISPLAYCLOCKDIV);
393 screen_ssd1306_Command(128);
394 screen_ssd1306_Command(SSD1306_SETPRECHARGE);
395 if (self->vccstate == SSD1306_EXTERNALVCC) {
396 screen_ssd1306_Command(34);
398 screen_ssd1306_Command(241);
400 screen_ssd1306_Command(SSD1306_SETVCOMDETECT);
401 screen_ssd1306_Command(64);
402 screen_ssd1306_Command(SSD1306_SETCOMPINS);
403 screen_ssd1306_Command(18);
404 screen_ssd1306_Command(SSD1306_MEMORYMODE);
405 screen_ssd1306_Command(0);
406 screen_ssd1306_Command((SSD1306_SEGREMAP | 0x1));
407 screen_ssd1306_Command(SSD1306_COMSCANDEC);
408 screen_ssd1306_Command(SSD1306_CHARGEPUMP);
409 if (self->vccstate == SSD1306_EXTERNALVCC) {
410 screen_ssd1306_Command(16);
412 screen_ssd1306_Command(20);
415 screen_ssd1306_Command(SSD1306_DISPLAYON);
419 self->charSize =
LARGE;
429 int32_t _local__0014[2] = {0, 0};
432 screen_ssd1306_Command(SSD1306_SETLOWCOLUMN);
434 screen_ssd1306_Command(SSD1306_SETHIGHCOLUMN);
436 screen_ssd1306_Command(SSD1306_SETSTARTLINE);
437 screen_HIGH(self->DC);
438 screen_WRITEBUFF(self->DATA, self->CLK, self->CS, (int32_t)(&_local__0014[1]), (int32_t)(&self->buffer[0]));
440 screen_LOW(self->DC);
445 int32_t screen_HIGH(int32_t Pin)
448 DIRA = ((
DIRA & (~(1 << Pin))) | (1 << Pin));
449 OUTA = ((
OUTA & (~(1 << Pin))) | (1 << Pin));
453 int32_t screen_LOW(int32_t Pin)
456 DIRA = ((
DIRA & (~(1 << Pin))) | (1 << Pin));
461 int32_t screen_ssd1306_Command(int32_t thecmd)
463 int32_t _local__0016[1];
466 screen_LOW(self->DC);
467 screen_SHIFTOUT(self->DATA, self->CLK, self->CS, (int32_t)(&_local__0016[0]), thecmd);
471 int32_t screen_ssd1306_Data(int32_t thedata)
473 int32_t _local__0017[1];
476 screen_HIGH(self->DC);
477 screen_SHIFTOUT(self->DATA, self->CLK, self->CS, (int32_t)(&_local__0017[0]), thedata);