10  REM  ** SOLVE * BMT VERSION * RANDY WONG * 2/9/72 **
20  REM  ** REVISED: 7/10/72 * T.AARONSON * A = 240 TIME FACTOR **
30  REM  ** REVISED: 10/4/77 * P.VIXIE * MULTI-FILE READ **
40  REM  ** REVISED: 11/1/77 * P.VIXIE * DESCRIPTION PAGENATION **
45  REM  ** REVISED: 11/10/77 *J.ROBINSON DELETE LINES 650 AND 670.
47  REM  ** REVISED: 4/5/78 BY DAVID BARRADAS TO TAKE LOWER CASE CHARACTERS.
50  DIM A$[255],B$[32],C$[255],L$[32],L0$[32],L1$[11],N$[32],R$[255],S$[9]
60  R=W=X=T=Q=Y=C0=V=P=0
70  A=240
80  FILES *
90  PRINT "HAVE YOU USED THE BMT SERIES BEFORE";
100  INPUT B$
105  B$=UOS$(B$)
110  IF B$[1,1]="Y" THEN 190
120  IF B$[1,1]="N" THEN 150
130  PRINT "PLEASE TYPE IN A "'34"YES"'34" OR A "'34"NO"'34"."'13'10
140  GOTO 90
150  REM  ** INSTRUCTIONS **
160  PRINT '10'10"  WELCOME! THE BMT MATH SERIES IS BASED ON THE BASIC"
170  PRINT "MATH TEST THAT THE S.F. HIGH SCHOOLS USE TO TEST STUDENTS."
180  PRINT "LESSONS RANGE FROM 1 TO 38 AND EACH CONTAINS 5 PROBLEMS"
190  PRINT '10"WOULD YOU LIKE A DESCRIPTION OF A LESSON";
200  INPUT L0$
205  L0$=UOS$(L0$)
210  IF L0$[1,1]="N" THEN 280
220  IF L0$[1,1]="Y" THEN 250
230  PRINT "PLEASE ANSWER "'34"YES"'34" OR "'34"NO"'34"."'10
240  GOTO 190
250  PRINT '10"LIST WHAT LESSON [1-38, 0 FOR ALL ] ";
260  INPUT L
270  GOTO 1640
280  REM  ** ASSIGN FILE **
290  PRINT '13'10"WHAT LESSON DO YOU WANT [1-38] ";
300  INPUT L
310  IF L=INT(L) AND L<39 AND L>0 THEN 340
320  PRINT "THAT LESSON IS UNAVAILABLE. TRY ANOTHER."
330  GOTO 290
340  L1$="BMT000.A100"
350  IF L>9 THEN 380
360  CONVERT L TO L1$[6,6]
370  GOTO 390
380  CONVERT L TO L1$[5,6]
390  ASSIGN L1$,1,A0
400  IF A0>2 THEN 320
410  REM  ** STARTS HERE **
420  READ #1,1
430  S$="23456789"
440  IF TYP(1)=3 THEN 890
450  READ #1;A$
460  J=2
470  IF A$[1,1]="*" THEN 530
480  IF A$[1,1]="@" THEN 1010
490  IF A$[1,1]="%" THEN 1040
500  PRINT '10A$
510  Q=0
520  GOTO 440
530  IF A$[2,2]="!" THEN 600
540  IF A$[2,2]#"#" THEN 620
550  FOR P=1 TO 8
560  IF A$[3,3]=S$[P,P] THEN 580
570  NEXT P
580  J=4
590  GOTO 620
600  V=1
610  J=3
620  PRINT "*";
630  ENTER A,B,C$
640  PRINT 
660  GOTO 690
680  GOTO 620
690  IF C$="STOP" THEN 890
700  T=T+1
710  IF B=-256 THEN 770
720  IF C$#A$[J] THEN 810
730  R=R+1
740  Q=1
750  GOSUB 1070
760  GOTO 440
770  X=X+1
780  Q=-1
790  PRINT "YOU TOOK TOO LONG, "N$
800  GOTO 830
810  W=W+1
820  Q=-1
830  IF C0=1 THEN 870
840  PRINT "WRONG, "N$"; TRY AGAIN"
850  C0=1
860  GOTO 620
870  GOSUB 1070
880  GOTO 440
890  REM  ** RESULT PRINT-OUT **
900  IF R=0 OR T=0 THEN 190
910  PRINT '10'10'10'10"HERE ARE YOUR RESULTS, "N$":"
920  PRINT "CORRECT:"R
930  PRINT "INCORRECT:"W
940  PRINT "TIMED OUTS:"X
950  PRINT "NO. OF ATTEMPTS:"T
960  PRINT "RIGHT/ATTEMPTS RATIO"1000*R/T
970  PRINT '10'10"DO YOU WANT TO TRY AGAIN, "N$;
980  INPUT A$
985  A$=UOS$(A$)
990  IF A$[1,1]="Y" THEN 250
1000  STOP 
1010  IF Q <> -1 THEN 440
1020  PRINT A$[2]
1030  GOTO 440
1040  IF Q <> 1 THEN 440
1050  PRINT A$[2]
1060  GOTO 440
1070  REM  ** ADJECTIVE SUB-ROUTINE **
1080  C0=0
1090  IF V=1 THEN 1250
1100  E=INT(6*RND(0))+1
1110  IF Q=1 THEN 1140
1120  E=E+6
1130  DATA "RIGHT ON!","CORRECT","YEP","MUY BIEN","O.K.","CLEVER!"
1140  DATA "NOPE","NO!NO!NO!NO!NO!","NO WAY","WRONG","NO ES CORRECTO","YECH!"
1150  RESTORE 
1160  FOR Z0=1 TO E
1170  READ R$
1180  NEXT Z0
1190  IF Q=1 THEN 1220
1200  PRINT R$'7" -- THE ANSWER IS "A$[J]
1210  GOTO 1240
1220  CONVERT B TO B$
1230  PRINT '10R$"  (TIME-"B$" SECONDS)"
1240  RETURN 
1250  REM  ** DATA FOR ONE-LINE DESCRIPTIONS **
1260  DATA "BMT001  ROW ADDITION OF NUMBERS UP TO 4 DIGITS"
1270  DATA "BMT002  ROW SUBTRACTION OF 3-DIGIT NUMBERS"
1280  DATA "BMT003  ROW SUBTRACTION; 3-DIGIT NUMBERS WITH ZEROS"
1290  DATA "BMT004  ROW MULTIPLICATION OF 3-DIGIT NUMBERS"
1300  DATA "BMT005  ROW MULTIPLICATION OF 4 AND 2 DIGIT NUMBERS"
1310  DATA "BMT006  ROW MULTIPLICATION OF A 2 AND A 4 DIGIT NUMBER"
1320  DATA "BMT007  DIVISION: NO REMAINDERS"
1330  DATA "BMT009  DIVISION: WRITE REMAINDERS AS REDUCED FRACTIONS"
1340  DATA "BMT009  DIVISION: NO REMAINDERS"
1350  DATA "BMT010  ADDITION OF FRACTIONS WITH DIFFERENT DENOMINATORS"
1360  DATA "BMT011  HARDER ADDITION OF FRACTIONS WITH DIFFERENT DENOMINATORS"
1370  DATA "BMT012  ADDITION OF MIXED NUMBERS"
1380  DATA "BMT013  SUBTRACTION OF FRACTIONS; FIND THE LOWEST COMMON DENOMINATOR"
1390  DATA "BMT014  SUBTRACTION OF MIXED NUMBERS WITH BORROWING"
1400  DATA "BMT015  MULTIPLICATION OF SIMPLE FRACTIONS"
1410  DATA "BMT016  HARDER MULTIPLICATION OF FRACTIONS; ANSWER IS A MIXED NUMBER"
1420  DATA "BMT017  COLUMN MULTIPLICATION OF WHOLE NUMBERS BY MIXED NUMBERS"
1430  DATA "BMT018  DIVISION OF SIMPLE FRACTIONS"
1440  DATA "BMT019  DIVISION OF MIXED NUMBERS"
1450  DATA "BMT020  COLUMN ADDITION OF DECIMALS"
1460  DATA "BMT021  ROW ADDITION OF DECIMALS"
1470  DATA "BMT022  COLUMN SUBTRACTION OF DECIMALS"
1480  DATA "BMT023  MORE COLUMN SUBTRACTION OF DECIMALS"
1490  DATA "BMT024  ROW MULTIPLICATION OF DECIMALS"
1500  DATA "BMT025  COLUMN MULTIPLICATION OF DECIMALS"
1510  DATA "BMT026  DIVISION OF DECIMALS"
1520  DATA "BMT027  DIVISION OF WHOLE NUMBERS WITH DECIMAL ANSWERS"
1530  DATA "BMT028  DIVISION OF DECIAMLS BY WHOLE NUMBERS"
1540  DATA "BMT029  MORE DIVISION OF DECIMALS BY WHOLE NUMBERS"
1550  DATA "BMT030  FINDING THE PERCENT OF A NUMBER"
1560  DATA "BMT031  FINDING THE BASE IN A PERCENT PROBLEM"
1570  DATA "BMT032  FINDING THE RATE IN A PERCENT PROBLEM"
1580  DATA "BMT033  FINDING FRACTIONAL PERCENTS OF AMOUNTS OF MONEY"
1590  DATA "BMT034  MORE FINDING THE RATE IN A PERCENT PROBLEM"
1600  DATA "BMT035  FINDING THE BASE IN A PERCENT PROBLEM USING MONEY"
1610  DATA "BMT036  FINDING PERCENTAGES"
1620  DATA "BMT037  FINDING THE RATE OF A PERCENT PROBLEM USING MONEY"
1630  DATA "BMT038  FINDING PERCENTAGES GREATER THAN 100%"
1640  REM  ** DATA PRINT-OUT **
1650  RESTORE 1230
1660  IF L=0 THEN 1760
1670  FOR Z1=1 TO L
1680  READ R$
1690  NEXT Z1
1700  PRINT '10R$'13'10"DO YOU WANT "R$[1,6];
1710  INPUT L$
1720  IF L$[1,1]="Y" THEN 340
1730  IF L$[1,1]="N" THEN 190
1740  PRINT "YES OR NO PLEASE"'10
1750  GOTO 1700
1760  PRINT LIN(3);"=";LIN(6)
1770  FOR L1=1 TO 38
1780  READ R$
1790  PRINT R$
1800  NEXT L1
1810  PRINT LIN(22);"=";LIN(3)
1820  GOTO 280
1830  END 
