640 VTAB 22: PRINT : PRINT "PRESS ANY KEY TO CONTINUE";: GET A$
1000 HOME
1010 PRINT " SPEED TEST"
1020 VTAB 10: PRINT "B)EGIN TESTING"
1030 PRINT : PRINT "R)EAD INSTRUCTIONS"
1040 PRINT : PRINT "V)IEW RESULTS"
1050 PRINT : PRINT "W)RITE RESULTS TO A FILE"
1060 PRINT : PRINT "Q)UIT"
1070 PRINT : PRINT "PLEASE ENTER SELECTION: ";
1080 GET A$: PRINT A$: IF A$ < >"B" AND A$ < >"b" AND A$ < >"R" AND A$ < >"r" AND A$ < >"Q" AND A$ < >"q" AND A$ < >"V" AND A$ < >"v" AND A$ < >"W" AND A$ < >"w" THEN PRINT CHR$(7): GOTO 1000
1090 IF A$ = "Q" OR A$ = "q" THEN END : REM QUIT... WHAT DID YOU THINK IT DID?
1100 IF A$ = "R" OR A$ = "r" THEN GOSUB 7000:A$ = "": REM PRINT OUT THE INSTRUCTIONS
1110 IF A$ = "B" OR A$ = "b" THEN GOSUB 2000:A$ = "": REM BEGIN TESTING
1120 IF A$ = "V" OR A$ = "v" THEN GOSUB 6000:A$ = "": REM DISPLAY RESULTS
1130 IF A$ = "W" OR A$ = "w" THEN GOSUB 5000:A$ = "": REM WRITE RESULTS TO A FILE
1140 GOTO 1000
2000 REM TESTING MENU
2010 HOME : PRINT "# NAME INDEX TIME"
2020 PRINT
2030 FOR A = 1 TO TESTS: PRINT A;: HTAB 3: PRINT ") ";TN$(A);: HTAB 29: PRINT IN$(TX(A));
2040 A$ = LEFT$( STR$(TT(A)),5): IF TT(A) <100 THEN A$ = " " + LEFT$(A$,4)
2050 HTAB 35: PRINT A$: NEXT
2060 PRINT
2070 PRINT "A)LL TESTS"
2080 PRINT "E)NTER RESULTS DIRECTLY"
2090 PRINT "Q)UIT BACK TO MAIN MENU"
2100 VTAB 23: PRINT "PLEASE ENTER YOUR SELECTION: ";: INPUT A$
2110 IF ( VAL(A$) = 0 OR VAL(A$) >TESTS) AND A$ < >"A" AND A$ < >"a" AND A$ < >"Q" AND A$ < >"q" AND A$ < >"E" AND A$ < >"e" THEN PRINT CHR$(7): GOTO 2000
2120 TV = 0
2130 IF A$ = "Q" OR A$ = "q" THEN RETURN
2140 IF A$ = "A" OR A$ = "a" THEN TV = 0: GOSUB 3000:A$ = ""
2150 IF A$ = "E" OR A$ = "e" THEN GOSUB 3180:A$ = ""
2160 IF A$ < >"" THEN TV = VAL(A$): GOSUB 3000:A$ = ""
2170 GOTO 2000
2180 END
3000 REM PASS TEST INFO ONE AT A TIME TO NEXT ROUTINE
3010 IF TV < >0 THEN GOTO 3140
3020 FOR AA = 1 TO TESTS
3030 GOSUB 4000
3040 HOME : VTAB 12: PRINT "N)EXT TEST"
3050 PRINT : PRINT "R)EDO TEST"
3060 PRINT : PRINT "Q)UIT TO TESTING MENU"
3070 VTAB 23: PRINT "PLESE ENTER YOUR SELECTION: ";: PRINT "N"; CHR$(8);: GET A$: IF A$ = CHR$(13) THEN A$ = "N"
3080 IF A$ < >"N" AND A$ < >"n" AND A$ < >"R" AND A$ < >"r" AND A$ < >"Q" AND A$ < >"q" THEN PRINT CHR$(7): GOTO 3040
3090 IF A$ = "R" OR A$ = "r" THEN GOTO 3030
3100 IF A$ = "Q" OR A$ = "q" THEN AA = 9999: REM BREAK OUT OF THE LOOP
3110 REM A$ MUST BE "N"
3120 NEXT
3130 RETURN
3140 REM EXECUTE JUST ONE TEST
3150 AA = TV
3160 GOSUB 4000
3170 RETURN
3180 VTAB 23: PRINT "CHANGE RESULTS FOR WHICH TEST "; CHR$(8); CHR$(8);: INPUT A$
3190 A = VAL(A$)
3200 HOME : PRINT "PLEASE ENTER THE RESULTS";: INPUT A$
3210 TR(A) = VAL(A$)
3220 PRINT : PRINT : PRINT "YOU ENTERED ";TR(A);" IS THIS CORRECT? Y"; CHR$(8);: GET A$
3230 IF A$ = CHR$(13) THEN A$ = "Y"
3240 IF A$ < >"Y" AND A$ < >"y" THEN 3200
3250 TI(A) = TT(A)/(TR(A) +0.00001)
3260 RETURN
4000 REM PERFORM TESTS
4010 PRINT D$: PRINT D$"BLOAD ";TF$(AA)
4020 HOME : PRINT TN$(AA);" TEST!": PRINT : PRINT "THIS TEST TOOK ";TT(AA);" SECONDS ON A //E"
4030 PRINT : PRINT "PRESS ANY KEY TO START": GET A$
4035 IF TM(AA) = 1 THEN HOME
4040 IF TM(AA) = 2 THEN GR
4050 IF TM(AA) = 3 THEN HGR2
4060 PRINT : PRINT "STARTING TEST!"
4070 CALL 768: REM ALL ROUTINES MUST HAVE AN ENTRY POINT AT $300
4080 IF TM(AA) = 1 OR TM(AA) = 2 THEN HOME : TEXT
4090 PRINT : PRINT "FINISHED TEST!"; CHR$(7)
4100 PRINT : PRINT : PRINT "PRESS ANY KEY TO CONTINUE": GET A$
4110 HOME : PRINT "HOW LONG DID THE TEST TAKE";: INPUT A$
4120 TR(AA) = VAL(A$)
4130 PRINT : PRINT : PRINT "YOU ENTERED ";TR(AA);" IS THIS CORRECT? Y"; CHR$(8);: GET A$
4140 IF A$ = CHR$(13) THEN A$ = "Y"
4150 IF A$ < >"Y" AND A$ < >"y" THEN 4110
4160 TI(AA) = TT(AA)/TR(AA)
4170 HOME
4180 RETURN
5000 REM WRITE THE TEST RESULTS TO A FILE
5010 GOSUB 6000: REM DISPLAY RESULTS BEFORE WRITING TO A FILE
5020 PRINT : VTAB 23: PRINT "DO YOU WISH TO PRINT THESE RESULTS?";: GET A$: PRINT A$
5030 IF A$ < >"Y" AND A$ < >"y" THEN RETURN
5040 S$ = " "
5050 FOR A = 1 TO INDEX:D = 0:C = 0
5060 FOR B = 1 TO TESTS
5070 IF TX(B) = (A) AND TI(B) < >0 THEN C = C +TI(B):D = D +1