10 TIME=0:CLEAR:PROCinit 20 X2=0:Y2=0:X=100:Y=t:yas=1:PROCgcol:PROCscore:PROCdraw(q,X,Y) 30 PROCtime:PROCgame:GOTO30:END 40 DEFPROCinit:t=575:X=100:Y=t:yas=1:sc=0:m=((t-300)/25)+3:DIM gr(11,m):ENDPROC 50 DEFPROCdraw(s,x11,y11):VDU5:GCOL0,s:MOVE x11,y11:VDU81:ENDPROC 60 DEFPROCgame:GT$=INKEY$(1):OSCLI"FX21,0":IF GT$="" PROCcheck:PROCdown 70 IF GT$<>"" PROCdraw(0,X,Y) ELSE GCOL0,q:PROCcheck 80 IF GT$="Z" OR GT$="z" X=X-50 ELSE IF GT$="X" OR GT$="x" X=X+50 ELSE IF GT$="P" OR GT$="p" PROCpause ELSE IF GT$="S" OR GT$="S" PROCs 90 IF X<=100 X=100 ELSE IF X>=600 X=600 100 PROCdraw(q,X,Y):ENDPROC 110 DEFPROCgcol:q=RND(7):GCOL0,q:ENDPROC 120 DEFPROCdown:PROCdraw(0,X,Y):IF Y=300 PROCstore:PROCcheck:GOTO20 ELSE yas=yas+1:Y=Y-25:ENDPROC 130 DEFPROCstore:PROCscore:PROCdraw(q,X,Y):X2=(X/50)-1:Y2=yas:X9=X2:Y9=Y2:gr(X9,Y9)=q:PROCsat:ENDPROC 140 DEFPROCcheck:X2=(X/50)-1:Y2=yas:IFgr(X2,Y2)<>0 AND yas=1 CHAIN"SLAT2" 150 X2=(X/50)-1:Y2=yas:IF gr(X2,Y2+1)=0 ENDPROC ELSE PROCstore:GOTO20:ENDPROC 160 DEFPROCscore:VDU4:COLOUR1:PRINTTAB(13,4)"SCORE":COLOUR6:PRINTTAB(13,6);sc:ENDPROC 170 DEFPROCsat:IF X9>=9 X9=9 180 PROCx(gr(X9,Y9),gr(X9+1,Y9),gr(X9+2,Y9),X9):IF X9<=3 X9=3 190 PROCx(gr(X9-2,Y9),gr(X9-1,Y9),gr(X9,Y9),X9-2):PROCx(gr(X9-1,Y9),gr(X9,Y9),gr(X9+1,Y9),X9-1):ENDPROC 200 DEFPROCdel(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:PROCscore:ENDPROC 210 DEFPROCpause:ET=TIME:VDU4:COLOUR1:PRINTTAB(1,30)"PAUSE":PROCnoise 220 HY$=INKEY$(1):IF HY$="P" OR HY$="p" PRINTTAB(1,30)" ":TIME=ET:ENDPROC ELSE GOTO 220 230 DEFPROCs:IF X=600 X=100:ENDPROC ELSE IF X=100 X=600:ENDPROC 240 DEFPROCnoise:FORI%=1TO3:SOUNDI%,7,I%*48,1:NEXT:ENDPROC 250 DEFPROCx(a,b,c,X10):IF a=0 AND b=0 AND c=0 ENDPROC ELSE IF a=b AND b=c PROCdel(X10,Y9):ENDPROC ELSE ENDPROC 260 DEFPROCtime:VDU4:SEC=(TIME DIV 100)MOD 60:MIN=(TIME DIV 6000)MOD 60:PRINTTAB(1,26)"TIME:":PRINTTAB(1,27)"";MIN;" MINS" 270 IFSEC<10 PRINTTAB(1,28)" ";SEC;" SECS":GOTO290 280 PRINTTAB(1,28)"";SEC;" SECS" 290 IF MIN=4 CHAIN"SLAT2":ENDPROC ELSE VDU5:ENDPROC