8-Bit Software Online Conversion
:2.$.SLATTER - Listing
10TIME=0:CLEAR:PROCinit
20X2=0:Y2=0:X=100:Y=t:yas=1:PROCgcol:
PROCscore:PROCdraw(q,X,Y)
30PROCtime:PROCgame:GOTO30:END
40DEFPROCinit:t=575:X=100:Y=t:yas=1:s
c=0:m=((t-300)/25)+3:DIM gr(11,m):ENDPRO
C
50DEFPROCdraw(s,x11,y11):VDU5:GCOL0,s
:MOVE x11,y11:VDU81:ENDPROC
60DEFPROCgame:GT$=INKEY$(1):OSCLI"FX2
1,0":IF GT$="" PROCcheck:PROCdown
70IF GT$<>"" PROCdraw(0,X,Y) ELSE GCO
L0,q:PROCcheck
80IF GT$="Z" OR GT$="z" X=X-50 ELSE I
F GT$="X" OR GT$="x" X=X+50 ELSE IF GT$=
"P" OR GT$="p" PROCpause ELSE IF GT$="S"
OR GT$="S" PROCs
90IF X<=100 X=100 ELSE IF X>=600 X=60
0
100PROCdraw(q,X,Y):ENDPROC
110DEFPROCgcol:q=RND(7):GCOL0,q:ENDPRO
C
120DEFPROCdown:PROCdraw(0,X,Y):IF Y=30
0 PROCstore:PROCcheck:GOTO20 ELSE yas=ya
s+1:Y=Y-25:ENDPROC
130DEFPROCstore:PROCscore:PROCdraw(q,X
,Y):X2=(X/50)-1:Y2=yas:X9=X2:Y9=Y2:gr(X9
,Y9)=q:PROCsat:ENDPROC
140DEFPROCcheck:X2=(X/50)-1:Y2=yas:IFg
r(X2,Y2)<>0 AND yas=1 CHAIN"SLAT2"
150X2=(X/50)-1:Y2=yas:IF gr(X2,Y2+1)=0
ENDPROC ELSE PROCstore:GOTO20:ENDPROC
160DEFPROCscore:VDU4:COLOUR1:PRINTTAB(
13,4)"SCORE":COLOUR6:PRINTTAB(13,6);sc:E
NDPROC
170DEFPROCsat:IF X9>=9 X9=9
180PROCx(gr(X9,Y9),gr(X9+1,Y9),gr(X9+2
,Y9),X9):IF X9<=3 X9=3
190PROCx(gr(X9-2,Y9),gr(X9-1,Y9),gr(X9
,Y9),X9-2):PROCx(gr(X9-1,Y9),gr(X9,Y9),g
r(X9+1,Y9),X9-1):ENDPROC
200DEFPROCdel(X4,Y4):sc=sc+(100*a):X5=
(X4+1)*50:PROCdraw(0,X5,Y):PROCdraw(0,X5
+50,Y):PROCdraw(0,X5+100,Y):gr(X4,Y4)=0:
gr(X4+1,Y4)=0:gr(X4+2,Y4)=0:VDU7:PROCsco
re:ENDPROC
210DEFPROCpause:ET=TIME:VDU4:COLOUR1:P
RINTTAB(1,30)"PAUSE":PROCnoise
220HY$=INKEY$(1):IF HY$="P" OR HY$="p"
PRINTTAB(1,30)" ":TIME=ET:ENDPROC E
LSE GOTO 220
230DEFPROCs:IF X=600 X=100:ENDPROC ELS
E IF X=100 X=600:ENDPROC
240DEFPROCnoise:FORI%=1TO3:SOUNDI%,7,I
%*48,1:NEXT:ENDPROC
250DEFPROCx(a,b,c,X10):IF a=0 AND b=0
AND c=0 ENDPROC ELSE IF a=b AND b=c PROC
del(X10,Y9):ENDPROC ELSE ENDPROC
260DEFPROCtime:VDU4:SEC=(TIME DIV 100)
MOD 60:MIN=(TIME DIV 6000)MOD 60:PRINTTA
B(1,26)"TIME:":PRINTTAB(1,27)"";MIN;" MI
NS"
270IFSEC<10 PRINTTAB(1,28)" ";SEC;" SE
CS":GOTO290
280PRINTTAB(1,28)"";SEC;" SECS"
290IF MIN=4 CHAIN"SLAT2":ENDPROC ELSE
VDU5:ENDPROC