home *** CD-ROM | disk | FTP | other *** search
- 0 OPEN 5,3
- 1 ML=855:DATA 162,5,32,201,255,169,147,32,210,255
- 2 DATA 162,250,169,32,157,255,3,157,249,4,157,243,5,157,237,6,169,1
- 3 DATA 157,255,215,157,249,216,157,243,217,157,237,218,202,208,225,96
- 4 FOR T=0 TO 43:READ A:POKE ML+T,A:NEXT
- 5 DIM CM$(12)
- 11 CM$(1)="VERY IMPRESSIVE!"
- 12 CM$(2)="I SEE YOU'VE BEEN DOING YOUR HOMEWORK!"
- 13 CM$(3)="TOO BAD YOUR TEACHER CAN'T SEE THIS!"
- 14 CM$(4)="THE MATH DEPARTMENT IS PROUD OF YOU!"
- 15 CM$(5)="WELL, WE CAN'T ALL BE PERFECT."
- 16 CM$(6)="THAT WAS A GOOD TRY."
- 17 CM$(7)="YOU ALMOST MADE IT ON THAT ONE."
- 18 CM$(8)="KEEP TRYING. YOU'RE DOING WELL."
- 19 CM$(9)="KEEP TRYING. YOU'LL GET IT."
- 20 CM$(10)="DON'T GET DISCOURAGED. YOU'LL DO BETTER"
- 21 CM$(11)="THESE PROBLEMS ARE NOT SO EASY.
- 22 CM$(12)[178]"TRY AGAIN. PRACTICE MAKES PERFECT."
- 80 K[178]1024[170]5[172]40[170]9:K1[178]K[171]120:K2[178]K[171]160
- 90 [151] 53280,0:[151] 53281,0:[153]""
- 100 [129] X[178]1 [164] [197]([201](TI$,2)):O7[178][187](1):[130]X
- 150 [129]Y[178]1[164]3:[135]I$(Y):[130]
- 160 [131]"EXCELLENT! NO MISTAKES.","PERFECT!"
- 170 [131]"FANTASTIC, NO ERRORS!"
- 180 [134] C(13):[129] X[178]1 [164] 13:[135] C(X):[130] X
- 190 [131]162,0,169,96,157,8,6,232,224,240,208,248,96
- 200 [153]"LOAD";:[158](ML)
- 205 [129] TW[178]1024 [164] 1064:[151] TW,160:[151] TW[170]960,160:[130]
- 206 [129] TW[178]1024 [164] 1984 [169] 40:[151] TW,160:[151] TW[170]39,160:[130]
- 209 [153]"";
- 210 [153]" S U B T R A C T I O N":[153]" USRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSR"
- 220 [153]:[153]:[153]:[153][163]6)"COPYRIGHT 1983 DONALD ROSS":[153]
- 225 [153][163]8)"MICROCOMPUTER WORKSHOPS":[153]:[153]
- 227 [129] X[178]1 [164] 2100:[130]X:[153]"LOAD":[158](ML)
- 228 [129] GF[178]1 [164] 8:[161] YT$:[130]
- 230 [153]:[153]"LOADHI!! WHAT'S YOUR NAME ";
- 235 [133]N$
- 236 [139] N$[178]"" [167][153]:[137]230
- 240 [153]"LOAD";:[158](ML)
- 241 [153]"HI "N$"!!":[153]"DO YOU WANT INSTRUCTIONS ?";
- 242 [161] G$:[139] G$[178]"" [167] 242
- 260 [139]G$[179][177]"Y"[175]G$[179][177]"N"[167] 240
- 270 [139]G$[178]"N"[167]700
- 290 [153]"LOAD";:[158](ML):[153]" INSTRUCTIONSWAIT"
- 300 [153]"I WILL GIVE YOU PRACTICE IN SUBTRACTION."
- 310 [153]"YOU WILL CHOOSE THE SIZE OF THE"
- 320 [153]"PROBLEMS. YOU WILL DECIDE ALSO IF THERE"
- 330 [153]"SHOULD BE BORROWING. (PROBLEMS WITHOUT"
- 331 [153]"BORROWING ARE EASIER.)
- 340 GOSUB2430
- 350 PRINT"[147]";:SYS(ML)
- 351 PRINT"OK, "N$", HERE IS AN EXAMPLE ":PRINT"WITHOUT[146] BORROWING:"
- 360 PRINTTAB(10)"5 9 6":PRINTTAB(7)"- 2 4 0":PRINTTAB(9)"[163][163][163][163][163][163][163]"
- 370 POKE 1398,160:PRINT"THE WHITE SQUARE IS THE CURSOR AND SHOWS"
- 380 PRINT"WHERE THE NEXT NUMBER SHOULD GO."
- 390 GOSUB 2430
- 410 PRINT"IN THIS CASE, 6 MINUS 0 IS 6. YOU SHOULD"
- 420 PRINT"NOW TYPE A 6."
- 425 PRINT" TRY[146] TYPING A 6!";
- 426 GET G$:IF G$<>"6" THEN426
- 427 POKE 1398,54:POKE 1396,160
- 440 PRINT"A 6 HAS BEEN PRINTED AND THE CURSOR IS "
- 450 PRINT"NOW UNDER THE 4."
- 460 GOSUB2430
- 470 PRINT"THIS CONTINUES UNTIL THE PROBLEM IS SOLVED."
- 480 GOSUB2430:POKE1396,53:POKE1394,51
- 490 PRINT"[145][145][145][145][145][145][145]IN THIS MANNER A COMPLICATED PROBLEM IS BROKEN DOWN INTO ";
- 500 PRINT"SIMPLE STEPS.":GOSUB2430
- 510 PRINT"[147]";:SYS(ML)
- 511 PRINT"HOWEVER, IF THE PROBLEM WAS LIKE THE FOLLOWING ONE, ";
- 520 PRINT"THEN YOU WOULD[146] HAVE TO BORROW:":POKE1438,160
- 530 PRINTTAB(10)"5 1 0":PRINTTAB(7)"- 4 0 4":PRINTTAB(9)"[163][163][163][163][163][163][163]"
- 550 PRINT"BECAUSE WE CANNOT SUBTRACT 4 FROM 0, WE"
- 560 PRINT"HAVE TO BORROW ONE FROM THE NEXT DIGIT."
- 570 PRINT"THIS IS DONE BY TYPING A B[146]."
- 571 PRINT" TRY[146] TYPING A B!"
- 572 GET G$:IF G$<>"B" THEN 572
- 573 PRINT"WHEN YOU TYPE 'B', THE NEXT DIGIT OVER "
- 574 PRINT"WILL BE HIGHLIGHTED. "
- 575 POKE 1316,177:GOSUB 23000
- 577 REM
- 578 POKE 1277,160
- 579 PRINT"NOW THE COMPUTER WILL ASK FOR A CARRY."
- 580 PRINT"IN ALL SUBTRACTION PROBLEMS THE CARRY"
- 581 PRINT"IS A 1. "
- 582 PRINT" "
- 584 REM
- 585 PRINT" TRY[146] TYPING A 1. "
- 586 GET G$:IF G$<>"1" THEN 586
- 588 POKE 1277,49
- 590 PRINT"THE CARRY APPEARS AND NOW YOU MUST "
- 591 PRINT"SUBTRACT 4 FROM 10. YOU MUST NOW "
- 592 PRINT"TYPE A 6."
- 593 PRINT" TRY[146] TYPING A 6. "
- 594 GET G$:IF G$<>"6" THEN 590
- 595 POKE 1438,54
- 600 PRINT"THIS CONTINUES UNTIL THE PROBLEM IS "
- 601 PRINT"SOLVED. "
- 602 PRINT" "
- 603 GOSUB 2430
- 690 PRINT"[147]";:SYS(ML):PRINT"OK, "N$", GOOD LUCK!!":FORY=1TO3000:NEXT
- 700 GOSUB 25000:SK=PN
- 709 PRINT"[147]";:SYS(ML):PRINT"WOULD YOU LIKE:":PRINT
- 710 PRINT" 1) PROBLEMS WHERE YOU BORROW[146]" :PRINT
- 720 PRINT" 2) PROBLEMS WHERE YOU DON'T BORROW[146]":PRINT
- 730 GET G$:IF G$="" THEN 730
- 731 SD=0:C1=ASC(G$)-48:IFC1>2ORC1<1THEN730
- 740 PRINT:PRINT:PRINT:PRINT"HOW MANY DIGITS DO YOU WANT IN EACH PROBLEM ?"
- 750 GET G$:IF G$="" THEN 750
- 751 C2=ASC(G$)-48
- 754 IFC1<>1ORC2<>1THEN760
- 755 PRINT:PRINT"YOU CAN'T HAVE A 1-DIGIT PROBLEM WITH[146] BORROWING"
- 756 FOR X=1TO1500:NEXTX:GOTO 709
- 760 IFC2<6ANDC2>0THEN790
- 770 PRINT:PRINT:PRINT"THE NUMBER OF DIGITS MUST BE BETWEEN 1 AND 5[146]."
- 775 FOR X=1 TO 1500:NEXT X
- 776 PRINT"[145][145][145] "
- 780 PRINT"[145][145][145][145][145][145]":GOTO750
- 790 REM PRINT OUT OF PROBLEM
- 791 FOR VM=1 TO SK
- 800 FORX=1TOC2:R(X)=INT(RND(TI)*10)
- 810 R(X)=INT(RND(TI)*10)
- 820 S(X)=INT(RND(TI)*10):IFC1=1THEN860
- 840 IFS(X)>R(X)THEN820
- 850 A(X)=R(X)-S(X)
- 860 NEXT
- 861 K6=0
- 862 IFC1=2THEN870
- 863 FORX=1TOC2
- 864 IFS(X)>R(X)THENK6=1
- 865 NEXTX
- 866 IFK6=0THEN800
- 870 IFR(1)<=S(1)ORR(1)=0ORS(1)=0THEN800
- 900 FORX=C2TO1STEP-1:R1(X)=R(X):S1(X)=S(X):NEXT:PRINT"[147]"
- 910 SYS(ML):PRINT:PRINT:PRINTTAB(10);:FORX=1TOC2:PRINTR(X)"[157]";:NEXT:PRINT
- 920 PRINTTAB(7)"- ";:FORX=1TOC2:PRINTS(X)"[157]";:NEXT:PRINT
- 930 PRINTTAB(10);:FORX=1TO2* C2+1:PRINT"[163]";:NEXT:PRINT
- 940 PRINT"":IFC1=1THEN1520
- 960 FORX=C2TO1STEP-1:POKEK+X*2,160:GOSUB1100
- 970 POKE K+X*2,G+48
- 1000 IFG=A(X)THEN1030
- 1010 M=1:GOSUB1160:IF M<>5THENPOKEK+X*2,G+176
- 1020 S=1:GOSUB1100:GOSUB1390:GOTO1000
- 1030 POKE K+X*2,G+48:S=0:NEXT X
- 1040 GOTO 1740
- 1060 PRINT"[147]":SYS(ML):S=0
- 1070 SD=SD+S2
- 1071 S2=0
- 1072 NEXT VM
- 1080 VM=VM-1
- 1090 GOTO 9000
- 1100 PRINT" (HIT * TO QUIT)";
- 1101 G=-1:G$="":GET G$
- 1102 IF G$="" OR G$=CHR$(13) THEN 1101
- 1103 IF G$="*" THEN 9000
- 1104 IF (ASC(G$)-48<0 OR ASC(G$)-48>9) AND G$<>"B" THEN 1101
- 1130 IFASC(G$)-48>-1ANDASC(G$)-48<10THENG=ASC(G$)-48
- 1140 RETURN
- 1160 IF G=-1 THEN M=5:POKE K+X*2,160
- 1165 GOSUB1390:ONMGOTO1180,1360,1270,1300,1330,1350
- 1180 IFS=1THEN1230
- 1190 PRINT"YOU ARE INCORRECT. PLEASE TRY AGAIN.[145]":S=1:S2=S2+1:POKEK+2*X,176+G
- 1220 RETURN
- 1230 PRINT"SORRY,THE ANSWER IS"A(X)"[157]. WHEN YOU UNDERSTAND YOUR MIS";
- 1240 S=0:PRINT"TAKE TYPE IN THE CORRECT ANSWER. ":POKEK+2*X,176+G
- 1250 PRINT"[145][145][145][145][145][145]":S2=S2+1:RETURN
- 1270 PRINT"YOU CAN NOT SUBTRACT WITHOUT FIRST"
- 1280 PRINT"BORROWING[146]. (TO BORROW TYPE B).[145][145][145]":RETURN
- 1300 PRINT "THE CORRECT ANSWER IS"R(X-1)-1"[157]. WHEN YOU UNDERSTAND ";
- 1310 PRINT"YOUR MISTAKE TYPE IN THE CORRECT ANSWER.[145][145][145][145][145]"
- 1320 S2=S2+1:RETURN
- 1330 PRINT"BORROWING IS NOT NECESSARY IN THIS STEP. [145][145][145]"
- 1340 RETURN
- 1350 S2=S2+1:PRINT"YOUR CARRY IS NOT CORRECT.[145]":RETURN
- 1360 PRINT"YOU CAN NOT SUBTRACT FROM 0. TYPE 'B' TO BORROW.[145][145][145]"
- 1370 S2=S2+1:RETURN
- 1390 T=0
- 1410 FORX1=826TO838:T=T+1:POKEX1,C(T)
- 1430 NEXTX1
- 1440 SYS(826):POKE831,248:SYS(826):RETURN
- 1520 FORD=C2TO1STEP-1
- 1530 IFR1(D)-S1(D)<0THEN1560
- 1540 A(D)=R1(D)-S1(D)
- 1550 GOTO1590
- 1560 R1(D-1)=R1(D-1)-1:R1(D)=R1(D)+10:GOTO1540
- 1590 NEXT
- 1600 FORX=C2TO1STEP-1:POKEK+2*X,160
- 1610 IF R(X)-S(X)<>0ORX<>1 THEN 1620
- 1615 G=0:GOTO 1690
- 1620 M=0:S6=0:GOSUB1100:GOSUB1390
- 1630 IFG$="B"ANDR(X)-S(X)>-1THENM=5
- 1640 IFG$<>"B"ANDR(X)-S(X)<0THENM=3
- 1650 IFG$="B"ANDM=0THENGOSUB1860
- 1660 IFS6=1THEN1620
- 1670 IFG=A(X)ANDM=0THEN1700
- 1680 GOSUB1160:GOSUB1100:GOSUB1390:M=0:GOTO1630
- 1690 IF X=1 AND G=0 THEN POKEK+2*X,96:GOTO1710
- 1700 POKEK+2*X,G+ 48
- 1710 M=0:NEXTX
- 1740 XZ=1+INT(RND(0)*4)+4*((ABS(S2>1)ANDABS(S2<4))+ABS(S2>3)*2)
- 1741 ET$="ERRORS.":IF S2=1 THEN ET$="ERROR."
- 1742 PRINT"YOU MADE"S2;ET$
- 1750 PRINTCM$(XZ)
- 1760 FOR WA=1 TO 2000:NEXT
- 1850 GOTO1060
- 1860 PRINT"BORROWING":PRINT"TYPE THE NUMBER THE HIGHLIGHTED DIGIT SHOULD";
- 1880 PRINT" BE CHANGED TO.[145][145][145][145][145]"
- 1890 POKE K1+2*X-2,R(X-1)+176
- 1900 GOSUB1100:GOSUB1390
- 1910 IF X<2THEN1970
- 1920 IFG$<>"B"ANDR(X-1)=0THENM=2
- 1930 IFG$="B"ANDR(X-1)=0THENGOSUB2120
- 1940 IFG$<>"B"ANDR(X-1)=0THEN1990
- 1950 IFR(X-1)>9THEN2110
- 1960 IFG$="B"ANDR(X-1)<>0THENM=7
- 1970 IFG=R(X-1)-1THEN2010
- 1980 IF M=0THEN M=4
- 1990 GOSUB1160
- 2000 M=0:GOTO1890
- 2010 POKE K1+2*X-2,G+48
- 2020 PRINT"CORRECT. NOW TYPE THE NEW CARRY.[145]":POKEK2+2*X-1,160:GOSUB1100:M=0
- 2050 M=0:IFG=1THEN2070
- 2060 M=6:GOSUB1160:GOSUB1100:GOTO2050
- 2070 POKEK2+2*X-1,49:GOSUB1390
- 2080 PRINT"NOW CONTINUE PROBLEM[145]":R(X)=R(X)+10:R(X-1)=R(X-1)-1
- 2110 S6=1:RETURN
- 2120 K9=0
- 2130 POKEK1+2*X-2-2*K9,R(X-1-K9)+48:POKEK1+2*X-4-2*K9,R(X-2-K9)+176
- 2150 PRINT"BORROWING":PRINT"TYPE THE NUMBER THE HIGHLIGHTED NUMBER";
- 2160 PRINT" SHOULD BE CHANGED TO.[145][145][145][145][145]"
- 2170 M=0:GOSUB1100:GOSUB1390
- 2180 IFG$<>"B"ANDR(X-2-K9)=0THENM=2
- 2190 IFG$="B"ANDR(X-2-K9)<>0THENM=5
- 2200 IFM>0THENGOSUB1160
- 2210 IFM>0THENGOTO2170
- 2220 IFG$="B"ANDR(X-2-K9)=0THENK9=K9+1
- 2230 IFG=R(X-2-K9)-1THEN2250
- 2240 GOTO2130
- 2250 POKEK1+2*X-4-2*K9,G+48:K9=K9+1
- 2260 R(X-K9-1)=R(X-K9-1)-1
- 2270 R(X-K9)=R1(X-K9)+10:POKEK2+2*X-2*K9-1,160
- 2280 GOSUB1390:PRINT"CORRECT. NOW TYPE THE NEW CARRY.[145]"
- 2290 GOSUB1100
- 2300 IFG=R1(X-K9)THEN2360
- 2310 IFG=1ANDK9=0THEN2330
- 2320 IF G<>9ANDR1(X-K9)=9 THEN 2410
- 2325 PRINT"INCORRECT CARRY. [145]":GOTO2290
- 2330 POKEK2+2*X-2*K9-1,49
- 2350 GOTO2380
- 2360 POKEK2+2*X-2*K9-1,G+48:POKEK2+2*X-2*K9+40,102
- 2380 K9=K9-1:IFK9>-1THEN2270
- 2390 PRINT"OK "N$",NOW CONTINUE WITH THE PROBLEM.[145]"
- 2400 RETURN
- 2410 PRINT"WRONG, YOU MUST CHANGE THE 0 TO A 9.[145]"
- 2420 GOTO2290
- 2430 PRINT" (HIT 'C' TO CONTINUE)"
- 2431 G$=""
- 2440 GET G$:IFG$<>"C"THEN2440
- 2450 GOSUB1390:RETURN
- 2460 END
- 9000 PRINT"[147]ERROR ANALYSIS:"
- 9010 PRINT"TOTAL -- "SD
- 9020 PRINT:PRINT"PER PROBLEM -- "INT((SD/VM)*100)/100
- 9030 FOR WA=1 TO 2500:NEXT
- 9040 PRINT"HIT RETURN[146] TO CONTINUE OR * TO SEE MENU"
- 9041 GET G$
- 9042 IF G$=CHR$(13) THEN 700
- 9043 IF G$<>"*" THEN 9041
- 9044 PRINT" "
- 9050 PRINT"I HOPE YOU ENJOYED THIS SESSION!!"
- 9060 LOAD"MENU",8:RUN
- 22999 END
- 23000 PRINT"THIS NUMBER MUST BE REDUCED BY ONE.":PRINT:PRINT"IN THIS CASE THE ANSWER IS 0."
- 23010 PRINT" TRY[146] TYPING A 0!";
- 23020 GET G$:IF G$<>"0" THEN 23020
- 23040 POKE 1316,48
- 23050 RETURN
- 24999 END
- 25000 PRINT"[147]HOW MANY PROBLEMS DO YOU WANT";
- 25005 INPUT PN$
- 25010 IF PN$="" THEN 25000
- 25020 PN=VAL(PN$)
- 25030 IF PN<1 THEN 25000
- 25040 IF PN<10 THEN RETURN
- 25050 PRINT"ARE YOU SURE YOU WANT "PN$" PROBLEMS (Y/N)?";
- 25060 GET DC$
- 25070 IF DC$<>"Y" AND DC$<>"N" THEN 25060
- 25080 IF DC$="Y" THEN RETURN
- 25090 GOTO25000
-