1 GOSUB 2000:GOTO 200›2 SAVE "D:MISSILE.SAV":STOP :REM DISK 30›4 REM ADJUST HORIZONTAL & VERTICAL COORDINATES›5 X0=X0+SP:Y0=Y0+SP:RETURN ›6 Y0=Y0-SP:X0=X0+SP:RETURN ›7 X0=X0+SP:RETURN ›9 X0=X0-SP:Y0=Y0+SP:RETURN ›10 X0=X0-SP:Y0=Y0-SP:RETURN ›11 X0=X0-SP:RETURN ›13 Y0=Y0+SP:RETURN ›14 Y0=Y0-SP:RETURN ›15 POP :PLAYER0$(Y0)=LEGS1$:GOTO 300›29 REM MOVE PLAYER'S 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 ›199 REM MAIN LOOP›200 GOSUB PEEK(JOYSTICK):GOSUB MOVELEGS›260 REM ›270 REM ›280 REM ›290 REM ›300 REM ›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-10:MY0=Y0+7:DIR0=MOVE0:FIRE0=FIRE0+1›335 MISSILES$=BUFFER$:POKE HPOSM0,MX0:MISSILES$(MY0)=MIMAGE0$›340 STOP ›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: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 PLAYER0$=BUFFER$:Y0=128:X0=80:Z=0:TRAP 3000:GOTO 200›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:RETURN ›10999 REM PMG SETUP ROUTINE›11000 DIM FILLER1$(1),FILLER2$((INT(ADR(FILLER1$)/1024)+1)*1024-ADR(FILLER1$)-1)›11010 DIM BUFFER$(384),MISSILES$(128),PLAYER0$(128),PLAYER1$(128),PLAYER2$(128),PLAYER3$(128)›11020 BUFFER$=CHR$(0)›11030 BUFFER$(384)=CHR$(0)›11040 BUFFER$(2)=BUFFER$›11045 MISSILES$=BUFFER$:PLAYER0$=BUFFER$:PLAYER1$=BUFFER$:PLAYER2$=BUFFER$:PLAYER3$=BUFFER$›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$(1):MIMAGE0$=CHR$(3)›11080 POKE 54279,ADR(BUFFER$)/256:REM TELL ANTIC WHERE START OF PM MEMORY IS›11085 POKE 559,46:REM DOUBLE LINE RES.›11090 POKE 53277,3:REM TURN ON PMG›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›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.›13050 RETURN ›14000 ? "To fire missile, move joystick and push fire button";:RETURN ›