PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PC-SIG Diskette Library (Disk #95)

[PCjs Machine "ibm5150"]

Waiting for machine "ibm5150" to load....

Information about “MATH TUTOR”

This elementary grade level tutorial -- targeted at grades 1-6 --
supplies age-graded exercises and tests for a variable student body.
MATH TUTOR also supplies the opportunity to redesign exercises for
special problems.

If you're a parent, or are involved in a tutorial situation, these
lessons and non-timed drills can be a lighthearted, challenging way to
teach math principles. It seems more appropriate for home use. Tests
are sent to the screen.

CRC.TXT

PC-SIG Disk No. #95, version v1

The following is a list of the file checksums which should be produced by
the CRCK4 program on disk #9 (and others).  If the CRC numbers do not match
you may have a bad file.  To use type:  CRCK4 <filespec>

CRCK4 output for this disk:


CRCK ver 4.2B (MS DOS VERSION )
CTL-S pauses, CTL-C aborts

--> FILE:  ANSI    .SYS         CRC = E6 47

--> FILE:  TUTOR   .BAS         CRC = CE 1C

--> FILE:  INSTR   .BAS         CRC = 33 A4

--> FILE:  SETUP   .BAS         CRC = CC 94

--> FILE:  MATH    .BAS         CRC = 06 C6

--> FILE:  GRD1    .            CRC = E6 A0

--> FILE:  GRD2    .            CRC = C2 C9

--> FILE:  GRD3    .            CRC = 61 AD

--> FILE:  GRD4    .            CRC = 22 31

--> FILE:  GRD5    .            CRC = AE A3

--> FILE:  GRD6    .            CRC = 3F 67

--> FILE:  SAV1    .            CRC = BE FB

--> FILE:  SAV2    .            CRC = 91 51

--> FILE:  SAV3    .            CRC = B5 89

--> FILE:  SAV4    .            CRC = 24 55

--> FILE:  SAV5    .            CRC = C1 10

--> FILE:  SAV6    .            CRC = 05 45

--> FILE:  TDATA   .            CRC = 57 41

--> FILE:  MIS     .            CRC = 14 3A

--> FILE:  READ    .ME          CRC = 0A AD

--> FILE:  CRC     .TXT         CRC = B3 06

--> FILE:  CRCK4   .COM         CRC = BD 22

 ---------------------> SUM OF CRCS = AD 81

DONE

These and other Public Domain and user-supported programs from:

PC Software Interest Group
1125 Stewart Ct  Suite G
Sunnyvale, CA 94086
(408) 730-9291

INSTR.BAS

10 CLS
20 LOCATE 2,10,0:PRINT"Instructions for?"
30 LOCATE 6,10:PRINT"1. Math Tutor"
40 LOCATE 8,10:PRINT"2. Keyboard"
50 LOCATE 10,10:PRINT"3. Working problems"
60 LOCATE 12,10:PRINT"4. Tests/Exercises"
70 LOCATE 14,10:PRINT"5. Analysis of tests"
80 LOCATE 16,10:PRINT"6. Setting up programs"
90 LOCATE 18,10:PRINT"7. How to escape"
100 LOCATE 20,10:PRINT"8. Return to menu"
110 E$=INPUT$(1)
120 IF E$<"1" OR E$>"8" GOTO 110
130 SEL=VAL(E$)
140 ON SEL GOTO 150,250,340,1020,1110,1190,1280,1370
150 CLS
160 LOCATE 1,1:PRINT"Math Tutor has been designed to give youcomplete control in selecting the prob- lems that best suit your tutoring needs."
170 LOCATE 5,1:PRINT"You can control the format, type, and   limits of each problem.  You can controlthe sequential order in which these pro-blems are presented.  You can control   the length and time limits of the test"
180 PRINT"or exercise.  Finally, you can even con-trol the seed from which these problems are randomly generated."
190 LOCATE 14,1:PRINT"By varying the parameters listed above, you can literally make millions of dif- ferent tests.  Yet, duplicate the param-eters and the exact test reappears."
200 LOCATE 19,1:PRINT"The PROGRAM SET-UP section of the menu  allows you to change the parameters and make a hard copy for later reference."
210 LOCATE 23,1,0:PRINT"To return to instructions, press ESC."
220 E$=INPUT$(1)
230 IF E$<>CHR$(27) GOTO 220
240 GOTO 10
250 CLS
260 LOCATE 4,1:PRINT"Only the keys that are necessary for a  response are active.  This prevents mis-strike errors which would confound the  evaluation of a student's math skills."
270 LOCATE 9,1:PRINT"The calculator or typewriter keyboards  may be used for entering numerics.  If  the calculator key board is inactive,   press the NUM LOCK key."
280 LOCATE 14,1:PRINT"The cursor movement and backspace keys  are inactive.  To move the cursor back- wards, press the small c.  This single"
290 PRINT"key cursor control allows rapid correc- tion of mistakes and removes the task ofcursor positioning from the student."
300 LOCATE 21,1,0:PRINT"To return to instructions, press ESC."
310 E$=INPUT$(1)
320 IF E$<>CHR$(27) GOTO 310
330 GOTO 10
340 CLS
350 LOCATE 1,1:PRINT"As soon as a problem is presented on thescreen, the time lapse clock starts.  Itwill run until the ";CHR$(17);CHR$(196);CHR$(217);" key is pressed."
360 LOCATE 4,1:PRINT"This key notifies the computer that the student is finished with the problem."
370 LOCATE 7,1:PRINT"The problem is then graded and the stu- dent is notified of the results.  The   results will be one of the following:"
380 LOCATE 11,2:PRINT"1. Correct!"
390 LOCATE 13,2:PRINT"2. Correct, but time has run out!"
400 LOCATE 15,2:PRINT"3. Wrong, the correct answer is ---"
410 LOCATE 17,1:PRINT"Both 2 and 3 above are counted as missedproblems in the overall grading."
420 LOCATE 20,1:PRINT"The student may critique the problem foras long as he likes before calling for  the next problem."
430 LOCATE 24,9:PRINT"(To continue, press ";CHR$(17);CHR$(196);CHR$(217);")";
440 E$=INPUT$(1)
450 IF E$=CHR$(27) GOTO 10
460 IF E$<>CHR$(13) GOTO 440
470 CLS
480 LOCATE 1,1:PRINT"The student will solve the problem digitby digit just as if done on paper.  The cursor positions itself and prompts the student for each entry."
490 LOCATE 6,1:PRINT"The problem below, though not as intri- cate in cursor movement as multipicationor long division, will give you the feelof digit entries and their corrections. Try experimenting with the problem."
500 LOCATE 13,18:PRINT"7 5 6"
510 LOCATE 15,16:PRINT"+ 5 3 4"
520 LOCATE 16,18:PRINT"─────"
530 LOCATE 24,1:PRINT"     (To correct an entry, press c)    ";
540 YAX=17:XAX=22
550 FOR I=1 TO 4
560 LOCATE YAX,XAX,1
570 J$(I)=INPUT$(1)
580 IF J$(I)<>"c" AND J$(I)<>"C" GOTO 640
590 GOSUB 1000
600 IF I=1 GOTO 560
610 IF I=3 THEN XAX=XAX+4 ELSE IF I=4 THEN XAX=XAX-2 ELSE XAX=XAX+2
620 I=I-1
630 GOTO 560
640 IF J$(I)<"0" OR J$(I)>"9" GOTO 570
650 PRINT J$(I)
660 ON I GOSUB 920,940,960,980
670 IF I=2 THEN XAX=XAX-4 ELSE IF I=3 THEN XAX=XAX+2 ELSE XAX=XAX-2
680 NEXT I
690 SWAP J$(4),J$(3)
700 Y$=""
710 FOR I=1 TO 4
720 Y$=J$(I)+Y$
730 NEXT I
740 Y$=" "+Y$
750 LOCATE 18,1:PRINT"Press ";CHR$(17);CHR$(196);CHR$(217);
760 E$=INPUT$(1)
770 IF E$<>"c" AND E$<>"C" GOTO 800
780 LOCATE 20,1:PRINT"The cursor moves back to the last line  entered.  Enter your corrections.          "
790 GOTO 540
800 IF E$<>CHR$(13) GOTO 760
810 IF Y$=" 1290" GOTO 820 ELSE GOTO 840
820 LOCATE 20,1:PRINT"Correct!"SPC(32)
830 GOTO 850
840 LOCATE 20,1:PRINT"Wrong, the correct answer is 1290       "
850 LOCATE 21,1:PRINT STRING$(40,CHR$(32))
860 LOCATE 24,1:PRINT"To return to menu, press ESC (else c)";
870 E$=INPUT$(1)
880 IF E$="c" OR E$="C" GOTO 530
890 IF E$<>CHR$(27) GOTO 870
900 GOTO 10
910 GOTO 10
920 LOCATE 20,1:PRINT"The cursor moves one space.  The carry  is maintained in the student's head.   "
930 RETURN
940 LOCATE 20,1:PRINT"The cursor moved two spaces, and awaits the first digit of a two digit entry.  "
950 RETURN
960 LOCATE 20,1:PRINT"The cursor moves right and awaits the   second digit of the two digit entry.     "
970 RETURN
980 LOCATE 20,1:PRINT"The computer waits to see if you want tomake a correction.  If not, press ";CHR$(17);CHR$(196);CHR$(217)
990 RETURN
1000 LOCATE 20,1:PRINT"If you aren't at the beginning, the cur-sor steps back.  Enter your correction.     "
1010 RETURN
1020 CLS
1030 LOCATE 2,1:PRINT"Problems are presented to the student inan EXERCISE or a TEST.  Exercises allow students to rework the missed problems, while tests do not."
1040 LOCATE 7,1:PRINT"After a test, program execution pauses  until you enter the continue code.  You may then look at each missed problem anddetermine what tutoring is needed."
1050 LOCATE 12,1:PRINT"Use PROGRAM SET-UP to tailor exercises  and tests to meet your student's needs."
1060 LOCATE 15,1:PRINT"A good starting point for your analysis is the end-of-year tests and exercises  already set-up in the program.  The pro-grams you set-up will be in addition to these and available under SAVED PROGRAMSon the menu."
1070 LOCATE 22,1,0:PRINT"To return to instructions, press ESC."
1080 E$=INPUT$(1)
1090 IF E$<>CHR$(27) GOTO 1080
1100 GOTO 10
1110 CLS
1120 LOCATE 5,1:PRINT"After a test, Math Tutor only shows you the problems the student missed.  This  removes the confusion of looking throughthe whole test and makes it obvious justwhich math skill is lacking."
1130 LOCATE 11,1:PRINT"The lack of a math skill may be due to  the format, type, or limits of the pro- blem.  A quick PROGRAM SET-UP will soon determine the exact cause."
1140 LOCATE 16,1:PRINT"Once the exact cause is known, a PROGRAMSET-UP can be made that will tutor the  student in developing this skill."
1150 LOCATE 20,1,0:PRINT"To return to instructions, press ESC."
1160 E$=INPUT$(1)
1170 IF E$<>CHR$(27) GOTO 1160
1180 GOTO 10
1190 CLS
1200 LOCATE 2,1:PRINT"Each grade, 1 thru 6, has an end-of-yearexercise or test available for immediatecall from the menu.  Additionally, you  may have up to six personalized programswhich can also be called from the menu."
1210 LOCATE 8,1:PRINT"These personalized programs, called PRO-GRAM SET-UPS, are derived from recalled programs and require only changing the  parameters you want."
1220 LOCATE 13,1:PRINT"When you are satisfied with the changes,the PROGRAM SET-UP is saved under a namethat you choose."
1230 LOCATE 17,1:PRINT"You may then ask for a hard copy of the parameters and even scan the series of  problems that will be presented to your student."
1240 LOCATE 22,1,0:PRINT"To return to instructions, press ESC."
1250 E$=INPUT$(1)
1260 IF E$<>CHR$(27) GOTO 1250
1270 GOTO 10
1280 CLS
1290 LOCATE 2,1:PRINT"Escape from the program is only allowed at certain times to insure that your re-sponses aren't lost."
1300 LOCATE 6,1:PRINT"In the problem solving part of the pro- gram, escape is not allowed in the midstof working a problem.  However, once theproblem has been graded, you may escape by pressing the ESC key."
1310 LOCATE 12,1:PRINT"Likewise, in the set-up part of the pro-gram, no escape is allowed in the midst of changing a parameter, but is allowed immediately before or after."
1320 LOCATE 17,1:PRINT"The escape route will take you to a datacollection part of the program where youwill be given the choice of re-doing thework or returning to the menu."
1330 LOCATE 22,1,0:PRINT"To return to instructions, press ESC."
1340 E$=INPUT$(1)
1350 IF E$<>CHR$(27) GOTO 1340
1360 GOTO 10
1370 CLS
1380 LOCATE 13,11,0:PRINT"One moment, please!"
1390 CHAIN "a:tutor"

MATH.BAS

10 OPEN "I",#1,"tdata"
20 INPUT#1,SV1$,SV2$,SV3$,SV4$,SV5$,SV6$
30 CLOSE#1
40 CLS
50 LOCATE 5,8:PRINT"File of saved programs:"
60 LOCATE 8,8:PRINT"1. "SV1$
70 LOCATE 10,8:PRINT"2. "SV2$
80 LOCATE 12,8:PRINT"3. "SV3$
90 LOCATE 14,8:PRINT"4. "SV4$
100 LOCATE 16,8:PRINT"5. "SV5$
110 LOCATE 18,8:PRINT"6. "SV6$
120 LOCATE 21,8,1:PRINT"Which file do you want? ";
130 E$=INPUT$(1)
140 IF E$=CHR$(27) GOTO 8480
150 IF E$<"1" OR E$>"6" GOTO 130
160 PRINT E$
170 S$="SAV"+E$
180 CLS
190 LOCATE 13,11,0:PRINT"One moment, please!"
200 OPEN "I",#1,S$
210 INPUT#1,GRD,FORM$,TYP$,TLIMIT$,BNDA,BNDB,BNDC,BNDD,BNDE,TEST,BASE,SEL
220 CLOSE#1
230 CLS
240 LOCATE 13,1:INPUT "What is your name? ",MICK$
250 IF GRD>0 GOTO 330
260 CLS
270 LOCATE 13,1:PRINT "What grade are you in "MICK$"? "
280 E$=INPUT$(1)
290 IF E$=CHR$(27) GOTO 8480
300 IF E$<"1" OR E$>"6" GOTO 280
310 GRD=VAL(E$)
320 ON GRD GOSUB 8510,8540,8570,8600,8630,8660
330 PROB=1
340 AFORM$=FORM$
350 ATYP$=TYP$
360 RANDOMIZE(BASE)
370 BFORM$=LEFT$(AFORM$,1)
380 AFORM$=RIGHT$(AFORM$,9)+BFORM$
390 FORMAT=VAL(BFORM$)
400 BTYP$=LEFT$(ATYP$,1)
410 ATYP$=RIGHT$(ATYP$,9)+BTYP$
420 TYPE=VAL(BTYP$)
430 TIME$="00:00:00"
440 ON FORMAT GOTO 720,750,790,820,850
450 IF Y$<>Z$ GOTO 670
460 TLAPSE$=TIME$
470 IF TLIMIT$<TLAPSE$ THEN V$=", but time is out!" ELSE V$="!          "
480 LOCATE 21,1:PRINT"Correct"V$
490 IF TLIMIT$<TLAPSE$ GOTO 680
500 CORRECT=CORRECT+1
510 SCORE=100*CORRECT\PROB
520 PRINT
530 IF PROB<>TEST GOTO 560
540 PRINT "Test is over!  Press ";CHR$(17);CHR$(196);CHR$(217);" for score.";
550 GOTO 570
560 LOCATE 23,1:PRINT"For next problem, press ";CHR$(17);CHR$(196);CHR$(217);" ";
570 E$=INPUT$(1)
580 IF E$=CHR$(27) GOTO 7940
590 IF E$<>CHR$(13) GOTO 570
600 IF PROB=TEST GOTO 7940
610 PROB=PROB+1
620 IF MPROB=PROB-1 THEN RETURN
630 W$=""
640 IF MPROB<>0 GOTO 370
650 CLS
660 GOTO 370
670 LOCATE 21,1:PRINT"Wrong! Answer is ";Z$
680 SOUND 45,25
690 M$=STR$(PROB)
700 MM$=MM$+M$
710 GOTO 510
720 BND=BNDA+1
730 IF GRD>4 THEN L=1 ELSE L=0
740 ON TYPE GOTO 1390,1390,1390,2940
750 BND=BNDB+1
760 IF GRD>4 THEN L=1 ELSE L=0
770 ON GRD GOTO 2610,2610,1410,780,780,780
780 IF TYPE=4 GOTO 2940 ELSE GOTO 1410
790 BND=BNDC+1
800 IF GRD=4 THEN L=1 ELSE L=0
810 ON GRD GOTO 1390,1390,2960,1410,4630,4630
820 BND=BNDD+1
830 IF GRD=3 THEN L=1 ELSE L=0
840 ON GRD GOTO 1390,1410,1410,4630,4630,4630
850 BND=BNDE+1
860 L=0
870 ON GRD GOTO 6930,6930,6930,4630,4630,4630
880 FOR I=1 TO QTY
890 DB$(I)=""
900 AB$(I)=STR$(B(I))
910 BB(I)=LEN(AB$(I))-1
920 CB$(I)=RIGHT$(AB$(I),BB(I))
930 FOR H=1 TO BB(I)
940 J$=RIGHT$(CB$(I),1)
950 CB$(I)=J$+LEFT$(CB$(I),BB(I)-1)
960 DB$(I)=" "+J$+DB$(I)
970 EB(I)=LEN(DB$(I))
980 NEXT H
990 NEXT I
1000 IF L=0 GOTO 1220
1010 IF GRD<6 THEN DCML=GRD-1
1020 FOR I=1 TO QTY
1030 ON TYPE GOTO 1040,1040,1050,1050
1040 IF I>1 GOTO 1080
1050 AA=1000*RND(PROB)
1060 IF GRD=6 THEN AC=AA MOD BB(I)+1 ELSE AC=AA MOD DCML
1070 IF AC=0 GOTO 1050
1080 C(I)=AC
1090 IF BB(I)=>C(I) GOTO 1130
1100 FOR H=1 TO C(I)-BB(I)
1110 DB$(I)=" 0"+DB$(I)
1120 NEXT H
1130 EB(I)=LEN(DB$(I))
1140 MID$(DB$(I),EB(I)-2*C(I)+1)="."
1150 NEXT I
1160 ON TYPE GOTO 1170,1170,1190,1210
1170 L=C(1)
1180 GOTO 1220
1190 L=C(1)+C(2)
1200 GOTO 1220
1210 L=C(1)-C(2)
1220 W$=STR$(A)
1230 WW=LEN(W$)-1
1240 W$=RIGHT$(W$,WW)
1250 IF L=<WW GOTO 1290
1260 W$="0"+W$
1270 WW=WW+1
1280 GOTO 1250
1290 IF L=>0 GOTO 1340
1300 W$=W$+"0"
1310 WW=WW+1
1320 L=L+1
1330 GOTO 1290
1340 IF L=0 GOTO 1360
1350 W$=LEFT$(W$,WW-L)+"."+RIGHT$(W$,L)
1360 Z$=W$
1370 CC$=STRING$(EB(1),"─")
1380 RETURN
1390 ON FORMAT GOSUB 7540,7540,7590,7920
1400 GOTO 1420
1410 ON TYPE GOSUB 7540,7540,7540
1420 GOSUB 880
1430 IF MPROB>PROB GOTO 610
1440 CLS
1450 PRINT TAB(7) "OK " MICK$", here is problem "PROB
1460 IF FORMAT<>3 GOTO 1480
1470 LOCATE 3,21+BB(1)-EB(3):PRINT USING "&";DB$(3)
1480 LOCATE 5,21+BB(1)-EB(1):PRINT USING "&";DB$(1)
1490 LOCATE 7,20+BB(1)-EB(1):PRINT OP$;
1500 LOCATE 7,21+BB(1)-EB(2):PRINT USING "&";DB$(2)
1510 PRINT SPC(20+BB(1)-EB(1)) CC$
1520 IF RE=1 GOTO 560
1530 LOCATE 23,1,1:PRINT "To correct an entry, press c"
1540 YAX=9
1550 XAX=20+BB(1)
1560 ON TYPE GOTO 1900,1900,1570
1570 IF BB(2)=1 THEN TYPE=1
1580 IF BB(2)=1 GOTO 1900
1590 FOR H=1 TO BB(2)
1600 FB$=MID$(AB$(2),BB(2)-H+2,1)
1610 GB=VAL(FB$)
1620 ANS=GB*B(1)
1630 AANS$=STR$(ANS)
1640 BANS=LEN(AANS$)-1
1650 IF GB=0 THEN BANS=BB(1)
1660 FOR G=1 TO BANS
1670 LOCATE YAX,XAX,1
1680 E$=INPUT$(1)
1690 IF E$<>"c" AND E$<>"C" GOTO 1770
1700 IF G=1 GOTO 1540
1710 IF BANS=BB(1) GOTO 1740
1720 IF G=BANS-1 THEN XAX=XAX+2
1730 IF G=BANS THEN XAX=XAX-4
1740 XAX=XAX+2
1750 G=G-1
1760 GOTO 1670
1770 IF E$<"0" OR E$>"9" GOTO 1680
1780 PRINT E$
1790 IF BANS=BB(1) GOTO 1820
1800 IF G=BANS-2 THEN XAX=XAX-2
1810 IF G=BANS-1 THEN XAX=XAX+4
1820 XAX=XAX-2
1830 NEXT G
1840 IF BANS=BB(1) THEN XAX=XAX+(2*BANS-2) ELSE IF BANS=1 THEN XAX=XAX ELSE XAX=XAX+(2*BANS-4)
1850 CC$=STRING$(2*WW-1,"─")
1860 IF H=BB(2) THEN PRINT SPC(21+BB(1)-2*WW)CC$
1870 YAX=YAX+2
1880 NEXT H
1890 XAX=20+BB(1)
1900 W$=STR$(A)
1910 WW=LEN(W$)-1
1920 IF BB(1)=1 AND WW=2 THEN XAX=XAX-2
1930 FOR I=1 TO WW
1940 LOCATE YAX,XAX,1
1950 Q$(I)=INPUT$(1)
1960 IF Q$(I)<>"c" AND Q$(I)<>"C" GOTO 2060
1970 IF I=1 GOTO 1540
1980 ON TYPE GOTO 1990,2030,2000
1990 IF WW>BB(1) GOTO 2010 ELSE GOTO 2030
2000 IF BANS+BB(2)-1<WW GOTO 2010 ELSE GOTO 2030
2010 IF I=WW-1 THEN XAX=XAX+2
2020 IF I=WW THEN XAX=XAX-4
2030 XAX=XAX+2
2040 I=I-1
2050 GOTO 1940
2060 IF Q$(I)<"0" OR Q$(I)>"9" GOTO 1940
2070 PRINT Q$(I)
2080 ON TYPE GOTO 2090,2130,2100
2090 IF WW>BB(1) GOTO 2110 ELSE GOTO 2130
2100 IF BANS+BB(2)-1<WW GOTO 2110 ELSE GOTO 2130
2110 IF I=WW-1 THEN XAX=XAX+4
2120 IF I=WW-2 THEN XAX=XAX-2
2130 XAX=XAX-2
2140 NEXT I
2150 PRINT
2160 HV=0
2170 IF L=0 GOTO 2260
2180 PRINT "Decimal goes   spaces from the right?"
2190 LOCATE YAX+2,14,1
2200 E$=INPUT$(1)
2210 IF E$="c" OR E$="C" GOTO 1540
2220 IF E$<"0" OR E$>"8" GOTO 2200
2230 PRINT E$
2240 HV=VAL(E$)
2250 XAX=21+BB(1)
2260 ON TYPE GOTO 2270,2300,2290
2270 IF WW>BB(1) THEN SWAP Q$(WW),Q$(WW-1)
2280 GOTO 2300
2290 IF BANS+BB(2)-1<WW THEN SWAP Q$(WW),Q$(WW-1)
2300 Y$=""
2310 FOR I=1 TO WW
2320 XAX=XAX-2
2330 Y$=Q$(I)+Y$
2340 IF I<>HV OR L=0 GOTO 2380
2350 Y$="."+Y$
2360 LOCATE YAX,XAX
2370 PRINT "."
2380 NEXT I
2390 IF WW=>HV GOTO 2480
2400 XAX=XAX+1
2410 FOR I=WW+1 TO HV+1
2420 IF I=HV+1 THEN XAX=XAX-1 ELSE XAX=XAX-2
2430 IF I=HV+1 THEN Q$(I)="." ELSE Q$(I)="0"
2440 LOCATE YAX,XAX
2450 PRINT Q$(I)
2460 Y$=Q$(I)+Y$
2470 NEXT I
2480 LOCATE 21,1:PRINT "Press ";CHR$(17);CHR$(196);CHR$(217);" ";
2490 E$=INPUT$(1)
2500 IF E$<>"c" AND E$<>"C" GOTO 2590
2510 XAX=19+BB(1)
2520 FOR I=1 TO 9
2530 Q$(I)=" "
2540 LOCATE YAX,XAX,0
2550 PRINT Q$(I)
2560 IF I=WW OR I=HV AND HV>WW THEN XAX=XAX-1 ELSE XAX=XAX-2
2570 NEXT I
2580 GOTO 1540
2590 IF E$<>CHR$(13) GOTO 2490
2600 GOTO 450
2610 ON FORMAT GOSUB 7540,7540,7590,7920
2620 GOSUB 880
2630 IF MPROB>PROB GOTO 610
2640 CLS
2650 PRINT TAB(7) "OK " MICK$", here is problem "PROB
2660 LOCATE 10,18-EB(1)-EB(2):PRINT USING "&";DB$(1);
2670 PRINT USING " &";OP$;
2680 PRINT USING "& _=";DB$(2)
2690 IF RE=1 GOTO 560
2700 LOCATE 23,1,1:PRINT "To correct an entry, press c"
2710 XAX=23
2720 YAX=10
2730 FOR I=1 TO WW
2740 LOCATE YAX,XAX
2750 Q$(I)=INPUT$(1)
2760 IF Q$(I)<>"c" AND Q$(I)<>"C" GOTO 2810
2770 IF I=1 GOTO 2740
2780 XAX=XAX-2
2790 I=I-1
2800 GOTO 2740
2810 IF Q$(I)<"0" OR Q$(I)>"9" GOTO 2750
2820 PRINT Q$(I)
2830 XAX=XAX+2
2840 NEXT I
2850 LOCATE 21,1:PRINT "Press ";CHR$(17);CHR$(196);CHR$(217)" ";
2860 E$=INPUT$(1)
2870 IF E$="c" OR E$="C" GOTO 2710
2880 IF E$<>CHR$(13) GOTO 2860
2890 Y$=""
2900 FOR I=1 TO WW
2910 Y$=Y$+Q$(I)
2920 NEXT I
2930 GOTO 450
2940 ON FORMAT GOSUB 7540,7540,7590,7920
2950 GOTO 2970
2960 GOSUB 7540
2970 GOSUB 880
2980 IF MPROB>PROB GOTO 610
2990 CLS
3000 PRINT TAB(7) "OK " MICK$", here is problem "PROB
3010 LOCATE 4,18:PRINT USING "&";"┌";CC$
3020 LOCATE 5,17-EB(2):PRINT USING "&";DB$(2);
3030 PRINT " ";
3040 PRINT USING "&";"│";
3050 PRINT USING "&";DB$(1)
3060 IF RE=1 GOTO 560
3070 LOCATE 23,1,1:PRINT "To correct an entry, press c"
3080 IF GRD<5 THEN GOTO 3360
3090 LOCATE 10,1:PRINT "Move decimals   spaces to the right?"
3100 LOCATE 10,15,1
3110 E$=INPUT$(1)
3120 IF E$<"0" OR E$>"9" GOTO 3110
3130 HH=VAL(E$)
3140 IF HH>C(2) GOTO 3110
3150 LOCATE 10,1:PRINT STRING$(36," ")
3160 IF E$="0" GOTO 3270
3170 MID$(DB$(2),EB(2)-2*C(2)+1)=" "
3180 IF C(2)=HH GOTO 3200
3190 MID$(DB$(2),EB(2)-2*(C(2)-HH)+1)="."
3200 MID$(DB$(1),EB(1)-2*C(1)+1)=" "
3210 IF C(1)=HH GOTO 3280 ELSE IF C(1)>HH GOTO 3270
3220 FOR I=1 TO HH-C(1)
3230 DB$(1)=DB$(1)+" 0"
3240 B(1)=VAL(DB$(1))
3250 NEXT I
3260 GOTO 3280
3270 MID$(DB$(1),EB(1)-2*(C(1)-HH)+1)="."
3280 EB(1)=LEN(DB$(1))
3290 CC$=STRING$(EB(1),"─")
3300 LOCATE 4,19:PRINT USING "&";CC$
3310 LOCATE 5,17-EB(2):PRINT USING "&";DB$(2)
3320 LOCATE 5,19:PRINT USING "&";DB$(1)
3330 LOCATE 3,19+EB(1)-2*(C(1)-HH),0
3340 IF HH<C(1) THEN PRINT "."
3350 IF C(1)-HH>WW GOTO 3390
3360 XAX=20+EB(1)-2*WW
3370 WWW=WW
3380 GOTO 3410
3390 XAX=20+EB(1)-2*(C(1)-HH)
3400 WWW=C(1)-HH
3410 YAX=3
3420 DIV=B(1)
3430 II=0:Y$=""
3440 FOR I=1 TO WWW
3450 LOCATE YAX,XAX,1
3460 Q$(I)=INPUT$(1)
3470 IF I=1 AND Q$(I)="c" OR Q$(I)="C" GOTO 4510 ELSE IF Q$(I)="c" OR Q$(I)="C" GOTO 3350
3480 IF Q$(I)<"0" OR Q$(I)>"9" GOTO 3460
3490 PRINT Q$(I)
3500 Y$=Q$(I)+Y$
3510 YY=VAL(Y$)
3520 IF Q$(I)<>"0" GOTO 3580
3530 XAX=XAX+2
3540 II=II+1
3550 IF YY=0 OR I=WWW GOTO 4320
3560 YAX=YAX+4*(I-II)+2
3570 GOTO 4240
3580 YAX=YAX+4*(I-II)
3590 AQ=VAL(Q$(I))
3600 BQ=AQ*B(2)
3610 CQ$=STR$(BQ)
3620 DQ=LEN(CQ$)-1
3630 GOSUB 4440
3640 IF BB(2)=1 AND DQ=2 THEN XAX=XAX-2
3650 FOR H=1 TO DQ
3660 LOCATE YAX,XAX,1
3670 R$(H)=INPUT$(1)
3680 IF R$(H)<>"c" AND R$(H)<>"C" GOTO 3790
3690 IF H<>1 GOTO 3730
3700 IF BB(2)=1 AND DQ=2 THEN XAX=XAX+2
3710 YAX=YAX-4*(I-II)
3720 GOTO 3450
3730 IF DQ=BB(2) GOTO 3760
3740 IF H=DQ THEN XAX=XAX-4
3750 IF H=DQ-1 THEN XAX=XAX+2
3760 XAX=XAX+2
3770 H=H-1
3780 GOTO 3660
3790 IF R$(H)<"0" OR R$>"9" GOTO 3670
3800 PRINT R$(H)
3810 IF DQ=BB(2) GOTO 3840
3820 IF H=DQ-1 THEN XAX=XAX+4
3830 IF H=DQ-2 THEN XAX=XAX-2
3840 XAX=XAX-2
3850 NEXT H
3860 CC$=STRING$(2*DQ-1,"─")
3870 IF DQ=BB(2) THEN PRINT SPC(XAX+1) CC$ ELSE PRINT SPC(XAX-1) CC$
3880 ANS$=""
3890 IF DQ<>BB(2) THEN SWAP R$(DQ),R$(DQ-1)
3900 FOR H=1 TO DQ
3910 ANS$=R$(H)+ANS$
3920 NEXT H
3930 DANS=LEN(ANS$)
3940 ZERO$=STRING$(WW-I,48)
3950 ANS$=ANS$+ZERO$
3960 AANS=VAL(ANS$)
3970 BANS=DIV-AANS
3980 DIV=BANS
3990 CAN$=STR$(BANS)
4000 AN=LEN(CAN$)-1
4010 BN=AN-LEN(ZERO$)
4020 IF DQ=BB(2) THEN XAX=XAX+2*DQ ELSE XAX=XAX+2*DQ-2
4030 YAX=YAX+2:DQ=BN
4040 GOSUB 4440
4050 IF BANS>0 GOTO 4070 ELSE BN=0
4060 GOTO 4220
4070 FOR G=1 TO BN
4080 LOCATE YAX,XAX,1
4090 E$=INPUT$(1)
4100 IF E$<>"c" AND E$<>"C" GOTO 4180
4110 IF G<>1 GOTO 4150
4120 DIV=DIV+AANS
4130 YAX=YAX-2
4140 GOTO 3640
4150 G=G-1
4160 XAX=XAX+2
4170 GOTO 4080
4180 IF E$<"0" OR E$>"9" GOTO 4090
4190 XAX=XAX-2
4200 PRINT E$
4210 NEXT G
4220 IF I=WWW GOTO 4320
4230 XAX=XAX+2*(BN+1)
4240 LOCATE YAX,XAX,1
4250 E$=INPUT$(1)
4260 IF E$<>"c" AND E$<>"C" GOTO 4290
4270 XAX=XAX-2
4280 IF BN>0 GOTO 4070 ELSE GOTO 3350
4290 IF E$<"0" OR E$>"9" GOTO 4250
4300 PRINT E$
4310 YAX=YAX-4*(I-II)-2
4320 NEXT I
4330 LOCATE 21,1,1:PRINT "Press ";CHR$(17);CHR$(196);CHR$(217);" ";
4340 E$=INPUT$(1)
4350 IF E$="c" OR E$="C" GOTO 3350
4360 IF E$<>CHR$(13) GOTO 4340
4370 Y$=""
4380 FOR I=WWW TO 1 STEP -1
4390 Y$=Q$(I)+Y$
4400 IF L=0 GOTO 4420
4410 IF I=WWW-(C(1)-HH)+1 THEN Y$="."+Y$
4420 NEXT I
4430 GOTO 450
4440 XAX=XAX-8
4450 FOR P=5 TO 1 STEP -1
4460 LOCATE YAX,XAX,0
4470 IF P>DQ THEN PRINT " "
4480 IF P>1 THEN XAX=XAX+2
4490 NEXT P
4500 RETURN
4510 IF HH>C(1) GOTO 4550
4520 IF HH=C(1) GOTO 4580
4530 MID$(DB$(1),EB(1)-2*(C(1)-HH)+1)=" "
4540 GOTO 4570
4550 DB$(1)=LEFT$(DB$(1),EB(1)-2*(HH-C(1)))
4560 EB(1)=LEN(DB$(1))
4570 CC$=STRING$(EB(1),"─")
4580 MID$(DB$(1),EB(1)-2*C(1)+1)="."
4590 IF HH=C(2) GOTO 4610
4600 MID$(DB$(2),EB(2)-2*(C(2)-HH)+1)=" "
4610 MID$(DB$(2),EB(2)-2*C(2)+1)="."
4620 GOTO 2990
4630 QTY=6
4640 BND=BND/2
4650 GOSUB 7480
4660 IF MPROB>PROB GOTO 610
4670 FOR I=1 TO QTY-1
4680 IF B(I)<2 GOTO 4760
4690 FOR H=I+1 TO QTY
4700 IF B(H)<2 GOTO 4750
4710 IF B(I)*B(H)>BND*2 GOTO 4750
4720 IF B(I)<>5 THEN SWAP B(I),B(5)
4730 IF B(H)<>6 THEN SWAP B(H),B(6)
4740 GOTO 4770
4750 NEXT H
4760 NEXT I
4770 IF B(5)=1 AND B(6)=1 GOTO 4650
4780 IF B(5)*B(6)>BND*2 OR B(5)=1 GOTO 4810
4790 IF B(6)=1 THEN B(6)=B(5)
4800 GOTO 4870
4810 B(5)=B(6)
4820 IF GRD>4 AND FORMAT=5 GOTO 5070
4830 IF B(5)*B(6)<BND*2 GOTO 4870
4840 B(5)=B(5)-2
4850 B(6)=B(6)-2
4860 GOTO 4830
4870 IF GRD=5 AND FORMAT=3 OR FORMAT=5 GOTO 5030
4880 FOR I=1 TO 3
4890 FOR H=I+1 TO 4
4900 IF B(I)<B(H) THEN SWAP B(I),B(H)
4910 NEXT H
4920 NEXT I
4930 IF TYPE<3 GOTO 4960
4940 IF TYPE=4 THEN SWAP B(4),B(6)
4950 GOTO 5070
4960 FOR I=3 TO 4
4970 IF B(I)<>B(I+2) GOTO 4990
4980 B(I)=B(I)-1
4990 IF B(I)<B(I+2) GOTO 5020
5000 B(I)=B(I)-B(I+2)
5010 GOTO 4970
5020 NEXT I
5030 IF TYPE<>2 GOTO 5070
5040 IF B(3)/B(5)>B(4)/B(6) GOTO 5070
5050 B(3)=B(3)+1
5060 GOTO 5040
5070 FOR I=1 TO QTY
5080 AB$(I)=STR$(B(I))
5090 EB(I)=LEN(AB$(I))
5100 NEXT I
5110 FOR I=3 TO 4
5120 IF EB(I)=<EB(I+2) GOTO 5170
5130 AB$(I+2)=" "+AB$(I+2)
5140 CB$(I)=AB$(I)
5150 EB(I+2)=EB(I+2)+1
5160 GOTO 5190
5170 CB$(I)=SPACE$(EB(I+2))
5180 RSET CB$(I)=AB$(I)
5190 NEXT I
5200 IF GRD>4 GOTO 5230
5210 QTY=2
5220 GOTO 5240
5230 IF FORMAT=5 THEN QTY=5 ELSE QTY=2
5240 FOR I=1 TO QTY
5250 IF I=4 GOTO 5300
5260 B(I)=0
5270 AB$(I)=""
5280 EB(I)=0
5290 CB$(I)=""
5300 NEXT I
5310 EQ$=" ="
5320 EC$=""
5330 CC$=" "+STRING$(EB(6)-1,"─")
5340 IF EB(5)<>0 GOTO 5400
5350 DC$=""
5360 OP$=""
5370 AN=B(6)
5380 BN=B(4)
5390 GOTO 5520
5400 DC$=" "+STRING$(EB(5)-1,"─")
5410 IF B(2)>0 THEN B(4)=B(2)*B(6)+B(4)
5420 IF B(1)>0 THEN B(3)=B(1)*B(5)+B(3)
5430 IF TYPE=4 THEN SWAP B(4),B(6)
5440 IF B(6)<>B(5) OR TYPE>2 GOTO 5470
5450 AN=B(6)
5460 GOTO 5510
5470 AN=B(6)*B(5)
5480 IF TYPE>2 GOTO 5510
5490 B(4)=B(4)*B(5)
5500 B(3)=B(3)*B(6)
5510 ON TYPE GOSUB 6810,6840,6870,6900
5520 PP=LEN(OP$)
5530 CN=BN MOD AN
5540 DN=BN\AN
5550 IF CN=0 GOTO 5730
5560 FOR H=2 TO CN
5570 EN=AN MOD H
5580 GN=CN MOD H
5590 IF EN+GN>0 GOTO 5630
5600 AN=AN/H
5610 CN=CN/H
5620 GOTO 5550
5630 NEXT H
5640 IF CN=0 GOTO 5730
5650 IF B(4)=B(6) AND B(3)=0 GOTO 5670
5660 IF CN<>B(4) OR AN<>B(6) OR B(3)<>0 GOTO 5730
5670 DN=CINT(100*BN/AN)
5680 DNS$=STR$(DN)
5690 EC$=" %"
5700 Z$=DNS$+EC$
5710 WW=LEN(DNS$)-1
5720 GOTO 5750
5730 IF DN>0 THEN DNS$=STR$(DN) ELSE DNS$=""
5740 IF CN>0 GOTO 5800
5750 CNS$=""
5760 ANS$=""
5770 ANT=0
5780 ANU$=""
5790 GOTO 5840
5800 CNS$=STR$(CN)
5810 ANS$=STR$(AN)
5820 ANT=LEN(ANS$)-1
5830 ANU$="/"+RIGHT$(ANS$,ANT)
5840 IF CNS$<>"" THEN CNT=LEN(CNS$)-1 ELSE CNT=0
5850 DNT=LEN(DNS$)
5860 ANV=LEN(ANU$)
5870 IF B(3)<>0 GOTO 5890
5880 IF EC$=" %" GOTO 5930
5890 Z$=DNS$+CNS$+ANU$
5900 WW=LEN(Z$)-1-ANV
5910 IF Z$="" THEN Z$=" 0"
5920 IF ANV>0 THEN EC$=" "+STRING$(ANV-1,"─") ELSE EC$=""
5930 CLS
5940 PRINT TAB(7) "OK " MICK$", here is problem "PROB
5950 IF GRD=4 AND FORMAT=4 GOTO 6040
5960 IF GRD>4 AND FORMAT=3 GOTO 6040
5970 X=20-EB(1)-EB(5)-PP-EB(2)-EB(6)
5980 LOCATE 7,X:PRINT SPC(EB(1));CB$(3);SPC(PP);SPC(EB(2));CB$(4)
5990 LOCATE 8,X:PRINT AB$(1);DC$;OP$;AB$(2);CC$;EQ$;SPC(DNT);EC$
6000 LOCATE 9,X:PRINT SPC(EB(1));AB$(5);SPC(PP);SPC(EB(2));AB$(6);SPC(2);SPC(DNT);ANS$
6010 IF ANV>0 THEN XAX=21+DNT+ANV ELSE XAX=23
6020 YAX=7
6030 GOTO 6360
6040 EB(7)=ANV
6050 A=0
6060 FOR I=5 TO 7
6070 IF EB(I)>A THEN A=EB(I)
6080 NEXT I
6090 IF A=EB(5) GOTO 6130
6100 CB$(3)=" "+CB$(3)
6110 AB$(5)=" "+AB$(5)
6120 DC$=" "+DC$
6130 IF A=EB(6) GOTO 6170
6140 CB$(4)=" "+CB$(4)
6150 AB$(6)=" "+AB$(6)
6160 CC$=" "+CC$
6170 IF A=EB(7) GOTO 6210
6180 ANT=ANT+1
6190 ANS$=" "+ANS$
6200 EC$=" "+EC$
6210 CB$(2)=SPACE$(EB(1))
6220 RSET CB$(2)=AB$(2)
6230 LOCATE 4,20:PRINT CB$(3)
6240 LOCATE 5,20-EB(1):PRINT AB$(1);DC$
6250 LOCATE 6,20:PRINT AB$(5)
6260 LOCATE 8,20:PRINT CB$(4)
6270 LOCATE 9,18-EB(1):PRINT OP$;CB$(2);CC$
6280 LOCATE 10,20:PRINT AB$(6)
6290 FC$=STRING$(EB(1)+EB(4)+1,"─")
6300 LOCATE 11,20-EB(1):PRINT FC$
6310 LOCATE 13,20:PRINT EC$
6320 LOCATE 14,20:PRINT ANS$
6330 YAX=12
6340 IF ANV>0 THEN XAX=20+ANT ELSE XAX=21-DNT
6350 IF RE=1 GOTO 560
6360 LOCATE 23,1:PRINT "To correct an entry, press c"
6370 IF RE=1 GOTO 560
6380 IF CN=0 OR EC$=" %" THEN YAX=YAX+1
6390 IF CNT=2 THEN XAX=XAX-1
6400 X=XAX
6410 WW=ABS(WW)
6420 FOR I=1 TO WW
6430 LOCATE YAX,XAX,1
6440 Q$(I)=INPUT$(1)
6450 IF Q$(I)<>"c" AND Q$(I)<>"C" GOTO 6560
6460 IF I=1 GOTO 6430
6470 I=I-1
6480 IF CNT>0 AND I=CNT+1 GOTO 6470
6490 IF I<>CNT GOTO 6540
6500 YAX=YAX-1
6510 XAX=X
6520 I=1
6530 GOTO 6430
6540 XAX=XAX-1
6550 GOTO 6430
6560 IF Q$(I)<"0" OR Q$(I)>"9" GOTO 6440
6570 PRINT Q$(I)
6580 IF I<>CNT GOTO 6650
6590 YAX=YAX+1
6600 IF GRD=4 AND FORMAT=4 OR GRD>4 AND FORMAT=3 THEN XAX=20-DNT+1 ELSE XAX=23
6610 IF I=2 THEN SWAP Q$(1),Q$(2)
6620 Q$(I+1)=" "
6630 I=I+1
6640 GOTO 6660
6650 XAX=XAX+1
6660 NEXT I
6670 IF DN>9 THEN SWAP Q$(WW),Q$(WW-1)
6680 IF EC$=" %"THEN Y$=EC$ ELSE Y$=ANU$
6690 FOR I=1 TO WW
6700 Y$=Q$(I)+Y$
6710 NEXT I
6720 Y$=" "+Y$
6730 LOCATE 21,1:PRINT "Press ";CHR$(17);CHR$(196);CHR$(217);" ";
6740 E$=INPUT$(1)
6750 IF E$<>"c" AND E$<>"C" GOTO 6790
6760 IF CNS$<>"" THEN YAX=YAX-1
6770 XAX=X
6780 GOTO 6420
6790 IF E$<>CHR$(13) GOTO 6740
6800 GOTO 450
6810 BN=B(3)+B(4)
6820 OP$=" +"
6830 RETURN
6840 BN=B(3)-B(4)
6850 OP$=" -"
6860 RETURN
6870 BN=B(3)*B(4)
6880 OP$=" x"
6890 RETURN
6900 BN=B(3)*B(4)
6910 OP$=" ÷"
6920 RETURN
6930 QTY=1
6940 GOSUB 7480
6950 IF MPROB>PROB GOTO 610
6960 CLS
6970 LOCATE 1,7:PRINT"OK " MICK$", here is problem "PROB
6980 LOCATE 3,1:PRINT "I am thinking of a number from 1 -"BND-1"Can you find it!"
6990 LOCATE 5,5,1:PRINT"(After each answer, press ";CHR$(17);CHR$(196);CHR$(217);")"
7000 IF RE=1 GOTO 560
7010 PRINT
7020 FOR H=1 TO 12
7030 XAX=1
7040 YAX=CSRLIN
7050 FOR I=1 TO 4
7060 LOCATE YAX,XAX
7070 J$(I)=INPUT$(1)
7080 IF J$(I)=CHR$(13) GOTO 7200
7090 IF J$(I)<>"c" AND J$(I)<>"C" GOTO 7140
7100 IF I=1 GOTO 7070
7110 I=I-1
7120 XAX=XAX-1
7130 GOTO 7060
7140 IF J$(I)<"0" OR J$(I)>"9" GOTO 7070
7150 PRINT J$(I);
7160 XAX=XAX+1
7170 NEXT I
7180 LOCATE YAX,1:PRINT"    ";
7190 IF J$(I)<>CHR$(13) GOTO 7030
7200 Y$=" "
7210 FOR K=1 TO I-1
7220 Y$=Y$+J$(K)
7230 NEXT K
7240 A=VAL(Y$)
7250 IF A>B(1) THEN PRINT" It's lesser!"
7260 IF A<B(1) THEN PRINT" It's greater!"
7270 PRINT
7280 IF A=B(1) GOTO 460
7290 NEXT H
7300 PRINT
7310 LOCATE 19,1:PRINT "Sorry, "MICK$"!  Too many guesses."
7320 LOCATE 21,1:PRINT "The correct answer is "B(1)
7330 GOTO 680
7340 A=B(1)+B(2)
7350 OP$="+"
7360 RETURN
7370 A=B(1)+B(2)
7380 SWAP A,B(1)
7390 OP$="-"
7400 RETURN
7410 A=B(1)*B(2)
7420 OP$="x"
7430 RETURN
7440 A=B(1)*B(2)
7450 SWAP A,B(1)
7460 OP$="÷"
7470 RETURN
7480 FOR I=1 TO QTY
7490 AA=10000*RND(PROB)
7500 B(I)=AA MOD BND
7510 IF B(I)<1 GOTO 7490
7520 NEXT I
7530 RETURN
7540 QTY=2
7550 GOSUB 7480
7560 IF B(1)<B(2) THEN SWAP B(1),B(2)
7570 ON TYPE GOSUB 7340,7370,7410,7440
7580 RETURN
7590 QTY=3
7600 GOSUB 7480
7610 FOR I=1 TO 3
7620 IF B(1)+B(2)+B(3)<BND GOTO 7660
7630 B(I)=B(I)\2
7640 NEXT I
7650 GOTO 7610
7660 IF B(1)<B(2) THEN SWAP B(1),B(2)
7670 IF B(1)<B(3) THEN SWAP B(1),B(3)
7680 A=B(1)+B(2)+B(3)
7690 IF A>BND GOTO 7610
7700 OP$="+"
7710 RETURN
7720 QTY=2
7730 J$="":K$=""
7740 FOR H=1 TO 3
7750 GOSUB 7480
7760 IF B(1)+B(2)<BND GOTO 7810
7770 FOR I=1 TO 2
7780 IF B(I)>3 THEN B(I)=B(I)-4
7790 NEXT I
7800 GOTO 7760
7810 JJ$=STR$(B(1))
7820 KK$=STR$(B(2))
7830 J$=J$+JJ$
7840 K$=K$+KK$
7850 NEXT H
7860 B(1)=VAL(J$)
7870 B(2)=VAL(K$)
7880 IF B(1)<B(2) THEN SWAP B(1),B(2)
7890 A=B(1)+B(2)
7900 OP$="+"
7910 RETURN
7920 QTY=6
7930 ON GRD GOTO 7720,7720,7480,7480,7480,7480
7940 IF RE=1 AND SEL=3 OR SEL=5 GOTO 8480
7950 LL$=MM$
7960 CLS
7970 LOCATE 13,11,0:PRINT"One moment, please!"
7980 OPEN "O",#2,"mis"
7990 WRITE#2,GRD,FORM$,TYP$,BNDA,BNDB,BNDC,BNDD,BNDE,BASE,ANA,SCORE,SEL,MICK$,LL$,TEST,TLIMIT$,PROB
8000 CLOSE#2
8010 CLEAR
8020 OPEN "I",#2,"mis"
8030 INPUT#2,GRD,FORM$,TYP$,BNDA,BNDB,BNDC,BNDD,BNDE,BASE,ANA,SCORE,SEL,MICK$,LL$,TEST,TLIMIT$,PROB
8040 CLOSE#2
8050 CLS
8060 IF ANA>0 GOTO 8090
8070 LOCATE 3,11:PRINT"You did "PROB" problems"
8080 LOCATE 6,11:PRINT"Your score is "SCORE "%"
8090 IF LL$>" " GOTO 8150
8100 LOCATE 12,1:PRINT"Great work, "MICK$;
8110 IF SEL=3 GOTO 8170
8120 PRINT". Some more? (y/n)"
8130 BASE=BASE+1
8140 GOTO 8260
8150 LOCATE 9,1:PRINT"You missed problem:"LL$
8160 IF SEL<>3 GOTO 8200
8170 PRINT"....Enter code."
8180 E$=INPUT$(1)
8190 IF E$<>"{" GOTO 8180
8195 IF SEL=3 AND LL$="" THEN 8480
8200 PRINT
8210 IF SEL=2 GOTO 8250
8220 PRINT "Do you want to see the problems missed? (y/n) "
8230 RE=1
8240 GOTO 8270
8250 PRINT "Do you want to redo the problems missed?(y/n) "
8260 RE=0
8270 E$=INPUT$(1)
8280 IF E$="n" OR E$="N" GOTO 8480
8290 IF E$<>"y"  AND E$<>"Y" GOTO 8270
8300 ANA=LEN(LL$)
8310 IF ANA=0 GOTO 330
8320 MISS=0
8330 FOR GG=1 TO ANA
8340 U$=MID$(LL$,GG,1)
8350 IF U$<>" " THEN UU$=UU$+U$
8360 IF U$=" " OR GG=ANA THEN GOSUB 8410
8370 IF U$=" " THEN UU$=""
8380 NEXT GG
8390 MPROB=0:LL$=""
8400 GOTO 7940
8410 IF UU$<"1" THEN RETURN
8420 MPROB=VAL(UU$)
8430 UU$=" "
8440 MISS=MISS+1
8450 CLS
8460 LOCATE 13,11,0:PRINT"One moment, please!"
8470 IF MISS=1 GOTO 330 ELSE GOTO 370
8480 CLS
8490 LOCATE 13,11,0:PRINT"One moment, please!"
8500 CHAIN "a:tutor"
8510 TYP$="1121211112"
8520 BNDA=9:BNDB=9:BNDC=10:BNDD=9:BNDE=99
8530 RETURN
8540 TYP$="1221113112"
8550 BNDA=99:BNDB=12:BNDC=18:BNDD=5:BNDE=999
8560 RETURN
8570 TYP$="1324311432"
8580 BNDA=999:BNDB=9:BNDC=5:BNDD=99:BNDE=999
8590 RETURN
8600 TYP$="1321421232"
8610 BNDA=9999:BNDB=99:BNDC=999:BNDD=12:BNDE=12
8620 RETURN
8630 TYP$="1421413243"
8640 BNDA=999:BNDB=99:BNDC=18:BNDD=18:BNDE=18
8650 RETURN
8660 TYP$="1321414242"
8670 BNDA=9999:BNDB=999:BNDC=24:BNDD=24:BNDE=24
8680 RETURN

SETUP.BAS

10 CLS
20 LOCATE 12,1,1:PRINT"Change a saved program? (y/n) ";
30 E$=INPUT$(1)
40 IF E$=CHR$(27) GOTO 4600
50 IF E$="n" OR E$="N" GOTO 160
60 IF E$<>"y" AND E$<>"Y" GOTO 30
70 CLS
80 LOCATE ,,0
90 GOSUB 4190
100 CLS
110 LOCATE 13,11,0:PRINT"One moment, please!"
120 OPEN "I",#1,S$
130 INPUT#1,GRD,FORM$,TYP$,TLIMIT$,BNDA,BNDB,BNDC,BNDD,BNDE,TEST,BASE,SEL
140 CLOSE#1
150 GOTO 240
160 CLS
170 LOCATE 10,1:PRINT"Presently, Math Tutor is set to test thestudent at the passing level for each   grade(1-6).  However, this can be easilyaltered to an intermediate level or to  specific areas where tutoring is needed."
180 LOCATE 17,1,1:PRINT "What grade do you want to alter? ";
190 E$=INPUT$(1)
200 IF E$=CHR$(27) GOTO 4600
210 IF E$<"1" OR E$>"6" GOTO 190
220 GRD=VAL(E$)
230 ON GRD GOSUB 4360,4390,4420,4450,4480,4510
240 ON GRD GOSUB 3740,3770,3800,3830,3860,3890
250 C(1)=6:C(2)=8:C(3)=10:C(4)=12:C(5)=14
260 D(1)=2:D(2)=4:D(3)=9:D(4)=11:D(5)=13:D(6)=15:D(7)=17:D(8)=34
270 CLS
280 LOCATE 13,11,0:PRINT"One moment, please!"
290 GOTO 420
300 FOR I=1 TO 5
310 FOR H=1 TO 7
320 INPUT A$(I,H)
330 NEXT H
340 NEXT I
350 OPEN "O",#1,"GRD5"
360 FOR I=1 TO 5
370 FOR H=1 TO 7
380 WRITE#1,A$(I,H)
390 NEXT H
400 NEXT I
410 CLOSE#1
420 Q$=STR$(GRD)
430 E$=RIGHT$(Q$,1)
440 S$="GRD"+E$
450 OPEN "I",#1,S$
460 FOR I=1 TO 5
470 FOR H=1 TO 7
480 INPUT#1,A$(I,H)
490 NEXT H
500 NEXT I
510 CLOSE#1
520 A$(1,8)=STR$(BNDA)
530 A$(2,8)=STR$(BNDB)
540 A$(3,8)=STR$(BNDC)
550 A$(4,8)=STR$(BNDD)
560 A$(5,8)=STR$(BNDE)
570 CLS
580 PRINT"       ┌───────┬────────────────┬─────┐"
590 PRINT" GRD"GRD"│ TYPE  │    PROBLEM     │UPPER│"
600 PRINT"┌──────┼─┬─┬─┬─┤                │     │"
610 PRINT"│FORMAT│1│2│3│4│  DESCRIPTION   │LIMIT│"
620 PRINT"╞═╤════╪═╪═╪═╪═╪════════════════╪═════╡"
630 PRINT"│ │    │ │ │ │ │                │     │"
640 FOR I=1 TO 4
650 PRINT"├─┼────┼─┼─┼─┼─┼────────────────┼─────┤"
660 PRINT"│ │    │ │ │ │ │                │     │"
670 NEXT I
680 PRINT"└─┴────┴─┴─┴─┴─┴────────────────┴─────┘"
690 FOR I=1 TO 5
700 FOR H=1 TO 8
710 LOCATE C(I),D(H):PRINT A$(I,H)
720 NEXT H
730 NEXT I
740 IF GRD<>1 GOTO 760
750 LOCATE 16,2:PRINT"* no carries"
760 LOCATE 20,1
770 LOCATE 18,1:PRINT"Listed above are the TYPE of problems   that are available for each FORMAT. A   blank indicates a combination that is   not authorized for this grade."
780 LOCATE 23,1,1:PRINT"Press ";CHR$(17);CHR$(196);CHR$(217);" to continue. ";
790 E$=INPUT$(1)
800 IF E$=CHR$(27) GOTO 4600
810 IF E$<>CHR$(13) GOTO 790
820 GOSUB 4540
830 LOCATE 17,1:PRINT"  a      z      a      b     c   e   z"
840 LOCATE 18,1:PRINT"+ b    - a    x b    ┌───    ─ ? ─ = ─"
850 LOCATE 19,1:PRINT" ──     ──     ──   a│ z     d   f   g"
860 LOCATE 20,1:PRINT"  z      b      z             (LCD≤a)"
870 LOCATE 22,1:PRINT"The UPPER LIMIT controls a and b of eachproblem.  Others depend on a and b."
880 LOCATE 24,1,1:PRINT"Press ";CHR$(17);CHR$(196);CHR$(217);" to continue. ";
890 E$=INPUT$(1)
900 IF E$=CHR$(27) GOTO 4600
910 IF E$<>CHR$(13) GOTO 890
920 GOSUB 4540
930 LOCATE 17,1:PRINT"The program uses a recurring sequence often problem presentations.  The first   number of each sequence is for problems 1,11,21,etc. The second, for 2,12,etc. "
940 LOCATE 21,1:PRINT"FORMAT sequence " FORM$
950 PRINT"TYPE sequence   " TYP$
960 LOCATE 24,1,1:PRINT"Do you want to make a change? (y/n) ";
970 E$=INPUT$(1)
980 IF E$=CHR$(27) GOTO 4600
990 IF E$="n" OR E$="N" GOTO 1430
1000 IF E$<>"y" AND E$<>"Y" GOTO 970
1010 GOSUB 4540
1020 LOCATE 18,2:PRINT "Enter new FORMAT  "FORM$
1030 PRINT
1040 LOCATE 20,2:PRINT "Enter new TYPE    "TYP$
1050 LOCATE 23,5:PRINT"(To correct an entry, press c)
1060 YAXIS=18:XAXIS=20
1070 FOR I=1 TO 10
1080 LOCATE YAXIS,XAXIS,1
1090 J$(I)=INPUT$(1)
1100 IF J$(I)<>"c" GOTO 1150
1110 IF I=1 GOTO 1090
1120 I=I-1
1130 XAXIS=XAXIS-1
1140 GOTO 1080
1150 IF J$(I)<"1" OR J$(I)>"5" GOTO 1090
1160 PRINT J$(I)
1170 YAXIS=YAXIS+2
1180 LOCATE YAXIS,XAXIS
1190 K$(I)=INPUT$(1)
1200 IF K$(I)<>"c" GOTO 1230
1210 YAXIS=YAXIS-2
1220 GOTO 1080
1230 IF K$(I)<"1" OR K$(I)>"4" GOTO 1190
1240 AJ=VAL(J$(I))
1250 AK=VAL(K$(I))
1260 IF A$(AJ,AK+2)<"+" GOTO 1190
1270 PRINT K$(I)
1280 YAXIS=YAXIS-2
1290 XAXIS=XAXIS+1
1300 NEXT I
1310 FORM$=""
1320 TYP$=""
1330 FOR I=1 TO 10
1340 FORM$=FORM$+J$(I)
1350 TYP$=TYP$+K$(I)
1360 NEXT I
1370 LOCATE 23,1:PRINT STRING$(38,CHR$(32));
1380 LOCATE 23,1,1:PRINT"OK (y/n) ";
1390 E$=INPUT$(1)
1400 IF E$=CHR$(27) GOTO 4600
1410 IF E$="n" OR E$="N" GOTO 1060
1420 IF E$<>"y" AND E$<>"Y" GOTO 1390
1430 GOSUB 4540
1440 LOCATE 18,1:PRINT"Randomly generated problem integers     fall between zero and the UPPER LIMIT.  Although the upper limit is extendable, it is only advised for the well advancedstudent."
1450 LOCATE 24,1,1:PRINT"Do you want to make a change? (y/n) ";
1460 E$=INPUT$(1)
1470 IF E$=CHR$(27) GOTO 4600
1480 IF E$="n" OR E$="N" GOTO 1950
1490 IF E$<>"y" AND E$<>"Y" GOTO 1460
1500 GOSUB 4540
1510 LOCATE 18,1:PRINT "FORMAT sequence is "FORM$
1520 LOCATE 19,1:PRINT "TYPE sequence is   "TYP$
1530 LOCATE 23,1:PRINT "Enter FORMAT     Enter LIMIT      "
1540 LOCATE 23,14,1
1550 E$=INPUT$(1)
1560 IF E$<"1" OR E$>"5" GOTO 1550
1570 PRINT E$
1580 CHG=VAL(E$)
1590 ON CHG GOSUB 3920,3950,3980,4010,4040
1600 LOCATE 21,23:PRINT "BOUNDS"LBND"-"MBND"  ";
1610 YAX=23:XAX=30
1620 FOR I=1 TO 5
1630 LOCATE YAX,XAX
1640 J$(I)=INPUT$(1)
1650 IF J$(I)=CHR$(13) GOTO 1760
1660 IF J$(I)<>"c" GOTO 1710
1670 IF I=1 GOTO 1640
1680 I=I-1
1690 XAX=XAX-1
1700 GOTO 1630
1710 IF J$(I)<"0" OR J$(I)>"9" GOTO 1640
1720 PRINT J$(I)
1730 XAX=XAX+1
1740 NEXT I
1750 IF J$(I)<>CHR$(13) GOTO 1820
1760 Y$=" "
1770 FOR H=1 TO I-1
1780 Y$=Y$+J$(H)
1790 NEXT H
1800 BND=VAL(Y$)
1810 IF BND<MBND+1 AND BND>LBND-1 GOTO 1840
1820 LOCATE 23,30:PRINT STRING$(10,CHR$(32))
1830 GOTO 1610
1840 ON CHG GOSUB 3640,3660,3680,3700,3720
1850 A$=STR$(BND)
1860 LOCATE C(CHG),34:PRINT"     "
1870 LOCATE C(CHG),34:PRINT A$;
1880 LOCATE 21,1:PRINT STRING$(39,CHR$(32));
1890 LOCATE 23,1:PRINT STRING$(39,CHR$(32));
1900 LOCATE 23,1,1:PRINT "Another? (y/n) ";
1910 E$=INPUT$(1)
1920 IF E$=CHR$(27) GOTO 4600
1930 IF E$="y" OR E$="Y" GOTO 1530
1940 IF E$<>"n" AND E$<>"N" GOTO 1910
1950 GOSUB 4540
1960 LOCATE 18,1:PRINT"Presently, the program allows "TLIMIT$"response for each problem before it is  counted wrong.  Pauses between problems are not timed."
1970 LOCATE 23,1,1:PRINT"Do you want to make a change? (y/n) ";
1980 E$=INPUT$(1)
1990 IF E$=CHR$(27) GOTO 4600
2000 IF E$="n" OR E$="N" GOTO 2320
2010 IF E$<>"y" AND E$<>"Y" GOTO 1980
2020 GOSUB 4540
2030 LOCATE 18,1:PRINT"Entries for MINUTES or SECONDS are two  digit entries and are limited to a max- imum of 59."
2040 LOCATE 22,1:PRINT "Enter MINUTES    Enter SECONDS    "
2050 LOCATE 22,15,1
2060 C$=""
2070 FOR I=1 TO 2
2080 E$(I)=INPUT$(1)
2090 IF E$(I)<"0" OR E$(I)>"9" GOTO 2080
2100 PRINT E$(I)
2110 LOCATE 22,16,1
2120 C$=C$+E$(I)
2130 NEXT I
2140 IF C$>"59" OR C$<"00" GOTO 2050
2150 LOCATE 22,32,1
2160 D$=""
2170 FOR I=1 TO 2
2180 E$(I)=INPUT$(1)
2190 IF E$(I)<"0" OR E$(I)>"9" GOTO 2180
2200 PRINT E$(I)
2210 LOCATE 22,33,1
2220 D$=D$+E$(I)
2230 NEXT I
2240 IF D$>"59" OR D$<"00" GOTO 2150
2250 LOCATE 24,1,1:PRINT "OK! (y/n) ";
2260 E$=INPUT$(1)
2270 IF E$=CHR$(27) GOTO 4600
2280 IF E$="n" OR E$="N" GOTO 2040
2290 IF E$<>"y" AND E$<>"Y" GOTO 2260
2300 MID$(TLIMIT$,4,2)=C$
2310 MID$(TLIMIT$,7,2)=D$
2320 GOSUB 4540
2330 LOCATE 18,1:PRINT "Presently, the program is set to grade  every"TEST"problems."
2340 LOCATE 21,1,1:PRINT"Do you want to make a change? (y/n) ";
2350 E$=INPUT$(1)
2360 IF E$=CHR$(27) GOTO 4600
2370 IF E$="n" OR E$="N" GOTO 2630
2380 IF E$<>"y" AND E$<>"Y" GOTO 2350
2390 LOCATE 23,1:PRINT"ENTER new limit. (1-1000) "
2400 YAX=23:XAX=27
2410 FOR I=1 TO 5
2420 LOCATE YAX,XAX
2430 J$(I)=INPUT$(1)
2440 IF J$(I)=CHR$(13) GOTO 2550
2450 IF J$(I)<>"c" GOTO 2500
2460 IF I=1 GOTO 2430
2470 I=I-1
2480 XAX=XAX-1
2490 GOTO 2420
2500 IF J$(I)<"0" OR J$(I)>"9" GOTO 2430
2510 PRINT J$(I)
2520 XAX=XAX+1
2530 NEXT I
2540 IF J$(I)<>CHR$(13) GOTO 2610
2550 Y$=" "
2560 FOR H=1 TO I-1
2570 Y$=Y$+J$(H)
2580 NEXT H
2590 TEST=VAL(Y$)
2600 IF TEST>0 AND TEST<1001 GOTO 2630
2610 LOCATE 23,27:PRINT STRING$(5,CHR$(32));
2620 GOTO 2400
2630 CLS
2640 LOCATE 4,1:PRINT"At the completion of the problems, the  student is graded and notified of the   problems he missed."
2650 LOCATE 8,1:PRINT"After an EXERCISE, the student is given a chance to re-do the missed problems.  If he corrects the missed problems, he  is given a chance to try a new exercise."
2660 LOCATE 13,1:PRINT"After a TEST, the program pauses until  you enter the test code.  You may then  look at the missed problems and analyze the student's progress."
2670 LOCATE 18,1:PRINT"What do you want to do?"
2680 LOCATE 20,1:PRINT "1. an exercise"
2690 LOCATE 22,1,0:PRINT "2. a test"
2700 E$=INPUT$(1)
2710 IF E$=CHR$(27) GOTO 4600
2720 IF E$<"1" OR E$>"2" GOTO 2700
2730 SEL=VAL(E$)
2740 SEL=SEL+1
2750 CLS
2760 LOCATE 1,1:PRINT"For a set of FORMAT, TYPE, UPPER LIMIT, and GRADE parameters, the program will  produce the same set of problems each   time it is run."
2770 LOCATE 6,1:PRINT"This program characteristic assures thateach student receives the same test and allows for later analysis by you."
2780 LOCATE 10,1:PRINT "Random numbers used for the problems aregenerated from a SEED. Changing the SEEDproduces a new set of problem variables to further challenge the student."
2790 LOCATE 15,1:PRINT"After the student corrects an EXERCISE, the SEED is incremented by one. However,no incrementing occurs for TESTS."
2800 LOCATE 19,1:PRINT"The present SEED is "BASE
2810 LOCATE 21,1,1:PRINT "Do you want to change the SEED? (y/n) ";
2820 E$=INPUT$(1)
2830 IF E$=CHR$(27) GOTO 4600
2840 IF E$="n" OR E$="N" GOTO 3110
2850 IF E$<>"y" AND E$<>"Y" GOTO 2820
2860 LOCATE 23,1:PRINT"Enter SEED (-32767 to 32767). ";
2870 YAX=23:XAX=31
2880 FOR I=1 TO 7
2890 LOCATE YAX,XAX,1
2900 J$(I)=INPUT$(1)
2910 IF J$(I)=CHR$(13) GOTO 3030
2920 IF J$(I)<>"c" GOTO 2970
2930 IF I=1 GOTO 2900
2940 I=I-1
2950 XAX=XAX-1
2960 GOTO 2890
2970 IF J$(I)="-" OR J$(I)="." GOTO 2990
2980 IF J$(I)<"0" OR J$(I)>"9" GOTO 2900
2990 PRINT J$(I)
3000 XAX=XAX+1
3010 NEXT I
3020 IF J$(I)<>CHR$(13) GOTO 3090
3030 Y$=""
3040 FOR H=1 TO I-1
3050 Y$=Y$+J$(H)
3060 NEXT H
3070 BASE=VAL(Y$)
3080 IF ABS(BASE)<32768! GOTO 3110
3090 LOCATE 23,30,0:PRINT STRING$(8,CHR$(32))
3100 GOTO 2870
3110 CLS
3120 LOCATE 2,1:PRINT "The changes you made will be saved on   the disk for later recall."
3130 GOSUB 4190
3140 LOCATE 23,8:INPUT"Name for file? ",SS$
3150 CLS
3160 LOCATE 13,11,0:PRINT"One moment, please!"
3170 ON VAL(E$) GOSUB 4070,4090,4110,4130,4150,4170
3180 OPEN "O",#1,"tdata"
3190 WRITE#1,SV1$,SV2$,SV3$,SV4$,SV5$,SV6$
3200 CLOSE#1
3210 OPEN "O",#1,S$
3220 WRITE#1,GRD,FORM$,TYP$,TLIMIT$,BNDA,BNDB,BNDC,BNDD,BNDE,TEST,BASE,SEL
3230 CLOSE#1
3240 CLS
3250 LOCATE 12,1,1:PRINT"Hard copy of the parameters? (y/n) ";
3260 E$=INPUT$(1)
3270 IF E$=CHR$(27) GOTO 4600
3280 IF E$="n" OR E$="N" GOTO 3520
3290 IF E$<>"y" AND E$<>"Y" GOTO 3260
3300 LOCATE 14,1:PRINT"Turn printer on, press ";CHR$(17);CHR$(196);CHR$(217);" ";
3310 E$=INPUT$(1)
3320 IF E$=CHR$(27) GOTO 4600
3330 IF E$<>CHR$(13) GOTO 3310
3340 LPRINT"Title - "SS$
3350 LPRINT
3360 LPRINT"Sequence of FORMAT "FORM$
3370 LPRINT"Sequence of TYPE   "TYP$
3380 LPRINT
3390 LPRINT"Format 1 upper limit ="BNDA
3400 LPRINT"Format 2 upper limit ="BNDB
3410 LPRINT"Format 3 upper limit ="BNDC
3420 LPRINT"Format 4 upper limit ="BNDD
3430 LPRINT"Format 5 upper limit ="BNDE
3440 LPRINT
3450 LPRINT"Time limit = "TLIMIT$
3460 LPRINT
3470 LPRINT"Problems ="TEST
3480 LPRINT
3490 IF SEL=2 THEN LPRINT"This is an exercise." ELSE LPRINT"This is a test."
3500 LPRINT
3510 LPRINT"The SEED ="BASE
3520 CLS
3530 LOCATE 12,1:PRINT "Do you want to see the problems? (y/n)";
3540 E$=INPUT$(1)
3550 IF E$=CHR$(27) GOTO 4600
3560 IF E$="n" OR E$="N" GOTO 4600
3570 IF E$<>"y" AND E$<>"Y" GOTO 3540
3580 CLS
3590 LOCATE 13,11,0:PRINT"One moment please!"
3600 RE=1
3610 SEL=5
3620 COMMON GRD,FORM$,TYP$,TLIMIT$,BNDA,BNDB,BNDC,BNDD,BNDE,TEST,BASE,SEL,RE,MPROB
3630 CHAIN "a:math",330
3640 BNDA=BND
3650 RETURN
3660 BNDB=BND
3670 RETURN
3680 BNDC=BND
3690 RETURN
3700 BNDD=BND
3710 RETURN
3720 BNDE=BND
3730 RETURN
3740 MBNDA=99:MBNDB=24:MBNDC=20:MBNDD=9:MBNDE=999
3750 LBNDA=3:LBNDB=3:LBNDC=4:LBNDD=9:LBNDE=9
3760 RETURN
3770 MBNDA=99:MBNDB=50:MBNDC=50:MBNDD=12:MBNDE=999
3780 LBNDA=3:LBNDB=3:LBNDC=4:LBNDD=3:LBNDE=9
3790 RETURN
3800 MBNDA=999:MBNDB=12:MBNDC=12:MBNDD=999:MBNDE=999
3810 LBNDA=3:LBNDB=3:LBNDC=4:LBNDD=3:LBNDE=9
3820 RETURN
3830 MBNDA=9999:MBNDB=999:MBNDC=9999:MBNDD=18:MBNDE=18
3840 LBNDA=9:LBNDB=9:LBNDC=9:LBNDD=8:LBNDE=8
3850 RETURN
3860 MBNDA=9999:MBNDB=999:MBNDC=24:MBNDD=24:MBNDE=24
3870 LBNDA=9:LBNDB=9:LBNDC=8:LBNDD=8:LBNDE=8
3880 RETURN
3890 MBNDA=9999:MBNDB=999:MBNDC=50:MBNDD=50:MBNDE=50
3900 LBNDA=4:LBNDB=4:LBNDC=8:LBNDD=8:LBNDE=8
3910 RETURN
3920 MBND=MBNDA
3930 LBND=LBNDA
3940 RETURN
3950 MBND=MBNDB
3960 LBND=LBNDB
3970 RETURN
3980 MBND=MBNDC
3990 LBND=LBNDC
4000 RETURN
4010 MBND=MBNDD
4020 LBND=LBNDD
4030 RETURN
4040 MBND=MBNDE
4050 LBND=LBNDE
4060 RETURN
4070 SV1$=SS$
4080 RETURN
4090 SV2$=SS$
4100 RETURN
4110 SV3$=SS$
4120 RETURN
4130 SV4$=SS$
4140 RETURN
4150 SV5$=SS$
4160 RETURN
4170 SV6$=SS$
4180 RETURN
4190 OPEN "I",#1,"tdata"
4200 INPUT#1,SV1$,SV2$,SV3$,SV4$,SV5$,SV6$
4210 CLOSE#1
4220 LOCATE 5,8:PRINT"File of saved programs:"
4230 LOCATE 8,8:PRINT"1. "SV1$
4240 LOCATE 10,8:PRINT"2. "SV2$
4250 LOCATE 12,8:PRINT"3. "SV3$
4260 LOCATE 14,8:PRINT"4. "SV4$
4270 LOCATE 16,8:PRINT"5. "SV5$
4280 LOCATE 18,8:PRINT"6. "SV6$
4290 LOCATE 21,8,1:PRINT"Which file do you want? ";
4300 E$=INPUT$(1)
4310 IF E$=CHR$(27) GOTO 4600
4320 IF E$<"1" OR E$>"6" GOTO 4300
4330 PRINT E$
4340 S$="SAV"+E$
4350 RETURN
4360 TYP$="1121211112" 'grade 1
4370 BNDA=9:BNDB=9:BNDC=10:BNDD=9:BNDE=99
4380 RETURN
4390 TYP$="1221113112" 'grade 2
4400 BNDA=99:BNDB=12:BNDC=18:BNDD=5:BNDE=999
4410 RETURN
4420 TYP$="1324311432" 'grade 3
4430 BNDA=999:BNDB=9:BNDC=5:BNDD=99:BNDE=999
4440 RETURN
4450 TYP$="1321421232" 'grade 4
4460 BNDA=9999:BNDB=99:BNDC=999:BNDD=12:BNDE=12
4470 RETURN
4480 TYP$="1421413243" 'grade 5
4490 BNDA=999:BNDB=99:BNDC=18:BNDD=18:BNDE=18
4500 RETURN
4510 TYP$="1321414242" 'grade 6
4520 BNDA=9999:BNDB=999:BNDC=24:BNDD=24:BNDE=24
4530 RETURN
4540 LOCATE 17,1,0
4550 FOR I=1 TO 7
4560 PRINT STRING$(40,CHR$(32));
4570 NEXT I
4580 PRINT STRING$(39,CHR$(32));
4590 RETURN
4600 CLS
4610 LOCATE 10,8:PRINT"What do you want to do?"
4620 LOCATE 13,8:PRINT"1. Correct your changes"
4630 LOCATE 15,8,0:PRINT"2. Return to the menu"
4640 E$=INPUT$(1)
4650 IF E$<"1" OR E$>"2" GOTO 4640
4660 IF E$="1" GOTO 250
4670 CLS
4680 LOCATE 13,11,0:PRINT"One moment, please!"
4690 CHAIN "A:tutor"

TUTOR.BAS

10 KEY OFF
20 KEY 1,""
30 KEY 2,""
40 KEY 3,""
50 KEY 4,""
60 KEY 5,""
70 KEY 6,""
80 KEY 7,""
90 KEY 8,""
100 KEY 9,""
110 KEY 10,""
120 SCREEN 0,0,0
130 WIDTH 40
140 GRD=0
150 FORM$="1213254321"
160 TLIMIT$="00:01:00"
170 TEST=25
180 MPROB=0
190 BASE=0
200 CLS
210 LOCATE 1,10,0:PRINT"Welcome to MATH TUTOR"
220 LOCATE 3,19:PRINT"by"
230 LOCATE 5,12:PRINT"Joseph C. Barteck"
240 LOCATE 8,10:PRINT"What would you like?"
250 LOCATE 11,10:PRINT"1. Instructions"
260 LOCATE 13,10:PRINT"2. Math Exercise"
270 LOCATE 15,10:PRINT"3. Math Test"
280 LOCATE 17,10:PRINT"4. Saved Program"
290 LOCATE 19,10:PRINT"5. Program Set-Up"
300 LOCATE 21,10:PRINT"6. Quit"
310 LOCATE 24,10,0:PRINT"To return, press ESC";
320 E$=INPUT$(1)
330 IF E$<"1" OR E$>"6" GOTO 320
340 SEL=VAL(E$)
350 COMMON GRD,SEL,FORM$,TLIMIT$,TEST,MPROB,BASE
360 CLS
370 LOCATE 13,11,0:PRINT"One moment, please!"
380 ON SEL GOTO 420,390,390,400,410,430
390 CHAIN "a:math",230
400 CHAIN "a:math"
410 CHAIN "a:setup"
420 CHAIN "a:instr"
430 CLS
440 LOCATE 13,13,0:PRINT"Have a nice day!"
450 LOCATE 23,1
460 END
470 430

Directory of PC-SIG Library Disk #0095

 Volume in drive A has no label
 Directory of A:\

ANSI     SYS      2432  10-28-83   5:24p
CRC      TXT      1592  11-09-84   1:42p
CRCK4    COM      1536  10-21-82   7:54p
GRD1               256   8-19-82
GRD2               256   8-19-82
GRD3               256   8-20-82
GRD4               256   8-20-82
GRD5               256   8-27-82
GRD6               256   8-27-82
INSTR    BAS      7680   3-19-83   6:36p
MATH     BAS     17664   3-19-83   6:37p
MIS                128   7-08-83  12:00a
READ     ME        850   7-16-83  12:06a
SAV1               128   3-20-83  12:00a
SAV2               128   8-27-82
SAV3               128   8-27-82
SAV4               128   8-27-82
SAV5               128   8-27-82
SAV6               128   7-02-83  12:02a
SETUP    BAS     12288   6-12-83  12:37p
TDATA              128   7-02-83  12:02a
TUTOR    BAS       896   3-19-83   6:35p
       22 file(s)      47498 bytes
                      107008 bytes free