start tok64 d64-3jixgp 0 POKE53280,.:POKE53281,.:PRINT"{gray}{clear}{142}"; 1 REM "turbo touch" copyright 1988 2 REM marco h. westerweel 3 REM haaksbergen, the netherlands 5 : 10 INPUT"{clear}{down} file name{.*3}";ff$:ff=LEN(ff$):IFff<1ORff>16THEN10 15 PRINT"{clear}{down} stop highlighting keys at how many 20 INPUT"{down} keys per minute (1 - 150){.*3}";mt$:mt=VAL(mt$):IFmt<1ORmt>150THEN15 25 PRINT"{clear}":DIMt%(1600),ty$(23):OPEN8,8,8,"0:tt/intro screen,s,r 30 FORty=1TO23:INPUT#8,t1$:INPUT#8,t2$:ty$(ty)=t1$+t2$:NEXT:CLOSE8 35 z$="{reverse on}{156}{space*39}":GOSUB310:PRINT"{home}{down}"; 40 FORty=1TO23:PRINTty$(ty):ty$(ty)="":NEXT:OPEN8,8,8,"0:"+ff$+",s,r 45 f1=f1+1:INPUT#8,t%(f1):IFt%(f1)<>999THEN45 50 CLOSE8:t1=t%(1):t2=t%(2):FORta=1TO(t1-1):ta(ta)=5:NEXT:ta(t1)=t2 55 so=54272:FORss=soTOso+24:POKEso,.:NEXT:POKEso+24,. 60 FORx=1TO38:z1$=z1$+"{cm t}":z2$=z2$+"{cm @}":z3$=z3$+" ":NEXT:zz=.:q1$="{home}":FORq1=1TO18 65 q1$=q1$+"{down}":NEXT:q2$="{left*9}{down}":q3$="{reverse on}{156}{cm @*9}"+q2$ 70 q4$="{reverse on}{orange}{cm g}Min:Sec{cm m}"+q2$+"{cm g}Total{space*2}{cm m}"+q2$:q5$="{reverse on}{156}"+q2$ 75 q6$="{reverse on}{orange}{cm g}Errors {cm m}"+q2$+"{cm g}Err/Tot{cm m}"+q2$:q7$=q3$+q4$+q5$ 80 q8$=q3$+q6$+q5$:s$(1)="{home}{down}{right*2}":FORs=2TO5:s$(s)=s$(s-1)+"{down}":NEXT 85 DIMk$(88),f$(88):ql$="{down}{left*3}":t$="{reverse on}{red}{cm d}{cm i}{cm f}"+ql$+"{reverse off}{cm k}":b$="{reverse on}{red}{cm k}"+ql$+"{cm c}{reverse off}{cm i}{reverse on}{cm v} 90 tt$="{reverse on}{red}{space*3}"+ql$+" ":bb$="{reverse on}{red} "+ql$+"{space*3}":qr$="{down*2}{right}":sq$(1)="{home}{down*7}{right*4} 95 FORsq=2TO4:sq$(sq)=sq$(sq-1)+qr$:NEXT:qs$=sq$(4):k(.)=.:k(1)=13:k(2)=25 100 k(3)=36:k(4)=46:k$="1234567890+-{pound}QWERTYUIOP@*ASDFGHJKL:;ZXCVBNM,./":x$="{black} 105 FORk=1TO4:FORkk=k(k-1)+1TOk(k):IF(kk>25ANDkk<30)OR(kk>31ANDkk<36)THENx$="{blue} 110 m$=x$+"{reverse on}"+MID$(k$,kk,1):sq$(k)=sq$(k)+"{right*2}":x$="{black} 115 f$(kk)=sq$(k)+t$+m$+b$:k$(kk)=sq$(k)+tt$+m$+bb$:NEXT:NEXT 120 sb$="{down*3}{right*7} Space Bar ":k$(48)=qs$+"{reverse on}{black}"+sb$ 125 sh$="{down}{black}Shift":s1$=qs$+"{left*3}"+sh$:s2$=sq$(4)+"{right*3}"+sh$:FORk=49TO68:READs1 130 k$(k)="{reverse on}"+s1$+k$(s1):f$(k)="{reverse off}"+s1$+f$(s1):NEXT:FORk=69TO88:READs2 135 k$(k)="{reverse on}"+s2$+k$(s2):f$(k)="{reverse off}"+s2$+f$(s2):NEXT 140 DIMa(88):FORaa=1TO88:READa(aa):NEXT:fr=FRE(.):GOSUB310 145 GOSUB250:FORzx=1TO48:PRINTk$(zx):NEXT:ti$="{0*6}":mi$="00":tg=1:tx=.:xt=. 150 PRINT"{reverse on}"s1$s2$ 155 tx=2:tt=2:FORtb=1TOt1:PRINT"{home}{down}{right*2}{reverse on}{blue}";:FORtc=1TOta(tb):tt=tt+1 160 td=t%(tt):FORte=1TOtd:tt=tt+1:PRINTCHR$(t%(tt));:NEXT:PRINTCHR$(13)"{right*2}{reverse on}{blue}"; 165 NEXT:FORtc=1TOta(tb):tx=tx+1:td=t%(tx):FORte=1TOtd:tx=tx+1 170 gt=t%(tx):tg$=CHR$(gt):re=. 175 IFgt>31THENIFgt<94THENIFgt<>61THENgt=gt-31:GOTO190 180 IFgt>192THENIFgt<219THENgt=gt-130:GOTO190 185 GOTO220 190 IFtmtg$THENGOSUB280:GOTO195 210 tg=gt:IFtm>mt-1THENIFre=1THENPRINTk$(a(tg)) 215 PRINTs$(tc)TAB(te+1)"{reverse on}{black}"tg$ 220 NEXT:GOSUB300:tl=tl+td:m1$=MID$(ti$,3,2):m2$=RIGHT$(ti$,2):mi$=m1$+":"+m2$ 225 m1=VAL(m1$)*60:m2=VAL(m2$):tm=INT((tl*60)/(m1+m2)):et=INT(100*(er/tl)+.5) 230 PRINTq1$"{down}{reverse on}{156}"TAB(15)mi$:PRINTTAB(14)"{reverse on}{156}"tl:PRINTTAB(14)"{reverse on}{156}{space*4}{left*4}"tm 235 PRINTq1$"{down}{reverse on}{156}"TAB(34)er:PRINTTAB(34)"{reverse on}{156}{space*4}{left*4}"et"{left}% 240 IFtm>mt-1THENPRINTk$(a(tg)) 245 NEXT:PRINTk$(a(tg)):PRINT"{home}{down}";:FORz2=1TO5:PRINT"{right}{reverse on}{blue}"z3$:NEXT:NEXT:GOTO155 250 PRINT"{home}{reverse on}{156}{cm m}{blue}"z1$:POKE1063,229:POKE55335,4:FORx=1TO5:PRINT"{reverse on}{156}{cm m}{blue}"z3$ 255 zz=zz+40:POKE1063+zz,229:POKE55335+zz,4:NEXT:PRINT"{reverse on}{156}{cm m}{blue}"z2$:POKE1303,229 260 POKE55575,4:zz=.:FORz=1TO10:PRINT"{reverse on}{156}{cm m}{red}"z3$:zz=zz+40:POKE1303+zz,229 265 POKE55575+zz,4:NEXT:PRINT"{reverse on}{156}{cm m}{red}"z2$:POKE1743,229:POKE56015,4:zz=. 270 PRINTq1$TAB(5)q7$q1$TAB(25)q8$ 275 PRINTq1$"{down*6}{reverse on}{156}"TAB(10)"Press {black} F1 {156} to quit.{up}":RETURN 280 POKEso+3,6:POKEso+2,127:POKEso+5,15:POKEso+6,.:POKEso+1,6:POKEso,127 285 POKEso+4,65:FORt=1TO200:NEXT:POKEso+4,64:FORt=1TO50:NEXT 290 IFre=.THENer=er+1:re=1:IFm>mt-1THENPRINTf$(a(gt)) 295 RETURN 300 POKEso+3,100:POKEso+2,127:POKEso+5,9:POKEso+6,10:POKEso+1,100:POKEso,127 305 POKEso+4,65:FORt=1TO100:NEXT:POKEso+4,64:FORt=1TO25:NEXT:RETURN 310 POKE53281,15:POKE53280,4:POKE53272,23:zz=. 315 PRINT"{home}";:FORz=1TO24:PRINTz$:zz=zz+40:POKE1023+zz,160 320 POKE55295+zz,4:NEXT:PRINTz$"{up}":POKE2023,160:POKE56295,4:zz=.:RETURN 325 DATA6,7,8,9,44,45,46,35,36,31,21,33,34,43,42,22,23,20,19 330 DATA1,2,3,4,5,26,41,39,28,16,29,30,14,17,27,18,40,15,38,37 335 DATA48,69,70,71,72,73,49,50,51,52,25,11,44,12,45,46,10,1,2,3,4,5,6,7,8,9 340 DATA35,36,53,,54,55,24,26,41,39,28,16,29,30,31,21,32,33,34,43,42,22,23 345 DATA14,17,27,18,20,40,15,38,19,37,56,13,57,74,75,76,77,78,79,80,58,59,60 350 DATA61,62,63,64,65,66,66,81,82,83,84,67,85,86,87,68,88 stop tok64 (bastext 1.0)