10  REM  MATH DRILL, BY WILLIAM K. CHAR, FEBRUARY 22, 1974
20  REM
30  DIM A$[72],B$[4],C$[4],N$[10],X$[3],X[3]
40  B$="ASMD"
50  C$="+-X/"
60  N$="0123456789"
70  PRINT 
80  PRINT "WANT TO ADD, SUBTRACT, MULTIPLY OR DIVIDE ";
90  INPUT A$
100  FOR I=1 TO 4
110  IF A$[1,1]=B$[I,I] THEN 150
120  IF A$[1,1]=C$[I,I] THEN 150
130  NEXT I
140  GOTO 80
150  PRINT 
160  PRINT "WHICH LEVEL (1, 2, 3, OR 4 FOR HELP) ";
170  INPUT J
180  IF J>0 AND J<4 THEN 250
190  PRINT 
200  PRINT "SAMPLE PROBLEMS:"
210  PRINT 
220  PRINT "LEVEL      1           2             3"
230  PRINT "TYPE      3+7        12+5          23+47"
240  GOTO 150
250  PRINT 
260  PRINT "HOW MANY SECONDS DO YOU NEED FOR EACH PROBLEM (3-20) ";
270  INPUT T
280  IF T<3 OR T>20 THEN 260
290  RESTORE 
300  FOR K=1 TO (I-1)*3+J
310  READ A1,A2,B1,B2
320  NEXT K
330  C=W=T1=0
340  PRINT 
350  FOR K=1 TO 10
360  A=INT(A1*RND(1)+A2)
370  B=INT(B1*RND(1)+B2)
380  GOTO I OF 390,420,450,480
390  X=A
400  D=A+B
410  GOTO 500
420  X=A+B
430  D=A
440  GOTO 500
450  X=A
460  D=A*B
470  GOTO 500
480  X=A*B
490  D=A
500  GOSUB 850
510  PRINT TAB(2+X1);X$" "C$[I,I];
520  X=B
530  GOSUB 850
540  PRINT " "X$" = ";
550  ENTER T,R,E
560  PRINT LIN(0);
570  IF R<0 THEN 590
580  IF D=E THEN 630
590  W=W+1
600  T1=T1+T
610  PRINT "X"
620  GOTO 660
630  C=C+1
640  T1=T1+R
650  PRINT "C"
660  NEXT K
670  X=C
680  GOSUB 850
690  PRINT 
700  PRINT "YOU GOT "X$" CORRECT AND ";
710  X=W
720  GOSUB 850
730  PRINT X$" WRONG IN ";
740  X=T1
750  GOSUB 850
760  PRINT X$" SECONDS OF SUPERMATH."
770  PRINT 
780  PRINT "DO YOU WANT MORE";
790  INPUT A$
800  IF A$[1,1]="Y" THEN 60
810  PRINT 
820  PRINT ".........LATER, MAN."
830  STOP 
840  REM  ===== NUMBER-TO-STRING CONVERSION (X) =====
850  FOR M=2 TO 0 STEP -1
860  X[M+1]=INT(X/10^M)
870  X=X-X[M+1]*10^M
880  N=X[M+1]+1
890  X$[3-M,3-M]=N$[N,N]
900  NEXT M
910  X1=1
920  IF X$[1,1]#"0" THEN 960
930  X1=2
940  IF X$[2,2]#"0" THEN 960
950  X1=3
960  X$=X$[X1,3]
970  RETURN 
980  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
990  DATA 10,0,10,0,40,10,6,0,90,10,9,0,10,0,9,1,90,10,9,1,9,1,90,10
1000  END 
