-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.c
560 lines (511 loc) · 46.6 KB
/
main.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
#define PART_TM4C123GH6PM 1
#include <stdint.h>
#include <stdbool.h>
/*
#include "../inc/hw_ints.h"
#include "../inc/hw_i2c.h"
#include "../inc/hw_memmap.h"
#include "../inc/hw_types.h"
#include "../inc/hw_gpio.h"
#include "../driverlib/interrupt.h"
#include "../driverlib/i2c.h"
#include "../driverlib/sysctl.h"
#include "../driverlib/gpio.h"
#include "../driverlib/pin_map.h"
#include "../driverlib/uart.h"
#include "../utils/uartstdio.h" */
#include "images.h"
#include "../inc/tm4c123gh6pm.h"
#include "PLL.h"
#include "ST7735.h"
#define SLAVE_ADDRESS 0x3C
int32_t pad = 0;
volatile char result = 'V';
int32_t pad2 = 0;
volatile char recv_buff[256] = {0};
volatile int32_t counter = 0;
// Three Pins to represent six sectors and turning status
#define SECTOR_ONE 0x01 //0b0001
#define SECTOR_TWO 0x02 //0b0010
#define SECTOR_THREE 0x03//0b0011
#define SECTOR_FOUR 0x04 //0b0100
#define SECTOR_FIVE 0x05 //0b0101
#define SECTOR_SIX 0x06 //0b0110
#define TURNING 0x07 //0b0111
#define TURNING_P4 0x08 //0b1000
const unsigned short bay[] = {
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xF7DF, 0xE7BE, 0xF7DF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEFFF, 0xC77D, 0x9EDB,
0x86BB, 0x65D8, 0xC77D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7FF, 0xDF9E, 0xC73C, 0xC73C, 0xCF3C, 0xBF3D, 0x96FB, 0x6E5A, 0x665A, 0x663A, 0x55B8,
0xAF5D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7FF, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xF7FF, 0xE7DF, 0xBF3C, 0x8659, 0x5DF7, 0x4D96, 0x3472, 0x3411, 0x6619, 0x5E9B, 0x565A, 0x667B, 0x663A, 0x4DD8, 0x8EDB, 0xEFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xDFBF, 0x767A, 0x7E5A, 0x863A, 0x9E9B, 0xBF1B, 0xC6FB, 0xCF3C, 0xC73C, 0xC75C, 0x96FB,
0x6618, 0x5DD7, 0x55B7, 0x44F4, 0x23D0, 0x4D97, 0x6EBC, 0x565A, 0x5E7B, 0x5E7A, 0x5619, 0x45F9, 0x871C, 0xE7FF, 0xF7FF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xB73D, 0x4557, 0x34D5, 0x1BD0, 0x23D0, 0x3451, 0x3C30, 0x2AAB, 0x334D, 0x6E17, 0x6E59, 0x5E39, 0x5DD7,
0x4D76, 0x2410, 0x3493, 0x669B, 0x5E5A, 0x669B, 0x669B, 0x563A, 0x563A, 0x565A, 0x5556, 0x6515, 0x7DD8, 0x8E39, 0xAF3D, 0xE7FF,
0xFFFF, 0x7E3A, 0x3D36, 0x5DF8, 0x3C52, 0x234E, 0x232E, 0x236E, 0x22AB, 0x3431, 0x3D14, 0x5597, 0x5DB7, 0x5DD8, 0x3C93, 0x23F0,
0x5E59, 0x5E5A, 0x5E5A, 0x669B, 0x5E7B, 0x5619, 0x4E19, 0x55D9, 0x4D15, 0x55B8, 0x5DF9, 0x5E3A, 0x5E3A, 0x7EBB, 0xCFDE, 0x55F9,
0x3D16, 0x5E19, 0x5E5A, 0x4DD7, 0x4596, 0x4555, 0x4576, 0x3CF4, 0x2C11, 0x2BCF, 0x3432, 0x3C93, 0x1AED, 0x5576, 0x5E5A, 0x5E3A,
0x5E5A, 0x563A, 0x55F9, 0x3D36, 0x4D97, 0x661A, 0x665A, 0x5E1A, 0x5E1A, 0x665B, 0x55D9, 0x55D9, 0xAF5D, 0x4DF9, 0x3D57, 0x4576,
0x5619, 0x45B7, 0x3D76, 0x3556, 0x3D76, 0x3D96, 0x3DB6, 0x3D55, 0x3D35, 0x1AAB, 0x224A, 0x667B, 0x561A, 0x5E5A, 0x4DD8, 0x4556,
0x4D77, 0x55D8, 0x5E3A, 0x5DF9, 0x5DD9, 0x5E1A, 0x5E3B, 0x4DFA, 0x4DB9, 0x5DF9, 0x9EFC, 0x45FA, 0x4598, 0x4536, 0x663A, 0x45B7,
0x3D97, 0x3D56, 0x3D55, 0x3535, 0x3534, 0x3535, 0x3D75, 0x4535, 0x5535, 0x4DD8, 0x4DB8, 0x3CD4, 0x3472, 0x4D97, 0x5DF9, 0x5DF9,
0x5DF9, 0x5DF9, 0x661A, 0x663B, 0x55D9, 0x4D98, 0x4DB9, 0x663A, 0x96FC, 0x4DF9, 0x45D8, 0x3D15, 0x5DF9, 0x45B7, 0x3D55, 0x3D56,
0x4597, 0x3555, 0x3515, 0x3535, 0x3535, 0x2D35, 0x3D96, 0x4576, 0x3411, 0x226B, 0x44D4, 0x55F7, 0x55B7, 0x55B8, 0x5DF9, 0x5E1A,
0x663A, 0x55D9, 0x55D9, 0x55B9, 0x4598, 0x7E9A, 0x9F3C, 0x4DFA, 0x4DFA, 0x3D36, 0x4D97, 0x4DD7, 0x3D76, 0x3D35, 0x3D35, 0x4576,
0x3D35, 0x2D14, 0x3556, 0x3535, 0x3535, 0x3D55, 0x3CB3, 0x238F, 0x3492, 0x4D55, 0x5597, 0x4D97, 0x5E19, 0x663A, 0x55D9, 0x55D9,
0x55D9, 0x55DA, 0x4DF9, 0xBF9E, 0xCF9E, 0x561A, 0x4DFA, 0x3D57, 0x34B4, 0x55F8, 0x3D76, 0x3535, 0x3535, 0x3D55, 0x4576, 0x4576,
0x3D36, 0x3515, 0x3535, 0x3535, 0x3D76, 0x3D35, 0x3452, 0x3C93, 0x4535, 0x55D8, 0x55F9, 0x5598, 0x55B9, 0x55B9, 0x55FA, 0x5E1A,
0x5D98, 0x7E5A, 0xF7FF, 0x6E9A, 0x45D8, 0x4598, 0x4DFA, 0x5E39, 0x4576, 0x3D55, 0x3555, 0x3535, 0x3515, 0x3D76, 0x4597, 0x3D36,
0x2D15, 0x3535, 0x3535, 0x3576, 0x4555, 0x3C93, 0x4535, 0x4D76, 0x4D77, 0x55B9, 0x55B9, 0x55D9, 0x5DFA, 0x5DF9, 0x3CB4, 0x865A,
0xFFFF, 0xBF7E, 0x45D8, 0x4E1A, 0x563A, 0x4598, 0x3D36, 0x4576, 0x3D55, 0x3555, 0x3D35, 0x3D35, 0x3D36, 0x4577, 0x3556, 0x3515,
0x3536, 0x2D35, 0x3D76, 0x4D35, 0x3493, 0x3493, 0x4D77, 0x5DD9, 0x55D9, 0x55D9, 0x55DA, 0x4DB7, 0x9EDC, 0xFFFF, 0xFFFF, 0xFFFF,
0x7E9A, 0x3D77, 0x4598, 0x4577, 0x34F5, 0x2CB4, 0x3D35, 0x3D56, 0x3555, 0x3535, 0x3515, 0x3515, 0x4597, 0x3D77, 0x3D77, 0x3536,
0x3D76, 0x4536, 0x2411, 0x34B3, 0x4D76, 0x55B8, 0x5DB9, 0x55B8, 0x65F9, 0xB75D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xCF9E, 0x4577,
0x2CD5, 0x2CB4, 0x2473, 0x1BB0, 0x136E, 0x1B8F, 0x23F0, 0x2BF0, 0x23D0, 0x238F, 0x1AED, 0x238F, 0x3CD5, 0x3D36, 0x3D36, 0x4577,
0x2C72, 0x34B3, 0x4556, 0x4DB8, 0x55D8, 0x7639, 0xCFBE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x9EDB, 0x34D5, 0x34D5,
0x4DD8, 0x55F9, 0x4D77, 0x4537, 0x4D77, 0x5598, 0x55B8, 0x5577, 0x4CD5, 0x5D57, 0x5DB8, 0x5DD8, 0x3D36, 0x34F5, 0x3CD4, 0x3452,
0x34D4, 0x3493, 0x6576, 0xD7FF, 0xE7FF, 0xEFFF, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEFFF, 0x7639, 0x2CD4, 0x3493, 0x665A,
0x6EBC, 0x669C, 0x5E5B, 0x55F9, 0x4DF9, 0x561A, 0x5E5B, 0x5E5B, 0x5DF9, 0x5DF8, 0x5E19, 0x4D76, 0x2B8F, 0x09A9, 0x12AC, 0x12AB,
0x2B8E, 0x6DD6, 0xD7FF, 0xE7FF, 0xEFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE7FF, 0x86BB, 0x4535, 0x34B3, 0x55D8, 0x55F9,
0x5E1A, 0x665B, 0x665B, 0x55FA, 0x4DB8, 0x55D9, 0x5DFA, 0x5E19, 0x5DF9, 0x663A, 0x5D77, 0x3C12, 0x5536, 0x33F0, 0x23D0, 0x3CF4,
0x8E7A, 0xEFFF, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEFFF, 0xC75D, 0x8638, 0x4D76, 0x4D76, 0x4535, 0x55D8, 0x4DB8, 0x55D9,
0x563A, 0x5E7B, 0x5E5B, 0x5E3B, 0x663B, 0x5E3A, 0x5E1A, 0x5E1A, 0x663A, 0x6E5B, 0x5E19, 0x665A, 0x3C94, 0x3CB4, 0x5DF9, 0xC77D,
0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DF, 0x9679, 0x3CF3, 0x3CF3, 0x3CF3, 0x4534, 0x4555, 0x5597, 0x5DF8, 0x55D8, 0x4DD8, 0x4DD9,
0x5E5B, 0x5E3A, 0x5E3A, 0x665B, 0x665B, 0x5E1A, 0x663A, 0x661A, 0x6619, 0x5E19, 0x5DF8, 0x8EBB, 0xD7FF, 0xEFFF, 0xF7FF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xD79D, 0x6DD6, 0x5534, 0x6596, 0x4D54, 0x4534, 0x5D56, 0x5D96, 0x55F7, 0x4DD8, 0x55D8, 0x55F9, 0x5619,
0x55D9, 0x55F9, 0x5E19, 0x55D8, 0x5DF9, 0x663A, 0x6E5A, 0x665A, 0x6E5A, 0x7EBB, 0xB77D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xF7FF, 0xE7BE, 0xEFDF, 0xDFBE, 0xAEFB, 0x6576, 0x4D14, 0x3CF4, 0x5597, 0x5DF9, 0x55F9, 0x55F9, 0x5DF9, 0x5DD8,
0x55D8, 0x55D8, 0x4DD7, 0x4DB7, 0x4D97, 0x4DD7, 0x867A, 0xBF3D, 0xD79D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE7BE, 0xCF3D, 0xAEFB, 0x65D7, 0x4555, 0x4D96, 0x55D7, 0x5DD8, 0x5DF8, 0x65F8, 0x865A,
0xA6FC, 0xA6FC, 0x9EDB, 0xAF1C, 0xE7DF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE7DF, 0x9E9A, 0x4D35, 0x4514, 0xAEFC, 0xCF7E, 0xDF9E, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE79E, 0xAE9A, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
const unsigned short cumin[] = {
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEFBF, 0xC6DC, 0xCF5E, 0xEFDF, 0xFFFF, 0xD75D, 0xDF9E, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DF, 0xF7BF, 0x95FA, 0x53D4, 0x4BB2, 0x7D57, 0x8515, 0x7D79, 0x8D77, 0xA639, 0xB6DC, 0xEFBE,
0xEF9E, 0xBEDD, 0xC73E, 0xF7DF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xCF1D, 0x9DD9, 0x7D58, 0x74D6, 0x5CB6, 0x64F8, 0x5455, 0x4392, 0x3B10, 0x5435, 0x3330, 0x3B91, 0x54F8, 0x8E3B, 0x8D97, 0x64B6,
0x7599, 0x8599, 0x9E5B, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEFDF, 0x8557, 0x43B2, 0x43B2,
0x5434, 0x4BF3, 0x6D7A, 0x4330, 0x4330, 0x6D18, 0x6455, 0x3ACE, 0x220B, 0x4B71, 0x4BF4, 0x6D18, 0x4BF3, 0x32F0, 0x64D6, 0x7579,
0x6558, 0xDFBF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xEFDF, 0xBE7B, 0x8D99, 0x5CF7, 0x3B31, 0x328D, 0x324C, 0x32AE,
0x5C96, 0x326D, 0x3AEF, 0x32CE, 0x4BB2, 0x5C13, 0x4B92, 0x53F3, 0x2A6D, 0x2A6D, 0x3AEF, 0x4B91, 0x7558, 0x5454, 0x5454, 0x95FA,
0xC6FD, 0xE7BF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xAEDC, 0x8DFA, 0x6CF7, 0x5C96, 0x4330, 0x4372, 0x5434, 0x3B10, 0x3B30, 0x53F3,
0x5413, 0x29EA, 0x32AD, 0x4BF3, 0x64B6, 0x6D17, 0x5C75, 0x64B6, 0x4350, 0x3B2F, 0x4C34, 0x5434, 0x5413, 0x330F, 0x5CD6, 0xB6FD,
0xFFFF, 0xFFFF, 0xFFDF, 0xC6DC, 0x95FA, 0x7537, 0x4BD3, 0x4BB3, 0x326E, 0x4BB3, 0x5CD7, 0x4BF4, 0x4351, 0x32CF, 0x5475, 0x2A6C,
0x4B4F, 0x3AAE, 0x5455, 0x5475, 0x5C54, 0x53D3, 0x4371, 0x4B91, 0x3330, 0x5455, 0x5C75, 0x5C34, 0x43B2, 0xAE9B, 0xCEFC, 0xFFFF,
0xF79E, 0xC6DC, 0x9EDD, 0x54B7, 0x4393, 0x4BB3, 0x3B10, 0x4350, 0x7538, 0x4372, 0x3B51, 0x430F, 0x4BF3, 0x2AAE, 0x4350, 0x324B,
0x3B71, 0x222C, 0x322B, 0x21A8, 0x32CD, 0x4350, 0x2A6D, 0x4414, 0x4393, 0x5C76, 0x3331, 0x4392, 0x5C54, 0xB69B, 0xE7DF, 0xBEFD,
0x64B5, 0x3B31, 0x4C15, 0x3311, 0x3330, 0x4BD2, 0x4B71, 0x5414, 0x4BB2, 0x3AEF, 0x326C, 0x4B50, 0x53F2, 0x43B2, 0x4C13, 0x32EF,
0x328D, 0x4B50, 0x5414, 0x43D3, 0x4B72, 0x5CB6, 0x3ACF, 0x4B50, 0x5C75, 0x32CF, 0x6475, 0x8DFA, 0x7D99, 0x5433, 0x43B2, 0x32CF,
0x4310, 0x4BF4, 0x3331, 0x4BD3, 0x2A8E, 0x3331, 0x4BD2, 0x4330, 0x4371, 0x4350, 0x5C54, 0x5C95, 0x5414, 0x3AF0, 0x2A4C, 0x21AA,
0x53F3, 0x53D2, 0x21CA, 0x4BF3, 0x32AE, 0x4350, 0x43B3, 0x43B4, 0x32CF, 0x53F3, 0x8599, 0x3B30, 0x5C96, 0x6519, 0x4351, 0x43B3,
0x3B93, 0x4372, 0x5C54, 0x4391, 0x4BB3, 0x2A6C, 0x5C55, 0x4392, 0x3B51, 0x4BF3, 0x43B2, 0x3B30, 0x5C96, 0x32AE, 0x4371, 0x74F8,
0x328D, 0x4BD3, 0x4351, 0x32AE, 0x2AAF, 0x5435, 0x2AF0, 0x43D3, 0xC71D, 0x5455, 0x3BB3, 0x43B3, 0x5435, 0x6D38, 0x4BF3, 0x4392,
0x4BF3, 0x4B91, 0x4371, 0x53D1, 0x3B31, 0x29EA, 0x4BD2, 0x5475, 0x5495, 0x4B92, 0x32F0, 0x430E, 0x2A4C, 0x4B31, 0x6474, 0x3B10,
0x53D3, 0x53F3, 0x4B51, 0x228E, 0x4C13, 0x5454, 0x7D58, 0x2B11, 0x5CB6, 0x4B92, 0x0928, 0x64B5, 0x85FA, 0x2A6C, 0x3ACF, 0x5C75,
0x4310, 0x330F, 0x3B51, 0x2A4C, 0x21CA, 0x4392, 0x4371, 0x5454, 0x5C13, 0x29EA, 0x4BD2, 0x3B51, 0x4BD3, 0x4C14, 0x5C76, 0x64D6,
0x4B92, 0x32F0, 0x3B50, 0x5434, 0x53F3, 0x3B52, 0x328D, 0x2AF0, 0x4392, 0x5C96, 0x5454, 0x5413, 0x6495, 0x4372, 0x328E, 0x43D2,
0x64D6, 0x6434, 0x3AAD, 0x53F3, 0x5414, 0x3AED, 0x5C33, 0x6455, 0x5434, 0x6518, 0x5C96, 0x5CD7, 0x6538, 0x64B6, 0x21EA, 0x3B30,
0x5496, 0x43D3, 0x9DD9, 0x4415, 0x3B72, 0x3BB3, 0x54B7, 0x4C15, 0x3BB3, 0x64F7, 0x6CF7, 0x4371, 0x2A6C, 0x5C75, 0x6C95, 0x6434,
0x64B7, 0x5C96, 0x4C13, 0x4BB1, 0x6D18, 0x4392, 0x4351, 0x5414, 0x4BF3, 0x7DBA, 0x5496, 0x5476, 0x32AE, 0x2A8E, 0x5CB7, 0x5C96,
0xA65A, 0x4414, 0x43F4, 0x3B51, 0x3351, 0x5C75, 0x64F7, 0x4BD2, 0x4B91, 0x4BB2, 0x4351, 0x5C75, 0x324C, 0x4B50, 0x3B30, 0x43D3,
0x3B30, 0x430F, 0x4351, 0x3B10, 0x3B72, 0x5435, 0x3B10, 0x43B3, 0x43B3, 0x43B3, 0x4BD3, 0x4392, 0x4C36, 0x4BF4, 0x4C74, 0x2AAF,
0x53F3, 0x4BD3, 0x7D9A, 0x64D7, 0x75BA, 0x6538, 0x43D3, 0x5C96, 0x4C35, 0x3B31, 0x4BF3, 0x6C75, 0x3AAE, 0x53F4, 0x4350, 0x4B71,
0x3B31, 0x43F4, 0x4C35, 0x4371, 0x2AEF, 0x43D4, 0x4C15, 0x3B31, 0x2AAE, 0x6518, 0x4C35, 0x3B71, 0x5475, 0x3351, 0x3B52, 0x5455,
0x5C95, 0x43D3, 0x6D38, 0x2ACF, 0x4351, 0x4BD4, 0x3311, 0x5415, 0x4BD3, 0x5C34, 0x5434, 0x3B51, 0x4330, 0x4BF3, 0x4C35, 0x54D8,
0x64B6, 0x2A0B, 0x2A8D, 0x43D3, 0x4C35, 0x5475, 0x3BB2, 0x3B93, 0x5496, 0x5454, 0x9598, 0x8558, 0x5434, 0x43D3, 0x4BF3, 0x6D59,
0x5C96, 0x43B2, 0x4BD4, 0x4C14, 0x32CF, 0x53D3, 0x5C13, 0x4B71, 0x32CF, 0x2A4D, 0x4310, 0x5434, 0x4331, 0x2A8E, 0x5413, 0x220C,
0x4C14, 0x5CB6, 0x6518, 0x43F3, 0x3372, 0x54B7, 0x8E3B, 0xEFBF, 0xFFFF, 0xFFFF, 0x8D77, 0x5CD8, 0x4C35, 0x5C96, 0x5476, 0x3B51,
0x5414, 0x5C96, 0x74F7, 0x32AE, 0x5433, 0x7558, 0x3AF0, 0x4330, 0x4391, 0x43B1, 0x3AEF, 0x5414, 0x32AF, 0x4372, 0x54B6, 0x43B3,
0x5CB7, 0x6D18, 0x4BD4, 0x4414, 0x85DA, 0xB63A, 0xFFFF, 0xFFFF, 0xA67B, 0x6D18, 0x5497, 0x5C76, 0x4C35, 0x4BF4, 0x4351, 0x3B71,
0x6D18, 0x5434, 0x965B, 0x4B91, 0x4371, 0x5434, 0x224C, 0x2A4C, 0x6CD6, 0x5CB6, 0x224D, 0x5414, 0x5455, 0x4BB2, 0x3B51, 0x5414,
0x43B3, 0x4BF4, 0xA61B, 0xD75D, 0xFFFF, 0xFFFF, 0xE75E, 0xB6FD, 0x6D79, 0x6D18, 0x4C15, 0x4C15, 0x43D3, 0x4C34, 0x5C96, 0x5414,
0x64B6, 0x4BF3, 0x5C55, 0x5C56, 0x6CF7, 0x64F7, 0x7D9A, 0x3B51, 0x5414, 0x5C95, 0x5455, 0x4BD3, 0x4372, 0x32AE, 0x43B3, 0x7538,
0xEFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8DB8, 0x7578, 0x7D9A, 0x43F5, 0x5475, 0x6D59, 0x4C55, 0x7559, 0x5435, 0x4BF5, 0x43B2, 0x6D19,
0x5456, 0x3330, 0x6D39, 0x5CF8, 0x43B4, 0x4BD2, 0x6D38, 0x2ACF, 0x4414, 0x4BD4, 0x5434, 0x32EF, 0x8D99, 0x6495, 0xB67B, 0xFFFF,
0xFFFF, 0xFFFF, 0xD79F, 0xA63A, 0xBE7B, 0x8578, 0x64D6, 0x64B6, 0x6D18, 0x64F8, 0x5476, 0x6519, 0x64F8, 0x5CF7, 0x5496, 0x43B3,
0x54B7, 0x5497, 0x64F8, 0x5455, 0x5C56, 0x6518, 0x5CD7, 0x43D4, 0x64B5, 0x7558, 0x6D17, 0x9E5A, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xF7FF, 0xBEDC, 0xB6DC, 0x6CF6, 0x4435, 0x5CF9, 0x5CF8, 0x6D5A, 0x4C76, 0x4C55, 0x5476, 0x4435, 0x4C35,
0x4C34, 0x5CD7, 0x5CB8, 0x5CF9, 0x4C76, 0xA65B, 0xEFBE, 0xCF1D, 0xB67B, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DF, 0xAE9C, 0x7558, 0x6D39, 0x6539, 0x757A, 0x6D39, 0x54B7, 0x4C15, 0x7518, 0x64B7, 0x75BB,
0x6538, 0x7D78, 0xBEDC, 0xEFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEFDF, 0xC73E, 0x6539, 0x5D18, 0xB6DD, 0xCF3D, 0xDF9E, 0xEFDF, 0xEFBF, 0xE77E, 0xD75D, 0xF7DF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xCF3D, 0xA63B, 0xDF5D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
const unsigned short garlic[] = {
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DF, 0xEF9E, 0xF7DF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xDF3D, 0xBE9B, 0xB65B, 0xBE7B, 0xBE9B, 0xC6BC, 0xDF5E, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7FF,
0xF7FF, 0xF7DF, 0xF7DF, 0xF7DF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE79E, 0xCEFC, 0xD6FC, 0xE75D, 0xF7DF,
0xFFFF, 0xDF5E, 0x9598, 0x7D37, 0x7D18, 0x74B6, 0x6C96, 0x7D17, 0xA5FA, 0xDF5E, 0xE7DF, 0xC73D, 0xAEDD, 0x8E5C, 0x75FB, 0x7E1C,
0x7E1B, 0x8E7D, 0xA6BD, 0xB73E, 0xD7BF, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xD73D, 0xA61A, 0xA5D9, 0xAE19, 0xC6BB, 0xEFDE, 0xBEBB,
0x8598, 0x74F7, 0x4393, 0x3B31, 0x5C34, 0x7517, 0x9E5C, 0x9E9D, 0x6D9B, 0x5D5B, 0x5519, 0x44B8, 0x3C57, 0x3C16, 0x4478, 0x3417,
0x44B9, 0x553A, 0x6E1C, 0xAF1E, 0xEFDF, 0xFFFF, 0xFFFF, 0xD71C, 0x95B9, 0x7D17, 0x74F6, 0x8D57, 0xA5F9, 0xAE3A, 0x8599, 0x4BF4,
0x3372, 0x6CD7, 0x9DFA, 0xAE9C, 0x75BA, 0x44B9, 0x3C58, 0x4417, 0x5478, 0x4C98, 0x4C98, 0x4C57, 0x4C37, 0x4C98, 0x4CF9, 0x551A,
0x4D1A, 0x559C, 0x96BE, 0xE7BF, 0xFFFF, 0xD73D, 0x95B8, 0x7517, 0x6496, 0x5C55, 0x53F4, 0x8D99, 0x8DD9, 0x64B6, 0x9DFA, 0xBEBC,
0xCF3E, 0x9E7C, 0x4478, 0x44BA, 0x54F9, 0x54B8, 0x4C57, 0x4436, 0x54F9, 0x4436, 0x33B5, 0x4478, 0x44B9, 0x5D9B, 0x6DFC, 0x555A,
0x5DDB, 0x9EFE, 0xFFFF, 0xE79E, 0xA5FA, 0x7518, 0x4C15, 0x3352, 0x1A70, 0x8539, 0xB6BC, 0xC6DC, 0xDF7F, 0xD75E, 0xBF1E, 0x5D3A,
0x4D7C, 0x4D3B, 0x5D7B, 0x5519, 0x4C78, 0x4CB8, 0x4C97, 0x4C77, 0x5498, 0x4457, 0x4CB9, 0x5D9B, 0x65FC, 0x65BC, 0x5DBB, 0x765D,
0xFFFF, 0xF7DF, 0x8DB9, 0x4C75, 0x54B7, 0x4C77, 0x22F2, 0x5C55, 0xE7BF, 0xE7BF, 0xCF3E, 0xAEDE, 0x5D3A, 0x555B, 0x65FC, 0x6DDB,
0x657B, 0x54F9, 0x4CD9, 0x4477, 0x4436, 0x3BF5, 0x4436, 0x4C98, 0x4CF9, 0x65DC, 0x65DC, 0x659B, 0x65BB, 0x6E1D, 0xFFFF, 0x9DFA,
0x4C15, 0x6D18, 0x7D79, 0x85BA, 0x6D5A, 0x4416, 0xB6DC, 0xBF3E, 0x85FD, 0x4CB9, 0x44FA, 0x661D, 0x761D, 0x65DB, 0x659B, 0x5D5A,
0x4476, 0x54F9, 0x4C98, 0x4457, 0x4457, 0x54D9, 0x5D9B, 0x5D9B, 0x65BB, 0x6DBC, 0x6DFC, 0x6E3D, 0xEFBF, 0x6D38, 0xA65D, 0xBEDD,
0x9E1B, 0x85DB, 0x7DDB, 0x54F9, 0x43F5, 0x5CD8, 0x2314, 0x1AB3, 0x3C79, 0x557C, 0x5DDC, 0x5DBB, 0x6E1D, 0x6DDC, 0x6539, 0x4CB7,
0x54B8, 0x5D1A, 0x5D1A, 0x4CD9, 0x4478, 0x551A, 0x65BC, 0x761D, 0x7E3D, 0x7E9E, 0xEF9E, 0xAE9C, 0xCF5F, 0xDF9F, 0xC75E, 0x85FB,
0x6D7B, 0x653A, 0x3BD6, 0x3373, 0x1A91, 0x0A30, 0x1AD2, 0x44B9, 0x5DBC, 0x65FC, 0x65DC, 0x763D, 0x655A, 0x54F8, 0x4457, 0x54B8,
0x4CB8, 0x4CB8, 0x5539, 0x763D, 0x7E7D, 0x7E7D, 0x869E, 0x7E9D, 0xF7DE, 0xDF5E, 0xC6FD, 0xD77F, 0xE7BF, 0xAEBE, 0x5D1A, 0x4CB9,
0x3BF6, 0x4435, 0x2BB5, 0x2375, 0x1291, 0x33F7, 0x65DD, 0x6E1C, 0x6E1C, 0x869D, 0x7E3C, 0x5D5A, 0x4CD8, 0x4478, 0x657B, 0x6DDC,
0x869E, 0x867D, 0x869D, 0x96DE, 0x8EBE, 0x8EBE, 0xFFFF, 0xFFFF, 0xEF9E, 0xCF3E, 0xC73F, 0xB6BE, 0x6D1A, 0x5477, 0x4C16, 0x43B4,
0x2313, 0x1AD3, 0x09EF, 0x120F, 0x551B, 0x86BE, 0x8EDE, 0x96DE, 0x761C, 0x6DFC, 0x5D9B, 0x75DC, 0x7E5E, 0x763D, 0x7E5D, 0x8EBE,
0x96DD, 0x9EFE, 0x8EDE, 0xAF3F, 0xFFFF, 0xFFFF, 0xFFFF, 0xE77E, 0x9E9D, 0x967E, 0x9E1C, 0x8519, 0x4394, 0x3312, 0x2312, 0x1AF3,
0x2B33, 0x19EE, 0x120F, 0x65BC, 0x971E, 0x96DE, 0x7E7D, 0x65FB, 0x6DFC, 0x7E5D, 0x65DB, 0x867D, 0x96FE, 0xA71E, 0xAF3F, 0x8EDE,
0xAF3E, 0xEFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xC71E, 0x85DB, 0x7D39, 0x5457, 0x1AD2, 0x22F2, 0x3BB4, 0x3395, 0x3C16, 0x3C76,
0x19EE, 0x1270, 0x763D, 0x971F, 0x8EDE, 0x7E7D, 0x65DC, 0x5D9B, 0x765D, 0x9F1E, 0xA71F, 0xA71F, 0x9EDE, 0xB75F, 0xEFDF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xD75E, 0x7D7A, 0x85BB, 0x4C36, 0x2B12, 0x3312, 0x43F5, 0x43F5, 0x4C36, 0x4477, 0x4C98, 0x11CE,
0x2313, 0x7E7E, 0x96FE, 0x96FE, 0x96DE, 0x8EBE, 0x9EFF, 0x9F1F, 0x9EFE, 0xA71E, 0xC77F, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xEFBF, 0xA63B, 0x7D99, 0x9E5B, 0x5C76, 0x3B52, 0x3B51, 0x5455, 0x4C14, 0x5434, 0x64B7, 0x5D19, 0x4437, 0x3394, 0x4CF9,
0x765D, 0x9EFF, 0xAF3F, 0xA73F, 0x9F1E, 0xB73E, 0xD79F, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xCF1D,
0x95DA, 0x6CD6, 0x95FA, 0x74F7, 0x5C14, 0x5413, 0x7537, 0x6CF6, 0x74F6, 0x7D58, 0x5C75, 0x4C77, 0x5D7B, 0x655A, 0x863C, 0xB73F,
0xB73F, 0xC77F, 0xE7BF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xB69B, 0x95B9, 0x6494,
0x7D58, 0x8DB9, 0x74F6, 0x6CB5, 0x8DB9, 0x95D9, 0x9599, 0x74D6, 0x4BD3, 0x5C76, 0x7D9A, 0x861C, 0xA6BD, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DF, 0xB69B, 0xA63B, 0x7CF6, 0x7D37, 0x8599,
0x6CF6, 0x7D17, 0xA63B, 0xB69B, 0x95B9, 0x6C95, 0x4BF3, 0x7D37, 0x95F9, 0x8DDB, 0x8DFB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xBEDC, 0xB69C, 0x9DFA, 0x8598, 0x8599, 0x7D58, 0x8DB9,
0x9E3B, 0xAE7B, 0x95D9, 0x6CF7, 0x6D37, 0x9DF9, 0xAE5B, 0x8D99, 0x8DD9, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xCF3D, 0xBEFD, 0xB69C, 0x8DD9, 0x7D99, 0x8599, 0x7D78, 0x7D78, 0x8D79,
0x8D79, 0x8599, 0x963B, 0xB6BC, 0xB69C, 0x8D99, 0xB69B, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xD75E, 0xB6DD, 0xC73E, 0x961B, 0x85BA, 0x8DBA, 0x74F7, 0x8599, 0x9E1B, 0x9E1A, 0xB6BC,
0xC71E, 0xBEDD, 0xAE5B, 0xA63A, 0xEF9E, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xEFDF, 0xB6DD, 0xB71E, 0xB6DD, 0x8579, 0x53F4, 0x3B31, 0x3352, 0x7D18, 0xB69B, 0xCF5E, 0xCF3E, 0xC71D,
0xB71D, 0xB67B, 0xF7DF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xDF5E, 0xBF1E, 0xCF7F, 0x9E3B, 0x43D3, 0x5C76, 0x64F8, 0x6CF7, 0xBEFD, 0xCF5E, 0xC73E, 0xBEFE, 0xB6BC, 0xD73D,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFDF, 0xD73E, 0xCF7F, 0x9E7B, 0x7579, 0x6D59, 0x85FA, 0x9E7C, 0xC71E, 0xC75E, 0xC71E, 0xBEBC, 0xD73D, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DF,
0xDF9E, 0xCF5E, 0xC73F, 0x9E1B, 0x95DA, 0xCF5E, 0xC71D, 0xC6FD, 0xD75E, 0xF7BF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF,
0xF7BF, 0xEFBF, 0xEFBF, 0xE79E, 0xE79E, 0xF7DF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
const unsigned short hamburger[] = {
0x42F0, 0x21ED, 0x00EA, 0x00A9, 0x00C9, 0x118C, 0x00C9, 0x0005, 0x29CC, 0x21CC, 0x098A, 0x4B2F, 0x1929, 0x220E, 0x11CC, 0x10E9,
0x0867, 0x194B, 0x116B, 0x0087, 0x0066, 0x0866, 0x0846, 0x08A7, 0x08A9, 0x0028, 0x092C, 0x11CF, 0x2293, 0x3354, 0x4B51, 0x218B,
0x00C9, 0x098B, 0x1A4D, 0x19EC, 0x118B, 0x0907, 0x29CB, 0x1129, 0x198B, 0x21ED, 0x196B, 0x08C8, 0x08E9, 0x0886, 0x10E7, 0x324F,
0x19ED, 0x08C7, 0x0865, 0x0025, 0x0068, 0x114B, 0x112B, 0x090B, 0x114B, 0x00A9, 0x19F0, 0x2B15, 0x4350, 0x08E8, 0x0088, 0x19ED,
0x1129, 0x00A8, 0x220D, 0x19AA, 0x19AB, 0x090A, 0x118C, 0x092B, 0x198C, 0x21CD, 0x192A, 0x0024, 0x218B, 0x19AD, 0x118C, 0x322D,
0x6350, 0x214A, 0x192A, 0x08EA, 0x114D, 0x008A, 0x114D, 0x198E, 0x11AF, 0x3B36, 0x224D, 0x00C8, 0x092A, 0x196B, 0x0046, 0x198B,
0x198C, 0x42F0, 0x2A6E, 0x19AC, 0x118C, 0x19CE, 0x21EE, 0x2A4E, 0x21CC, 0x218B, 0x322E, 0x42B1, 0x21AD, 0x194A, 0x08C6, 0x0086,
0x08C8, 0x21CD, 0x218E, 0x00AB, 0x00AA, 0x29F0, 0x3272, 0x2A72, 0x0929, 0x198B, 0x1A0D, 0x08E8, 0x1108, 0x19CD, 0x08CA, 0x118B,
0x220D, 0x19CC, 0x098C, 0x11CD, 0x2A4F, 0x11AC, 0x326F, 0x194A, 0x0068, 0x112C, 0x08CB, 0x112A, 0x00A6, 0x1108, 0x29CC, 0x6C14,
0x112A, 0x110B, 0x29EF, 0x4B13, 0x5354, 0x19AE, 0x0887, 0x196B, 0x2A8F, 0x114A, 0x0067, 0x090A, 0x196B, 0x08A7, 0x4AEF, 0x5352,
0x32AF, 0x2A6E, 0x3AF0, 0x4311, 0x63B4, 0x10E9, 0x29AD, 0x110A, 0x198C, 0x114B, 0x116A, 0x198A, 0x2149, 0x3A0C, 0x0887, 0x216B,
0x7C36, 0x84D8, 0x5393, 0x21ED, 0x192A, 0x0047, 0x198B, 0x21EC, 0x08A9, 0x114A, 0x1129, 0x0025, 0x2149, 0x31ED, 0x42D1, 0x5393,
0x3B31, 0x11CC, 0x29EC, 0x1129, 0x5331, 0x196B, 0x19AB, 0x112A, 0x4332, 0x322D, 0x0025, 0x0886, 0x216B, 0x0888, 0x428F, 0x5332,
0x3290, 0x116C, 0x0087, 0x10E9, 0x216A, 0x08C7, 0x0067, 0x2A8F, 0x32B0, 0x192A, 0x29CB, 0x198B, 0x21AC, 0x324E, 0x3A8F, 0x1149,
0x3ACE, 0x32CF, 0x220D, 0x19AC, 0x116A, 0x08E9, 0x116B, 0x11AC, 0x0887, 0x218A, 0x3A90, 0x21EF, 0x112B, 0x090A, 0x2230, 0x00EB,
0x08EA, 0x10CA, 0x0047, 0x0046, 0x08C8, 0x19CC, 0x224F, 0x08EA, 0x196B, 0x114A, 0x1129, 0x3A6D, 0x8CD6, 0x4A8D, 0x196A, 0x3AF0,
0x21CC, 0x21CD, 0x08C9, 0x0888, 0x00C9, 0x2A8F, 0x4AF0, 0x3A4E, 0x114D, 0x3293, 0x19AD, 0x2A0E, 0x2A71, 0x3270, 0x196D, 0x31F0,
0x08C9, 0x08E9, 0x29ED, 0x114A, 0x19CE, 0x2A0F, 0x21CD, 0x194B, 0x196B, 0x21EC, 0x53D3, 0x2A6E, 0x08A9, 0x198D, 0x0047, 0x10C9,
0x0068, 0x0088, 0x19CD, 0x4BB3, 0x3A8E, 0x3A0E, 0x198F, 0x19B0, 0x3A90, 0x4B12, 0x3AD2, 0x6C36, 0x198D, 0x112C, 0x220F, 0x2250,
0x09AB, 0x21EB, 0x42F1, 0x2AF1, 0x2A90, 0x198B, 0x196B, 0x19AC, 0x094B, 0x116B, 0x324F, 0x42D3, 0x198C, 0x196B, 0x0909, 0x2230,
0x3312, 0x222C, 0x0888, 0x00CA, 0x118E, 0x012D, 0x29EF, 0x3271, 0x53B6, 0x7D39, 0x32D2, 0x2A71, 0x3291, 0x08EB, 0x3290, 0x114A,
0x29ED, 0x2A6F, 0x19CC, 0x222D, 0x11CB, 0x19CC, 0x08C8, 0x2A6E, 0x220E, 0x2A50, 0x3B11, 0x326E, 0x21EE, 0x2A71, 0x4BB4, 0x11AA,
0x194B, 0x114D, 0x2252, 0x2294, 0x3AF5, 0x2A93, 0x2B13, 0x2B52, 0x21CE, 0x21CE, 0x192B, 0x0868, 0x29AD, 0x2A4E, 0x08E9, 0x3A4E,
0x326F, 0x226F, 0x2270, 0x19AE, 0x2A2F, 0x3AB1, 0x198E, 0x3272, 0x3AF2, 0x21CE, 0x21F0, 0x19CE, 0x4332, 0x222E, 0x2A4F, 0x2A4F,
0x2A91, 0x2A51, 0x008A, 0x19F1, 0x1A32, 0x2AF4, 0x5352, 0x21AC, 0x1129, 0x08A7, 0x3A2E, 0x5BD4, 0x4B52, 0x84B8, 0x4BB5, 0x2B12,
0x116C, 0x3250, 0x3290, 0x5BD5, 0x4B14, 0x42F3, 0x32B0, 0x3A50, 0x1990, 0x116C, 0x29EE, 0x110D, 0x198D, 0x74D7, 0x32AF, 0x094B,
0x222F, 0x3AB3, 0x114E, 0x2A10, 0x4312, 0x3270, 0x3AB1, 0x326E, 0x326E, 0x4B33, 0x19AE, 0x21AD, 0x21AC, 0x19CB, 0x114A, 0x42F1,
0x5BD4, 0x6435, 0x3A90, 0x19AB, 0x32AE, 0x21AC, 0x2A30, 0x21EF, 0x2A2F, 0x3271, 0x4354, 0x4BF4, 0x53F5, 0x2A70, 0x2A70, 0x3AB1,
0x112B, 0x196D, 0x1A30, 0x2231, 0x220F, 0x3AD1, 0x220D, 0x096C, 0x1A31, 0x220F, 0x0046, 0x08E8, 0x326F, 0x4B12, 0x7457, 0x3A90,
0x0068, 0x118C, 0x328F, 0x1109, 0x2A0E, 0x21F0, 0x3291, 0x224F, 0x3291, 0x7D1A, 0x5C77, 0x1A4F, 0x11AE, 0x19AD, 0x090A, 0x114D,
0x3B55, 0x096D, 0x32D2, 0x4332, 0x198C, 0x222F, 0x4355, 0x32F2, 0x012A, 0x11AD, 0x4B13, 0x63B6, 0x42B2, 0x0889, 0x0069, 0x3270,
0x324F, 0x0045, 0x2A0D, 0x196C, 0x4B74, 0x4333, 0x21D0, 0x3A93, 0x2AF3, 0x3375, 0x3AD3, 0x196D, 0x114D, 0x118E, 0x098E, 0x4313,
0x19ED, 0x21ED, 0x42D0, 0x00C9, 0x2A30, 0x118D, 0x2A70, 0x3290, 0x19AD, 0x194E, 0x10CC, 0x214D, 0x29CE, 0x3290, 0x6416, 0x324D,
0x42D0, 0x21EE, 0x2A0F, 0x3AD1, 0x29F0, 0x1170, 0x19F1, 0x2211, 0x196E, 0x21AE, 0x116D, 0x2A30, 0x3AB2, 0x4B32, 0x08E8, 0x0087,
0x0087, 0x112B, 0x08EB, 0x08CA, 0x198D, 0x118B, 0x08EA, 0x110D, 0x008D, 0x29D0, 0x5375, 0x19D0, 0x2210, 0x2A10, 0x6C37, 0x6C78,
0x21EE, 0x112B, 0x110C, 0x1A32, 0x2A12, 0x088B, 0x196E, 0x3271, 0x42F3, 0x4B33, 0x3A70, 0x112A, 0x110A, 0x0909, 0x19AB, 0x2A0D,
0x21AD, 0x21CE, 0x116C, 0x5B73, 0x63F4, 0x2212, 0x32D6, 0x4B74, 0x3AF3, 0x32B4, 0x4334, 0x3250, 0x4B34, 0x6C58, 0x6457, 0x53D6,
0x4354, 0x4355, 0x4375, 0x32B1, 0x3AF3, 0x3AF4, 0x4B54, 0x6417, 0x0089, 0x0089, 0x08EB, 0x116C, 0x19EE, 0x010A, 0x2A30, 0x2A30,
0x2A0F, 0x851A, 0x7CF8, 0x4355, 0x2AF5, 0x32F2, 0x6C38, 0x3273, 0x3AD2, 0x851A, 0x7CDA, 0x3B54, 0x4375, 0x6C99, 0xA63E, 0x6CB9,
0x43D6, 0x5C56, 0x753B, 0x3B96, 0x5C99, 0x3313, 0x3AB1, 0x196E, 0x00AC, 0x00CB, 0x010D, 0x1190, 0x19D0, 0x3294, 0x21B1, 0x198D,
0x42AF, 0x7499, 0x4B97, 0x4333, 0x6C98, 0x4334, 0x2A51, 0x6C58, 0x6458, 0x43B6, 0x4BF7, 0x5C17, 0x6416, 0x4B74, 0x53F7, 0x74D8,
0x855A, 0x3B53, 0x64B8, 0x6498, 0x4BB4, 0x2AB2, 0x11D1, 0x1A11, 0x11F0, 0x2292, 0x5C38, 0x4B97, 0x2253, 0x3AD4, 0x6C36, 0x42F2,
0x4356, 0x5C17, 0x6498, 0x6498, 0x3295, 0x2A32, 0x4354, 0x3B97, 0x2B16, 0x11F1, 0x11AE, 0x2A51, 0x2AB2, 0x74B8, 0x6436, 0x4374,
0x3312, 0x6C98, 0x2AF0, 0x1210, 0x2273, 0x4BB7, 0x74DA, 0x53D4, 0x4394, 0x4374, 0x53D7, 0x4B96, 0x4393, 0x3354, 0x3376, 0x43B6,
0x5C37, 0x6458, 0x4357, 0x4B97, 0x5C38, 0x4BD7, 0x3B56, 0x09B0, 0x3B16, 0x5C38, 0x5417, 0x5416, 0x53D5, 0x1A50, 0x3B96, 0x4397,
0x4BD5, 0x2AD2, 0x32F3, 0x74DA, 0x8D7B, 0x6C77, 0x53D4, 0x4353, 0x4B96, 0x6437, 0x5C37, 0x3354, 0x2AF4, 0x2272, 0x5395, 0x3AD3,
0x11CF, 0x4BB6, 0x32F2, 0x3B53, 0x5416, 0x32F3, 0x3B35, 0x4BD7, 0x5C38, 0x5C17, 0x7478, 0x6458, 0x3B54, 0x2AB1, 0x4354, 0x4B96,
0x5BF7, 0x6C58, 0x5374, 0x4353, 0x4B73, 0x3B33, 0x2AB2, 0x4313, 0x4B75, 0x3B14, 0x2A72, 0x2251, 0x11AE, 0x2A71, 0x4B96, 0x3314,
0x09CE, 0x1A90, 0x4BF6, 0x012C, 0x19EF, 0x5C3A, 0x3B35, 0x32B2, 0x4B34, 0x851B, 0x53D5, 0x2A6E, 0x2A92, 0x2AB2, 0x32D2, 0x222F,
0x5395, 0x5BD6, 0x32B1, 0x2AD1, 0x2AD2, 0x1A0F, 0x19CE, 0x32B2, 0x4334, 0x3B13, 0x2AB1, 0x5C37, 0x4BB5, 0x3B75, 0x32D3, 0x4BB7,
0x2AD4, 0x11F0, 0x32B3, 0x11F0, 0x1230, 0x1A30, 0x32D3, 0x855C, 0x6458, 0x32B2, 0x4B54, 0x3B53, 0x2AF2, 0x32F3, 0x32B2, 0x3AF2,
0x2A90, 0x2270, 0x2291, 0x120E, 0x19EE, 0x2A70, 0x11AD, 0x2250, 0x2AD1, 0x1A6E, 0x3B73, 0x5C78, 0x53B6, 0x4B96, 0x1211, 0x5418,
0x4374, 0x3B74, 0x43D6, 0x3B96, 0x22D3, 0x32F5, 0x2294, 0x3B35,
};
const unsigned short oregano[] = {
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xCEDB, 0xE77E, 0xCEBC, 0x6412, 0x3B0F, 0x4BD2, 0x436F, 0x43B0, 0x5CD6, 0x5433,
0x430E, 0x43D0, 0x4C32, 0x432E, 0x3A6D, 0x52EE, 0x4370, 0x8D56, 0x6433, 0x63F2, 0xF7DF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xBE7A, 0xAE3A, 0x5B90, 0x1167, 0x222A, 0x328C, 0x32AC, 0x19EA, 0x4370, 0x64D6, 0x2A4B, 0x228B,
0x32CC, 0x21C8, 0x1947, 0x324B, 0x5432, 0x430E, 0x5C34, 0x7516, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xF7BE, 0xBDF8, 0x9D58, 0x6CB5, 0x2A6B, 0x10E5, 0x1966, 0x1125, 0x21C9, 0x328D, 0x3A8C, 0x1987, 0x21C8, 0x21C8, 0x1105, 0x4370,
0x4370, 0x4B2F, 0x53B1, 0x19C9, 0x4BD2, 0x53D2, 0xBE39, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x9D55, 0x21CA,
0x2A0B, 0x3B30, 0x430F, 0x2A0A, 0x2166, 0x3A6B, 0x42ED, 0x3B0F, 0x1189, 0x21CA, 0x320A, 0x29C7, 0x08A3, 0x2A0A, 0x4BF2, 0x4B50,
0x6C94, 0x4B2E, 0x1969, 0x5475, 0x4B6F, 0x5B4F, 0xA597, 0xFFFF, 0xFFFF, 0xFFFF, 0xDF3D, 0x5B8F, 0x3B0E, 0x32EE, 0x19A9, 0x326C,
0x6C55, 0x63B3, 0x5391, 0x64B4, 0x43B1, 0x3B50, 0x3B4F, 0x3AEE, 0x326C, 0x4B6F, 0x21E9, 0x29EA, 0x2A0B, 0x43F2, 0x43B2, 0x436F,
0x53D2, 0x64F6, 0x2A6B, 0x1947, 0x4B2E, 0xF7FF, 0xFFFF, 0xCE9B, 0x6453, 0x5C74, 0x4B71, 0x5C34, 0x328C, 0x1947, 0x10C5, 0x63D2,
0x5CD6, 0x64B5, 0x2A2B, 0x2A8D, 0x21A9, 0x2A2A, 0x5432, 0x32ED, 0x7516, 0x6CF6, 0x7538, 0x53D2, 0x6D38, 0x64B7, 0x2A4B, 0x1A09,
0x5B90, 0x5B90, 0x432F, 0x9536, 0xF7DF, 0xD71D, 0x5413, 0x4B90, 0x326C, 0x4BD2, 0x6474, 0x4B4F, 0x21C8, 0x32AD, 0x4C53, 0x4BF2,
0x29EA, 0x32CD, 0x5413, 0x53B1, 0x3A8C, 0x29C8, 0x326B, 0x430E, 0x5390, 0x2169, 0x4330, 0x3AEE, 0x1126, 0x5C32, 0x5C53, 0x5C33,
0x7D78, 0x4BB1, 0x9D36, 0xC6FC, 0x5C95, 0x3AEE, 0x4B90, 0x430F, 0x5BD2, 0x6CD5, 0x6D36, 0x5C53, 0x6494, 0x3330, 0x5433, 0x6C74,
0x5C34, 0x5391, 0x53F1, 0x326A, 0x08C5, 0x2A0B, 0x4B0F, 0x32CD, 0x328C, 0x224A, 0x436F, 0x6495, 0x32CD, 0x6494, 0x6D58, 0x6CF6,
0x95F9, 0x8D57, 0x6496, 0x3B70, 0x328C, 0x3A6C, 0x3B2F, 0x326C, 0x4B4F, 0x4B6F, 0x63D1, 0x5BD2, 0x42CE, 0x29E9, 0x3B0E, 0x5BB1,
0x5C33, 0x43D2, 0x85DA, 0x53F3, 0x4BB1, 0x4BB0, 0x2A0A, 0x4B70, 0x4390, 0x5412, 0x4BD2, 0x6475, 0x4370, 0x9DF8, 0x64B5, 0x5433,
0x2A6D, 0x4BD1, 0x53D1, 0x3A8C, 0x6CB5, 0x4B70, 0x430E, 0x6C74, 0x6CB4, 0x328C, 0x322B, 0x29C9, 0x6CB5, 0x3B0F, 0x53B2, 0x9E9E,
0x6CD6, 0x4B70, 0x4B91, 0x53B1, 0x4B2D, 0x21A8, 0x328C, 0x5C95, 0x5434, 0x3AEE, 0x21EA, 0x536F, 0x7D17, 0x53F2, 0x4390, 0x1A4B,
0x53F1, 0x53D1, 0x326C, 0x3B2F, 0x430F, 0x3AEF, 0x3B2F, 0x5C74, 0x5C54, 0x5C73, 0x4371, 0x4B93, 0x4351, 0x4B70, 0x326B, 0x320A,
0x5BF2, 0x3B50, 0x3B4F, 0x4BD2, 0x228D, 0x6495, 0x3B0F, 0x19A9, 0x2A6C, 0x3B0E, 0xDF7E, 0x7D58, 0x3B50, 0x4B91, 0x3A6D, 0x3B10,
0x5495, 0x3B70, 0x6474, 0x63D2, 0x2189, 0x6C94, 0x6453, 0x32AC, 0x4BD1, 0x43B2, 0x2AF0, 0x4390, 0x64B5, 0x3ACD, 0x53F1, 0x434F,
0x42EE, 0x4BB2, 0x53F1, 0x434F, 0x3B10, 0x3B50, 0x6475, 0x5C75, 0xBE19, 0x5392, 0x5C76, 0x963C, 0x4BD3, 0x3310, 0x4BD2, 0x4C33,
0x32AE, 0x220B, 0x32CE, 0x2ACE, 0x2A8D, 0x4B71, 0x53AF, 0x3B0F, 0x328D, 0x2A4B, 0x432F, 0x5370, 0x3A8C, 0x1988, 0x3ACD, 0x4B50,
0x5BD1, 0x3ACD, 0x3B71, 0x5434, 0x5C35, 0x4BD3, 0x32AD, 0x6474, 0x5C34, 0x9E9D, 0x64F7, 0x5414, 0x4371, 0x2ACE, 0x4B91, 0x7538,
0x3B91, 0x4C77, 0x3B33, 0x4B71, 0x3B0C, 0x4B4F, 0x6C75, 0x08A4, 0x10C3, 0x0063, 0x322A, 0x4BB1, 0x5C34, 0x3B0F, 0x1967, 0x42CE,
0x43F2, 0x4BF2, 0x5C12, 0x2A4C, 0x5C15, 0x7D58, 0x3B71, 0x5C34, 0x43B1, 0x43B3, 0x3B51, 0x43B2, 0x11AA, 0x3AEF, 0x3AAD, 0x32EF,
0x651B, 0x324C, 0x29C8, 0x2A2C, 0x6454, 0x3ACD, 0x3AAC, 0x534F, 0x6C94, 0x43D2, 0x5C96, 0x8E7D, 0x4B4F, 0x320A, 0x2A4A, 0x5411,
0x2A4B, 0x1928, 0x5415, 0x5414, 0x5C75, 0x6496, 0x4391, 0x6CD7, 0x64B6, 0x4BF2, 0x5434, 0x3B70, 0x222B, 0x08E5, 0x32AD, 0x19A8,
0x00A4, 0x1989, 0x4BB1, 0x4B91, 0x5C53, 0x434E, 0x3B4F, 0x43D1, 0x64F6, 0x53B2, 0x32AD, 0x436F, 0x1967, 0x220A, 0x2A8D, 0x2A4C,
0x4372, 0x3AEF, 0x3AEE, 0x220A, 0x3AAD, 0x21A9, 0x53F3, 0x5413, 0x326C, 0x322B, 0x5C74, 0x53D1, 0x4B4F, 0x5433, 0x6D16, 0x4391,
0x220B, 0x10E6, 0x1968, 0x32CD, 0x330E, 0x1926, 0x1106, 0x4371, 0x3B71, 0x5CB5, 0x6452, 0x32AD, 0x64B6, 0x6D39, 0x2AD1, 0x3310,
0x3B0F, 0x3B2F, 0x3B0E, 0x4BB1, 0x6474, 0x328D, 0x222C, 0x220B, 0x3A8D, 0x5474, 0x5C95, 0x5C74, 0x6D17, 0x5453, 0x32AE, 0x4B91,
0x53D2, 0x5454, 0x5D17, 0x432E, 0x328C, 0x3BB1, 0x5CB5, 0x6D57, 0x85F9, 0x5454, 0x64B7, 0x6519, 0x32CE, 0x4B71, 0x4371, 0x6496,
0x3B92, 0x2B0F, 0x436F, 0x3AEE, 0x5CB6, 0x5CB6, 0x4BB1, 0x43B1, 0x2A2B, 0x1127, 0x4B71, 0x226C, 0x4391, 0x4C33, 0x64B5, 0x74D5,
0x5474, 0x4C12, 0x6CF6, 0x43B1, 0x4B70, 0x42CD, 0x6432, 0x3BB1, 0x43B2, 0x3B52, 0x5C34, 0x3B0F, 0x434F, 0x3B0E, 0x4BB2, 0x5CB6,
0x43D1, 0x5C95, 0x8DFB, 0x5C54, 0x3B2F, 0x220A, 0x29CB, 0x6476, 0x759A, 0x3AEF, 0x4BF2, 0x6517, 0x5C94, 0x7D36, 0x3AAD, 0x2A6D,
0x6D36, 0x7D9A, 0x2A6E, 0x00E6, 0x2A2B, 0x3B50, 0x4C34, 0x7538, 0x5C13, 0x21C9, 0x6412, 0x6473, 0x32CD, 0x64B5, 0x5CB5, 0x6D16,
0x5C34, 0x5C34, 0x4B91, 0x64B6, 0x6CF7, 0x7D17, 0x53F3, 0x64D7, 0x3AEF, 0x6CD6, 0x5C33, 0x4B91, 0x4C34, 0x863D, 0x7557, 0x5414,
0x43D4, 0x5434, 0x5C56, 0x6C97, 0x43D2, 0x5C34, 0x5412, 0x7557, 0x7DDA, 0x5434, 0x2A6D, 0x7D17, 0x5C54, 0x4371, 0x4BB1, 0x6D37,
0x7538, 0x4392, 0x4BB2, 0x328D, 0x328E, 0x657A, 0x43D3, 0x5434, 0x7538, 0x4B92, 0x4BB3, 0x64D6, 0x2AAD, 0x3AEF, 0x6C95, 0x2AEE,
0x5413, 0x6CF8, 0x5476, 0x6D38, 0x4B92, 0x4BD2, 0x5413, 0x5434, 0x5C34, 0x6D18, 0x64D5, 0x7D79, 0x6517, 0x6D37, 0x64F7, 0x6CD7,
0x7D7A, 0x6D99, 0x7559, 0x5497, 0x5414, 0x4BD3, 0x5454, 0x2A0C, 0x1169, 0x432F, 0x6CB6, 0x4BF3, 0x5454, 0x7D99, 0x4392, 0x32F1,
0x3B52, 0x4BF4, 0x5C54, 0x4B50, 0x4BF2, 0x4BF3, 0x5414, 0x6D18, 0x85B9, 0x6D37, 0x43F2, 0x3B50, 0x64B6, 0x8E1C, 0x7D37, 0x5412,
0x5C54, 0x64F7, 0x328E, 0x4330, 0x7517, 0x432F, 0x3B0F, 0x4350, 0x5C34, 0x4BD2, 0x5412, 0x4350, 0x5C56, 0x3B74, 0x3B52, 0x6CD7,
0x32EE, 0x324C, 0x53D1, 0x6495, 0x4BD2, 0x4BD3, 0x4BD3, 0x5C33, 0x6CF6, 0x5C54, 0x5476, 0x7538, 0x2A6D, 0x3B0F, 0x4BB1, 0x5433,
0x64B6, 0x7559, 0x6D78, 0x5474, 0x4BB1, 0x3B4F, 0x4371, 0x6CB6, 0x6473, 0x430F, 0x5CB6, 0x6CD8, 0x969D, 0x8598, 0x8D36, 0x4BF3,
0x6495, 0x64B5, 0x64D5, 0x7558, 0x85B9, 0x961A, 0x7D78, 0x5C55, 0x6C96, 0x5C55, 0x6D17, 0x43D4, 0x3B31, 0x32F0, 0x6CF7, 0x6D17,
0x5CF7, 0x4BF2, 0x4B71, 0x6CB6, 0x5C95, 0x5433, 0x4BF2, 0x4B2F, 0x7558, 0x5C76, 0x7537, 0xD77E, 0xEF7E, 0xAE3A, 0x6D17, 0x5C33,
0x3AAC, 0x3AAD, 0x3B0E, 0x7D57, 0x8599, 0x53F3, 0x5C13, 0x53F2, 0x7536, 0x963C, 0x7DBA, 0x64F7, 0x8DDA, 0x6CF7, 0x6D38, 0x7537,
0x6CF6, 0x5C95, 0x5474, 0x7DD9, 0x7DBA, 0x5391, 0xAE19, 0xBF1E, 0x9DFA, 0xFFFF, 0xFFFF, 0xF7BE, 0xBEDC, 0xA61A, 0x6C53, 0x6C95,
0x7517, 0x3330, 0x4BF4, 0x5454, 0x7558, 0x5C54, 0x4B90, 0x64D5, 0x5C95, 0x6494, 0x5BF2, 0x3B10, 0x6539, 0x6518, 0x4391, 0x64D7,
0x5C74, 0x7D77, 0x5CD7, 0xAE5C, 0xF7BE, 0xF7FF, 0xE79E, 0xF7DF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEFBF, 0x6C32, 0x8D57, 0x8DB8, 0x4C54,
0x6D39, 0x64D6, 0x6D18, 0x64B6, 0x6CF6, 0x7D98, 0x5433, 0x6475, 0x5433, 0x6CF6, 0x7578, 0x5C75, 0x5C55, 0x64B6, 0x5C54, 0x3B71,
0x4C74, 0x9E5A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF, 0xCF1C, 0x7CB4, 0xD73D, 0xE7DF, 0xC6FC, 0xC71C,
0xAE7B, 0xA65B, 0x7537, 0x967C, 0x963C, 0x6CD7, 0x7537, 0x961A, 0x64B4, 0x95D7, 0xAEBC, 0x9E3A, 0xBEBB, 0x9DDA, 0x965B, 0xC73D,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
const unsigned short pumpkin[] = {
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DF, 0xFFFF, 0xF7FF, 0xE79F, 0xEFFF, 0xE7FF, 0xD79F, 0xB69D,
0xA61C, 0xDFDF, 0xD7BF, 0xB69E, 0xAE3C, 0xBEDE, 0xCF3F, 0xD77F, 0xC6DE, 0xE7BF, 0xF7FF, 0xEFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xEFBF, 0xF7FF, 0xF7FF, 0xD71D, 0xB63A, 0xB61A, 0x9D77, 0x84D5, 0xA61B, 0xAE7D, 0x8DBA, 0x6455, 0x4331, 0x53D3,
0x53B3, 0x32D0, 0x2A8F, 0x4B93, 0x3B11, 0x5BF4, 0x6C34, 0x84D6, 0xD73F, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDE, 0xFFFF, 0xF7FF,
0xEFBF, 0xEFDF, 0xCEFF, 0x7CB6, 0x42EF, 0x3AAE, 0x2A6D, 0x2A6D, 0x3B10, 0x226E, 0x226E, 0x3B52, 0x2A6F, 0x014B, 0x11ED, 0x2A90,
0x2290, 0x2AB1, 0x010A, 0x4352, 0x5BD4, 0x4310, 0xAE1B, 0xEFDF, 0xEFDF, 0xEFDF, 0xFFFE, 0xFFFF, 0xF7BE, 0xF7FF, 0xE7DF, 0x8D59,
0x3AF0, 0x4352, 0x3312, 0x1A2E, 0x120E, 0x09CD, 0x2AD1, 0x11ED, 0x09ED, 0x226F, 0x1A4F, 0x018C, 0x2AF2, 0x3333, 0x3313, 0x1A50,
0x2291, 0x2AD1, 0x2AB0, 0x4352, 0x6C55, 0xCF1F, 0xE7DF, 0xEFFF, 0xFFFE, 0xFFFF, 0xF7FF, 0xDF7F, 0x9DDA, 0x32D0, 0x016C, 0x09EF,
0x5418, 0x1AB2, 0x01CE, 0x0A0F, 0x2AD2, 0x3B74, 0x09EE, 0x2291, 0x122F, 0x2AD2, 0x2AD3, 0x3B75, 0x3334, 0x1230, 0x1A71, 0x1A71,
0x1A50, 0x11CD, 0x3AF1, 0x8D59, 0xC71F, 0xE7DF, 0xFFFF, 0xF7FF, 0xEFFF, 0xD77F, 0x4352, 0x3B53, 0x1A91, 0x00EC, 0x0A52, 0x3397,
0x1A92, 0x3355, 0x22B2, 0x1250, 0x1270, 0x22B2, 0x0A0F, 0x22B3, 0x22B3, 0x2B14, 0x22B3, 0x1251, 0x016D, 0x1A51, 0x09AE, 0x09CE,
0x4353, 0x4B73, 0x7CD8, 0xC6FF, 0xE7BF, 0xE7BF, 0xC6FE, 0x7496, 0x226F, 0x2AF3, 0x3B76, 0x1272, 0x012E, 0x22F5, 0x3BD8, 0x22F4,
0x0A10, 0x01AE, 0x1A71, 0x3354, 0x1A92, 0x1A93, 0x2293, 0x2B15, 0x2AF4, 0x22B3, 0x018E, 0x2B14, 0x2292, 0x2AB2, 0x3313, 0x016C,
0x19ED, 0x7CF9, 0xCF7F, 0x8538, 0x5BF4, 0x32D1, 0x2AB1, 0x22F3, 0x3B96, 0x1AB3, 0x22D4, 0x22B3, 0x22B3, 0x09EF, 0x1231, 0x1231,
0x3334, 0x3355, 0x22B3, 0x22B3, 0x1210, 0x22D3, 0x2AD4, 0x1231, 0x1A72, 0x2AD3, 0x1210, 0x1A51, 0x2291, 0x1A2F, 0x09CD, 0x3B12,
0x7D5B, 0x2AF1, 0x3312, 0x4BD6, 0x22B2, 0x22B3, 0x43B7, 0x3335, 0x3B76, 0x2292, 0x09CF, 0x22B2, 0x2292, 0x1210, 0x3335, 0x2AF4,
0x3B55, 0x2AF4, 0x22B3, 0x2292, 0x22B3, 0x2AD3, 0x3314, 0x2AB2, 0x1A51, 0x2291, 0x2271, 0x2AD2, 0x120F, 0x2AB2, 0x3BB6, 0x22D3,
0x1A92, 0x0A10, 0x3335, 0x1A92, 0x3314, 0x3B75, 0x32F2, 0x098D, 0x32F3, 0x4B95, 0x1A50, 0x1A50, 0x1231, 0x2B14, 0x3B55, 0x22B2,
0x2AD3, 0x11EF, 0x1A30, 0x2AD3, 0x2271, 0x1A50, 0x1A51, 0x2291, 0x2AB2, 0x2AD2, 0x2AB2, 0x4375, 0x1AD4, 0x2B56, 0x1293, 0x0A52,
0x1A72, 0x0A10, 0x09AE, 0x32F3, 0x32D2, 0x11AE, 0x32B2, 0x4375, 0x1A30, 0x1A30, 0x2AF4, 0x22B3, 0x3334, 0x3314, 0x1A51, 0x1A51,
0x2292, 0x2271, 0x2271, 0x1A50, 0x09CF, 0x1210, 0x2AD3, 0x1A30, 0x09CF, 0x1230, 0x0A73, 0x3BD8, 0x1AB3, 0x1251, 0x4397, 0x3314,
0x11F0, 0x2A92, 0x2A71, 0x32D3, 0x2A92, 0x2A92, 0x2AB3, 0x22B3, 0x2AD4, 0x2AF4, 0x43B7, 0x2292, 0x2292, 0x1A71, 0x2AB2, 0x2292,
0x3334, 0x09EF, 0x2291, 0x1A71, 0x014C, 0x09EF, 0x22D3, 0x0A10, 0x2355, 0x2B55, 0x12B3, 0x22D3, 0x2B14, 0x22B2, 0x2292, 0x2272,
0x11F0, 0x2272, 0x1A51, 0x2292, 0x2AF4, 0x2293, 0x1A92, 0x22D4, 0x3BB6, 0x1251, 0x1231, 0x1A92, 0x2292, 0x3335, 0x3B96, 0x2292,
0x22D3, 0x1A71, 0x0A0F, 0x3354, 0x3355, 0x22D2, 0x2B75, 0x3395, 0x12B2, 0x0A30, 0x0A30, 0x1230, 0x22B2, 0x2B14, 0x1230, 0x3314,
0x2B14, 0x1AB3, 0x1252, 0x01F0, 0x1AB3, 0x3BD8, 0x3376, 0x2B14, 0x1A92, 0x22D3, 0x1A93, 0x3356, 0x22D3, 0x1251, 0x22B2, 0x1230,
0x1230, 0x3B54, 0x22B2, 0x3313, 0x1AF2, 0x2312, 0x1AB1, 0x0A50, 0x1A91, 0x1A91, 0x0A30, 0x22D3, 0x22D3, 0x3376, 0x3376, 0x2314,
0x1292, 0x1292, 0x2335, 0x2B56, 0x1252, 0x3BB7, 0x22F4, 0x2B14, 0x2B35, 0x3356, 0x1A92, 0x1251, 0x2AF4, 0x22B3, 0x2292, 0x2AD2,
0x22B1, 0x4BF6, 0x3BD6, 0x0A70, 0x12B1, 0x0A50, 0x0A50, 0x22D3, 0x1271, 0x2B14, 0x2B14, 0x2B34, 0x3375, 0x2B55, 0x1272, 0x12B2,
0x2B55, 0x22F3, 0x01CF, 0x3334, 0x22D3, 0x2B14, 0x22F4, 0x1252, 0x22D3, 0x1AB3, 0x22B3, 0x22D3, 0x2AF3, 0x1A91, 0x3B54, 0x6CDA,
0x1AB1, 0x1291, 0x3375, 0x1AB2, 0x1A92, 0x2B55, 0x1272, 0x1AB3, 0x22D4, 0x1AB3, 0x2B34, 0x3355, 0x1251, 0x1250, 0x3354, 0x3333,
0x22B2, 0x2291, 0x22B2, 0x3335, 0x1251, 0x016E, 0x2315, 0x2315, 0x3397, 0x3356, 0x3355, 0x1A92, 0x22B2, 0x2AF3, 0x0A10, 0x1AB2,
0x3355, 0x1AD3, 0x1A93, 0x2B15, 0x22D4, 0x22B4, 0x1252, 0x22B3, 0x2AF4, 0x2B14, 0x32F3, 0x3313, 0x3B33, 0x2290, 0x3B33, 0x2AB1,
0x3313, 0x3B54, 0x22B3, 0x1231, 0x2B35, 0x3376, 0x2B35, 0x1A93, 0x1AB3, 0x22D4, 0x1251, 0x1230, 0x1A71, 0x016D, 0x1A72, 0x4C18,
0x3B76, 0x2B15, 0x3357, 0x0A32, 0x09F1, 0x3B77, 0x3B56, 0x1A51, 0x1A51, 0x32F3, 0x3B34, 0x32F2, 0x2AB1, 0x3313, 0x3B54, 0x22D2,
0x2B14, 0x22F4, 0x0210, 0x1AB3, 0x2B56, 0x1293, 0x1A93, 0x3B76, 0x1A71, 0x22B2, 0x4BD6, 0x2AB2, 0x09CE, 0x2AD3, 0x43B7, 0x2B15,
0x2AF5, 0x2B15, 0x3357, 0x1AB4, 0x3377, 0x22D4, 0x2B14, 0x2AF4, 0x22B2, 0x3354, 0x3B75, 0x2B34, 0x2B13, 0x1AD3, 0x1AB3, 0x1AB3,
0x1AD3, 0x2B35, 0x3356, 0x3355, 0x22D3, 0x2271, 0x32F2, 0x4BF5, 0xBEFF, 0x7D19, 0x09AC, 0x09AD, 0x4395, 0x3314, 0x1A92, 0x2B35,
0x3377, 0x22F5, 0x1AB4, 0x1AF5, 0x12B4, 0x3397, 0x22F5, 0x1AD4, 0x1AD3, 0x2B76, 0x12B3, 0x3BB7, 0x22F4, 0x1AB3, 0x1272, 0x2B14,
0x5479, 0x2AD2, 0x1A2F, 0x5C16, 0xAE9F, 0xD7BF, 0xDFBF, 0x9DDA, 0x6C75, 0x74D7, 0x53F4, 0x3B32, 0x4C17, 0x3375, 0x2314, 0x2376,
0x2B77, 0x1B36, 0x1B36, 0x1B57, 0x2398, 0x2BD9, 0x2377, 0x2B97, 0x2BB8, 0x0252, 0x01B0, 0x0A51, 0x3B96, 0x3B74, 0x3B53, 0x53D4,
0x8D59, 0xC6FF, 0xE7DF, 0xEFDF, 0xE7BF, 0xEFFF, 0xD75F, 0xE7FF, 0xC73F, 0x53F3, 0x3331, 0x3B94, 0x2B54, 0x1B13, 0x2BB7, 0x2BD8,
0x2BD9, 0x23B8, 0x3C9C, 0x23B8, 0x341A, 0x2357, 0x2377, 0x1AF4, 0x2B55, 0x2B14, 0x09EE, 0x53F5, 0x6435, 0x9DDB, 0xDF9F, 0xEFFF,
0xF7DF, 0xF7DF, 0xF7FF, 0xF7FF, 0xE7BE, 0xEFFF, 0xE7DF, 0xDFBF, 0xB6DE, 0x4BB2, 0x1A4E, 0x43F5, 0x2B54, 0x2B74, 0x2355, 0x2376,
0x2396, 0x33F9, 0x2356, 0x0272, 0x2B76, 0x1292, 0x22D2, 0x3B53, 0x53D4, 0xA65D, 0xDFBF, 0xE7DF, 0xEFDF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xF7FF, 0xEFDF, 0xE79F, 0xE7DF, 0xC6FE, 0xAE7C, 0xCF9F, 0x859B, 0x3B93, 0x3373, 0x2B53, 0x1AF2, 0x2313,
0x22F3, 0x2B34, 0x3B95, 0x22B1, 0x4BB4, 0x4B72, 0x8D38, 0xE7DF, 0xE7BF, 0xEFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xF7FF, 0xF7FF, 0xEFFF, 0xDF9F, 0xDFBF, 0x9DBA, 0x5C13, 0x5C14, 0x95BB, 0x74F8, 0x3B52, 0x4BD4,
0x4372, 0x4B92, 0x3ACF, 0xAE7C, 0xDF9F, 0xE7BF, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFBF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF, 0xF7DF, 0xF7FF, 0xEFDF, 0xEFFF, 0xD75F, 0xDF9F, 0xD77F, 0xD77F, 0xB6FF, 0xAE9E, 0xBF1F, 0xC73F,
0x8D57, 0xE7FF, 0xEFFF, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
char coordx[] = { 45, 90, 90, 45, 0, 0 };
char coordy[] = { 149, 119, 79, 49, 79, 119};
char spice_sectors[] = {1, 2, 3, 4, 5, 6};
int current_sector = 1;
void draw_circle(int front_sector)
{
int j = 0;
for(int i = front_sector; j < 6; i++, j++)
{
i = i % 6;
switch(spice_sectors[i])
{
case SECTOR_ONE:
if(i == 0)
ST7735_DrawString(5,15, "CUMIN SEED", ST7735_YELLOW);
ST7735_DrawBitmap(coordx[i], coordy[i], cumin, 30, 30);
break;
case SECTOR_TWO:
if(i == 0)
ST7735_DrawString(5,15, "GARLIC POWDER", ST7735_YELLOW);
ST7735_DrawBitmap(coordx[i], coordy[i], garlic, 30, 30);
break;
case SECTOR_THREE:
if(i == 0)
ST7735_DrawString(5,15, "HAMBURGER SEASONING", ST7735_YELLOW);
ST7735_DrawBitmap(coordx[i], coordy[i], hamburger, 30, 30);
break;
case SECTOR_FOUR:
if(i == 0)
ST7735_DrawString(5,15, "BAY LEAVES", ST7735_YELLOW);
ST7735_DrawBitmap(coordx[i], coordy[i], bay, 30, 30);
break;
case SECTOR_FIVE:
if(i == 0)
ST7735_DrawString(5,15, "PUMPKIN PIE SPICE", ST7735_YELLOW);
ST7735_DrawBitmap(coordx[i], coordy[i],pumpkin, 30, 30);
break;
case SECTOR_SIX:
if(i == 0)
ST7735_DrawString(5,15, "MEXICAN OREGANO", ST7735_YELLOW);
ST7735_DrawBitmap(coordx[i], coordy[i], oregano, 30, 30);
break;
}
}
}
int turnsNeeded(int selected_sector)
{
int current_index = current_sector - 1;
int turns_needed = 0;
int counter_clockwise_turns_needed = 0;
// calculate the number of turns
// needed to turn to the desired sector
// when turning clockwise
while(1)
{
if(spice_sectors[current_index] == selected_sector)
break;
else
{
current_index = (current_index + 1) % 6;
turns_needed++;
}
}
current_index = current_sector - 1;
// calculate the number of turns
// needed to turn to the desired sector
// when turning counter clockwise
while(1)
{
if(spice_sectors[current_index] == selected_sector)
{
break;
}
else
{
counter_clockwise_turns_needed++;
current_index = current_index - 1;
if(current_index == -1)
{
current_index = 6 -1;
}
}
}
// Figure out which turning direction requires the least amount of
// turns, and return the appropirate turn number
if(turns_needed >= counter_clockwise_turns_needed)
return turns_needed;
else
return -1*counter_clockwise_turns_needed;
}
int main(void)
{
Output_Init();
PLL_Init(Bus80MHz);
ST7735_SetRotation(2);
ST7735_DrawString(0,0, "Spice Rack v3.0", ST7735_YELLOW);
SYSCTL_RCGCGPIO_R |= 0x18; // 1) activate clock for Port FD
while((SYSCTL_PRGPIO_R&0x18)==0){}; // allow time for clock to start
GPIO_PORTD_DEN_R |= 0x0F; // enable digital I/O on PD3-0
GPIO_PORTD_DIR_R &= ~0x0F; // make PD3-0 IN (PD3-0 rows)
GPIO_PORTD_PCTL_R = 0xFFFF0000;
GPIO_PORTD_AMSEL_R = 0; // disable analog functionality on PD
GPIO_PORTD_AFSEL_R = 0; // disable alternate functionality on PD
GPIO_PORTD_PUR_R &= ~0x0F; //enable pullup
char turning = 0;
char sector = 0;
while(true)
{
for(int i = 0; i <=1000000; i++);
// read the column pins
sector = GPIO_PORTD_DATA_R & 0x07;
turning = GPIO_PORTD_DATA_R & 0x08;
// in the case that there is one keypress
// one of the column pins should be
// 0, due to the connection made
// with the grounded row
// in the case that there is a keypress
if(turning && (sector != current_sector))
{
ST7735_DrawString(3,1, "...turning...", ST7735_YELLOW);
int turns_needed = turnsNeeded(sector);
draw_circle(turns_needed > 0 ? (sector + 1) % 6 : (sector - 1) == -1 ? 0 : (sector - 1 ) );
}
else
{
ST7735_DrawString(0,1, " ", ST7735_YELLOW);
draw_circle(sector);
current_sector = sector;
}
// ST7735_DrawString(0,2, " ", ST7735_YELLOW);
}
}