forked from trekawek/lkavalon-atari
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathW.ASM
592 lines (532 loc) · 7.67 KB
/
W.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
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
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
* bronie
icl 'd1/JOINT.ASM'
opt h+
org weap
jmp wea1
jmp clrwea
jmp shoo
jmp putmi
*******************
mismov equ * ;** ruch pociskow
lda #7
sta mnum
msm1 ldx mnum
lda miac,x
beq nomi
jsr movmis
jsr tstmis
beq nomi
jsr dspmis
nomi dec mnum
bpl msm1
rts
tstmis equ * ;** moze leciec?
ldx mnum
lda mipx,x
bmi tmiw
lsr @
lsr @
lsr @
sta hlp
lda mipy,x
asl @
bmi tmiw
and #$70
clc
adc hlp
tay
lda cavb,y
and #$7f
tay
lda stat,y
and #$0f
cmp #3
bcs tmiw
lda #1
rts
tmiw lda #0
sta miac,x
rts
movmis equ *
ldx mnum
clc
ldy miac,x
beq mmix
cpy #1
beq mov1
cpy #7
beq mov1
lda mipx,x
adc direct-2,y
sta mipx,x
clc
lda mipy,x
adc direct-2+5,y
sta mipy,x
mmix rts
mov1 iny
cpy #2
beq *+4
ldy #$fe
clc
tya
adc mipx,x
sta mipx,x
ldy micn,x
inc micn,x
cpy <mdytln
bcc *+4
ldy <mdytln
lda mdytab,y
adc mipy,x
sta mipy,x
rts
mov2 lsr @
clc
adc mipy,x
sta mipy,x
rts
dspmis equ *
ldx mnum
lda mipy,x
asl @
asl @
and #$e0
sta scra
lda mipx,x
lsr @
lsr @
clc
adc scra
sta scra
tay
lda (scrn),y
and #$7f
jsr charad
clc
lda mnum
adc #$18 ;-poz w gen
asl @
asl @
asl @
sta addr
lda >font+$200
sta addr+1
ldx #1
ldy #7
mcpc lda (chad),y
sta (addr),y
dey
bpl mcpc
clc
lda >$400
adc addr+1
sta addr+1
clc
lda >$400
adc chad+1
sta chad+1
dex
bpl mcpc-2
ldx mnum
lda mipy,x
and #7
ldy >font+$600
cmp #4
bcs *+4
ldy >font+$200
sty addr+1
lda mipy,x
and #3
asl @
tay
lda mipx,x
and #3
tax
lda mcmsk,x
pha
and (addr),y
ora mdmsk,x
sta (addr),y
iny
pla
and (addr),y
ora mdmsk,x
sta (addr),y
ldy scra
clc
lda mnum
adc #$d8
sta (scrn),y
rts
putmi equ * ;we: X,Y A-kier
sta hlp+1
stx hlp ;7 1
ldx #255 ; ╲ ╱
sefm inx ;6─█─2
cpx #8 ; ╱|╲
bcs pmix ;5 4 3
lda miac,x
bne sefm
lda hlp
sta mipx,x
tya
sta mipy,x
lda hlp+1
sta miac,x
lda #0
sta micn,x
stx mnum
jsr tstmis
beq pmix
lda #$09
jsr sound
lda #cadi ;•••
bpl pmix ;•••
lda rnd ;•••
and #$1f ;•••
bne pmix ;•••
lda #0 ;•••
ora bomb ;•••
beq pmix ;•••
sta bomb ;•••
lda >ebuf1 ;•••
sta scrn+1 ;•••
pmix rts
mcmsk dta c'?',B($CF),B($F3),B($FC)
mdmsk dta B($C0),c'0',B($0C),B($03)
direct dta d'"" ',B($FE),B($FE)
dta d' """ '
mdytab dta B($FE),B($FE),B($FF),B($FF),B($FF),B($FF),B($FF),d' !!!!!!"""###$'
mdytln equ *-mdytab-1
mipx dta d' '
mipy dta d' '
miac dta d' '
micn dta d' '
********************
wea1 jsr gran
jsr gclr
jsr gdis
lda gy
sta gy+1
ldx gx
dex
dex
dex
stx ppos+2
stx ppos+3
jsr mclr
jsr miss
jsr mdsp
jmp mismov
********************
* ruch granata *****
gran equ *
ldx #0
lda gx
cmp #2
bcc gout
cmp #$7d
bcs gout
lda gy
cmp #$a0
bcc grac
gout lda #0
sta gact
rts
grac lda gact
cmp #1
beq grau
cmp #2
beq grad
lda cntr
lsr @
bcs grax
lda gshp
bne *+10 ;** wyb gran
jsr expltrp
lda #$01
jsr sound
inc gshp
lda gshp
cmp #6
bcs *+3
rts
lda #0
sta gact
lda #out
sta gx
grax rts
grau equ * ;** gra gora
lda #$ff
sta hlp+1
jsr grmo
bcc *+3
rts
dec gact+1
beq *+3
rts
lda #2
sta gact
rts
grad equ * ;** gra dol
lda #$01
sta hlp+1
jsr grmo
bcs *+4
inc gact+1
rts
grmo lda gact+1
lsr @
tay
iny
gmo1 clc
lda gy
adc hlp+1
sta gy
tya
pha
ldx gx
ldy gy
jsr test
tax
pla
tay
lda gy
and #15
bne gmoc
sec
lda gact
sbc #1
asl @
eor #2
sta hlp
txa
sec
sbc hlp
bmi gmoc
cmp #2
bcs grbl
gmoc dey
bne gmo1
gmo2 clc
lda gx
adc gdx
clc
adc gdx
sta gx
clc
ldx gx
ldy gy
jsr test
cmp #4
bcs *+4
clc
rts
grbl lda #3
sta gact
sec
rts
gclr sec
lda gy+1
sbc #8
tax
ldy #15
lda #0
sta plr2,x
sta plr3,x
inx
dey
bpl *-8
rts
gdis lda gact
bne *+3
rts
sec
lda gy
sbc #8
tax
ldy gshp
lda gshtab,y
jsr plradr
ldy #0
gdi1 lda (addr),y
sta plr2,x
lda (scra),y
sta plr3,x
inx
iny
cpy #16
bcc gdi1
rts
expltrp equ * ;** wybuchnij pulapki
ldx gx
dex
dex
dex
ldy gy
dey
jsr ext1
ldx gx
inx
inx
inx
ldy gy
dey
ext1 jsr test
lda stat,x
ldx cavb,y
and #$f0
cmp #$10 ;-las
bne *+4
ldx #$27
cmp #$90
beq emin
cmp #$a0
beq emin
cmp #$50 ;-min
bne *+4
emin ldx #$26
txa
cmp cavb,y
beq *+7
lda #$25
jsr addsco
txa
sta cavb,y
ldx #0
stx exac
stx exac+1
rts
* ruch pociskuw ****
miss lda #3
sta hlp+1
mis1 ldx hlp+1
lda mdx,x
beq mis2
lda mx,x
cmp #$04
bcc *+6
cmp #$7d
bcc *+10
lda #out
sta mx,x
lda #0
sta mdx,x
ldy my,x
tax
beq *+5
jsr test
cmp #4
bcc *+5
jsr traf
ldx hlp+1
lda mdx,x
adc mx,x
sta mx,x
mis2 dec hlp+1
bpl mis1
ldx #3
lda mx,x
sta mpos,x
dex
bpl *-6
rts
* strzal
bomb dta b($00),b($9b) ;•••
shoo equ *
lda #2
sta nrvt
sta addr+1 ;•••
lda cntr ;••• pod $240
and #$40 ;••• musi byc $9b
beq ssss ;•••
sta addr ;•••
ldy #0 ;•••
lda (addr),y ;•••
cmp bomb+1 ;•••
beq ssss ;•••
dec bomb ;•••
ssss lda ammo
beq miex
lda hact
cmp #lifuac
bcs miex
ldx #3
stx mdis
serm lda mdx,x
beq *+7
dex
bpl serm
bmi miex
ldy hshp
cpy #bkshp
bcs miex
lda hx
cpy #ltshp
beq *+5
clc
adc #7
sta mx,x
clc
lda hy
adc #12
cmp #$20
bcc miex
sta my,x
lda #$04
cpy #ltshp
bne *+4
lda #$fc
sta mdx,x
dec ammo
lda #$08
jmp sound
miex rts
traf ldx hlp+1
lda #0
sta mdx,x
lda #out
sta mx,x
rts
mclr lda #$00
ldx #3
mcld ldy my,x
sta plr4,y
dex
bpl mcld
rts
mdsp ldx #3
lda #%11000000
sta hlp
mds1 lda mdx,x
beq mds2
lda hlp
ldy my,x
ora plr4,y
sta plr4,y
mds2 lsr hlp
lsr hlp
dex
bpl mds1
rts
********************
clrwea equ *
jsr gclr
lda #0
sta gact
ldx #3
lda #0
sta mdx,x
lda #out
sta mpos,x
dex
bpl *-10
ldx #7
lda #0
sta miac,x
dex
bpl *-4
rts
gshtab dta b($3a),b($3c),b($3e),b($3b),b($3d),b($3f)
end weap