Listing of file='ARITH' on disk='vmedia/gamesall.wvd.zip'
# Sector 94, program filename = 'ARITH' 0010 REM 9/16/73 0020 REM ARITHMETIC EXERCISE FOR THE 2200-B T.OLSEN 0030 DIM B$13,C$1 0040 T1,T2,T3,T4,W1,W2,W3,W4=0 0050 T9=3 : REM NUMBER OF TRIES BEFORE AUTOMATIC ANSWER 0060 GOTO 2000 0070 DEFFN'15 : PRINT HEX(03);"ARITHMETIC EXERCISE" 0080 PRINT "AN ARITHMETIC GAME ESPECIALLY FOR ";A$ 0090 PRINT "KEY 0 RESULT SUMMARY" 0100 PRINT "KEY 1 ADDITION" 0110 PRINT "KEY 2 SUBTRACTION" 0120 PRINT "KEY 3 MULTIPLICATION" 0130 PRINT "KEY 4 DIVISION" 0140 PRINT "KEY 5 NEW STUDENT" 0150 PRINT "KEY 6 SCRATCH PAD LINE (MULTIPLY)" 0160 PRINT "KEY 15 KEY PICTURE" 0170 STOP " FUNCTION KEYS CONTROL STUDENT REQUESTS" 0180 %########## 0190 % + ##### 0200 % - ##### 0210 % X ##### 0220 PRINT " "; : GOTO 240 0230 PRINT " -------";HEX(0A08); 0240 R=0 : I=10 : B$=" " 0250 KEYIN C$,260,300 : GOTO 250 0260 IF C$=HEX(0D)THEN 360 0270 IF C$<>HEX(08)THEN 310 0280 IF I>9THEN 240 0290 PRINT HEX(202008); : STR(B$,I,1)="0" : I=I+1 : GOTO 340 0300 R=1 0310 IF C$<HEX(30)THEN 350 : IF C$>HEX(39)THEN 350 0320 IF I>1THEN 330 : GOTO 250 0330 I=I-1 : PRINT C$;HEX(0808); : STR(B$,I,1)=C$ 0340 IF I>0THEN 250 0350 PRINT HEX(2A08); : GOTO 250 0360 IF I>=13THEN 250 : CONVERT STR(B$,1,NUM(B$))TO B : PRINT : RETURN 0370 N,O=1 0380 IF M<1THEN 480 : IF M>5THEN 480 : M=INT(M) 0390 IF L<1THEN 480 : IF L>5THEN 480 : L=INT(L) 0400 FOR I=1 TO M : R=RND(1) : N=N*10 : NEXT I 0410 FOR J=1 TO L : O=O*10 : R=RND(1) : NEXT J 0420 X=RND(1) 0430 Y=RND(1) 0440 X=INT(X*N) : Y=INT(Y*O) 0450 PRINT HEX(03) 0460 T=0 0470 RETURN 0480 PRINT "OPERAND LIMITS ARE 1 TO 5 DIGITS" : GOTO 90 0490 DEFFN'1 : PRINT HEX(03);"ADDITION EXERCISE" 0500 INPUT "NUMBER OF DIGITS",M 0510 L=M 0520 GOSUB 370 0530 PRINTUSING 180,X : PRINTUSING 190,Y : GOSUB 230 0540 T1=T1+1 : IF B<>X+YTHEN 550 : GOSUB 840 : GOTO 520 0550 A1=0 : W1=W1+1 : GOSUB 1920 : IF T<T9THEN 530 0560 REM ADD SOLUTION : GOSUB 1950 0570 PRINTUSING 180,X : GOSUB 1900 0580 PRINTUSING 190,Y : GOSUB 1900 0590 PRINTUSING 180,X+Y 0600 I=6 : GOSUB 1980 : GOTO 520 0610 DEFFN'0 : PRINT HEX(03) : PRINTUSING 820 0620 IF T1=0THEN 630 : S1=100*(1-W1/T1) : GOTO 640 0630 S1=0 0640 PRINTUSING 780,T1,W1,S1 0650 IF T2=0THEN 660 : S2=100*(1-W2/T2) : GOTO 670 0660 S2=0 0670 PRINTUSING 790,T2,W2,S2 0680 IF T3=0THEN 690 : S3=100*(1-W3/T3) : GOTO 700 0690 S3=0 0700 PRINTUSING 800,T3,W3,S3 0710 IF T4=0THEN 720 : S4=100*(1-W4/T4) : GOTO 730 0720 S4=0 0730 PRINTUSING 810,T4,W4,S4 0740 T=T1+T2+T3+T4 : W=W1+W2+W3+W4 : IF T=0THEN 750 : S=100*(1-W/T) : GOTO 760 0750 S=0 0760 PRINT : PRINTUSING 830,T,W,S 0770 RETURN 0780 % ADD ##### ##### ###% 0790 % SUB ##### ##### ###% 0800 % MUL ##### ##### ###% 0810 % DIV ##### ##### ###% 0820 % PROBLEM WRONG SCORE 0830 % TOTALS ##### ##### ###% 0840 A1=A1+1 : PRINTUSING 880,A$ : PRINTUSING 890,A1 0850 SELECT P9 0860 IF A1<A2THEN 870 : A2=A1 0870 PRINTUSING 900,A2 0880 %NICE WORK ################################### 0890 %YOU HAVE NOW WORKED CORRECT ###,### IN A ROW 0900 %THE RECORD IS ###,### CORRECT IN A ROW 0910 SELECT P : RETURN 0920 DEFFN'2 : PRINT HEX(03);"SUBTRACTION EXERCISE" 0930 INPUT "NUMBER OF DIGITS MINUEND",M 0940 INPUT "NUMBER OF DIGITS SUBTRAHEND",L 0950 GOSUB 370 0960 IF X<YTHEN 970 : GOTO 980 0970 T=X : X=Y : Y=T 0980 PRINTUSING 180,X : PRINTUSING 200,Y : GOSUB 230 0990 T2=T2+1 : IF B<>X-YTHEN 1000 : GOSUB 840 : GOTO 950 1000 A1=0 : W2=W2+1 : GOSUB 1920 : IF T<T9THEN 980 1010 REM SUBTRACT SOLUTION : GOSUB 1950 1020 PRINTUSING 180,X : GOSUB 1900 1030 PRINTUSING 200,Y : GOSUB 1900 1040 PRINTUSING 180,X-Y : I=6 : GOSUB 1980 : GOTO 950 1050 DEFFN'3 : PRINT HEX(03);"MULTIPLICATION EXERCISE" 1060 INPUT "NUMBER OF DIGITS IN MULTIPLICAND",M 1070 INPUT "NUMBER OF DIGITS MULTIPLIER",L 1080 GOSUB 370 1090 PRINTUSING 180,X : PRINTUSING 210,Y : GOSUB 230 1100 IF R=0 THEN 1110 : GOSUB 220 : GOTO 1100 1110 T3=T3+1 : IF B<>X*YTHEN 1120 : GOSUB 840 : GOTO 1080 1120 A1=0 : W3=W3+1 : GOSUB 1920 1130 IF T<T9 THEN 1090 1140 GOSUB 1950 : REM MULTIPLY SOLUTION 1150 PRINT HEX(09); : PRINTUSING 180,X : GOSUB 1890 1160 PRINTUSING 210,Y : GOSUB 1900 1170 PRINT "-----------" 1180 GOSUB 1630 : GOTO 1750 1190 DEFFN'4 : PRINT HEX(03);"DIVISION EXERCISE" 1200 INPUT "NUMBER OF DIGITS FOR DIVISOR",L : M=L 1210 GOSUB 370 : IF X=0 THEN 1210 : IF Y=0 THEN 1210 1220 Z=X*Y : REM Z/X=Y 1230 PRINT Z;" / ";X;" =" : INPUT B 1240 T4=T4+1 : IF B<>Y THEN 1250 : GOSUB 840 : GOTO 1210 1250 A1=0 : W4=W4+1 : GOSUB 1920 1260 IF T<T9THEN 1230 1270 REM DIVIDE SOLUTION : GOSUB 1950 1280 S9$=" " 1290 Z$=" " : CONVERT Z TO Z$,(##########) : Z1$=Z$ 1300 Y$=" " : CONVERT Y TO Y$,(#####) 1310 S1,S2=0 : S9=5+POS(Y$>"0") 1320 PRINTUSING 1570,Y : GOSUB 1900 : PRINTUSING 1580 : GOSUB 1900 : PRINTUSING 1590,X,Z$ : GOSUB 1900 1330 R=POS(Y$>"0") 1340 CONVERT STR(Y$,R,1)TO R1 1350 IF R1=0THEN 1540 1360 R2=R1*X 1370 R$=" " : CONVERT R2 TO R$,(######) 1380 S=0 1390 S=S+1 : IF S<11THEN 1400 : STOP "1381" 1400 CONVERT STR(Z1$,1,S)TO R3 1410 IF R3<R2 THEN 1390 1420 IF S2=1THEN 1430 : S1=S1+S : S2=1 1430 R4=R3-R2 1440 Z1$=" " : CONVERT R4 TO Z1$,(######) 1450 PRINT STR(S9$,1,S9);R$ : GOSUB 1900 1460 IF S1<10THEN 1480 1470 PRINT HEX(0D); : GOSUB 1990 : GOTO 1210 1480 PRINT STR(S9$,1,S9);"-------" : GOSUB 1900 1490 STR(Z1$,7)=STR(Z$,S1+1,10-S1) 1500 PRINT STR(S9$,1,S9);STR(Z1$,1,7) : GOSUB 1900 1510 R=R+1 : S9=S9+1 1520 S1=S1+1 1530 CONVERT Z1$ TO R5 : GOTO 1340 1540 IF S1=10THEN 1470 : PRINT HEX(0C08); 1550 PRINT STR(S9$,1,S9);STR(Z1$,1,8) : GOSUB 1900 1560 GOTO 1510 1570 % ########## 1580 % ----------- 1590 %#####)########## 1600 %###### 1610 %------ 1620 STOP "1481" 1630 R=Y : R5,R4,R3,R2,R1=-1 1640 R5=R5+1 : R=R-10000 : IF R>=0THEN 1640 : R=R+10000 1650 R4=R4+1 : R=R-1000 : IF R>=0THEN 1650 : R=R+1000 1660 R3=R3+1 : R=R-100 : IF R>=0THEN 1660 : R=R+100 1670 R2=R2+1 : R=R-10 : IF R>=0THEN 1670 : R=R+10 1680 R1=R1+1 : R=R-1 : IF R>=0THEN 1680 : R=R+1 1690 RETURN 1700 % ###### 1710 % ###### 1720 % ###### 1730 % ###### 1740 % ###### 1750 I=5 : IF L=1 THEN 1850 : GOSUB 1900 : PRINTUSING 1700,X*R1 : GOSUB 1900 1760 I=8 1770 PRINTUSING 1710,X*R2 : GOSUB 1900 : IF L=2 THEN 1840 1780 I=9 1790 PRINTUSING 1720,X*R3 : GOSUB 1900 : IF L=3 THEN 1840 1800 I=10 1810 PRINTUSING 1730,X*R4 : GOSUB 1900 : IF L=4 THEN 1840 1820 I=11 1830 PRINTUSING 1740,X*R5 : GOSUB 1900 : IF L=5 THEN 1840 1840 PRINT "-----------" 1850 GOSUB 1890 1860 PRINTUSING 180,X*Y 1870 I=I+2 1880 GOSUB 1980 : GOTO 1080 1890 PRINT HEX(09); 1900 PRINT HEX(090909090909090909090909090909090909090909090909090909) 1910 RETURN 1920 T=T+1 : IF T>=T9THEN 1930 : PRINT "STRIKE ";T;" TRY AGAIN" : RETURN 1930 PRINT "3 STRIKES AND YOU'RE OUT" 1940 RETURN 1950 PRINT HEX(01) : GOSUB 1900 1960 PRINT "THE CORRECT ANSWER IS" : GOSUB 1900 1970 RETURN 1980 FOR J=12 TO I STEP -1 : PRINT HEX(0A); : NEXT J 1990 INPUT "CHECK THE ANSWER THEN TYPE (EXEC) FOR ANOTHER PROBLEM",I : RETURN 2000 DEFFN'5 : INPUT "TYPE IN YOUR NAME",A$ : A1=0 : GOTO 70