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