By Bob Cockcroft |
Air Attack is an assembly language program for two players. One player controls the movement and bombs for the plane, and the other player, the ship. The object of the game is simple. The plane bombs the ship, and the ship shoots at the plane. To avoid being hit, the plane can move left or right, and up and down. The ship can only move left and right, but can fire in three directions: Up, Left, and Right.
Each player has his or her own advantages and disadvantages. The plane is able to fly up and down, making it more difficult for the ship to shoot it. The boat, on the other hand, can fire three shots to the plane's one. This makes it easier for the boat to shoot down the plane. To destroy the plane, the boat must hit it directly in the center. The same goes for the plane. This makes it a little more difficult.
When a player is hit he blows up, and a point is added to the other person's score. There is no set limit, so play as long as you want. To pause the game, simply press the spacebar once, and the game will stop. To restart it, press any key.
This game, written on the Synassembler, requires 48K and two joysticks. It uses player/missile graphics to create the boat and plane. For the background, character graphics written in BASIC are used.
This game can be acquired by sending $3.00 and a blank disk or cassette to:
ROM MAGAZINE
P.O. BOX 252
Maple Ridge, B.C.
V2X 7G1
CANADA
BASIC LISTING
P.O. BOX 252
Maple Ridge, B.C.
V2X 7G1
CANADA
BASIC LISTING
1 REM ****************************
2 REM * AIR ATTACK *
5 REM * 48K *
7 REM ****************************
10 P5=0:55=0
15 POSITION 10,10:? :loading data (1 min)"
20 FOR X=9 TO 2086
25 READ D
30 POKE 34000+X,D
40 NEXT X
82 ROMSET=57344:RAMT=PEEK(106)-4
84 NSET=RAMT*256
85 POKE 106,PEEK(106)-5:GRAPHICS 0
86 POKE 752,1:POSITION 13,10:? "loading data"
87 FOR L=1 TO 1024:POKE NSET+L-1,PEEK(ROMSET+L-1):NEXT L
90 FOR L1=1 TO 7
92 READ LOC
94 SET=NSET*LOCIF8
95 FOR L2=0 TO 7:READ D
96 POKE SET+L2,D
97 NEXT L2
98 NEXT L1
99 POKE 756,NSET/256
110 DL=PEEK(560)+256*PEEK(561)
120 REM * LOAD INTERRUPT ROUTINE *
130 POKE DL+23,2+128:REM * IR MODE BYTE+128 *
140 FOR X=0 TO 14
150 READ D
160 POKE 1770+X,D
170 NEXT X
180 REM * INTERRUPT ROUTINE *
210 REM " SET INTERRUPT POINTERS *
220 POKE 512,234:POKE 513,6
230 REM * ALLOW INTERRUPT *
240 POKE 54286,192
500 POSITION 30,18
505 POKE 752,1
510 ? "!#$%##$#$#$"
520 POSITION 13,10
530 ? " "
540 POSITION 15,18
550 ? "!#$#$##$%"
560 POSITION 0,18
570 ? "#$%$$#$$#%%$%"
600 POSITION 2,2
610 ? " "
620 ? " "
630 ? " "
640 ? " "
650 POSITION 34,2
660 ? " "
665 POSITION 34,3
670 ? " "
675 POSITION 34,4
680 ? " "
685 POSITION 34,5
690 ? " "
700 POSITION 18,7
710 ? "Plane Score: "
720 POSITION 10,8
730 ? "Ship Score : "
900 POSITION 23,7:7 PS
910 POSITION 23,8:? SS
1000 X=USR(34000)
1005 POKE 77,0
1010 SETCOLOR 2,11,2
1020 PS=PS+PEEK(1577)
1025 SS=SS+PEEK(1576)
1030 GOTO 900
20000 DATA 104,169,147,141,2,219,169,131,141,3,210,169,62,141,47,2,169,80,141,192,2,169,80,141
20005 DATA 193,2,169,15,141,194,2,169,60,141,195,2,169,64,141,7,212,169,3,141,29,208,169,1
20010 DATA 141,39,298,162,0,169,0,157,0,68,157,9,69,157,9,79,157,0,71,157,0,67,232,224
20015 DATA 255,208,236,169,129,141,8,6,24,105,8,141,9,6,173,8,6,141,0,208,173,9,6,141
20020 DATA 1,208,162,0,189,178,140,157,192,68,232,224,5,208,245,162,8,189,183,140,157,192,69,232
20025 DATA 224,5,288,245,169,220,141,10,6,169,130,141,2,6,170,160,0,185,198,140,157,0,70,200
20030 DATA 232,192,6,208,244,173,18,6,141,2,208,169,1,141,18,6,141,37,6,169,7,141,16,6
20035 DATA 169,50,141,19,6,169,10,141,20,6.169,141,39,6,141,40,6,141,41,6,141,26,6
20040 DATA 141,27,6,141,28,6,141,29,6,141,32,6,141,34,6,141,35,6,141,36,6,141,38, 6
20045 DATA 238,22,6,173,22,6,201,50,240,3,76,13,134,169,9,141,22,6,173,132,2,201,0,208
20050 DATA 3,76,10,134,173,120,2,291,11,240,7,281,7,248,31,76,10,134,173,8,6,201,50,240
20055 DATA 18,206,8,6,173,8,6,141,0,208,206,9,6,173,9,6,141,1,298,76,10,134,173,8
20060 DATA 6,201,190,240,18,238,8,6,173,8,6,141,0,208,236,9,6,173,9,6,141,1,208,76
20065 DATA 10,134,76,13,134,173,34,6,281,0,240,3,76,99,135,238,21,6,173,21,6,205,20,6
20070 DATA 240,3,76,99,135,169,9,141,21,6,173,121,2,201,15,240,3,141,16,6,201,11,288,3
20075 DATA 76,100,134,201,7,268,3,76,129,134,281,14,2e8,3,76,162,134,201,19,208,3,76,162,134
20080 DATA 201,6,208,3,76,162,134,291,15,240,3,76,193,134,173,16,6,76,224,134,174,20,6,224
20085 DATA 255,240,19,173,39,6,201,0,240,8,224,10,240,1,282,76,123,134,232,142,20,6,76,224
20090 DATA 134,174,20,6,224,1,240,246,173,39,6,201,0,240,8,224,250,240,1,232,76,156,134,224
20095 DATA 16,248,1,2•2,142,20,6,76,224,134,174,2,6,224,58,240,4,202,142,2,6,173,16,6
20100 DATA 281,10,208,3,76,100,134,201,6,208,3,76,129,134,76,224,134,174,2,6,224,175,240,4
20105 DATA 232,142,2,6,173,16,6,281,9,208,3,76,100,134,201,5,208,3,76,129,134,76,224,134
20110 DATA 173,20,6,201,250,208,29,173,39,6,201,0,240,8,169,0,141,39,6,76,254,134,169,1
20115 DATA 141,39,6,76,58,135,141,39,6,76,58,135,173,39,6,201,0,208,3,76,17,135,76,58
20120 DATA 135,174,2,6,168,8,185,198,140,157,0,70,232,288,192,10,208,244,173,10,6,281,225,208
20125 DATA 5,169,25,141,18,6,238,10,6,173,18,6,141,2,288,76,99,135,174,2,6,160,0,185
20130 DATA 188,140,157,0,70,200,232,192,10,208,244,173,10,6,201,25,208,5,169,225,141,10,6,206
20135 DATA 10,6,173,10,6,141,2,208,76,99,135,173,133,2,201,0,240,3,76,142,135,173,26,6
20140 DATA 201,0,208,26,173,10,6,141,12,6,173,2,6,141,4,6,169,1,141,26,6,173,39,6
20145 DATA 141,30,6,76,142,135,173,26,6,201,0,208,3,76,3,136,173,30,6,201,8,208,50,238
20150 DATA 12,6,238,4,6,174,12,6,142,4,208,172,4,6,169,0,153,8,67,185,1,67,24,105
20155 DATA 2,153,1,67,185,2,67,24,105,3,153,2,67,185,3,67,24,105,2,153,3,67,76,3
20160 DATA 136,206,12,6,238,4,6,174,126,142,4,208,172,4,6,169,8,153,0,67,185,1,67
20165 DATA 24,105,1,153,1,67,185,2,67,24,105,3,3,153,2,67,185,3,67,24,105,1,153,3,67
20170 DATA 76,3,136,162,0,169,12,141,31,6,189,27,6,201,0,208,3,76,188,136,173,132,2,201
20175 DATA 8,240,3,76,47,136,173,120,2,281,11,208,3,76,53,136,201,7,208,3,76,62,136,222
20180 DATA 5,6,76,71,136,222,5,6,222,13,6,76,71,136,222,5,6,254,13,6,76,71,136,189
20185 DATA 13,6,157,5,208,188,5,6,185,0,67,24,109,31,6,153,8,67,185,1,67,24,109,31
20190 DATA 6,153,1,67,169,0,153,2,67,76,188,136,232,224,3,248,28,224,2,208,0,169,192,141
20195 DATA 31,6,76,10,136,169,48,141,31,6,76,10,136,173,4,6,281,196,208,23,169,0,141,26
20200 DATA 6,141,4,208,141,12,6,172,4,6,153,1,67,153,2,67,153,3,67,162,8,189,5,6
20205 DATA 201,25,240,10,189,13,6,281,18,240,3,76,202,136,169,8,157,27,6,157,5,208,157,13
20210 DATA 6,188,5,6,153,8,67,153,1,67,232,224,3,288,214,76,210,136,173,132,2,281,0,240
20215 DATA 11,169,0,141,0,210,141,1,218,76,43,137,169,90,141,0,210,169,105,141,1,218,173,27
20220 DATA 6,201,0,208,5,162,8,76,21,137,173,28,6,281,0,288,5,162,1,76,21,137,173,29
20225 DATA 6,201,0,208,5,162,2,76,21,137,76,43,137,169,1,157,27,6,173,8,6,24,105,7
20238 DATA 157,13,6,169,192,157,5,6,76,43,137,173,8,288,74,144,3,76,61,137,74,144,3,76
20235 DATA 61,137,76,108,137,173,32,6,201,8,240,3,76,108,137,169,1,141,32,6,141,33,6,169
20240 DATA 0,141,26,6,141,35,6,141,4,208,141,12,6,172,4,6,153,1,67,153,2,67,153,3
20245 DATA 67,76,108,137,162,0,189,9,208,74,74,74,176,3,76,146,137,169,1,141,,34,6,169,0
20250 DATA 157,27,6,157,5,208,157,13,6,188,5,6,153,0,67,153,1,67,232,224,3,208,215,76
20255 DATA 154,137,169,1,141,30,288,76,162,137,173,32,6,201,8,288,3,76,244,158,238,35,6,173
20260 DATA 8,6,24,105,3,141,3,208,173,33,6,201,1,208,3,76,218,137,201,2,208,3,76,21
20265 DATA 138,281,3,208,3,76,80,138,281,4,288,3,76,139,138,76,198,138,173,35,6,201,252,208
20270 DATA 11,238,33,6,169,0,141,55,6,76,244,138,281,1,240,3,76,244,138,169,222,141,195,2
20275 DATA 160,192,162,8,189,208,148,153,0,71,232,200,224,9,208,244,169,24,141,0,210,169,14,141
20280 DATA 1,210,76,244,138,173,35,6,201,250,208,11,238,33,6,169,0,141,35,6,76,244,138,201
20285 DATA 1,240,3,76,244,138,169,11,141,195,2,160,192,162,0,189,218,140,153,0,71,232,200,224
20290 DATA 9,208,244,169,32,141,0,210,169,14,141,1,210,76,244,138,173,35,6,201,250,288,11,238
20295 DATA 33,6,169,0,141,35,6,76,244,138,201,1,240,3,76,244,138,169,53,141,195,2,160,192
20300 DATA 162,0,189,228,140,153,0,71,232,288,224,9,200,244,169,100,141,0,210,169,5,141,1,210
20305 DATA 76,244,138,173,35,6,201,250,208,11,238,33,6,169,8,141,35,6,76,244,138,201,1,240
20310 DATA 3,76,244,138,169,56,141,195,2,160,192,162,0,189,238,148,153,8,71,232,200,224,9,208
20315 DATA 244,169,60,141,0,218,169,10,141,1,210,76,244,138,169,0,141,35,6,141,195,2,141,32
20320 DATA 6,169,1,141,33,6,162,0,160,192,189,248,148,153,8,71,232,2A0,224,9,288,244,169,0
28325 DATA 141,0,210,141,1,210,238,41,6,76,244,138,173,38,6,281,0,240,3,76,87,139,173,34
20330 DATA 6,201,0,208,3,76,84,139,258,2,6,238,2,6,173,2,6,201,192,208,3,76,81,139
20335 DATA 281,191,208,3,76,81,139,162,0,172,2,6,169,0,153,254,69,153,255,69,173,39,6,281
20340 DATA 0,208,15,189,188,140,153,0,78,232,208,224,5,208,244,76,84,139,189,198,140,153,8,70
20345 DATA 232,200,224,5,208,244,76,84,139,76,87,139,76,168,140,173,34,6,201,8,208,3,76,168
20350 DATA 140,238,36,6,169,1,141,38,6,173,37,6,281,1,208,3,76,139,139,201,2,208,3,76
20355 DATA 198,139,281,3,208,3,76,1,148,201,d,288,3,76,68,140,76,119,140,173,36,6,281,250
20360 DATA 208,11,238,37,6,169,0,141,36,6,76,168,140,201,1,248,3,76,168,140,169,222,141,194
20365 DATA 2,168,192,162,8,189,208,140,153,0,70,232,200,224,9,208,244,169,24,141,0,218,169,14
20370 DATA 141,1,218,76,168,140,173,36,6,201,250,208,11,238,37,6,169,8,141,36,6,76,168,140
20375 DATA 201,1,240,3,76,168,140,169,11,141,194,2,160,192,162,0,189,218,140,153,0,70,232,200
20380 DATA 224,9,208,244,169,32,141,0,210,169,14,141,1,218,76,168,140,173,36,6,201,250,208,11
20385 DATA 238,37,6,169,8,141,36,6,76,168,140,201,1,240,3,76,168,140,169,53,141,194,2,160
20390 DATA 192,162,0,189,228,140,153,0,78,232,200,224,9,208,244,169,108,141,8,210,169,5,141,1
20395 DATA 210,76,168,140,173,36,6,281,250,208,.11,238,37,6,169,8,141,36,6,76,168,140,201,1
20400 DATA 240,3,76,168,140,169,56,141,194,2,160,192,162,8,189,238,140,153,0,70,232,200,22;,9
20405 DATA 208,244,169,68,141,0,210,169,10,141,1,210,76,168,140,Lag,0,141,34,6,141,36,6,141
20410 DATA 194,2,141,38,6,169,1,141,37,6,162,0,160,192,189,248,140,153,0,70,232,200,224,9
20415 DATA 208,244,169,1,141,48,6,169,8,141,8,210,141,1,210,96,173,252,2,201,33,240,249,76
20420 DATA 168,133,1,9,59,255,127,128,136,184,255,254,0,1,3,63,255,28,8,8,8,0,0,128
20425 DATA 192,252,255,56,8,0,0,0,0,0,42,28,126,28,42,0,0,0,0,42,73,28,247,28
20430 DATA 8,34,0,0,0,24,36,67,194,36,24,8,8,0,66,129,0,0,8,8,129,66,0
30000 DATA 1,1,5,5,21,21,85,85,85
30010 DATA 8,65,69,85,85,85,85,85,85
30020 DATA 3,16,80,84,85,85,85,85,85
30030 DATA 4,0,0,68,69,85,85,85,85
30040 DATA 5,64,64,80,84,84,84,85,85
30050 DATA 6,8,8,65,69,69,85,85,85
30060 DATA 7,0,0,8,28,62,107,8,28
31000 DATA 72,138,72,Lag, 121,141,10,212
31010 DATA 141,24,208,104,170,104,64
Assembler Listing
00010 .LI OFF
80011 .OR $84D0
0O812 .TA $2600
00014 .TF "D:AIRATT.OBJ"
00030 VERT0 .EQ $600 ;VERT PEG
00040 VERT1 .EQ $601 ;VERT PL1
00050 VERT2 .EQ $602 ;VERT PL2
00060 VERT3 .EQ $603 ;VERT PL3
00070 MVERT0 .EQ $604 ;VERT ML0
00080 MVERT1 .EQ $605 ;VERT ML1
00090 MVERT2 .EQ $606 ;VERT ML2
00100 MVERT3 .EQ $607 ;VERT ML3
00110 HORZ0 .EQ $608 ;HORZ PL0
00120 HORZ1 .EQ $609 ;HORZ PL1
00130 HORZ2 .EQ $60A ;HORZ PL2
00140 HORZ3 .EQ $60B ;HORZ PL3
00150 MHORZO .EQ $60C ;HORZ MEG
00160 MHORZI .EQ $60D ;HORZ ML1
00170 MHORZ2 .EQ $60E ;HORZ ML2
00180 MHORZ3 .EQ $60F ;HORZ ML3
00185 MSS .EQ $0300
00190 PLY0 .EQ d4400 ;LOC PLAYER 0
00200 PLY1 .EQ $4500 ;LOC PLAYER 1
00210 PLYZ .EQ $4600 ;LOC PLAYER 2
00220 PLY3 .EQ $4700 ;LOC PLAYER 3
00230 PSTICK .EQ $278
00240 PSTICK1 .EQ S279
00250 DIRSTICK .EQ $610
00260 TURCON .EQ $611
00270 TURTYP .EQ $612
00280 SPEED .EQ $613
00290 SPCON .EQ $614
00300 PCON .EQ $615
00310 SCON .EQ $616
00320 EVER2 .EQ $617
00330 EVER21 .EQ $618
00340 PHF1 .EQ $626
00342 STRIG0 .EQ $284
00344 STRIGI .EQ $285
00346 FG0 .EQ $61A
00348 FG1 .EQ $61B
00350 FG2 .EQ $61C
00352 FG3 .EQ $61D
00354 GL0 .EQ $61E
00356 STORM .EQ $61F
00358 EXF .EQ $620
00360 EFR .EQ $621
00362 PHF .EQ $622
00364 ECON .EQ $623
00366 AECON .EQ $624
00368 AEFR .EQ $625
00470 DECT .EQ $627
00472 PTSP .EQ $628
00474 PTSS .EQ $629
01000 ST PLA
01002 LDA #147
01003 STA $D202
01004 LDA #131
01005 STA $D203
01010 LDA #62 ;SET UP PM GRAPHICS
01020 STA $22F
01030 LDA #80
01040 STA $2C0
01050 LDA #80
01060 STA $2C1
01070 LDA #15
01080 STA $2C2
01090 LDA #60
01100 STA $2C3
01110 LDA /$4000
01140 STA $D407
01150 LDA #3
81160 STA $D01D
01170 *
01180 * SET-UP SECTION
01190 *
01200 LDA #1
01210 STA $D01E ;CLEAR COLLISIONS
01220 LDX #0 ;CLEAR PLAYERS
01230 LDA #0 ;AND MISSILES
01240 L17 STA PLY0,X
01250 STA PLY1,X
01260 STA PLY2,X
01270 STA PLY3,X
01275 STA MIS,X
01280 INX
01290 , CPX #255
01300 BNE L17
01310 LDA #120 ;SET SHIP POS.
81320 STA HORZ0
01330 CLC
01340 ADC #8
01350 STA HORZ1
01360 LDA HORZ0
01370 STA $D000
01380 LDA HORZ1
01390 STA $D001
01400 *
01410 LDX #0 ;DRAW SHIP
01420 L12 LDA SHIP,X
01430 STA PLY0+$C0,X
01440 INX
01450 CPX us
01460 BNE L12
01470 *
01480 LDX #0
01490 L14 LDA SHIP1,X
01500 STA PLY1+$C0,X
01510 INX
01520 CPX #5
01530 BNE L14
01540 *
01550 * DRAW PLANE
01560 LDA #220
01570 STA HORZ2
01580 LDA tt130
01590 STA VERT2
01600 TAX
01610 LDY 210
01620 L50 LDA SHAPED,V
01630 STA PLY2,X
01640 INY
01650 INX
01660 CPY #6
01670 BONE L50
01680 LDA HORZ2
01690 STA $D007
01700 *
01710 LDA # ;SET TURN TYPE
01720 STA TURTYP
01725 STA AEFR
01730 LDA #7
01740 STA DIRSTICK
01750 LDA #50
01760 STA SPEED
01770 LDA #10 ;SET SPEED
01780 STA SPCON
01790 LDA #0 ;SET DIRECTION
01800 STA DECT
01805 STA PTSP
01807 STA PTSS
01810 STA FG0
01820 STA FG1
01830 STA FG2
01840 STA FG3
01850 STA EXF
01860 STA PHF
01870 STA ECON
01880 STA AECON
01890 STA PHF1
03000 *
03010 * START SECTION
03020 *
03030 STS INC SCON
03040 LDA SCON
03050 CMP #50
03060 BEQ L190
03070 JMP PSTS
03080 L190 LDA #0
03090 STA SCON
03091 LDA STRIG0
03092 CMP #0
03094 BNE LL10
03095 JMP DRAWS
03100 LL10 LDA PSTICK
03110 CMP #11
03120 BEQ SLEFT
03130 CMP #7
03140 BEQ SRIGHT
03150 JMP DRAWS
03160 *
03170 * SHIP LEFT
03180 *
03190 SLEFT LDA HORZ0
03200 CMP #50
03210 BEQ L10
03220 DEC HORZ0
03230 LDA HORZ0
03240 STA $D000
03250 DEC HORZ1
03260 LDA HORZ1
03270 STA $D001
03280 L10 JMP DRAWS
03290 *
03300 * SHIP RIGHT
03310 *
03320 SRIGHT LDA HORZ0
03330 CMP #190
03340 BEQ L11
03350 INC HORZ0
03360 LDA HORZ0
03370 STA $D000
03380 INC HORZ1
03390 LDA HORZ1
03400 STA $D001
03410 L11 JMP DRAWS
03420 *
03430 * DRAWS
03440 *
03450 DRAWS JMP PSTS
03540 *
03550 * PLANE
03560 *
03570 PSTS LDA PHF
03572 CMP #0
03574 BEQ PSTIS
03575 JMP NET
03578 PSTIS INC PCON
03580 LDA PCON
03590 CMP SPCON
03600 BEQ L170
03610 JMP NET
03620 L170 LDA #0
03630 STA PCON
03640 LDA PSTICK1
03650 CMP #15
03660 BEQ L150
03670 STA DIRSTICK
03680 L150 CMP #11
03690 BNE L100
03700 JMP PLEFT
03710 L100 CMP #7
03720 BNE L101
03730 JMP PRIGHT
03740 L101 CMP #14
03750 BNE L19
03760 JMP PUP
03770 L19 CMP #10
03780 BNE L20
03790 JMP PUP
03800 L20 CMP #6
03810 BNE L21
03820 JMP PUP
03830 L21 CMP #15
03840 BEQ L22
03850 JMP PDOWN
03860 L22 LDA DIRSTICK
03870 JMP SHD
03880 *
03890 * PLEFT
03900 *
03910 PLEFT LDX SPCON
03920 CPX #255
03938 BEQ L120
03940 LDA DECT
03950 CMP #0
03960 BEQ L300
03962 CPX #10
03964 BEQ L305
03970 DEX
03980 L305 JMP L301
03990 L300 INX
04000 L301 STX SPCON
04010 L120 JMP SHD
04020 *
04030 * PRIGHT
04040 *
04050 PRIGHT LDX SPCON
04060 CPX #1
04070 BEQ L120
04080 LDA DECT
04090 CMP #0
04100 BEQ L303
04102 CPX #250
04104 BEQ L320
04110 INX
04120 L320 JMP L302
04130 L303 CPX #10
04132 BEQ L302
04134 DEX
04140 L302 STX SPCON
04150 L121 JMP SHD
04170 * PUP
04180 *
04190 PUP LDX VERT2
04200 CPX #50
04210 BEQ L125
04220 DEX
04230 STX VERT2
04240 L125 LDA DIRSTICK
04241 CMP #10
04242 BNE L330
04243 JMP PLEFT
04244 L330 CMP #6
04245 BNE L331
04246 JMP PRIGHT
04247 L331 JMP SHD
04250 *
04260 * PDOWN
04270 *
04280 PDOWN LDX VERT2
04290 CPX #175
04300 BEQ L126
04310 INX
04320 STX VERT2
04330 L126 LDA DIRSTICK
04331 CMP #9
04332 BNE L332
04333 JMP PLEFT
04334 L332 CMP #5
04335 BNE L333
04336 JMP PRIGHT
04337 L333 JMP SHD
04340 *
04350 *
04360 * TURN
04370 *
04380 SHD LDA SPCON
04390 CMP #250
04400 BNE L205
04410 LDA DECT
04420 CMP #0
04430 BEQ L220
04440 LDA #0
04450 STA DECT
04460 JMP L221
04470 L220 LDA #1
04480 STA DECT
04490 JMP SHC
04500 L221 STA DECT
04510 JMP SHC
04520 L205 LDA DECT
04530 CMP #0
04540 BNE L230
04550 JMP SHD1
04560 L230 JMP SHC
04570 *
04580 * SHD
04590 *
04600 SHD1 LDX VERT2
04610 LDY #0
04620 L35 LDA SHAPED,Y
04630 STA PLY2,X
04640 INX
04650 INY
04660 CPY #10
04670 BNE L35
04680 LDA HORZ2
04690 CMP #225
04700 BNE L160
04710 LDA #25
04720 STA HORZ2
04730 L160 INC HORZ2
04740 LDA HORZ2
04750 STA $D002
04760 JMP NET
04770 *
04780 *
04790 * SHC
04800 *
04810 SHC LDX VERT2
04820 LDY #0
04830 L206 LDA SHAPEC,X
04840 STA PLY2,X
04850 INY
04860 INX
04870 CPY #10
04880 BNE L206
04890 LDA HORZ2
04900 CMP #25
04910 BNE L207
04920 LDA #225
04930 STA HORZ2
04940 L207 DEC HORZ2
04950 LDA HORZ2
04960 STA $D002
04970 JMP NET
04980 *
04990 * MISSILE SECTION
05000 *
05010 NET LDA STRIG1
05020 CMP #0
05030 BEQ L350
05040 JMP MOV
05050 L350 LDA FG0
05060 CMP #0
05070 BNE MOV
05080 LDA HORZ2
85090 STA MHORZ0
05100 LDA VERT2
85110 STA MVERT0
05120 LDA #1
05130 STA FG0
05140 LDA DUCT
05150 STA GL0
05160 JMP MOV
05170 *
05180 MOV LDA FG0
05190 CMP #0
05200 BNE L354
05210 JMP L352
05220 L354 LDA GL0
05230 CMP #0
05240 BNE LL353
05250 INC MHORZ0
05260 INC MVERT0
05270 LDX MHORZ0
05280 STX $D004
05290 LDY MVERT0
05300 LDA #0
05310 STA MIS,Y
05320 LDA MIS+1,Y
05330 CLC
05340 ADC #2
05350 STA MIS+1,Y
05360 LDA MIS+2,Y
05370 CLC
05380 ADC #3
05390 STA MIS+2,Y
05400 LDA MIS+2,Y
05410 CLC
05420 ADC #2
05430 STA MIS+3,Y
05440 JMP L352
05450 *
05460 LL353 DEC MHORZ0
05470 INC MVERT0
05480 LDX MHORZ0
05490 STX $D004
05500 LDY MVERT0
05510 LDA #O
05520 STA MIS,Y
05530 LDA MIS+1,Y
05540 CLC
05550 ADC #1
05560 STA MIS+1,Y
05570 LDA MIS+2,Y
05580 CLC
05590 ADC #3
05600 STA MIS+2,Y
05610 LDA MIS+3,Y
05620 CLC
05630 ADC #1
05640 STA MIS+3,Y
05650 JMP L352
05660 *
05670 * MOVE SHIP MISSILES
05680 *
05690 L352 LDX #0
05700 LDA #12
05710 STA STORM
05720 LL2 LDA FG1,X
05730 CMP #0
05740 BNE L353
05750 JMP L355
05760 L353 LDA STRIG0
05770 CMP #0
05780 BEQ L356
05790 JMP M14
05800 L356 LDA PSTICK
05810 CMP #11
05820 BNE L357
05830 JMP M11
05840 L357 CMP #7
05850 BNE M14
05860 JMP M7
05870 *
05880 M14 DEC MVERT1,X
05890 JMP L360
05900 *
05910 M11 DEC MVERT1,X
05920 DEC MHORZ1,X
05930 JMP L360
05940 *
05950 M7 DEC MVERT1,X
05960 INC MHORZ1,X
05970 JMP L360
05980 *
05990 L360 LDA MHORZ1,X
06000 STA $D005,X
06010 LDY MVERT1,X
06020 LDA MIS,Y
06030 CLC
06040 ADC STORM
06050 STA MIS,Y
06060 LDA MIS+1,Y
06070 CLC
06080 ADC STORM
06090 STA MIS+1,Y
06100 LDA #0
06110 STA MIS+2,Y
06120 JMP L355
06130 *
06140 L355 INX
06150 CPX #3
06160 BEQ MAX
06170 CPX #2
06180 BNE LL1
06190 LDA #192
06200 STA STORM
06210 JMP LL2
06220 LL1 LDA #48
06230 STA STORM
06240 JMP LL2
06250 *
06260 * MAX
06270 *
06280 MAX LDA MVERT0
06290 CMP #196
06300 BNE L361
06310 LDA #0
06320 STA FG0
06330 STA $D004
06340 STA MHORZ0
06341 LDY MVERT0
06342 STA MIS+1,Y
06343 STA MIS+2,Y
06344 STA MIS+3,Y
06350 *
06360 L361 LDX #0
06370 L363 LDA MVERT1,X
06380 CMP #25
06390 BEQ LL400
06392 LDA MHORZ1,X
06394 CMP #10
06395 BEQ LL400
06397 JMP L362
06400 LL400 LDA #0
06410 STA FG1,X
06420 STA $D005,X
06430 STA MHORZ1,X
06432 LDY MVERT1,X
06433 STA MIS,Y
06434 STA MIS+1,Y
06440 L362 INX
06450 CPX #3
06460 BNE L363
06470 JMP SPF
06480 *
06490 * SHIP TRIGGER
06500 *
06518 SPF LDA STRIG0
06520 CMP #0
06530 BEQ L370
06531 LDA #0
06532 STA $D200
06533 STA $D201
06540 JMP COL
06550 L370 LDA #90
06551 STA $D200
06552 LDA #105
06553 STA $D201
06559 LDA FG1
06560 CMP #0
06570 BNE L372
06580 LDX #0
06590 JMP FM
06600 L372 LDA FG2
06610 CMP #0
06620 BNE L373
06630 LDX #l
06640 JMP FM
06650 L373 LDA FG3
06660 CMP #0
06670 BNE L374
06680 LDX #2
06690 JMP FM
06700 L374 JMP COL
06710 *
06720 FM LDA #1
06730 STA FG1,X
06740 LDA HORZ0
06742 CLC
06744 ADC #7
06750 STA MHORZ1,X
06760 LDA #192
06770 STA MVERT1,X
06780 JMP COL
06790 *
06800 * COLLISIONS
06810 *
06820 COL LDA $D008
06630 LSR
06840 BCC L400
06850 JMP L' L401
06860 L400 LSR
06870 BCC L402
06880 JMP L401
06890 L402 JMP SBC
06900 *
06910 L401 LDA EXF
06920 CMP #0
06930 BEQ L403
06940 JMP SBC
06950 L403 LDA #1
06960 STA ENV
06970 STA EFR
06980 LDA #0
06990 STA FG0
07000 STA ECON
07010 STA $D004
07020 STA MHORZ0
07030 LDY MVERT0
07040 STA MIS+1,Y
07050 STA MIS+2,Y
07060 STA MIS+3,Y
07070 JMP SBC
07080 *
07090 * SHIP GUN HITS
07100 *
07110 SBC LDX #0
07120 LM10 LDA $D009,X
07130 LSR
07140 LSR
071SO LSR
07160 BCS L410
07170 JMP LL20
07180 L410 LDA #1
07190 STA PHF
07200 LDA #0
07210 STA FG1,X
07220 STA $D005,X
07230 STA MHORZ1,X
07240 LDY MVERT1,X
07250 STA MIS,Y
07260 STA MIS+1,Y
07270 LL20 INX
07280 CPX #3
07290 BNE LM10
07300 JMP CLCOL
07310 *
07X20 * CLEAR COLLISIONS
07330 *
07340 CLCOL LDA #1
07350 STA $D01E
07360 , JMP EXPL
07370 *
07380 * EXPLOSSON
07390 *
07400 EXPL LDA EXF
07410 CMP #0
07420 BNE L411
07430 JMP HPD
07431 L411 TNC ECON
07432 LDA HORZ0
07433 CLC
07434 ADC #3
07435 STA $D003
07440 LDA EFR
07450 CMP #1
07460 BNE L412
07470 JMP FR1
07460 L412 CMP #2
07490 BNE L413
07500 JMP FR2
07510 L413 CMP #3
07520 BNE L414
07530 JMP FR3
07540 L414 CMP #4
07550 BNE L415
07560 JMP FR4
07570 L415 JMP FR5
07580 *
07590 FR1 LDA ECON
07650 CMP #252
07660 BNE L417
07670 INC EFR
07680 LDA #0
07690 STA ECON
07700 JMP HPD
07710 L417 CMP #l
07720 BEQ L418
07730 JMP HPD
07740 L418 LDA #222
07750 STA $2C3
07760 LDY #192
07770 LDX #0
07780 L419 LDA FRAMEI,X
07790 STA PLY3,Y
07800 INX
07810 INY
07820 CPX #9
07830 BNE L419
07832 LDA #24
07833 STA $D200
07834 LDA #14
07835 STA $D201
07840 JMP HPD
07650 *
07860 FR2 LDA ECON
07870 CMP #250
07880 BNE L717
07890 INC EFR
07900 LDA #0
08000 STA ECON
08010 JMP HPD
08020 L717 CMP #1
08030 BEQ L718
08040 JMP HPD
08050 L718 LDA #ll
08060 STA $2C3
08070 LDY #192
08080 LDX #0
08090 L719 LDA FRAME2,X
08100 STA PLY3,Y
08110 INX
08120 INY
08130 , CPX #9
08140 BNE L719
08142 LDA #32
08143 STA $D200
08144 LDA #14
08145 STA $D201
08150 JMP HPD
08170 FR3 LDA ECON
08180 CMP #250
08190 BNE L720
08700 INC EFR
08210 LDA #0
08220 STA ECON
08230 JMP HPD
08240 L720 CMP #1
08250 BEQ L721
08260 JMP HPD
08270 L721 LDA #53
08280 STA $2C3
08290 LDY #192
08300 LDX #0
08310 L722 LDA FRAME3,X
08320 STA PLY3,Y
08330 INX
08340 INY
08350 CPX #9
08360 BNE L722
08362 LDA #100
08363 STA $D200
08364 LDA #5
08365 STA $D201
08370 JMP HPD
08380 *
08390 FR4 LDA ECON
08400 CMP #250
08410 BNE L730
08420 INC EFR
08430 LDA #0
08440 STA ECON
08450 JMP HPD
08460 L730 CMP #1
08470 BEQ L731
08480 JMP HPD
08490 L731 LDA #56
08500 STA $2C3
08510 LDY #192
08520 LDX #0
08530 L732 LDA FRAME4,X
08540 STA PLY3,Y
08550 INX
88560 INY
08570 CPX #9
08580 BNE L732
08582 LDA #60
08583 STA $D200
08584 LDA #10
08585 STA $D201
08590 JMP HPD
08600 *
08610 FR5 LDA #0
08620 STA ECON
08630 STA $2C3
08640 STA EXF
08650 LDA #1
06660 STA EFR
08670 LDX #0
08680 LDY #192
08690 L420 LDA FRAMES,X
08700 STA PLY3,Y
08710 INX
08720 INY
08730 CPX #9
08740 BNE L420
08741 LDA #0
08742 STA $D200
08743 STA $D201
08744 INC PTSS
08750 JMP HPD
08760 *
08770 * HIT TO PLANE
08780 *
08790 HPD LDA PHF1
08791 CMP #0
08792 BEQ LR
08794 JMP LL05
08799 LR LDA PHF
08800 CMP #0
08810 BNE L500
08820 JMP POINT
08830 L500 INC VERT2
08840 INC VERT2
08850 LDA VERT2
08860 CMP #192
08870 BNE L501
08880 JMP L502
08890 L501 CMP #191
08900 BNE L503
08910 JMP L502
08920 *
08930 L503 LDX #0
08940 LDY VERT2
08950 LDA #0
08960 STA PLY2-2,Y
08970 STA PLY2-1,Y
08980 LDA DECT
08990 CMP #0
09000 BNE L505
09010 L504 LDA SHAPEC,X
09020 STA PLY2,Y
09030 INX
09040 INY
09050 CPX #5
09060 BNE L504
09070 JMP POINT
09080 *
09090 L505 LDA SHAPED,X
09100 STA PLY2,Y
09110 INX
09120 INY
09130 CPX #5
09140 BNE L505
09150 JMP POINT
09160 *
09170 L502 JMP LL05
09175 POINT JMP PON
09500 *
09510 * POINTS
09520 *
09530 *
09540 * EXPLOSION PLANE
09550 *
09560 LL05 LDA PHF
09570 CMP #0
09580 BNE A411
09590 JMP PON
09600 A411 INC AECON
09602 LDA #1
09604 STA PHF1
09650 LDA AEFR
09660 CMP #1
09670 BNE A412
09680 JMP AFR1
09690 A412 CMP #2
09700 BNE A413
09710 JMP AFR2
09720 A413 CMP #3
09730 BNE A414
09740 JMP AFR3
09750 A414 CMP #4
09760 BNE A415
09770 JMP AFR4
09780 A415 JMP AFR5
09790 *
09800 AFR1 LDA AECON
09810 CMP #250
09820 BNE A417
09830 INC AEFR
09840 LDA #0
09850 STA AECON
09860 JMP PON
09870 A417 CMP #1
09880 BEQ A418
09890 JMP PON
09900 A418 LDA #222
09910 STA $2C2
09920 LDY #192
09930 LDX #0
09940 A419 LDA FRAME1,X
09950 STA PLY2,Y
09960 INX
09970 INY
09980 CPX #9
09990 BNE A419
09992 LDA #24
09994 STA $D200
09995 LDA #14
09996 STA $D201
10000 JMP PON
10010 *
10020 AFR2 LDA AECON
10030 CMP #250
10040 BNE A717
10050 INC AEFR
10060 LDA #0
10070 STA AECON
10080 JMP PON
10090 A717 CMP #1
10100 BEQ A718
10110 JMP PON
10120 A718 LDA #11
10130 STA $2C2
10140 LDY #192
10150 LDX #0
10160 A719 LDA FRAME2,X
10170 STA PLY2,Y
10180 INX
10190 INY
10200 CPX #9
10210 BNE A719
10212 LOA #32
10213 STA $D200
10214 LDA #14
10215 STA $D201
10220 JMP PON
10230 *
10240 AFR3 LDA AECON
10250 CMP #250
10260 BNE A720
10270 INC AEFR
10280 LDA #0
10290 STA AECON
10300 JMP PON
10310 A720 CMP #1
10320 BEG A721
10330 JMP PON
10340 A721 LDA #53
10350 STA $2C2
10360 LDY #192
10370 LDX #0
10380 A722 LDA FRAME3,X
10390 STA PLY2,Y
10400 INX
10410 INY
10420 CPX #9
10430 BNE A722
10432 LDA #100
104S3 STA $D200
10434 LDA #5
10435 STA SD201
10440 JMP PON
10450 *
10460 AFR4 LDA AECON
10470 CMP #250
10480 BNE A730
10490 INC AEFR
10500 LDA #0
10510 STA AECON
10520 JMP PON
10530 A730 CMP #1
10540 BEQ A731
10550 JMP PON
10560 A731 LDA #56
10570 STA $2C2
10580 LDY #192
10590 LDX #0
10600 A732 LDA FRAME4,X
10610 STA PLY2,Y
10620 INX
10630 INY
10640 CPX #9
10650 BNE A732
10652 LDA #60
10653 STA SD200
10654 LOA 2210
10655 STA $D201
10660 JMP PON
10670 *
10680 AFR5 LDA #0
10685 STA PHF
10690 STA AECON
10700 STA $2C2
10702 STA PHF1
10720 LDA #1
10730 STA AEFR
10740 LDX #0
10750 LDY #192
10760 A420 LDA FRAME5,X
10770 STA PLY2,Y
10780 INX
10790 INY
10800 CPX #9
10810 BNE A420
10812 LDA #1
10813 STA PTSP
10815 LDA #0
10817 STA $D200
10818 STA $D201
10829 RTS
10830 *
10840 *
10850 *
10860 PON LDA $2FC
10870 CMP #33
10880 BEQ PON
10890 JMP STS
20000 SHIP .DA #1,#9,#59,#255,#127
20010 SHIP1 .DA #128,#136,#184,#255,#254
20020 SHAPEC .DA #0,#1,#3,#63,#255,#28,#0,#0,#0,#0
20030 SHAPED .DA #0,#128,#192,#252,#255,#56,#0,#0,#0,#0
20040 FRAME1 .DA #0,#0,#42,#28,#126,#28,#42,#0,#0,#0
20050 FRAME2 .DA #0,#42,#73,#28,#247,#28,#8,#34,#0,#0
20060 FRAME3 .DA #0,#24,#36,#67,#194,#36,#24,#8,#0,#0
20070 FRAME4 .DA #66,#129,#0,#0,#0,#0,#129,#66,#0,#0
20080 FRAME5 .DA #0,#0,#0,#0,#0,#0,#0,#0,#0,#0