1 TRAP 3000:GOSUB 2000:GOTO 200›2 SAVE "D:MISSCOL.SAV":STOP :REM DISK 30›4 REM ADJUST HORIZONTAL & VETICAL 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$(0)=LEGS3$:IF Z=9 THEN Z=0:RETURN ›33 RETURN ›40 RETURN ›41 X0=X0A:Y0=Y0A:POKE HITCLR,1:RETURN ›42 X0=X0A:Y0=Y0A:POKE HITCLR,1:RETURN ›44 X0=X0A:Y0=Y0A:POKE HITCLR,1:RETURN ›49 REM MISSILE 0 TO PLAYFIELD›50 RETURN ›51 GOSUB 190:RETURN ›52 GOSUB 190:RETURN ›53 GOSUB 190:RETURN ›54 GOSUB 190:RETURN ›60 REM END OF COLLISIONS›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 ›190 POKE HPMOSM0,0:D1=0:FIRE0=0:POKE HITCLR,1:RETURN ›199 REM MAIN LOOP›200 ? "P0PF=";PEEK(P0PF),"M0PF=";PEEK(M0PF):GOSUB PEEK(P0PF)+40:GOSUB PEEK(M0PF)+50›201 Y0A=Y0:X0A=X0: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›320 IF FIRE0>1 THEN GOSUB DIR0+60›330 D1=D1-1:IF D1<1 THEN D1=0›335 MISSILES$=BUFFER$: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. INITIALIZTION›2005 GRAPHICS 7:REM SET GR. MODE BEFORE PMG SETUP!›2010 GOSUB 12000:REM DRAW PLAYFIELD›2015 GOSUB 11000:REM PMG SETUP›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›3010 IF X0<39 THEN X0=39›3020 IF Y0<1 THEN Y0=1›3030 IF Y0>128 THEN Y0=128›3035 Z=0›3040 MX0=X0:MY0=Y0›3050 D1=0›3060 FIRE0=0›3080 TRAP 3000:GOTO 300›10000 REM MISC. INITIALIZATION›10005 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:P0PF=53252:M0PF=53248:HITCLR=53278:POKE HITCLR,1›10900 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 DTELL 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,66,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 DRAM PLAYFIELD›12000 SETCOLOR 2,3,4:COLOR 1›12010 PLOT 0,0:DRAWTO 159,0:DRAWTO 159,79:DRAWTO 0,79:DRAWTO 0,0›12015 COLOR 2›12020 PLOT 80,61:DRAWTO 80,79:PLOT 0,60:DRAWTO 30,60:DRAWTO 30,79›12025 COLOR 3›12030 PLOT 52,60:DRAWTO 52,45:DRAWTO 110,45:DRAWTO 110,60:DRAWTO 137,60:DRAWTO 137,45:DRAWTO 110,45:PLOT 159,32›12040 DRAWTO 110,32:PLOT 80,45:DRAWTO 80,20:PLOT 130,16:DRAWTO 130,14:DRAWTO 127,14:DRAWTO 127,16:DRAWTO 130,16›12050 PLOT 43,0:DRAWTO 43,30:PLOT 52,45:DRAWTO 22,45:DRAWTO 22,13:PLOT 103,0:DRAWTO 103,17:POKE 559,34:RETURN ›12999 REM SET PLAYER COLOR AND POSITION›13000 X0=175›13010 Y0=80›13020 POKE 704,88›13030 POKE 53248,X0:REM POKE HORIZONTAL VALUE INTO HORIZONTONAL POSITION REGISTER.›13040 PLAYER0$(Y0)=LEGS1$:REM PUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 DETERMINES VERTICAL POSITION›13050 RETURN ›14000 ? "Collision Demo.":FOR PAUSE=1 TO 100:NEXT PAUSE:RETURN ›