-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSound.c
98 lines (77 loc) · 35.9 KB
/
Sound.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
// Sound.c
// Runs on any computer
// Sound assets based off the original Space Invaders
// Import these constants into your SpaceInvaders.c for sounds!
// Jonathan Valvano
// November 17, 2014
#include <stdint.h>
#include "Sound.h"
#include "DAC.h"
#include "../inc/tm4c123gh6pm.h"
#include "Timer1.h"
const uint8_t *sound;
uint32_t num;
uint32_t soundindex;
// const unsigned char shuffle[1042] = {8,8,8,8,8,7,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,7,7,7,7,8,8,8,8,8,8,8,7,7,8,8,8,8,8,7,7,7,8,8,8,7,7,7,8,9,9,8,8,8,8,8,8,9,8,8,7,8,8,8,8,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,6,7,7,7,7,7,8,8,8,8,7,7,7,8,8,8,8,7,7,7,7,7,7,8,8,7,6,7,8,8,8,8,7,7,6,6,7,8,9,8,8,7,7,7,7,8,7,6,5,7,10,10,7,4,4,7,10,10,10,9,7,7,7,8,9,8,6,5,6,7,7,8,7,7,6,6,7,8,8,8,8,8,8,8,8,8,8,7,6,6,7,8,8,8,7,7,7,7,7,8,8,9,8,7,7,8,8,8,7,7,9,7,5,7,10,9,5,4,7,10,10,9,8,7,6,6,7,8,9,8,7,8,8,8,7,7,7,7,8,7,7,8,8,7,6,7,8,7,6,5,7,8,9,9,8,7,6,7,7,8,8,7,5,5,10,12,8,3,2,6,10,11,10,9,7,6,6,8,9,9,7,7,7,8,9,8,7,6,6,7,6,6,7,8,7,7,7,8,8,8,7,7,8,8,9,8,8,8,8,8,8,7,6,6,8,10,10,9,7,7,8,8,8,8,7,7,8,8,8,7,7,7,7,8,8,8,8,7,7,7,8,8,8,8,9,8,7,7,8,8,7,7,8,9,9,8,7,6,7,7,8,7,7,7,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,8,8,8,7,7,7,7,7,6,6,7,7,8,8,8,7,7,7,8,8,7,7,7,7,7,6,6,7,8,8,8,8,8,8,7,8,8,7,7,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,7,8,8,8,8,9,8,8,8,7,7,8,7,8,8,8,8,8,7,7,8,8,8,9,8,8,7,8,8,8,8,8,8,8,8,8,7,7,7,8,8,9,8,8,7,7,8,8,8,8,7,8,8,8,7,7,7,8,8,7,8,8,7,7,7,7,8,8,8,8,7,7,7,8,8,7,8,7,7,7,6,6,6,7,7,7,8,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,7,7,7,7,7,8,8,7,8,8,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,7,7,8,8,8,8,8,8,8,9,8,8,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,7,8,8,8,8,8,7,8,8,8,8,8,8,8,8,7,7,7,7,7,8,8,7,7,7,7,7,8,8,7,8,7,7,8,9,7,6,6,9,9,8,7,7,8,8,7,7,7,7,7,7,7,7,7,7,8,8,8,7,8,8,8,8,7,7,7,8,8,7,7,7,8,8,7,7,7,8,8,7,7,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,7,7,7,6,7,7,8,8,7,7,7,7,7,7,7,8,8,7,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,8,8,7,7,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,8,7,8,8,7,8,8,7,7,7,7,8,8,8,8,8,8,9,8,8,9,8,7,10,10,7,6,8,9,7,7,6,7,7,7,7,7,7,8,7,7,7,8,8,8,8,8,8,8,9,8,9,10,6,4,11,14,6,0,6,11,9,7,6,7,7,7,6,7,7,8,8,7,7,8,8,6,5,7,8,8,8,9,8,8,7,7,8,9,8,7,7,8,8,7,6,7,7,8,7,7,8,8,7,7,7,7,7,7,7,7,7,8,7,7,7,7,7,8,8,8,7,8,8,7,7,7,7,8,8,8,8,8,7,7,7,7,7,8,8,8,8,7,7,8,8,8,8,8,8,8,8,8,7,8,8,8,8,7,7,7,8,8,8,8,8,8,7,8,7,7,8,8,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,7,7,8,7,7,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,8,8};
const unsigned char jump[1103] = {8,9,9,9,9,9,9,6,6,6,6,6,6,9,8,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,7,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,7,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,8,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,8,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,7,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,7,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,8,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,8,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,6,6,6,6,6,7,9,9,9,9,9,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,9,9,9,9,9,7,6,6,6,6,6,9,8,9,9,9,6,6,6,6,6,7,9,9,9,9,9,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,9,8,9,9,9,6,6,6,6,6,7,9,9,9,9,9,6,7,6,6,6,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,6,6,6,6,6,9,9,9,9,9,6,6,6,6,6,6,9,9,9,9,9,6,7,6,6,6,9,8,9,9,9,6,6,6,6,6,6,9,9,9,9,9,6,7,6,6,6,9,8,9,9,9,6,6,6,6,6,9,9,9,9,9,9,6,6,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,6,6,6,6,6,9,9,9,9,9,6,6,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,8,8,9,9,9,7,6,6,6,6,8,9,9,9,8,7,6,6,6,9,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,8,8,9,9,9,7,6,6,6,7,8,9,9,9,6,7,6,6,6,9,8,9,9,9,6,7,6,6,6,8,8,9,9,9,7,6,6,6,9,8,9,9,9,6,7,6,6,6,8,8,9,9,9,7,7,6,6,7,8,9,9,9,6,7,6,6,6,8,8,9,9,9,7,7,6,6,6,8,9,9,9,6,7,6,6,6,8,8,9,9,9,7,7,6,6,8,8,9,9,9,7,7,6,6,6,8,8,9,9,9,7,6,6,6,8,8,9,9,9,7,7,6,6,6,8,9,9,9,7,7,6,6,6,8,8,9,9,9,7,6,6,6,8,8,9,9,9,7,7,6,6,6,8,9,9,9,7,7,6,6,6,8,8,9,9,7,7,6,6,6,8,8,9,9,9,7,6,6,6,8,8,9,9,9,7,7,6,6,8,8,9,9,9,7,7,6,6,6,8,9,9,9,7,7,6,6,6,8};
const unsigned char zap[1200] = {0,15,15,0,0,0,0,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,15,15,15,15,15,0,0,0,0,15,15,15,15,0,0,0,15,15,15,15,0,0,0,15,15,15,0,0,0,15,15,0,0,0,15,15,0,0,0,15,15,0,0,0,15,15,0,0,15,15,15,0,0,15,15,0,0,15,15,0,0,15,15,0,0,15,15,0,0,15,15,0,0,15,15,0,0,15,15,0,0,15,0,0,15,15,0,0,15,0,0,15,15,0,0,15,0,0,15,15,0,15,15,0,0,15,0,0,15,15,0,15,15,0,15,15,0,15,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,15,15,0,15,15,0,15,15,0,15,0,0,15,0,0,15,0,15,15,0,15,0,0,15,0,0,15,0,15,15,0,15,0,0,15,0,15,15,0,15,0,15,15,0,15,0,0,15,0,15,0,0,15,0,15,15,0,15,0,15,15,0,15,0,15,15,0,15,0,15,0,0,15,0,15,0,0,15,0,15,0,15,15,0,15,0,15,0,0,15,0,15,0,15,15,0,15,0,15,0,15,15,0,15,0,15,0,15,0,0,15,0,15,0,15,0,15,15,0,15,0,15,0,15,0,0,15,0,15,0,15,0,15,0,15,15,0,15,0,15,0,15,0,15,0,15,15,0,15,0,15,0,15,0,15,0,15,0,15,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,0,15,0,15,0,15,0,15,0,15,0,15,15,0,15,0,15,0,15,0,15,0,15,0,0,15,0,15,0,15,0,15,0,15,15,0,15,0,15,0,15,0,15,15,0,15,0,15,0,15,0,15,15,0,15,0,15,0,15,0,0,15,0,15,0,15,0,15,15,0,15,0,15,0,15,15,0,15,0,15,0,15,15,0,15,0,15,0,15,15,0,15,0,15,0,15,15,0,15,0,15,0,0,15,0,15,0,15,0,0,15,0,15,0,15,15,0,15,0,15,0,0,15,0,15,0,0,15,0,15,0,15,15,0,15,0,15,0,0,15,0,15,0,0,15,0,15,0,0,15,0,15,0,0,15,0,15,0,0,15,0,15,0,0,15,0,15,0,0,15,0,15,0,0,15,0,15,0,0,15,0,15,0,0,15,0,15,15,0,15,0,15,15,0,15,0,0,15,0,15,0,0,15,0,15,15,0,15,0,0,15,0,15,0,0,15,0,15,15,0,15,0,0,15,0,15,15,0,15,0,0,15,0,15,15,0,15,0,0,15,0,15,15,0,15,0,0,15,0,15,15,0,15,0,0,15,0,15,15,0,15,0,0,15,0,0,15,0,15,15,0,15,0,0,15,0,0,15,0,15,15,0,15,0,0,15,0,0,15,0,15,15,0,15,15,0,15,0,0,15,0,0,15,0,15,15,0,15,15,0,15,15,0,15,0,0,15,0,0,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,15,0,15,15,0,15,15,0,15,15,0,0,15,0,0,15,0,0,15,0,0,15,15,0,15,15,0,15,15,0,0,15,0,0,15,0,0,15,15,0,15,15,0,0,15,0,0,15,0,0,15,15,0,15,15,0,0,15,0,0,15,0,0,15,15,0,15,15,0,0,15,0,0,15,15,0,15,15,0,0,15,0,0,15,15,0,15,15,0,0,15,0,0,15,15,0,15,15,0,0,15,0,0,15,15,0,0,15,0,0,15,15,0,15,15,0,0,15,0,0,15,15,0,0,15,0,0,15,15,0,0,15,0,0,15,15,0,15,15,0,0,15,15,0,15,15,0,0,15,15,0,0,15,0,0,15,15,0,0,15,0,0,15,15,0,0,15,15,0,15,15,0,0,15,15,0,15,15,0,0,15,15,0,0,15,0,0,15,15,0,0,15,15,0,0,15,0,0,15,15,0,0,15,15,0,0,15,0,0,15,15,0,0,15,15,0,0,15,15,0,15,15,0,0,15,15,0,0,15,15,0,0,15,15,0,15,15,0,0,15,15,0,0,15,15,0,0,15,15,0,0,15,15,0,15,15,0,0,15,15,0,0,15,15,0,0,15,15,0,0,15,15,0,0,15,15,0,0,15,15,0,0,15,15,0,0,15,0,0,15,15,0,0,15,15,0,0,15,15,0};
const unsigned char explosion[2205] = {8,2,2,2,4,4,4,5,5,5,6,12,12,12,3,3,3,9,9,9,9,2,2,2,6,6,6,6,7,7,7,8,9,9,9,11,11,11,11,13,13,13,13,12,12,12,2,2,2,2,12,12,12,12,11,11,11,11,13,13,13,13,5,5,5,5,11,11,11,11,9,9,9,9,11,11,11,11,3,3,3,3,12,12,12,12,12,5,5,5,5,2,2,2,2,3,3,3,3,3,12,12,12,12,12,12,12,12,12,2,2,2,2,2,13,13,13,13,13,13,13,13,13,13,9,9,9,9,6,4,4,4,4,2,2,2,2,3,3,3,3,6,6,6,6,3,3,3,3,5,5,5,5,6,9,9,9,9,3,3,3,3,2,2,2,2,2,6,6,6,6,9,9,9,9,9,13,13,13,13,13,13,13,13,13,5,2,2,2,2,13,13,13,13,13,13,13,13,13,13,3,3,3,3,3,10,10,10,10,10,4,2,2,2,2,2,2,2,2,2,2,11,11,11,11,11,11,5,5,5,5,5,13,13,13,13,13,13,5,5,5,5,5,5,3,3,3,3,3,3,5,5,5,5,5,5,2,2,2,2,2,2,12,12,12,12,12,12,3,2,2,2,2,2,2,11,11,11,11,11,11,12,12,12,12,12,12,12,4,4,4,4,4,4,4,4,4,4,4,4,4,11,11,11,11,11,12,12,12,12,12,4,4,4,4,4,4,12,12,12,12,12,11,9,9,9,9,9,3,3,3,3,3,3,6,6,6,6,6,6,4,4,4,4,4,4,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,5,5,5,5,5,5,5,3,3,3,3,3,3,3,12,12,12,12,12,12,11,4,4,4,4,4,4,4,6,6,6,6,6,6,6,2,2,2,11,11,11,9,9,9,9,2,2,2,12,12,12,12,13,13,13,11,11,11,4,3,3,3,4,4,4,5,9,9,9,8,8,8,8,5,5,5,4,2,2,2,4,4,4,4,5,5,5,5,13,13,13,13,5,5,5,5,12,12,12,12,2,2,2,2,9,9,9,9,12,12,12,12,3,3,3,3,9,12,12,12,12,5,5,5,5,13,13,13,13,13,11,11,11,11,12,12,12,12,12,3,3,3,3,2,2,2,2,2,9,9,9,9,9,2,2,2,2,2,13,13,13,13,13,11,11,11,11,12,12,12,12,13,13,13,13,2,2,2,2,3,3,3,3,11,11,11,11,11,12,12,12,12,4,4,4,4,3,3,3,3,3,12,12,12,12,12,11,11,11,11,12,12,12,12,12,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,5,5,5,5,4,3,3,3,3,3,11,11,11,11,11,6,6,6,6,6,10,10,10,10,10,10,3,3,3,3,3,10,12,12,12,12,12,13,13,13,13,13,13,3,3,3,3,3,3,7,7,7,7,7,7,9,9,9,9,9,9,3,3,3,3,3,3,10,13,13,13,13,13,13,4,4,4,4,4,4,4,5,5,5,5,5,5,4,3,3,3,3,3,3,11,13,13,13,13,13,4,4,4,4,4,12,12,12,12,12,12,12,12,12,12,12,2,2,2,2,2,2,13,13,13,13,13,10,5,5,5,5,5,3,3,3,3,3,3,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,9,9,9,9,9,9,9,11,11,11,11,11,11,11,12,12,12,12,12,12,12,11,11,11,11,11,11,11,10,10,10,2,2,2,5,12,12,12,13,13,13,6,6,6,6,11,11,11,4,4,4,4,13,13,13,4,4,4,4,12,12,12,11,11,11,11,11,11,11,11,6,6,6,5,5,5,5,12,12,12,12,6,6,6,6,4,4,4,4,12,12,12,12,12,12,12,12,2,2,2,2,3,3,3,3,2,2,2,2,2,3,3,3,3,3,3,3,3,6,6,6,6,6,2,2,2,2,6,6,6,6,6,9,9,9,9,3,2,2,2,2,7,7,7,7,7,12,12,12,12,12,11,11,11,11,11,12,12,12,12,3,3,3,3,3,3,3,3,7,7,7,7,2,2,2,2,3,3,3,3,3,11,11,11,11,8,8,8,8,11,12,12,12,12,12,12,12,12,12,13,13,13,13,10,10,10,10,10,10,10,10,10,9,2,2,2,2,4,6,6,6,6,10,11,11,11,11,10,10,10,10,10,9,9,9,9,9,9,7,7,7,7,7,5,5,5,5,5,7,7,7,7,7,7,4,4,4,4,4,3,2,2,2,2,2,12,12,12,12,12,12,3,3,3,3,3,3,8,8,8,8,8,8,11,11,11,11,11,11,5,5,5,5,5,5,11,12,12,12,12,12,12,3,3,3,3,3,3,3,3,3,3,3,3,3,10,11,11,11,11,11,11,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,5,12,12,12,12,12,12,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,3,3,3,3,3,3,12,12,12,12,12,12,3,3,3,3,3,3,9,9,9,9,9,9,9,12,12,12,12,12,12,2,2,2,2,2,2,2,4,4,4,4,4,4,6,13,13,13,13,13,13,7,2,2,2,2,2,2,3,6,6,6,6,6,6,6,6,2,2,5,5,5,3,3,3,3,5,5,5,3,3,3,3,3,3,3,5,5,5,4,4,4,4,6,6,6,5,3,3,3,11,11,11,11,10,10,10,10,9,9,9,4,4,4,4,13,13,13,13,5,5,5,5,4,4,4,4,12,12,12,12,12,12,12,12,11,11,11,11,3,3,3,3,12,12,12,12,11,10,10,10,10,10,10,10,10,2,2,2,2,11,12,12,12,12,11,11,11,11,4,2,2,2,2,12,12,12,12,12,10,10,10,10,10,11,11,11,11,12,12,12,12,12,11,10,10,10,11,11,11,11,11,12,12,12,12,12,12,12,12,9,9,9,9,10,10,10,10,4,4,4,4,4,11,11,11,11,4,4,4,4,4,11,11,11,11,3,3,3,3,3,4,4,4,4,10,12,12,12,12,5,5,5,5,5,9,9,9,9,9,11,11,11,11,11,3,3,3,3,3,12,12,12,12,12,3,3,3,3,3,4,4,4,4,4,4,6,6,6,6,6,8,9,9,9,9,9,12,12,12,12,12,12,11,11,11,11,11,10,10,10,10,10,10,12,12,12,12,12,12,12,11,11,11,11,11,10,2,3,3,3,3,3,12,12,12,12,12,12,8,5,5,5,5,5,5,11,11,11,11,11,11,11,5,5,5,5,5,5,5,12,12,12,12,12,7,7,7,7,7,5,5,5,5,5,5,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,4,3,3,3,3,3,11,12,12,12,12,12,11,9,9,9,9,9,9,10,10,10,10,10,10,11,11,11,11,11,11,12,12,12,12,12,12,12,3,3,3,3,3,3,3,12,12,12,12,12,12,12,10,10,10,10,10,10,10,12,12,12,12,12,12,12,8,8,3,4,6,6,6,3,3,3,11,11,11,7,4,4,4,3,3,3,4,4,4,4,3,3,3,11,12,12,12,10,10,10,8,3,3,3,5,5,5,5,11,11,11,11,12,12,12,9,5,5,5,7,7,7,7,11,11,11,11,12,12,12,12,3,3,3,3,5,5,5,5,5,5,5,5,3,3,3,3,3,12,12,12,12,5,5,5,5,11,11,11,11,11,12,12,12,12,12,12,12,12,12,5,5,5,5,12,12,12,12,12,12,12,12,12,12,5,5,5,5,5,11,11,11,11,11,4,4,4,4,7,7,7,7,5,5,5,5,11,11,11,11,6,6,6,6,6,6,6,6,4,3,3,3,3,11,11,11,11,3,3,3,3,3,3,3,3,3,11,11,11,11,11,11,11,11,11,9,4,4,4,4,11,11,11,11,11,11,11,11,11,11,5,5,5,5,5,10,10,10,10,10,12,12,12,12,12,4,4,4,4,4,5,5,5,5,5,5,11,11,11,11,11,4,4,4,4,4,4,4,4,4,4,4,6,10,10,10,10,10,11,11,11,11,11,11,12,12,12,12,12,12,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,11,11,11,11,11,11,11,9,9,9,9,9,9,10,11,11,11,11,11,11,9,6,6,6,6,6,4,4,4,4,4,11,11,11,11,11,12,12,12,12,12,12,5,5,5,5,5,4,3,3,3,3,3,5,5,5,5,5,5,10,10,10,10,10,10,4,4,4,4,4,4,11,11,11,11,11,11,12,12,12,12,12,12,7,3,3,3,3,3,3,4,4,4,4,4,4,4,6,6,6,6,6,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,6,7,7,7,7,11,11,10,9,9,9,6,6,6,6,6,6,5,3,3,3,11,11,11,10,6,6,6,11,11,11,11,12,12,12,9,9,9,9,4,4,4,6,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,5,5,5,5,11,11,11,10,9,9,9,9,10,10,10,10,12,12,12,12,4,4,4,4,5,5,5,5,3,3,3,3,3,10,10,10,10,6,6,6,6,4,3,3,3,3,6,6,6,6,6,10,10,10,10,4,4,4,4,4,3,3,3,3,3,12,12,12,12,12,9,9,9,9,12,12,12,12,11,11,11,11,4,4,4,4,11,11,11,11,11,11,11,11,11,10,10,10,10,8,8,8,8,6,6,6,6,6,6,6,6,6,11,11,11,11,11,4,4,4,4,4,4,4,4,4,10,10,10,10,10,5,5,5,5,5,5,5,5,5,5,10,10,10,10,10,12,12,12,12,12,4,4,4};
const unsigned char landing[2205] = {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,8,8,8,8,7,8,8,8,7,8,8,7,7,8,8,8,8,7,8,8,8,8,8,7,7,8,8,8,8,8,8,7,7,8,7,7,8,7,7,7,8,7,7,7,7,7,8,7,8,7,8,7,8,7,7,7,7,7,7,7,7,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,8,7,7,7,8,8,7,7,8,7,7,8,8,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,7,7,8,7,7,7,7,7,7,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,6,6,9,8,6,6,7,6,7,7,7,7,7,7,7,7,7,6,6,7,7,7,7,7,7,6,7,8,8,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,7,8,8,8,8,7,8,8,7,8,8,7,7,7,7,7,7,7,7,8,7,7,7,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,7,7,7,8,8,7,7,7,7,7,7,7,7,8,7,7,7,6,6,5,6,6,6,6,5,5,6,6,6,5,6,6,6,7,7,7,7,7,7,7,7,7,6,7,8,7,7,7,7,7,8,8,7,7,7,7,7,7,7,6,6,6,6,7,8,7,6,6,6,6,7,7,7,7,6,7,6,6,6,6,7,6,6,6,7,7,7,6,7,7,7,7,8,7,7,7,7,7,8,8,8,7,8,7,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,8,8,8,8,8,8,8,8,8,7,7,7,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,8,9,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,7,7,8,8,8,8,8,8,8,9,8,7,8,8,8,8,7,8,7,7,7,7,8,8,8,8,8,8,7,7,8,7,8,7,8,8,8,8,8,7,7,7,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,8,9,8,8,9,8,8,8,8,9,8,9,9,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,7,8,8,8,8,8,8,9,8,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,8,9,9,8,8,9,9,8,9,9,8,9,8,9,9,9,8,9,8,9,8,9,8,9,9,9,9,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,10,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,8,8,8,8,8,8,11,8,9,11,8,9,10,10,11,12,12,12,13,12,13,13,14,13,13,14,14,14,14,14,15,14,14,14,14,14,14,14,14,13,14,14,13,14,14,13,13,13,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,12,12,13,13,12,13,13,13,13,13,13,13,13,13,12,13,13,13,13,12,12,12,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,9,10,9,9,9,9,9,9,9,9,9,7,8,9,8,8,7,8,7,7,7,7,7,7,7,7,7,6,6,7,7,7,7,7,7,7,8,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,8,7,7,8,7,7,7,7,7,7,6,6,5,6,7,5,5,6,5,5,5,5,5,5,5,5,4,5,5,4,5,5,5,4,5,5,5,5,4,4,4,5,5,5,5,5,5,5,4,4,5,4,4,4,5,6,3,3,5,4,4,3,4,4,4,5,4,4,5,4,4,4,4,3,3,3,3,3,2,2,2,2,2,2,2,2,2,1,2,2,1,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,2,3,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,2,3,3,3,3,4,4,4,4,5,4,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,5,5,5,5,5,5,4,4,4,4,4,5,5,4,5,5,5,5,5,5,5,5,6,5,6,6,6,6,6,6,7,6,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,9,9,9,8,9,9,9,9,8,8,8,8,8,8,8,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,10,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,7,6,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,6,7,7,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,8,7,7,7,7,7,7,7,7,7,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8};
const unsigned char gameover[4800] = {6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,8,6,6,6,6,6,6,7,9,9,9,9,9,9,7,6,6,6,6,6,6,8,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,7,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,7,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,7,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,6,6,6,6,6,6,6,7,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,6,6,6,6,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8};
const unsigned char countdown[3859] = {8,8,8,7,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,7,8,7,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,7,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,7,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,7,7,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,8,8,8,8,7,8,8,8,8,8,8,8,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,7,8,8,7,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,8,8,8,7,8,8,8,8,8,8,8,7,8,8,7,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,7,8,8,8,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,7,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,7,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,7,7,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,7,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,7,8,7,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,8,7,7,7,7,8,8,7,7,7,9,8,7,7,7,9,8,7,7,8,9,8,6,6,8,10,8,6,6,8,10,8,6,6,8,10,8,5,5,8,11,8,5,5,8,11,8,5,5,9,11,8,4,5,9,12,7,4,6,9,12,7,4,6,9,12,7,3,6,10,12,7,3,6,10,12,7,3,6,10,12,6,3,6,10,12,6,3,6,10,12,6,3,6,11,12,6,3,6,11,12,6,3,6,11,12,6,3,7,11,12,5,3,7,11,12,5,3,7,11,12,5,3,7,11,12,5,3,7,12,11,5,3,7,12,11,4,3,7,12,11,4,3,8,12,11,4,3,8,12,11,4,3,8,12,11,4,3,8,12,11,4,3,8,12,11,4,3,8,12,10,4,3,8,12,10,3,4,8,12,10,3,4,8,12,10,3,4,8,12,10,3,4,9,12,10,3,4,9,12,10,3,4,9,12,10,3,4,9,12,10,3,4,9,12,9,3,4,9,12,9,3,4,9,12,9,3,4,9,12,9,3,4,9,12,9,3,4,9,12,9,3,4,9,12,9,3,4,9,12,9,3,5,9,12,9,3,5,9,12,9,3,5,9,12,8,2,5,9,13,8,2,5,9,13,8,2,5,10,13,8,2,5,10,13,8,2,5,10,13,8,2,5,10,13,8,2,5,10,13,8,2,5,10,12,7,2,6,10,12,7,2,6,10,12,7,2,6,10,12,7,2,6,11,11,7,2,6,11,11,6,3,7,11,11,6,3,7,11,10,6,3,7,11,10,5,4,8,11,10,5,4,8,11,9,5,4,9,11,9,5,5,9,10,8,5,5,9,10,8,5,6,9,10,7,5,6,9,10,7,5,7,9,9,7,5,7,9,9,7,6,8,9,9,7,6,8,9,8,7,6,8,9,8,7,6,8,9,8,7,6,8,8,8,7,7,8,8,7,7,7,8,8,7,7,7,8,8,7,7,7,8,8,7,7,7,8,7,7,7,8,8,7,7,7,8,8,7,7,7,8,8,7,7,7,8,8,7,7,7,8,8,7,7,7,8,8,7,7,7,8,8,7,7,7,8,8,7,7,7,8,8,7,7,8,8,8,7,7,8,8,8,7,7,8,8,8,7,8,8,8,8,7,8,8,8,8,7,8,8,8,8,7,8,8,8,7,7,8,8,7,7,7,8,8,7,7,7,8,8,7,7,7,8,8,7,7,7,8,7,7,7,7,8,7,7,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,8,8,7,7,7,8,8,7,8,7,7,7,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,7,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,7,8,8,8,7,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,7,7,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,8,8,8,8,8,8,8,8,8,8,7,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,7,8,8,8,7,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,7,8,8,8,7,7,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,7,8,8,8,7,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,7,8,7,8,7,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,7,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,7,7,8,8,8,7,8,8,8,8,8,8,8,8,8,7,8,8,7,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8};
void Sound_Init(void){
DAC_Init();
NVIC_ST_CTRL_R = 0; // disable SysTick
NVIC_ST_RELOAD_R = 7273; // reload
NVIC_ST_CURRENT_R = 0; // clear current time
NVIC_ST_CTRL_R = 0x2; // enable interrupt
}
void SysTick_Handler(void){
DAC_Out(*(sound+soundindex));
soundindex++;
if(soundindex == num){
NVIC_ST_CTRL_R = 2; // disable SysTick
}
}
//void Sound_Shuffle(void){
// soundindex=0;
// sound = &shuffle[0];
// num = 1042;
// NVIC_ST_CTRL_R = 0x7; // enable interrupt
//};
void Sound_Jump(void){
soundindex=0;
sound = &jump[0];
num = 1103;
NVIC_ST_CTRL_R = 0x7; // enable interrupt
};
void Sound_Explosion(void){
soundindex=0;
sound = &explosion[0];
num = 2205;
NVIC_ST_CTRL_R = 0x7; // enable interrupt
};
void Sound_Zap(void){
soundindex=0;
sound = &zap[0];
num = 1200;
NVIC_ST_CTRL_R = 0x7; // enable interrupt
};
void Sound_Landing(void){
soundindex=0;
sound = &landing[0];
num = 2205;
NVIC_ST_CTRL_R = 0x7; // enable interrupt
};
void Sound_Gameover(void){
soundindex=0;
sound = &gameover[0];
num = 4800;
NVIC_ST_CTRL_R = 0x7; // enable interrupt
};
void Sound_Countdown(void){
soundindex=0;
sound = &countdown[0];
num = 3859;
NVIC_ST_CTRL_R = 0x7; // enable interrupt
};