110 HCOLOR= 0: IF L1 +L2 = 2 THEN DRAW 11 AT 110,AY +40: HCOLOR= 3: DRAW 12 AT 110,AY +40
120 IF L1 +L2 >2 THEN DRAW 11 AT 95,AY +40: HCOLOR= 3: DRAW 12 AT 95,AY +40
130 ANS = N1 -N2:LA = LEN( STR$(ANS))
140 RETURN
150 IF L1 +L2 = 2 THEN DRAW N1 +(N1 = 0) *10 AT 140,AY: DRAW 11 AT 110,AY +40: DRAW N2 +(N2 = 0) *10 AT 140,AY +40: GOTO 200
160 IF L1 = 1 THEN DRAW N1 +(N1 = 0) *10 AT 155,AY
170 IF L2 = 1 THEN DRAW N2 +(N2 = 0) *10 AT 155,AY +40
180 DRAW 11 AT 95,AY +40: IF L1 = 2 THEN N1$ = STR$(N1):NA = VAL( LEFT$(N1$,1)):NB = VAL( RIGHT$(N1$,1)): DRAW NA +(NA = 0) *10 AT 125,AY: DRAW NB +(NB = 0) *10 AT 155,AY
190 IF L2 = 2 THEN N2$ = STR$(N2):NA = VAL( LEFT$(N2$,1)):NB = VAL( RIGHT$(N2$,1)): DRAW NA +(NA = 0) *10 AT 125,AY +40: DRAW NB +(NB = 0) *10 AT 155,AY +40
200 ANS = N1 +N2:LA = LEN( STR$(ANS))
210 RETURN
220 GOSUB 150
230 HCOLOR= 0: IF L1 +L2 = 2 THEN DRAW 11 AT 110,AY +40: HCOLOR= 3: DRAW 13 AT 110,AY +40
240 IF L1 +L2 >2 THEN DRAW 11 AT 95,AY +40: HCOLOR= 3: DRAW 13 AT 95,AY +40
250 ANS = N1 *N2:LA = LEN( STR$(ANS))
260 RETURN
270 REM
280 IF L1 +L2 = 2 THEN DRAW N2 AT 95,EY: DRAW 15 AT 125,EY: DRAW N1 +(N1 = 0) *10 AT 155,EY: DRAW 16 AT 155,EY
290 IF L1 = 2 THEN N1$ = STR$(N1):NA = VAL( LEFT$(N1$,1)):NB = VAL( RIGHT$(N1$,1))
300 IF L2 = 2 THEN N2$ = STR$(N2):ND = VAL( LEFT$(N2$,1)):NE = VAL( RIGHT$(N2$,1))
310 IF L1 = 3 THEN N1$ = STR$(N1):NA = VAL( LEFT$(N1$,1)):NB = VAL( MID$ (N1$,2,1)):NC = VAL( RIGHT$(N1$,1))
320 GOSUB 400
330 IF L2 = 1 AND L1 = 2 THEN DRAW N2 AT 80,EY: DRAW 15 AT 110,EY: DRAW NA AT 140,EY: DRAW 16 AT 140,EY: DRAW NB AT 170,EY: DRAW 16 AT 170,EY
340 IF L2 = 1 AND L1 = 3 THEN DRAW N2 AT 65,EY: DRAW 15 AT 95,EY: DRAW NA AT 125,EY: DRAW 16 AT 125,EY: DRAW NB +(NB = 0) *10 AT 155,EY: DRAW 16 AT 155,EY: DRAW NC +(NC = 0) *10 AT 185,EY: DRAW 16 AT 185,EY
350 IF L2 = 2 AND L1 = 2 THEN DRAW ND AT 65,EY: DRAW NE AT 95,EY: DRAW 15 AT 125,EY: DRAW NA AT 155,EY: DRAW 16 AT 155,EY: DRAW NB AT 185,EY: DRAW 16 AT 185,EY
360 IF L2 = 2 AND L1 = 1 THEN DRAW ND AT 80,EY: DRAW NE AT 110,EY: DRAW 15 AT 140,EY: DRAW N1 +(N1 = 0) *10 AT 170,EY: DRAW 16 AT 170,EY
370 IF L2 = 2 AND L1 = 3 THEN DRAW ND AT 50,EY: DRAW NE AT 80,EY: DRAW 15 AT 110,EY: DRAW NA AT 140,EY: DRAW 16 AT 140,EY: DRAW NB AT 170,EY: DRAW 16 AT 170,EY: DRAW NC AT 200,EY: DRAW 16 AT 200,EY
380 ANS = N1/N2:LA = LEN( STR$(ANS)): GOSUB 460
390 RETURN
400 IF NA = 0 THEN NA = 10
410 IF NB = 0 THEN NB = 10
420 IF NC = 0 THEN NC = 10
430 IF ND = 0 THEN ND = 10
440 IF NE = 0 THEN NE = 10
450 RETURN
460 DY = EY -50: IF L1 +L2 = 2 THEN DX = 155: RETURN
470 IF L2 = 1 AND L1 = 2 THEN DX = 200 -30 *LA: RETURN
480 IF L2 = 1 AND L1 = 3 THEN DX = 215 -30 *LA: RETURN
490 IF L2 = 2 AND L1 = 2 THEN DX = 215 -30 *LA: RETURN
500 IF L2 = 2 AND L1 = 3 THEN DX = 230 -30 *LA: RETURN
510 IF L2 = 2 AND L1 = 1 THEN DX = 200 -30 *LA: RETURN
520 LOMEM: 24576
530 : PRINT CHR$(4);"BLOAD NUMBERS,A$4000"
540 POKE 232,0: POKE 233,64
550 HOME :EY = 58:AY = 18
560 DIM N1(50),N2(50),S1(50),S2(50)
570 DIM MS(40)
580 CO = 0:WR = 0
590 D$ = CHR$(4)
600 PRINT D$;"OPEN PROBLEMS"
610 PRINT D$;"READ PROBLEMS"
620 INPUT WG
630 FOR I = 1 TO WG
640 INPUT N1(I)
650 INPUT N2(I)
660 INPUT S1(I)
670 INPUT S2(I)
680 NEXT I
690 PRINT D$;"CLOSE PROBLEMS"
700 HOME : HTAB 17: INVERSE : PRINT "PRACTICE": NORMAL
710 VTAB 7: PRINT "THIS PROGRAM WILL GIVE YOU THE PROBLEMS THAT YOU GOT WRONG WHEN YOU RAN FLASHCARD."
720 PRINT : PRINT "ARE YOU READY? HIT THE RETURN KEY."
730 GET PP$
740 HOME : POKE 34,20: HOME
750 POKE 230,32: CALL 62450
760 SCALE= 1: ROT= 0: HCOLOR= 3
770 POKE -16300,0: POKE -16301,0: POKE -16297,0
780 HOME
790 FOR PROB = 1 TO WG
800 POKE -16303,0: CALL 62450
810 POKE 35,22
820 HOME
830 POKE 35,24
840 Z = PEEK( -16368)
850 N1 = N1(K)
860 L1 = LEN( STR$(N1))
870 N2 = N2(K)
880 L2 = LEN( STR$(N2))
890 P1 = S1(K)
900 P2 = S2(K)
910 IF P1 < = 4 AND P2 < = 4 THEN GOSUB 150
920 IF P1 < = 4 AND P2 > = 5 THEN GOSUB 100
930 IF P1 > = 5 AND P2 < = 4 THEN GOSUB 220
940 IF P1 > = 5 AND P2 > = 5 THEN GOSUB 270: GOTO 990
950 IF L1 +L2 = 2 THEN DRAW 14 AT 110,AY +80: DRAW 14 AT 140,AY +80
960 IF L1 +L2 >2 THEN DRAW 14 AT 95,AY +80: DRAW 14 AT 125,AY +80: DRAW 14 AT 155,98
970 DY = AY +90: IF L1 +L2 = 2 THEN DX = 170 -30 *LA: GOTO 990
980 IF L1 +L2 >2 THEN DX = 185 -30 *LA
990 POKE -16304,0: REM SW TO HIRES
1000 VTAB (23): HTAB (37):NO = CO +WR +1
1010 PRINT SPC( 2 - LEN( STR$(NO)));NO
1020 ANS$ = STR$(ANS)
1030 LA = LEN(ANS$)
1040 TIME = 200
1050 FOR LW = 1 TO 2
1060 G1 = -1
1070 G2 = -1
1080 G3 = -1
1090 HCOLOR= 6
1100 FOR I = 1 TO TIME
1110 X = PEEK( -16384)
1120 IF G1 > = 0 THEN 1150
1130 IF X >127 THEN G1 = X:Y = PEEK( -16368): DRAW G1 -176 +(G1 = 176) *10 AT DX,DY
1140 GOTO 1220
1150 IF LA = 1 THEN 1230
1160 IF G2 > = 0 THEN 1190
1170 IF X >127 THEN G2 = X:Y = PEEK( -16368): DRAW G2 -176 +(G2 = 176) *10 AT DX +30,DY
1180 GOTO 1220
1190 IF LA = 2 THEN 1230
1200 IF G3 > = 0 THEN 1230
1210 IF X >127 THEN G3 = X:Y = PEEK( -16368): DRAW G3 -176 +(G3 = 176) *10 AT DX +60,DY
1220 NEXT I
1230 G1$ = STR$(G1 -176)
1240 HCOLOR= 3
1250 G2$ = STR$(G2 -176)
1260 G3$ = STR$(G3 -176)
1270 GUESS = VAL(G1$)
1280 IF LA = 2 THEN GUESS = VAL(G1$ +G2$)
1290 IF LA = 3 THEN GUESS = VAL(G1$ +G2$ +G3$)
1300 VTAB 21
1310 CALL -868
1320 IF ANS = GUESS THEN PRINT "THAT'S CORRECT!"; CHR$(7):CO = CO +1: FOR I = 1 TO 300: NEXT I: GOTO 1420
1330 REM CTRL G IN STATEMENT 660
1340 PRINT "THAT'S WRONG!";: FOR I = 1 TO 20:X = PEEK( -16336): NEXT I
1350 IF LW = 2 THEN 1390
1360 HCOLOR= 0: IF P1 > = 5 AND P2 > = 5 THEN FOR I = EY -50 TO EY -15: HPLOT 10,I TO 270,I: NEXT : GOTO 1380
1370 FOR I = AY +90 TO AY +125: HPLOT 10,I TO 270,I: NEXT
1380 HCOLOR= 3: PRINT " TRY AGAIN."
1390 IF LW = 2 THEN PRINT : PRINT "THE CORRECT ANSWER IS ";: INVERSE : PRINT ANS;: NORMAL : PRINT ".";:WR = WR +1
1400 IF LW = 2 THEN FOR I = 1 TO 4000: NEXT I
1410 NEXT LW
1420 NEXT K
1430 TEXT
1440 HOME : VTAB (9)
1450 PRINT "YOU GOT ";CO;" RIGHT AND ";WR;" WRONG."
1460 SC = CO/(CO +WR)
1470 SG = INT(100 *SC +.5)
1480 PRINT : PRINT "YOUR SCORE IS ";SG;"."
1490 PRINT : PRINT : PRINT
1500 IF SC > = .95 THEN PRINT "THAT'S EXCELLENT! I'M PROUD OF YOU. NOW YOU CAN PLAY A GAME.": GOTO 1550
1510 IF SC > = .9 THEN PRINT "THAT'S VERY GOOD! KEEP UP THE GOOD WORK. NOW YOU CAN PLAY A GAME.": GOTO 1550
1520 IF SC > = .8 THEN PRINT "THAT'S GOOD! YOU NEED JUST A LITTLE MORE PRACTICE.": GOTO 1550
1530 IF SC > = .7 THEN PRINT "YOU NEED SOME MORE PRACTICE. LET ME GIVE YOU THE PROBLEMS YOU GOT WRONG. TYPE 'RUN PRACTICE' AND WE'LL SEE IF YOU CAN DO BETTER.": GOTO 1550
1540 PRINT "COME ON, YOU CAN DO BETTER THAN THAT. LET ME GIVE YOU THE PROBLEMS YOU GOT WRONG. TYPE 'RUN PRACTICE' AND WE'LL SEE IF YOU CAN DO BETTER."