-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTILT.TXT
480 lines (443 loc) · 8.39 KB
/
TILT.TXT
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
NAM TILT
TILTH CLR <LNEWDT
LDA #1
LDB #7
JSR [PCOPY]
CLRA
LDB #2
JSR [PCOPY]
LDA #2
JSR [VIEW]
JSR DOWN
JSR [PUT]
LDA #2
STA <WPAGE
CLRA
JSR [VIEW]
CLR VTILT
JSR [DRWARW]
TILTH1 LDA $FF00
ANDA #1
LBEQ TILTH5
JSR [JOYSTK]
JSR [VALID]
LDX <JOYX
CMPX <AX
BNE A@
LDA <JOYY
CMPA <AY
BEQ TILTH1
A@ JSR [RPLARW]
LDX <JOYX
STX <AX
LDA <JOYY
STA <AY
LDA <WPAGE
EORA #2
STA <WPAGE
JSR [PAGEIN]
JSR [GET]
LDX <JOYX
CMPX <OH1
BLO A@
CMPX <OH2
LBHI B@
JMP TILTH4
A@ CLR TILTF TILT LEFT
LDX <JOYX
STX <LH1
LDD <OH1
SUBD <JOYX
PSHS D
LDD <OH2
SUBD ,S
STD <LH2
LDA <OV1
STA <LV1
STA <LV2
CLRB
JSR [LINE] *TOP
LDA <OV2
STA <LV1
STA <LV2
LDX <OH1
STX <LH1
LDX <OH2
STX <LH2
JSR [LINE] *BOTTOM
LDA <OV1
STA <LV2
LDX <JOYX
STX <LH2
JSR [LINE] *LEFT
LDX <OH2
STX <LH1
LDA <OV2
STA <LV1
LDA <OV1
STA <LV2
LDD <OH2
SUBD ,S++
STD <LH2
CLRB
JSR [LINE]
JMP C@
B@ LDA #$FF *RIGHT
STA TILTF
LDD <JOYX
STD <LH2
SUBD <OH2
ADDD <OH1
STD <LH1
LDA <OV1
STA <LV1
STA <LV2
CLRB
JSR [LINE] *TOP
LDA <OV2
STA <LV1
STA <LV2
LDX <OH1
STX <LH1
LDX <OH2
STX <LH2
JSR [LINE] *BOTTOM
LDX <JOYX
STX <LH1
LDA <OV1
STA <LV1
JSR [LINE] *RIGHT
LDX <OH1
STX <LH1
LDD <JOYX
SUBD <OH2
ADDD <OH1
STD <LH2
LDA <OV1
STA <LV2
CLRB
JSR [LINE]
C@ LDA #$FF
STA VTILT VALID TILT!
TILTH6 LDA <WPAGE
JSR [VIEW]
JSR [DRWARW]
JMP TILTH1
TILTH4 CLR VTILT
LDX <OH1
STX <BH1
LDX <OH2
STX <BH2
LDA <OV1
STA <BV1
LDA <OV2
STA <BV2
CLRB
JSR [BOX]
JMP TILTH6
TILTH5 JSR [RPLARW]
TST VTILT
LBEQ BENDH5
LDX #POINTS
LDD #0
A@ STD ,X++
CMPX #POINTS+384
BLO A@
CLR <LV1
LDA <OYSZE
STA <LV2
LDX #0
STX <LH1
TST TILTF
BNE A@
LDD <OH1 LEFT
SUBD <JOYX
BRA B@
A@ LDD <JOYX RIGHT
SUBD <OH2
B@ STD <LH2
STD RX
LDX #THOOK1
STX LNHK
JSR BILLY
LDA TILTF
COMA
STA <BFLAG2
JSR HSHIFT
COM <BFLAG2
JMP HSHFT2
TILTH9 LDA #7
LDB #1
JSR [PCOPY]
CLRA
LDB #2
JSR [PCOPY]
LDA #2
JSR [VIEW]
CLRA
JSR [PAGEIN]
JSR [GET]
JSR DOWN
CLRA
JSR [VIEW]
JMP [MENU]
VTILT FCB 0 $FF-VALID TILT
TILTF FCB 0 0=LEFT/DOWN
* 255=RIGHT/UP
TILTV CLR <LNEWDT
LDA #1
LDB #7
JSR [PCOPY]
CLRA
LDB #2
JSR [PCOPY]
LDA #2
JSR [VIEW]
JSR DOWN
JSR [PUT]
LDA #2
STA <WPAGE
CLRA
JSR [VIEW]
CLR VTILT
JSR [DRWARW]
TILTV1 LDA $FF00
ANDA #1
LBEQ TILTV5
JSR [JOYSTK]
JSR [VALID]
LDX <JOYX
CMPX <AX
BNE A@
LDA <JOYY
CMPA <AY
BEQ TILTV1
A@ JSR [RPLARW]
LDX <JOYX
STX <AX
LDA <JOYY
STA <AY
LDA <WPAGE
EORA #2
STA <WPAGE
JSR [PAGEIN]
JSR [GET]
LDA <JOYY
CMPA <OV1
BLO A@
CMPA <OV2
LBHI B@
JMP TILTV4
A@ LDA #$FF :::*UP
STA TILTF
LDX <OH1
STX <LH1
STX <LH2
LDA <OV1
STA <LV1
LDA <OV2
STA <LV2
CLRB
JSR [LINE] *LEFT
LDX <OH2
STX <LH1
LDA <JOYY
STA <LV1
JSR [LINE] *TOP
LDX <OH2
STX <LH1
STX <LH2
LDA <JOYY
STA <LV1
LDA <OV1
SUBA <JOYY
PSHS A
LDA <OV2
SUBA ,S+
STA <LV2
JSR [LINE] *RIGHT
LDX <OH1
STX <LH2
LDX <OH2
STX <LH1
LDA <OV2
STA <LV2
JSR [LINE] *BOTTOM
JMP C@
B@ CLR TILTF :::*DOWN
LDX <OH1
STX <LH1
STX <LH2
LDA <OV1
STA <LV1
LDA <OV2
STA <LV2
CLRB
JSR [LINE] *LEFT
LDA <OV2
STA <LV1
LDA <JOYY
STA <LV2
LDX <OH1
STX <LH2
LDX <OH2
STX <LH2
JSR [LINE] *BOTTOM
LDX <OH2
STX <LH1
LDA <JOYY
SUBA <OV2
ADDA <OV1
STA <LV1
JSR [LINE] *RIGHT
STA <LV2
LDA <OV1
STA <LV1
LDX <OH1
STX <LH1
LDX <OH2
STX <LH2
JSR [LINE] *TOP
C@
LDA #$FF
STA VTILT
TILTV6 LDA <WPAGE
JSR [VIEW]
JSR [DRWARW]
JMP TILTV1
TILTV4 CLR VTILT
LDX <OH1
STX <BH1
LDX <OH2
STX <BH2
LDA <OV1
STA <BV1
LDA <OV2
STA <BV2
CLRB
JSR [BOX]
JMP TILTV6
TILTV5 JSR [RPLARW]
TST VTILT
LBEQ TILTH9
LDX #POINTS
LDD #0
A@ STD ,X++
CMPX #POINTS+384
BLO A@
LDX #0
STX <LH1
CLR <LV1
LDD <OH2
SUBD <OH1
ADDD #1
STD <LH2
TST TILTF
BNE A@
LDA <JOYY
SUBA <OV2
BRA B@
A@ LDA <OV1
SUBA <JOYY
B@ STA <LV2
STA RY+1
LDX #THOOK2
STX LNHK
JSR BILLY
LDA TILTF
STA <BFLAG2
JMP VSHIFT
* BARDEN LINE ALGORITHM
* STOLEN FROM RAINBOW, JAN 1987
BILLY LDX <LH1
STX XX
LDA <LV1
STA YY
LDX #LIN101
LDD <LH2
SUBD <LH1
BHS A@
COMA
COMB
ADDD #1
LDX #LIN103
A@ STD MD
LDY #LIN102
LDA <LV2
SUBA <LV1
BHS B@
NEGA
LDY #LIN104
B@ STA ND+1
CLR ND
LDD MD
CMPD ND
BHS C@
EXG X,Y
LDU ND
STD ND
STU MD
C@ LDD MD
STD MC
LSRA
RORB
LDA MD+1
ANDA #1
BEQ D@
CMPX #LIN103
BLO D@
DECB
D@ CLRA
A@ JSR [LNHK]
JSR ,X
ADDD ND
CMPD MD
BLO B@
SUBD MD
JSR ,Y
B@ PSHS D
LDD MC
SUBD #1
STD MC
PULS D
BNE A@
RTS
LIN101 PSHS D
LDD XX
ADDD #1
STD XX
PULS D,PC
LIN102 INC YY
RTS
LIN103 PSHS D
LDD XX
SUBD #1
STD XX
PULS D,PC
LIN104 DEC YY
RTS
YY RMB 1
XX RMB 2
MD RMB 2
ND RMB 2
MC RMB 2
LNHK RMB 2
* TILT LEFT/RIGHT
THOOK1 PSHS D,U
LDU #POINTS
LDA YY
LDB #2
MUL
LEAU D,U
LDD XX
STD ,U
PULS D,U,PC
* TILT UP/DOWN
THOOK2 PSHS D,U
LDU #POINTS
LDD XX
LEAU D,U
LDA YY
STA ,U
PULS D,U,PC
END