5  IF  ERROR  THEN 1225
7  PRINT LIN(1);"TYPE 'STOP' TO EXIT"
10  REM *************SUPER DRILL IN BASIC ARTHMETIC FACTS*************
20  REM      DRILL:  AUTHOR:TIM AARONSON;5/20/72 W. WILSON HIGH SCHOOL
30  REM              REVISED:TIMM BENTLEY 10/22/76; (2000F) 
40  DIM O$[8],S$[11],C$[3],T$[18],B$[20],Z$[4],Q$[24]
45  DIM I$[255]
50  Q=0
60  O$="+-X/ASMD"
70  S$="0123456789 "
75  LET Q$=" (2-20)  (5-20) (10-25) "
80  IF TIM(1)>11 THEN 120
90  PRINT "GOOD MORNING, ";
100  GOTO 150
110  IF TIM(1)>15 THEN 140
120  PRINT "GOOD AFTERNOON, ";
130  GOTO 150
140  PRINT " GOOD EVENING, ";
150  PRINT "I'M MATH DRILL, WHAT'S YOUR NAME";
160  INPUT B$
170  PRINT LIN(1)
180  PRINT "DO YOU WANT INSTRUCTIONS, "B$;
190  INPUT Z$
200  IF Z$[1,1]="Y" THEN 300
210  IF Z$[1,1]="N" THEN 220
220  C=E=W=L9=0
230  PRINT LIN(2)
240  PRINT "LEVEL OF DIFFICULTY";
250  IF Q#0 THEN 280
260  PRINT " (TYPE IN 1, 2, 3, OR 4 FOR HELP)";
270  Q=1
280  INPUT L
290  IF L<4 AND L>0 THEN 480
300  PRINT "I CAN ADD, SUBTRACT, MULTIPLY OR DIVIDE YOUR CHOICE"
310  PRINT "OF PROBLEMS, "B$"."
320  PRINT ""
330  PRINT "YOU CAN SELECT A LEVEL OF DIFFICULTY FROM THE FOLLOWING:"LIN(1)
340  PRINT "    LEVEL             DESCRIPTION          "LIN(1)
350  PRINT "      1   --   EASY, QUICK-ANSWERED PROBLEMS!"LIN(1)
360  PRINT "      2   --   A LITTLE MORE DIFFICULT, BU"'25'25"T CAN BE WORKED"
370  PRINT "               IN YOUR HEAD WITHOUT PAPER AND PENCIL."'10LIN(1)
380  PRINT "      3   --   YOU'LL NEED PAPER AND PENCIL FOR THESE."
390  PRINT "               WORK FAST!"LIN(2)
400  PRINT "YOU WILL BE GIVEN 25 PROBLEMS."'10
410  PRINT "IF YOUR ANSWER IS CORRECT, I'LL TYPE 'C'."'10
420  PRINT "IF YOUR ANSWER IS WRONG, I'LL TYPE 'X'."'10
430  PRINT "IF YOU TIME OUT, I'LL TYPE 'T'."'10
440  PRINT "YOU CAN CHOOSE A TIME LIMIT OF 2 TO 20 SECONDS."
450  PRINT "GIVE YOURSELF PLENTY OF TIME--15 SECONDS TO START,"
460  PRINT "AND LESS AS YOU GET BETTER."
470  GOTO 220
480  RESTORE 
490  PRINT '13'10"HOW MANY SECONDS DO YOU NEED ";
491  LET Z1=(L=1)+9*(L=2)+17*(L=3)
492  PRINT Q$[Z1,Z1+7];
500  INPUT Z
501  PRINT 
502  IF (L=1)*((Z<2)+(Z>20)) THEN 540
504  IF (L=2)*((Z<5)+(Z>20)) THEN 540
506  IF (L=3)*((Z<10)+(Z>25)) THEN 540
530  GOTO 560
540  PRINT "SORRY, YOU CAN ONLY HAVE BETWEEN ";
542  IF L>1 THEN 545
543  PRINT "2 TO 20";
544  GOTO 549
545  IF L>2 THEN 548
546  PRINT "5 TO 20";
547  GOTO 549
548  PRINT "10 TO 25";
549  PRINT " SECONDS."
550  GOTO 490
560  PRINT "DO YOU WANT TO ADD, SUBTRACT, MULTIPLY, OR DIVIDE";
570  INPUT T$
580  Q=2
590  PRINT 
600  FOR O=1 TO 4
610  IF T$[1,1]=O$[O+4,O+4] THEN 650
620  NEXT O
630  PRINT "JUST TYPE IN YOUR CHOICE BY 'A' , 'S' , 'M' , OR 'D'."
640  GOTO 560
650  FOR I=1 TO (O-1)*3+L
660  READ A1,A2,B1,B2
670  NEXT I
680  FOR H5=1 TO 25
690  A=INT(A1*RND(1)+A2)
700  B=INT(B1*RND(1)+B2+1)
710  GOTO O OF 720,750,780,810
720  N=A
730  D=A+B
740  GOTO 830
750  N=A+B
760  D=A
770  GOTO 830
780  N=A
790  D=A*B
800  GOTO 830
810  N=A*B
820  D=A
830  GOSUB 1240
840  PRINT TAB(2+P8);C$" "O$[O,O];
850  N=B
860  GOSUB 1240
870  PRINT " "C$" = ";
880  S=-99
890  U=0
900  ENTER Z,U,I$
902  I$=UOS$(I$)
904  CONVERT I$ TO S,2440
905  IF LEN(I$)<3 THEN 910
906  IF POS("/STOEXILEABYE",I$[1,3 MIN LEN(I$)]) THEN 1225
910  IF U<0 THEN 980
920  L9=L9+U
930  U=Z
940  IF S=D THEN 1020
950  W=W+1
960  PRINT "X"TAB(20);D
970  GOTO 1040
980  PRINT '13"T"TAB(20);D
990  LET L9=L9+Z
1000  LET W=W+1
1010  GOTO 1040
1020  C=C+1
1030  PRINT "C"
1040  NEXT H5
1050  REM FINAL BOOKKEEPING
1060  PRINT 
1070  N=C
1080  GOSUB 1240
1090  LET X=INT(C/25*100)
1100  PRINT "DRILL TAKEN BY: ";B$;
1110  PRINT  USING 1120;X
1120  IMAGE ",",DDD.D,"% CORRECT"
1130  PRINT  USING 1140;C,W,L9
1140  IMAGE "YOU GOT ",DD," CORRECT AND ",DD," WRONG IN ",DDD," SECONDS"
1150  N=W
1160  GOSUB 1240
1170  E=L9/25
1180  PRINT  USING 1190;E
1190  IMAGE "AVERAGING:",DDD.D," SECONDS PER PROBLEM"
1200  PRINT "DO YOU WANT MORE";
1210  INPUT T$
1220  IF T$[1,1]="Y" THEN 220
1225  CHAIN R,"*HELP"
1230  SYSTEM X,"BYE"
1240  FOR I=2 TO 0 STEP -1
1250  P[I+1]=INT(N/10^I)
1260  P9=P[I+1]+1
1270  N=N-P[I+1]*10^I
1280  C$[3-I,3-I]=S$[P9,P9]
1290  NEXT I
1300  P8=1
1310  IF C$[1,1]#"0" THEN 1350
1320  P8=2
1330  IF C$[2,2]#"0" THEN 1350
1340  P8=3
1350  C$=C$[P8,3]
1360  RETURN 
1370  DATA 9,1,9,1,90,10,9,1,90,10,90,10,9,1,9,1,80,10,9,1,90,10,90,10
1380  DATA 10,0,10,0,90,10,10,0,90,10,90,0,10,0,10,1,90,10,9,1,9,1,90,10
1390  END 
