1 TRAP 3000:GOSUB 2000:GOTO 200›2 SAVE "D:SLRES.SAV":STOP :REM DISK 30 ›4 REM ADJUST HORIZONTAL & VERTICAL COORDINATES ›5 X0=X0+SP:Y0=Y0+SY:RETURN ›6 Y0=Y0-SY:X0=X0+SP:RETURN ›7 X0=X0+SP:RETURN ›9 X0=X0-SP:Y0=Y0+SY:RETURN ›10 X0=X0-SP:Y0=Y0-SY:RETURN ›11 X0=X0-SP:RETURN ›13 Y0=Y0+SY:RETURN ›14 Y0=Y0-SY:RETURN ›15 POP :PLAYER0$(Y0)=LEGS1$:GOTO 300›29 REM MOVE PLAYERS LEGS›30 Z=Z+1:POKE HPOSP0,X0:IF Z<4 THEN PLAYER0$(Y0)=LEGS1$:RETURN ›31 IF Z<7 THEN PLAYER0$(Y0)=LEGS2$:RETURN ›32 PLAYER0$(Y0)=LEGS3$:IF Z=9 THEN Z=0:RETURN ›33 RETURN ›65 MX0=MX0+MS0:MY0=MY0+MS0:RETURN ›66 MY0=MY0-MS0:MX0=MX0+MS0:RETURN ›67 MX0=MX0+MS0:RETURN ›69 MX0=MX0-MS0:MY0=MY0+MS0:RETURN ›70 MX0=MX0-MS0:MY0=MY0-MS0:RETURN ›71 MX0=MX0-MS0:RETURN ›73 MY0=MY0+MS0:RETURN ›74 MY0=MY0-MS0:RETURN ›199 REM MAIN LOOP ›200 GOSUB PEEK(JOYSTICK):GOSUB MOVELEGS›260 REM ›270 REM ›280 REM ›290 REM ›300 POKE SD1,P1:POKE DV1,D1:POKE SIZEM,PEEK(RANDOM)›301 IF PEEK(BUTTON0)=0 AND PEEK(JOYSTICK)<>15 THEN MOVE0=PEEK(JOYSTICK):FIRE0=FIRE0+1›305 IF FIRE0=0 THEN GOTO 200›315 IF FIRE0=1 THEN MX0=X0+3:MY0=Y0+7:DIR0=MOVE0:FIRE0=FIRE0+1:D1=15:MY0S=MY0›320 IF FIRE0>1 THEN GOSUB DIR0+60›330 D1=D1-1:IF D1<1 THEN D1=0›335 POKE HPOSM0,MX0:MISSILES$(MY0)=MIMAGE0$›499 GOTO 200›600 GRAPHICS 0:TRAP 610:FOR I=1 TO 128:? I;" ";ASC(PLAYER0$(I)):NEXT I:STOP ›610 END ›1999 REM SETUP ROUTINES FOLLOW:›2000 GOSUB 10000:REM MISC. INITZALIZATION›2005 GRAPHICS 5:REM SET GR. MODE BEFORE PMG SETUP!›2010 GOSUB 11000:GOSUB 11045:REM PMG SETUP›2015 GOSUB 12000:REM DRAW PLAYFIELD›2020 GOSUB 13000:REM PLAYER COLOR AND SCREEN POSITION›2025 GOSUB 14000:REM DISPLAY MESSAGE›2130 RETURN ›2999 REM ERROR CORRECTION ROUTINE›3000 IF X0>210 THEN X0=210:REM CORRECT PLAYER COORDINATES›3010 IF X0<39 THEN X0=39›3020 IF Y0<1 THEN Y0=1›3030 IF Y0>245 THEN Y0=245›3035 Z=0›3040 IF MY0<1 OR MY0>240 THEN MY0=1›3042 IF MX0<40 OR MX0>210 THEN MX0=40›3045 MISSILES$(MY0S)=ERASE$›3050 D1=0:REM TURN OFF MISSILE SOUND›3060 FIRE0=0›3080 TRAP 3000:GOTO 300›10000 REM MISC. INITIALIZATION›10050 JOYSTICK=632:HPOSP0=53248:PRIOR=623:MOVELEGS=30:SP=1:PR=8:BUTTON0=644:SETSOUND=1000:S0=53760›10060 BUTTON0=644:SETSOUND=1000:S0=53760:DV0=53761:HPOSM0=53252:HPOSM0=53252:MS0=6›10070 P1=10:D1=0:SD1=53762:DV1=53763:SIZEM=53260:RANDOM=53770:SY=2›10900 RETURN ›10999 REM PMG SETUP ROUTINE›11000 DIM FILLER1$(1),FILLER2$((INT(ADR(FILLER1$)/2048)+1)*2048-ADR(FILLER1$)-1)›11010 DIM ERASE$(256),FILLER3$(256),FILLER4$(256),MISSILES$(256),PLAYER0$(256)›11020 ERASE$=CHR$(0)›11030 ERASE$(256)=CHR$(0)›11040 ERASE$(2)=ERASE$:RETURN ›11045 MISSILES$=CHR$(0):MISSILES$(256)=CHR$(0):MISSILES$(2)=MISSILES$›11047 PLAYER0$=CHR$(0):PLAYER0$(256)=CHR$(0):PLAYER0$(2)=PLAYER0$›11050 DIM LEGS1$(17),LEGS2$(17),LEGS3$(17)›11060 FOR I=1 TO 17:READ A:LEGS1$(I,I)=CHR$(A):NEXT I›11065 FOR I=1 TO 17:READ A:LEGS2$(I,I)=CHR$(A):NEXT I›11067 FOR I=1 TO 17:READ A:LEGS3$(I,I)=CHR$(A):NEXT I›11070 DIM MIMAGE0$(13):FOR I=1 TO 13:READ A:MIMAGE0$(I,I)=CHR$(A):NEXT I›11080 POKE 54279,ADR(ERASE$)/256:REM DTELL ANTIC WHERE START OF PM MEMORY IS›11085 POKE 559,46+16:REM SINGLE LINE RESOLUTION›11090 POKE 53277,3:REM TURN ON PMG›11095 RETURN ›11110 POKE PRIOR,PR›11299 RETURN ›11300 DATA 0,0,0,28,28,8,28,58,89,24,60,36,36,102,0,0,0›11310 DATA 0,0,0,28,28,8,28,58,89,24,40,76,68,68,0,0,0›11320 DATA 0,0,0,28,28,8,28,58,89,24,56,72,132,130,0,0,0›11330 DATA 0,0,0,0,0,0,3,0,0,0,0,0,0›11999 REM DRAW PLAYFIELD›12000 SETCOLOR 4,16,2:COLOR 1›12010 PLOT 0,20:DRAWTO 40,20›12020 COLOR 3:DRAWTO 60,35:COLOR 2:DRAWTO 79,35›12030 RETURN ›12999 REM SET PLAYER COLOR AND POSITION›13000 X0=120›13010 Y0=43›13020 POKE 704,88›13030 POKE 53248,X0:REM POKE HORIZONTAL VALUE INTO HORIZON TONAL POSITION REGISTER.›13040 PLAYER0$(Y0)=LEGS1$:REM PUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 DETERMINES VERTICLE POSITION›13050 RETURN ›14000 ? "To fire missile, move joystick and push fire button";:RETURN ›