-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtwister.asm
134 lines (120 loc) · 4.86 KB
/
twister.asm
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
twistmain
lda vscnt
cmpa #18
bne skiptwist
clr vscnt
inc sceneval
bra twistend
skiptwist
lda twistflag
cmpa #0
beq dotwister
jsr twistinit
clr twistflag
dotwister
ldy twistindex
leay 1,y
sty twistindex
jsr calctwistaddr
jsr loadtwistseg
ldx twistaddr
cmpx #twistergfxend-16
bne skipadd
ldx #twistergfx
stx twistaddr
skipadd
jsr copytwist
twistend
rts
loadtwistseg
ldx twistaddr
ldy #$400
loadtwistlp
ldd ,x++
std ,y++
cmpy #$410
bne loadtwistlp
ldx twistaddr
rts
calctwistaddr
ldx #twistergfx
ldy twistindex
lda twistsintab,y
calctwistaddrlp1
cmpa #255
bne skipreset
ldy #$0000
sty twistindex
bra calcend
skipreset
deca
leax 16,x
cmpa #0
bne calctwistaddrlp1
stx twistaddr
calcend
rts
copytwist
ldx #$7B0
ldy #$7F0
clr xcnt
clr ycnt
copytwistlp
ldd ,x++
std ,y++
inc xcnt
lda xcnt
cmpa #8
bne copytwistlp
clr xcnt
leax -32,x
leay -32,y
inc ycnt
lda ycnt
cmpa #60
bne copytwistlp
ldx #$400
ldy #$410
clr xcnt
clr ycnt
copytwistlp2
ldd ,x++
std ,y++
inc xcnt
lda xcnt
cmpa #24
bne copytwistlp2
rts
twistergfx
includebin "gfx/twister.bin"
twistergfxend
twistsintab ;sin(i/24)*sin(i/44)
fcb 32,32,32,32,32,32,33,33,33,34,34,35,36,36,37,38,39,39,40,41,42,43,44,45,45,46,47,48,49,50,51,51,52,53
fcb 54,54,55,55,56,56,57,57,57,57,58,58,58,57,57,57,57,56,56,56,55,54,54,53,52,51,50,49,48,47,46,45,44,42
fcb 41,40,39,37,36,35,33,32,32,30,29,28,27,25,24,23,22,21,20,19,18,17,16,15,15,14,14,13,13,12,12,12,12,12
fcb 11,12,12,12,12,12,13,13,14,14,15,15,16,16,17,18,19,19,20,21,22,23,23,24,25,26,27,27,28,29,29,30,31,31
fcb 32,32,32,32,32,32,32,33,33,33,33,32,32,32,32,32,32,32,31,30,30,29,28,28,27,26,25,24,23,22,21,20,19,18
fcb 17,16,15,14,13,12,11,11,10,9,8,7,7,6,5,5,4,4,4,3,3,3,3,3,3,3,3,3,4,4,5,5,6,6,7,8,9,10,11,12,13,14,15
fcb 16,17,18,20,21,22,23,25,26,27,29,30,31,32,32,34,35,36,37,38,39,40,41,42,42,43,44,44,45,45,46,46,46,47
fcb 47,47,47,47,47,46,46,46,45,45,45,44,44,43,42,42,41,40,40,39,38,38,37,36,35,35,34,33,32,32,32,32,31,30
fcb 30,30,29,29,29,28,28,28,28,28,28,28,28,29,29,29,30,30,31,31,32,32,33,33,34,35,36,37,38,39,40,41,42,43
fcb 45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,59,60,61,61,62,62,62,63,63,63,63,63,63,63,63,63,62,62,61
fcb 61,60,60,59,58,57,56,55,54,53,52,51,50,49,48,47,45,44,43,42,41,39,38,37,36,35,34,33,32,32,31,30,29,28
fcb 27,27,26,25,25,24,24,24,23,23,23,23,23,23,23,23,24,24,24,25,25,26,26,27,27,28,28,29,30,31,31,32,32,32
fcb 33,34,35,35,36,37,37,38,38,39,39,40,40,40,41,41,41,41,41,41,41,41,40,40,40,39,39,38,38,37,36,35,35,34
fcb 33,32,32,31,30,29,27,26,25,24,23,22,20,19,18,17,16,14,13,12,11,10,9,8,7,6,5,5,4,3,3,2,2,2,1,1,1,1,1,1
fcb 1,1,1,2,2,3,3,4,4,5,6,7,8,8,9,10,11,12,14,15,16,17,18,19,20,21,22,23,25,26,27,28,29,29,30,31,32,32,32
fcb 33,34,34,35,35,35,36,36,36,36,36,36,36,36,36,35,35,35,34,34,33,33,32,32,32,31,30,30,29,28,28,27,26,25
fcb 25,24,23,22,22,21,21,20,20,19,19,18,18,18,18,17,17,17,17,17,18,18,18,19,19,19,20,21,21,22,23,24,25,26
fcb 27,28,29,30,31,32,32,34,35,36,38,39,40,41,43,44,45,46,48,49,50,51,52,53,54,55,56,57,57,58,59,59,60,60
fcb 61,61,61,61,61,61,61,61,61,61,60,60,59,59,58,58,57,56,55,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41
fcb 40,39,38,38,37,36,35,34,34,33,33,32,32,32,32,32,32,31,31,31,31,31,32,32,32,32,32,32,33,33,34,34,35,36
fcb 36,37,38,39,40,40,41,42,43,44,44,45,46,47,47,48,49,49,50,50,51,51,52,52,52,52,52,52,52,52,52,52,52,51
fcb 51,51,50,49,49,48,47,46,46,45,44,43,41,40,39,38,37,35,34,33,32,31,30,28,27,26,25,23,22,21,20,18,17,16
fcb 15,14,13,12,11,11,10,9,9,8,8,7,7,7,7,6,6,6,7,7,7,7,8,8,8,9,10,10,11,12,12,13,14,15,16,16,17,18,19,20
fcb 21,22,23,24,24,25,26,27,27,28,29,29,30,30,31,31,32,32,32,32,32,32,32,32,32,32,32,32,31,31,30,30,29,29
fcb 28,27,27,26,25,24,23,22,22,21,20,19,18,17,16,15,14,14,13,12,11,11,10,9,9,8,8,8,7,7,7,7,6,6,6,7,7,7,7
fcb 8,8,9,9,10,11,12,12,13,14,15,16,18,19,20,21,22,24,25,26,27,29,30,31,32,33,34,36,37,38,39,41,42,43,44
fcb 45,46,47,47,48,49,50,50,51,51,52,52,52,52,52,53,52,52,52,52,52,51,51,51,50,50,49,48,48,47,46,46,45,44
fcb 43,43,42,41,40,39,39,38,37,36,36,35,34,34,33,33,32,255
twistsintabend