1 GOSUB 32000:CLR ›10 GOSUB 20000›20 GRAPHICS 7+16:POKE 756,PEEK(106)+1›30 SETCOLOR 2,3,4:SC=0:J1=1:MX1=0:MY1=0:MX2=0:MY2=0:MX3=0:MY3=0:MX4=0:MY4=0:M1=0:M2=0:M3=0:M4=0›40 COLOR 1:FOR Y=35 TO 45:PLOT 72,Y:DRAWTO 95,Y:NEXT Y›41 COLOR 2›50 PLOT 72,35:DRAWTO 69,32:PLOT 73,35:DRAWTO 69,32:PLOT 72,36:DRAWTO 69,32›60 PLOT 72,45:DRAWTO 69,48:PLOT 73,45:DRAWTO 69,48:PLOT 72,44:DRAWTO 69,48›70 PLOT 95,35:DRAWTO 98,32:PLOT 94,35:DRAWTO 98,32:PLOT 95,36:DRAWTO 98,32›80 PLOT 95,45:DRAWTO 98,48:PLOT 94,45:DRAWTO 98,48:PLOT 95,44:DRAWTO 98,48›90 FOR STAR=1 TO 80:STARX=RND(0)*158+1:STARY=RND(0)*94+1:PLOT STARX,STARY:NEXT STAR›100 COLOR 0:FOR X=73 TO 94 STEP 2:PLOT X,40:NEXT X›110 D=USR(1536,83,3,0,0):D=USR(1536,67,3,1,0):D=USR(1536,79,3,2,0)›120 D=USR(1536,82,3,3,0):D=USR(1536,69,3,4,0):D=USR(1536,48,3,1,8):D=USR(1536,48,3,2,8):D=USR(1536,48,3,3,8)›130 ON J1 GOTO 140,150,160,170›140 D=USR(1536,32,1,70,24):GOTO 180›150 D=USR(1536,32,1,72,34):GOTO 180›160 D=USR(1536,32,1,70,43):GOTO 180›170 D=USR(1536,32,1,68,34)›180 J=STICK(0):IF J=15 THEN GOTO 290›190 IF J=10 OR J=14 OR J=6 THEN J1=1:D=USR(1536,16,1,70,24):GOTO 230›200 IF J=7 THEN J1=2:D=USR(1536,17,1,72,34):GOTO 230›210 IF J=5 OR J=13 OR J=9 THEN J1=3:D=USR(1536,18,1,70,43):GOTO 230›220 IF J=11 THEN J1=4:D=USR(1536,19,1,68,34)›230 COLOR 1:SOUND 0,25,10,8:SOUND 1,28,10,8:ON J1 GOTO 250,260,270,280›250 PLOT 84,27:DRAWTO 84,0:COLOR 0:PLOT 84,27:DRAWTO 84,0:IF M1=1 THEN M1=0:D=USR(1536,15,3,MX1,MY1):SC=SC+2›255 GOTO 290›260 PLOT 104,40:DRAWTO 159,40:COLOR 0:PLOT 104,40:DRAWTO 159,40:IF M2=1 THEN M2=0:D=USR(1536,15,3,MX2,MY2):SC=SC+2›265 GOTO 290›270 PLOT 84,54:DRAWTO 84,95:COLOR 0:PLOT 84,54:DRAWTO 84,95:IF M3=1 THEN M3=0:D=USR(1536,15,3,MX3,MY3):SC=SC+2:GOTO 290›280 PLOT 63,40:DRAWTO 0,40:COLOR 0:PLOT 63,40:DRAWTO 0,40:IF M4=1 THEN M4=0:D=USR(1536,15,3,MX4,MY4):SC=SC+2›290 SOUND 0,0,0,0:SOUND 1,0,0,0:SOUND 3,0,0,0:IF SC>999 THEN GOTO 700›300 V1=INT(SC/100):V2=INT(SC/10-V1*10):V3=SC-V1*100-V2*10:V1=V1+48:V2=V2+48:V3=V3+48›310 D=USR(1536,V1,3,1,8):D=USR(1536,V2,3,2,8):D=USR(1536,V3,3,3,8)›320 IF M1=0 THEN IF INT(RND(0)*2+1)=1 THEN M1=1:MX1=70:MY1=SC/75:D=USR(1536,20,2,MX1,MY1)›330 IF M2=0 THEN IF INT(RND(0)*2+1)=1 THEN M2=1:MX2=79-SC/400:MY2=33:D=USR(1536,21,2,MX2,MY2)›340 IF M3=0 THEN IF INT(RND(0)*2+1)=1 THEN M3=1:MX3=70:MY3=70-SC/75:D=USR(1536,22,2,MX3,MY3)›350 IF M4=0 THEN IF INT(RND(0)*2+1)=1 THEN M4=1:MX4=60+SC/400:MY4=32:D=USR(1536,23,2,MX4,MY4)›360 IF M1=1 THEN D=USR(1536,20,0,MX1,MY1):MY1=MY1+1:D=USR(1536,20,2,MX1,MY1):IF MY1>=24 THEN GOTO 500›370 IF M2=1 THEN D=USR(1536,21,0,MX2,MY2):MX2=MX2-1:D=USR(1536,21,2,MX2,MY2):IF MX2<=72 THEN GOTO 500›380 IF M3=1 THEN D=USR(1536,22,0,MX3,MY3):MY3=MY3-1:D=USR(1536,22,2,MX3,MY3):IF MY3<=43 THEN GOTO 500›390 IF M4=1 THEN D=USR(1536,23,0,MX4,MY4):MX4=MX4+1:D=USR(1536,23,2,MX4,MY4):IF MX4>=68 THEN GOTO 500›400 GOTO 130›500 SOUND 0,50,8,8:SOUND 1,100,8,8:SOUND 2,200,8,8:SOUND 3,5,8,8›510 D=USR(1536,15,3,68,34):D=USR(1536,15,3,70,43):D=USR(1536,15,3,72,34):D=USR(1536,15,3,70,24)›520 D=USR(1536,15,3,69,36):D=USR(1536,15,3,69,40):D=USR(1536,15,3,70,30):D=USR(1536,15,3,71,27)›530 FOR N=0 TO 3:SOUND N,0,0,0:NEXT N›550 FOR N=0 TO 3:SOUND N,N*80+5,8,8:NEXT N›560 COLOR 3:PLOT 84,40:DRAWTO 84,20:DRAWTO 84,60:PLOT 84,40:DRAWTO 114,40:DRAWTO 54,40:PLOT 84,40:DRAWTO 114,20›570 PLOT 84,40:DRAWTO 114,60:PLOT 84,40:DRAWTO 54,60:PLOT 84,40:DRAWTO 54,20›580 FOR W=0 TO 15:FOR W1=1 TO 20:SETCOLOR 2,W,5:NEXT W1:NEXT W›585 FOR N=0 TO 3:SOUND N,0,0,0:NEXT N›590 FOR I=1 TO 30:FOR J=1 TO 10*RND(1):SOUND 0,I+10*RND(1),10,8:NEXT J:NEXT I:SOUND 0,0,0,0›600 GRAPHICS 2+16:? #6;"GAME OVER..FINAL":? #6;"SCORE ";SC:? #6;"TO PLAY AGAIN":? #6;"PRESS TRIGGER"›610 IF STRIG(0)=1 THEN GOTO 610›620 GOTO 20›700 GRAPHICS 2+16:? #6;"GOOD GAME!!!":? #6;" ":? #6;"YOUR SPACE FORTRESS":? #6;"SURVIVED"›710 ? #6;"TO PLAY AGAIN":? #6;"PRESS ":GOTO 610›19999 END ›20000 ML=1536:FOR I=0 TO 252:READ A:POKE ML+I,A:NEXT I:RETURN ›20010 DATA 104,240,10,201,4,240›20020 DATA 11,170,104,104,202,208›20030 DATA 251,169,253,76,164,246›20040 DATA 104,133,195,104,201,128›20050 DATA 144,4,41,127,198,195›20060 DATA 170,141,250,6,224,96›20070 DATA 176,15,169,64,224,32›20080 DATA 144,2,169,224,24,109›20090 DATA 250,6,141,250,6,104›20100 DATA 104,141,251,6,104,104›20110 DATA 141,252,6,14,252,6›20120 DATA 104,104,141,253,6,133›20130 DATA 186,166,87,169,10,224›20140 DATA 3,240,8,169,20,224›20150 DATA 5,240,2,169,40,133›20160 DATA 207,133,187,165,88,133›20170 DATA 203,165,89,133,204,32›20180 DATA 228,6,24,173,252,6›20190 DATA 101,203,133,203,144,2›20200 DATA 230,204,24,165,203,101›20210 DATA 212,133,203,165,204,101›20220 DATA 213,133,204,173,250,6›20230 DATA 133,187,169,8,133,186›20240 DATA 32,228,6,165,212,133›20250 DATA 205,173,244,2,101,213›20260 DATA 133,206,160,0,162,8›20270 DATA 169,0,133,208,133,209›20280 DATA 177,205,69,195,72,104›20290 DATA 10,72,144,8,24,173›20300 DATA 251,6,5,208,133,208›20310 DATA 224,1,240,8,6,208›20320 DATA 38,209,6,208,38,209›20330 DATA 202,208,228,104,152,72›20340 DATA 160,0,165,209,145,203›20350 DATA 200,165,208,145,203,104›20360 DATA 168,24,165,203,101,207›20370 DATA 133,203,144,2,230,204›20380 DATA 200,192,8,208,183,96›20390 DATA 169,0,133,212,162,8›20400 DATA 70,186,144,3,24,101›20410 DATA 187,106,102,212,202,208›20420 DATA 243,133,213,96,0,1›20430 DATA 28›32000 POKE 106,PEEK(106)-16:GRAPHICS 0:START=(PEEK(106)+1)*256:POKE 756,START/256:POKE 752,1›32020 POKE 559,0:FOR Z=0 TO 1023:POKE START+Z,PEEK(57344+Z):NEXT Z:RESTORE 32100›32025 FOR I=1 TO 30:FOR J=1 TO 10*RND(1):SOUND 0,I+10*RND(1),10,8:NEXT J:NEXT I:SOUND 0,0,0,0›32030 READ X:IF X=-1 THEN RESTORE :POKE 559,34:RETURN ›32040 FOR Y=0 TO 7:READ Z:POKE X+Y+START,Z:NEXT Y:GOTO 32030›32100 DATA 632,145,82,44,222,57,52,74,137›32101 DATA 640,24,24,24,60,126,126,60,255›32102 DATA 648,128,176,248,255,255,248,176,128›32103 DATA 656,255,60,126,126,60,24,24,24›32104 DATA 664,1,13,31,255,255,31,13,1›32105 DATA 672,231,231,126,60,24,24,24,0›32106 DATA 680,3,7,15,252,252,15,7,3›32107 DATA 688,24,24,24,24,60,126,231,231›32108 DATA 696,192,224,240,63,63,240,224,192›32109 DATA -1›