1 MAXFILES=2:OPEN"TIMER.DO"FOR INPUT AS 1:OPEN"X$$.DO"FOR OUTPUT AS 2:FOR I=1TO4:LINE INPUT#1,A$:NEXT:?"Working..." 2 IF EOF(1)THEN CLOSE:KILL"TIMER.DO":NAME"X$$.DO"AS"TIMER.DO":RUN"TIMER.DO" 3 A$=INPUT$(1,1):IF A$<>"^"THEN?#2,A$;ELSE A$=INPUT$(1,1):IF A$="^"THEN?#2,A$;ELSE?#2,STRING$(1,VAL(A$+INPUT$(2,1))); 4 GOTO2 10 REM Each time a timer is started, 11 REM the clock loses .5 second, on 12 REM average, due to line 220. This 13 REM makes the timers more accurate 14 REM but sacrifices clock accuracy. 15 REM W Hubbard 70346,1716 4/28/85 16 ?CHR$(27)"U";:CLS 17 KEY ON 18 ON KEY GOSUB 500,300,600,,,,,90 19 DT$="00:00:00" 20 ?:?"Timer Options:" 21 ?" 1 Clock" 22 ?" 2 Count-Up Timer" 23 ?" 3 Count-Down Timer" 24 ?" 8 Menu" 25 ?"Press Function Key 1 2 or 3"; 26 ?@31,TIME$;:A$=INKEY$:GOTO 26 70 ST=0:LL=0:P=0:IF X=-1 THEN 600 ELSE 300 71 LL=ABS(LL-1):P=0:IF LL THEN ?@7,CHR$(27)"p 5-Lap "CHR$(27)"q";:RETURN ELSE ?@7," 5-Lap ";:GOTO 310 72 ST=ABS(ST-1):IF ST THEN ?@13,CHR$(27);"p 6-Stop/Start "CHR$(27)"q";:RETURN ELSE ?@13," 6-Stop/Start ";:RETURN 80 KEY ON:CLS:P=0:LL=0:ST=0:?@172,"+":?@185,"+":?@292,"+";:?@305,"+";:N$=STRING$(6,8)+CHR$(10) 81 ON KEY GOSUB 500,300,600,70,71,72,,91:RETURN 90 MENU 91 RUN 100 ?@L," ^252^239^239^239^254"N$" ^239^251 ^253^239"N$" ^239 ^239"N$" ^239 ^239"N$" ^239 ^239"N$" ^239^254 ^252^239"N$" ^253^239^239^239^251";:RETURN 110 ?@L," ^252^239^233 "N$" ^231^239^233 "N$" ^239^233 "N$" ^239^233 "N$" ^239^233 "N$" ^239^233 "N$" ^239^239^239^239^239";:RETURN 120 ?@L," ^252^239^239^239^254"N$" ^239^251 ^253^239"N$" ^231 ^252^239"N$" ^252^239^251"N$" ^252^239^251 "N$" ^252^239^251 ^232"N$" ^239^239^239^239^239";:RETURN 130 ?@L," ^239^239^239^239^239"N$" ^252^239"N$" ^252^239^251"N$" ^239^239^254"N$" ^253^239"N$" ^239^254 ^252^239"N$" ^253^239^239^239^251";:RETURN 140 ?@L," ^239^233"N$" ^239^233 ^239^233"N$" ^239^237^232^239^237"N$" ^239^239^239^239^239"N$" ^239^233"N$" ^239^233"N$" ^239^233";:RETURN 150 ?@L," ^239^239^239^239^239"N$" ^239^235^231^231^231"N$" ^239^233 "N$" ^239^239^239^239^254"N$" ^253^239"N$" ^239^254 ^252^239"N$" ^253^239^239^239^251";:RETURN 160 ?@L," ^252^239^239^239^254"N$" ^239^251 ^253^251"N$" ^239 "N$" ^239^252^239^239^254"N$" ^239^251 ^253^239"N$" ^239^254 ^252^239"N$" ^253^239^239^239^251";:RETURN 170 ?@L," ^239^239^239^239^239"N$" ^231^231^231^236^239"N$" ^238^239"N$" ^252^239^251"N$" ^252^239^251 "N$" ^252^239^251 "N$" ^239^251 ";:RETURN 180 ?@L," ^252^239^239^239^254"N$" ^239^251 ^253^239"N$" ^239^254 ^252^239"N$" ^234^239^239^239^233"N$" ^239^251 ^253^239"N$" ^239^254 ^252^239"N$" ^253^239^239^239^251";:RETURN 190 ?@L," ^252^239^239^239^254"N$" ^239^251 ^253^239"N$" ^239^254 ^252^239"N$" ^253^239^239^251^239"N$" ^239"N$" ^239"N$" ^239";:RETURN 200 ?@1,"Press ENTER to begin timing." 210 A$=INKEY$:IF A$="" THEN 210 ELSE TI$=TIME$ 220 TIME$=TIME$:?@1,CHR$(27)"K":TS=0 230 ?@0,"4-Reset 5-Lap 6-Stop/Start";:RETURN 300 GOSUB 80:T$="00:00:00":Y$="0":Z$=Y$::X=1:Y=60:Z=0:GOSUB 310:GOSUB 200 301 IF TI$=TIME$ THEN ?@31,TI$;:IF X=-1 AND T$="00:00:00" THEN MOTOR ON:?CHR$(7);:FOR A=1 TO 100:?@31,TIME$;:NEXT:MOTOR OFF:GOTO 26 ELSE 301 ELSE TI$=TIME$:IF ST THEN 301 302 TS=TS+X:IF TS=Y THEN TS=Z:TM=TM+X:IF TM=Y THEN TM=Z:TH=TH+X:IF X=1 THEN IF TH=100 THEN TH=0 ELSE TH=TH ELSE IF TH=-1 THEN 26 303 TS$=MID$(STR$(TS),2):IF LEN(TS$)=1 THEN TS$="0"+TS$ 304 TM$=MID$(STR$(TM),2):IF LEN(TM$)=1 THEN TM$="0"+TM$ 305 TH$=MID$(STR$(TH),2):IF LEN(TH$)=1 THEN TH$="0"+TH$ 306 T$=TH$+":"+TM$+":"+TS$ 307 IF LL=0 THEN GOSUB 310 308 GOTO 301 310 L=72:N=8:GOSUB 400:IF X$<>Y$ AND P THEN 316 311 L=66:N=7:GOSUB 400:IF X$<>Z$ AND P THEN 316 312 L=59:N=5:GOSUB 400:IF X$<>Y$ AND P THEN 316 313 L=53:N=4:GOSUB 400:IF X$<>Z$ AND P THEN 316 314 L=46:N=2:GOSUB 400:IF X$<>Y$ AND P THEN 316 315 L=40:N=1:GOSUB 400:P=1 316 RETURN 400 X$=MID$(T$,N,1):ON ASC(X$)-47 GOTO 100,110,120,130,140,150,160,170,180,190 500 CLS:GOSUB 80:Y$="0":Z$="0":X=1:Y=60:Z=0 501 IF T$=TIME$ THEN 501 ELSE T$=TIME$:TI=VAL(LEFT$(T$,2)):IF TI>12 THEN TI=TI-12:T$=RIGHT$("0"+MID$(STR$(TI),2)+RIGHT$(T$,6),8) 502 GOSUB 310:GOTO 501 600 CLS:GOSUB 80:CLS:GOSUB 650:GOSUB 80:Y$="9":Z$="5":X=-1:Y=-1:Z=59:GOSUB 310:GOSUB 200:TS=VAL(MID$(T$,7)):TM=VAL(MID$(T$,4,2)):TH=VAL(MID$(T$,1,2)):IF TS =0 AND TM=0 AND TH=0 THEN CLS:?@0,"Can't count down from 0";CHR$(7);:GOTO 20 601 GOTO 301 650 ?@102,DT$ 655 KEY ON 660 ?@80,"Enter the ";:LINE INPUT "start time: ";T$:IF T$=""THEN T$=DT$ 670 IF LEN(T$)<8 THEN T$="0"+T$:GOTO 670 671 FOR N=1 TO 8:IF MID$(T$,N,1)<"0" OR MID$(T$,N,1)>"9" THEN MID$(T$,N,1)="0":NEXT ELSE NEXT 680 MID$(T$,3,1)=":":MID$(T$,6,1)=":" 690 DT$=T$:RETURN