0 'THE METER (C)1989 Walter Perry: LastUpdate 4/10/89: The author grants permission to distribute THE METER if line 0 is included. If you find the program useful send $20 for complete information to Walter Perry 1610 Winter Street S.E. Salem Or 97302.
40 CLS:PRINT@90,"LOADING THE METER...";:ONERRORGOTO60:OPEN"TIME.DO"FORINPUTAS1:INPUT#1,N,NA$,MO,DA,YR,GT:FORA=1TON:INPUT#1,BH(A),BM(A),AM$(A),EH(A),EM(A),PM$(A),TT(A),CN$(A),CO$(A)
50 NEXTA:CLOSE:P=N:GOSUB480:GOTO90
60 IFERR=52GOTO80
70 PRINT"ERR=";ERR;"ERL=";ERL
80 CLS:GOSUB330:GOSUB480
90 PRINT@200," 1 NEXT PAGE 2 FILE 3 DESCRIPTION ";:PRINT@240," 4 TIME MENU 5 PICK PAGE 6 ERASE ":PRINT@280," 7 STOP METER 8 EXIT 9 PRINT 10 NAME ";
140 PRINT@200,CL$;:PRINT@200,"FILE NAME OR NUMBER (20 CHAR) ":INPUTCN$(P):PRINT@59,STRING$(19,32):PRINT@59,CN$(P):PRINT@200,CL$;:IFN>1THENFORS=1TO(N-1):IFCN$(P)=CN$(S)ANDP<>SGOTO150ELSENEXTS:RETURNELSERETURN
150 PRINT@200,CL$;:PRINT@200,"TIME ALREADY CHARGED TO FILE";:PRINT@240," ADD TIME TO PAGE #";S;:INPUT"(Y/N) ";A$:IFA$="Y"ORA$="y"THENP=S:N=N-1:GOSUB480:GOSUB270:RETURN:ELSERETURN
180 PRINT@160,CL$;:PRINT@160,"";:LINEINPUT"DESCRIPTION TOO LONG, TRY AGAIN";CO$(P):GOTO170
190 PRINT@200," 11 BEGIN TIME 12 BEGIN NOW 13 END TIME ";:PRINT@240," 14 END NOW 15 TOTAL TIME ";:PRINT@280," 16 ADD TIME 17 CHANGE DATE 18 GOBACK ";:GOTO100
200 PRINT@200,CL$;:PRINT@200," ";:INPUT"BEGIN HOUR,BEGIN MINUTE,(A)M OR (P)M: ";BH(P),BM(P),AM$(P):IFAM$(P)="P"THENBH=BH(P)+12:ELSEBH=BH(P)
210 GOSUB340:GOSUB300:RETURN
220 BH(P)=A:BM(P)=B:GOSUB330:RETURN
230 PRINT@200,CL$;:PRINT@200,"";:INPUT"END HOUR , END MINUTES, (A)M OR (P)M : ";EH(P),EM(P),PM$(P):IFPM$(P)="P"THENEH=EH(P)+12ELSEEH=EH(P)
240 GOSUB360:GOSUB300:RETURN
250 EH(P)=A:EM(P)=B:GOSUB350:GOSUB300:RETURN
260 PRINT@200,CL$;:PRINT@200,"":INPUT" Total Time";TT(P):PRINT@111,USING"##.#";TT(P):GOSUB320:EH(P)=A:EM(P)=B:GOSUB350:RETURN
270 PRINT@200,CL$;:PRINT@240," ";:INPUT"ADD TIME TO THIS FILE? Y/N ";A$:IFA$<>"Y"ANDA$<>"y"THENRETURN
380 PRINT @240,"";: INPUT "SELECT THE NUMBER OF THE PAGE"; R: IF R>N THENPRINT @ 280,"ONLY";N; "PAGES EXIST, PLEASE PICK AGAIN";: GOTO380
390 P=R: GOSUB480: RETURN
400 PRINT@200,CL$;: PRINT@200,"ERASE ALL VALUES ON ALL PAGES (Y/N)";:INPUT A$:IF A$<>"Y" AND A$<>"y" THENGOTO410:ELSECLEAR: KILL"TIME.DO": GOTO10
410 PRINT @240,"";:INPUT"ERASE VALUES FOR THIS PAGE (Y/N)";A$:IF A$="Y" OR A$="y" THENBH(P)=A:BM(P)=B:EH(P)=0:EM(P)=0:TT(P)=0:CN$(P)="":CO$(P)="":GOSUB330: GOSUB480:RETURN:ELSERETURN
420 CLOSE: OPEN "TIME.DO" FOR OUTPUT AS 1:PRINT#1, N;",";NA$;",";MO;",";DA;",";YR;",";GT: FOR X=1 TO N :PRINT#1,BH(X);",";BM(X);",";AM$(X);",";EH(X);",";EM(X);",";PM$(X);",";TT(X);",";CN$(X);",";CO$(X): NEXT X :MENU
430 LPRINT:LPRINT: LPRINT"";NA$;: LPRINT USING "##/##/##"; MO;DA;YR: LPRINT:LPRINT: LPRINT STRING$(80,"-"):LPRINT
440 LPRINT " FILE NUMBER TIME DESCRIPTION": LPRINT " ----------- ---- -----------" :LPRINT: LPRINT
450 FOR A=1 TO N: LPRINT USING " \ \ ##.# ";CN$(A);TT(A);: LPRINT CO$(A): LPRINT: TT=TT+ TT(A) :NEXT A
460 LPRINT STRING$(80,"-"): LPRINT:LPRINT USING" TOTAL TIME ##.#"; TT: TT=0: LPRINT:LPRINT: RETURN