8-Bit Software Online Conversion

:2.$.SHIP - Listing

10*LOAD "STARS" 20FORT=1TO10:CALL&B00:NEXT:PROCvar:PR OCscore:PROClevel:PROCshields 30 *LOAD "STARS" 40PROCship(1,7):PROClevel 50PROCgr:GOTO50 60DEFPROCvar:x=700:y=500:sc=0:x5=0:y5 =500:x1=0:y1=RND(500)+200:dm=50:lv=1:j=R ND(7):ENDPROC 70DEFPROCgr:CALL&B00 80G$=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" 150CALL&B00 160 IF G$<>"" PROCship(1,7) 170 IF G$=CHR$(13) PROCfire 180PROCcheck 190PROCbad(j):CALL &B00:ENDPROC 200DEFPROCship(c1,c2):VDU5:MOVE x,y:CA LL&B00:IF c1=0 AND c2=0 GCOL0,0:VDU240:G OTO 220 210GCOL0,4:VDU240 220GCOL0,c2:VDU241 230MOVE x,y-25 240VDU 242 250GCOL0,c1:VDU243 260CALL&B00 270VDU4:ENDPROC 280DEFPROCleft:IF x<=300 x=300:ENDPROC 290CALL&B00:PROCship(0,0):x=x-50:ENDPR OC 300DEFPROCright:IF x>=1150 x=1150:ENDP ROC 310CALL&B00:PROCship(0,0):x=x+50:ENDPR OC 320DEFPROCup:PROCship(0,0):IF y>=675 y =675:ENDPROC 330CALL&B00:y=y+50:ENDPROC 340DEFPROCdown:PROCship(0,0):IF y<=200 y=200:ENDPROC 350CALL&B00:y=y-50:ENDPROC 360DEFPROCfire:SOUND1,1,255,5 370q=RND(7):IF q=j GOTO370 380GCOL0,q:MOVE x,y-25:DRAW 0,y-25:FOR T=1TO25:NEXT:GCOL0,0:MOVE x,y-25:DRAW 0, y-25:CALL&B00:y2=y1+RND(45):y3=y1-RND(45 ):IF (y-25<y2) AND (y-25>y3) sc=sc+50:PR OCbang 390PROCscore:CALL&B00:ENDPROC 400 DEFPROCbad(l):VDU5 410GCOL0,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 470x1=x1+RND(50) 480IF l=7 l=1 481GCOL0,l 490 MOVE x1,y1:VDU 245:GCOL0,7:VDU246: GCOL0,l:VDU247 500r1=RND(lv*20) 510IF r1<lv*3 THEN PROCbomb 520 VDU4:ENDPROC 530DEFPROCbang:SOUND 4,4,4,1 540VDU5:CALL&B00 550GCOL0,0:MOVE x1,y1:VDU 245:VDU246:V DU247 560x1=0:y1=RND(500)+200:j=RND(7) 570VDU4 580 ENDPROC 590 DEFPROCcheck 600 x3=INT(x/50):x4=INT(x1/50) 610 y3=INT(y/50):y4=INT(y1/50) 620 IF (x3=x4 OR x3=x4+1) AND (y3=y4 O R y3=y4+1) dm=dm-5:PROCshields:CALL&B00 630 IF dm<=10 PROCdead 640 IF sc>lv*750 PROCnext 650 CALL&B00:ENDPROC 660 DEFPROCbomb 670VDU4:PROCshields:VDU5 680GCOL0,RND(7):CALL&B00 690 MOVE x1,y1-25:DRAW x1+88,170:DRAW x1+175,y1-25:DRAWx1,y1-25:PLOT85,x1+88,1 70 700 SOUND 4,4,5,1 710GCOL0,0:MOVE x1,y1-25:DRAW x1+88,17 0: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:PRI NTTAB(8,4);lv:CALL &B00:ENDPROC 760 DEFPROCscore:COLOUR7:PRINTTAB(8,2) ;sc:CALL &B00:ENDPROC 770 DEFPROCshields:VDU7:COLOUR7:PRINTT AB(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:PROClev el 800PROCshields:IF dm<10 PRINTTAB(10,5) " " 810 PROCship(0,0):ENDPROC 820 DEFPROCdead:VDU4:COLOUR0:PRINTTAB( 13,3)"END !!":FORyy=1 TO 4000:NEXT:COLOU R132:PRINTTAB(13,3)" " 830COLOUR5:PRINTTAB(13,3)"PRESS":PRINT TAB(13,4)"ANY":PRINTTAB(13,5)"KEY":OSCLI "FX21,0":Y$=GET$ 840COLOUR132:PRINTTAB(13,3)" ":PRI NTTAB(13,4)" ":PRINTTAB(13,5)" ":sc= 0:lv=1:dm=50:PRINTTAB(8,4)" ":PRINTTAB (8,2)" ":PRINTTAB(10,6)" ":GOTO 40:ENDPROC