10 *LOAD "STARS" 20 FORT=1TO10:CALL&B00:NEXT:PROCvar:PROCscore:PROClevel:PROCshields 30 *LOAD "STARS" 40 PROCship(1,7):PROClevel 50 PROCgr:GOTO50 60 DEFPROCvar:x=700:y=500:sc=0:x5=0:y5=500:x1=0:y1=RND(500)+200:dm=50:lv=1:j=RND(7):ENDPROC 70 DEFPROCgr:CALL&B00 80 G$=INKEY$(1):OSCLI"FX21,0":IF G$="" GOTO 190 90 IF G$="Z" OR G$="z" PROCleft 100 IF G$="X" OR G$="x" PROCright 110 IF G$="*" OR G$=":" PROCup 120 IF G$="?" OR G$="/" PROCdown 130 IF G$="Q" OR G$="q" OSCLI"FX210,1" 140 IF G$="S" OR G$="s" OSCLI"FX210,0" 150 CALL&B00 160 IF G$<>"" PROCship(1,7) 170 IF G$=CHR$(13) PROCfire 180 PROCcheck 190 PROCbad(j):CALL &B00:ENDPROC 200 DEFPROCship(c1,c2):VDU5:MOVE x,y:CALL&B00:IF c1=0 AND c2=0 GCOL0,0:VDU240:GOTO 220 210 GCOL0,4:VDU240 220 GCOL0,c2:VDU241 230 MOVE x,y-25 240 VDU 242 250 GCOL0,c1:VDU243 260 CALL&B00 270 VDU4:ENDPROC 280 DEFPROCleft:IF x<=300 x=300:ENDPROC 290 CALL&B00:PROCship(0,0):x=x-50:ENDPROC 300 DEFPROCright:IF x>=1150 x=1150:ENDPROC 310 CALL&B00:PROCship(0,0):x=x+50:ENDPROC 320 DEFPROCup:PROCship(0,0):IF y>=675 y=675:ENDPROC 330 CALL&B00:y=y+50:ENDPROC 340 DEFPROCdown:PROCship(0,0):IF y<=200 y=200:ENDPROC 350 CALL&B00:y=y-50:ENDPROC 360 DEFPROCfire:SOUND1,1,255,5 370 q=RND(7):IF q=j GOTO370 380 GCOL0,q:MOVE x,y-25:DRAW 0,y-25:FORT=1TO25:NEXT:GCOL0,0:MOVE x,y-25:DRAW 0,y-25:CALL&B00:y2=y1+RND(45):y3=y1-RND(45):IF (y-25y3) sc=sc+50:PROCbang 390 PROCscore:CALL&B00:ENDPROC 400 DEFPROCbad(l):VDU5 410 GCOL0,0:CALL&B00 420 MOVE x1,y1:VDU 245:VDU246:VDU247 430 y1=y1+((RND(50)-RND(50))) 440 IF y1>=650 y1=600 450 IF y1<=200 y1=200 460 IFx1>=1280 x1=0 470 x1=x1+RND(50) 480 IF l=7 l=1 481 GCOL0,l 490 MOVE x1,y1:VDU 245:GCOL0,7:VDU246:GCOL0,l:VDU247 500 r1=RND(lv*20) 510 IF r1lv*750 PROCnext 650 CALL&B00:ENDPROC 660 DEFPROCbomb 670 VDU4:PROCshields:VDU5 680 GCOL0,RND(7):CALL&B00 690 MOVE x1,y1-25:DRAW x1+88,170:DRAW x1+175,y1-25:DRAWx1,y1-25:PLOT85,x1+88,170 700 SOUND 4,4,5,1 710 GCOL0,0:MOVE x1,y1-25:DRAW x1+88,170:DRAW x1+175,y1-25:DRAWx1,y1-25:PLOT85,x1+88,170 720 dm=dm-1 730 IF dm<=10 PROCdead 740 ENDPROC 750 DEFPROClevel:COLOUR132:COLOUR7:PRINTTAB(8,4);lv:CALL &B00:ENDPROC 760 DEFPROCscore:COLOUR7:PRINTTAB(8,2);sc:CALL &B00:ENDPROC 770 DEFPROCshields:VDU7:COLOUR7:PRINTTAB(10,6);dm:CALL&B00:ENDPROC 780 DEFPROCnext:COLOUR 0:PRINTTAB(13,3)"NEXT":PRINTTAB(13,5)"LEVEL":FORyy=1 TO 4000:NEXT:COLOUR132:PRINTTAB(13,3)" ":PRINTTAB(13,5)" " 790 lv=lv+1:dm=dm+10:PROCscore:PROClevel 800 PROCshields:IF dm<10 PRINTTAB(10,5)" " 810 PROCship(0,0):ENDPROC 820 DEFPROCdead:VDU4:COLOUR0:PRINTTAB(13,3)"END !!":FORyy=1 TO 4000:NEXT:COLOUR132:PRINTTAB(13,3)" " 830 COLOUR5:PRINTTAB(13,3)"PRESS":PRINTTAB(13,4)"ANY":PRINTTAB(13,5)"KEY":OSCLI"FX21,0":Y$=GET$ 840 COLOUR132:PRINTTAB(13,3)" ":PRINTTAB(13,4)" ":PRINTTAB(13,5)" ":sc=0:lv=1:dm=50:PRINTTAB(8,4)" ":PRINTTAB(8,2)" ":PRINTTAB(10,6)" ":GOTO40:ENDPROC