8-Bit Software Online Conversion
:2.$.SAT - Listing
10MODE2
20ch=0:K=100:sc=0:dm=0
30tm=10:lv=1:lt=1000
40VDU23;8202;0;0;0;
50PROCenv
60y=1
70VDU5:d1=10:d2=1000
80GCOL0,y
90 MOVE d1,d2:PRINT"LEVEL ";lv
100 MOVE d1,d2-150:PRINT"MAX TIME :";t
m;" SECS"
110 MOVE d1,d2-300:PRINT"SCORE : ";sc
120IF ch=0 ch=1:y=3:d1=d1+8:d2=d2-6:GO
TO 80
130FORe=1TO10:SOUND 7,1,90,1:FORy=1TO2
00:NEXTy:NEXT:G$=INKEY$(1000):CLS
140ch=0:y=1:VDU4
150PROCgrid
160PROCstars
170PROCbuild
180PROCman
190END
200DEFPROCgrid
210COLOUR1:PRINTTAB(0,0)"SCORE :";sc
220COLOUR2:PRINTTAB(0,30)"DAMAGE : ";d
m
230 IF sc>=lt CLS:dm=dm-10:lt=lt+1000:
lv=lv+1:tm=tm-1:GOTO70:ENDPROC
240X=0:Y=0:GCOL0,4
250C1=0:C2=100
260MOVE X,Y+100:DRAW X+1300,Y+100
270DRAW X+700,Y+300
280DRAW X,Y+100
290GCOL0,7:MOVE X,Y+75:DRAW X+1300,Y+7
5:MOVE 0,900:DRAW 1300,900
300 PROCdraw
310ENDPROC
320DEFPROCman:X2=0:X3=100
330TIME=0
340SEC=(TIME DIV 100)MOD 60:PRINTTAB(0
,2)"TIME :";SEC;" SECS"
350COLOUR 2:PRINTTAB(0,30)"DAMAGE : ";
dm
360IF dm>=250 PROCdie
370 IF SEC>=tm dm=dm+1
380GCOL0,6
390MOVEX2,Y+100:DRAW X+700,Y+300
400DRAW X3,Y+100:DRAW X2,Y+100
410 GT$=INKEY$(1)
420IF GT$="" GOTO460
430GCOL0,4:MOVEX2,Y+100:DRAW X+700,Y+3
00:DRAW X3,Y+100:DRAW X2,Y+100
440SOUND &11,2,6,1:SOUND &12,2,6,1:SOU
ND &13,2,6,1
450*FX15,1
460 IF GT$="X" OR GT$="x" PROCright
470 IF GT$="Z" OR GT$="z" PROCleft
480 IF GT$=CHR$(13) PROCfire
490p=RND(20-lv)
500IF p=1 MOVE x1+50,y1+15:DRAW x1+50,
200:dm=dm+1:PROCblow
510 GOTO 340
520ENDPROC
530DEFPROCright:X2=X2+100
540 IF X2>=1200 X2=1200:X3=1300:GOTO57
0
550 X3=X3+100
560 C1=C1+K:C2=C2+K
570ENDPROC
580DEFPROCleft:X2=X2-100
590 IF X2<=0 X2=0:X3=100:GOTO 620
600 X3=X3-100
610 C1=C1-K:C2=C2-K
620ENDPROC
630DEFPROCfire:GCOL0,1
640*FX15,1
650SOUND &10,1,100,10
660MOVEX2,Y+100:DRAW X+700,Y+300:DRAW
X3,Y+100:DRAW X2,Y+100
670PLOT85,X+700,Y+300
680FORT=1TO100:NEXT
690GCOL0,0:MOVEX2,Y+100:DRAW X+700,Y+3
00:DRAW X3,Y+100:DRAW X2,Y+100:PLOT85,X+
700,Y+300:GCOL0,4:MOVEX2,Y+100:DRAW X+70
0,Y+300:DRAW X3,Y+100:DRAW X2,Y+100
700GCOL0,1
710IF C1>600 X7=(1000-C1-C1)+C2
720IF C1<=600 X7=(1300-C1-C1)+C2
730MOVE700,300:DRAW X7,y1:DRAW X7+100,
y1:DRAW 700,300
740PLOT85,X7,y1:GCOL0,0:MOVE700,300:DR
AW X7,y1:DRAW X7+100,y1:DRAW 700,300:PLO
T85,X7,y1
750PLOT85,X7,y1:GCOL0,0:MOVE700,300:DR
AW X7,y1:DRAW X7+100,y1:DRAW 700,300:PLO
T85,X7,y1
760PRINTTAB(0,0)"SCORE :";sc
770GCOL0,0:FORY7=300 TO 775 STEP 100:M
OVE X7,Y7:DRAW X7+125,Y7:DRAW X7+125,Y7+
100:DRAW X7,Y7+100:DRAW X7,Y7:PLOT85,X7+
125,Y7+100:PLOT85,X7+125,Y7:NEXT
780IF POINT(x1,y1)=0 AND POINT(x1+100,
y1)=0 AND POINT(x1,y1+50)=0 AND POINT(x1
+100,y1+50)=0 AND POINT(x1+50,y1)=0 AND
POINT(x1+50,y1+50)=0 sc=sc+(l*10):FORT=1
TO10:j=RND(8):GCOL0,j:PLOT69,X7+RND(125)
,300+RND(475):NEXT
790IF POINT(x1,y1)=0 AND POINT(x1+100,
y1)=0 AND POINT(x1,y1+50)=0 AND POINT(x1
+100,y1+50)=0 AND POINT(x1+50,y1)=0 AND
POINT(x1+50,y1+50)=0 x10=x1-50:FORy=1TO2
0:GCOL0,RND(7):PLOT69,x10+RND(100),RND(5
0)+y1:NEXT:PROCexplode
800IF POINT(x1,y1)=0 AND POINT(x1+100,
y1)=0 AND POINT(x1,y1+50)=0 AND POINT(x1
+100,y1+50)=0 AND POINT(x1+50,y1)=0 AND
POINT(x1+50,y1+50)=0 GCOL0,0:FORy=1TO50:
NEXT:MOVE x10,y1:DRAW x10+100,y1:DRAWx10
+100,y1+50:DRAW x10,y1+50:DRAW x10,y1
810IF POINT(x1,y1)=0 AND POINT(x1+100,
y1)=0 AND POINT(x1,y1+50)=0 AND POINT(x1
+100,y1+50)=0 AND POINT(x1+50,y1)=0 AND
POINT(x1+50,y1+50)=0 PLOT85,x10+100,y1+5
0:PLOT85,x10+100,y1:PROCbuild
820ENDPROC
830DEFPROCbuild:TIME=0
840FORh=1TO5:SOUND 8,1,4,1:NEXT
850COLOUR1:PRINTTAB(0,0)"SCORE :";sc
860COLOUR2:PRINTTAB(0,30)"DAMAGE : ";d
m
870 IF dm>=250 PROCdie
880IF sc>=lt CLS:dm=dm-10:lt=lt+1000:l
v=lv+1:tm=tm-1:GOTO70:ENDPROC
890y1=RND(225)+500:x2=RND(10):IF x2>=4
AND x2<=6 GOTO 890 ELSE IF x2=10 GOTO 8
90 ELSE x1=(x2*100)+100
900l=RND(6)+8
910GCOL0,7
920 MOVE x1+40,y1:DRAW x1+60,y1:DRAW x
1+60,y1+50:DRAW x1+40,y1+50:DRAW x1+40,y
1:PLOT85,x1+60,y1+50:PLOT85,x1+60,y1
930GCOL0,l
940 MOVE x1,y1+15:DRAW x1+40,y1+15:DRA
W x1+40,y1+35:DRAW x1,y1+35:DRAW x1,y1+1
5
950PLOT85,x1+40,y1+35:PLOT85,x1+40,y1+
15
960 MOVE x1+60,y1+15:DRAW x1+100,y1+15
:DRAW x1+100,y1+35:DRAW x1+60,y1+35:DRAW
x1+60,y1+15
970PLOT85,x1+100,y1+35:PLOT85,x1+100,y
1+15
980ENDPROC
990DEFPROCenv:ENVELOPE 3,1,0,0,0,0,0,0
,-126,-2,0,-1,126,80:ENVELOPE 1,1,0,0,0,
0,0,0,-126,-2,0,-1,126,80:ENVELOPE2,1,0,
0,0,0,0,0,-126,-2,0,-1,126,80:ENVELOPE4,
1,0,0,0,0,0,0,-126,-2,0,-1,126,80
1000ENVELOPE 8,0,-128,127,19,35,68,200,
2,3,-10,24,110,120:ENVELOPE 12,8,1,-1,1,
1,1,1,121,-10,5,-2,120,120:ENVELOPE 7,0,
0,1,1,1,1,1,121,-10,0,-2,120,120:ENDPROC
1010DEFPROCstars
1020FORT=1TO100:g=RND(7)
1030GCOL0,g:PLOT69,RND(1300),RND(400)+5
00:NEXT:ENDPROC
1040DEFPROCexplode:SOUND &10,1,100,20:E
NDPROC
1050DEFPROCblow:x10=0:FORh=1TO50:NEXT:G
COL0,0:MOVE x1+50,y1+15:DRAW x1+50,200:x
10=x1
1060GT$=INKEY$(1): IF GT$="X" OR GT$="x
" PROCright ELSE IF GT$="Z" OR GT$="z" P
ROCleft ELSE IF GT$=CHR$(13) PROCfire
1070x10=x10-50:FORy=1TO20:GCOL0,RND(7):
PLOT69,x10+RND(100),RND(50)+200:NEXT
1080 PROCexplode:GCOL0,0:FORy=1TO100:NE
XT
1090 MOVE x10,200:DRAW x10+100,200:DRAW
x10+100,250:DRAW x10,250:DRAW x10,200:PL
OT85,x10+100,250:PLOT85,x10+100,200
1100PROCdraw
1110ENDPROC
1120DEFPROCdraw:GCOL0,4:FORT=0 TO 1300
STEP 100:MOVE T,Y+100:DRAW X+700,Y+300:N
EXT:X1=1300:X=0:FORT=100 TO 300 STEP 25:
MOVE X,T:DRAW X1,T:X=X+85:X1=X1-75:NEXT:
X=0:ENDPROC
1130DEF PROCdie
1140CLS
1150CLG
1160PRINT"DAMAGE ABOVE 250"
1170PRINT
1180PRINT"YOU ARE SPACE DEBRIS"
1190PRINT
1200PRINT"RETURN TO RESTART"
1210PRINT
1220*FX15
1230A=GET
1240CLEAR:RUN
1250ENDPROC