1 IF RU<>1 THEN CLR:REM COMPARE 1/20/88 10 POKE53280,0:POKE53281,0 15 A1=1 17 C1$="[164][157]" : C2$=" [157]" : C%=0 : I$="" : NO% = 0 20 DIMS(9),S$(11),SE$(11),NU$(10,3),AN$(3),AN(3) 100 GOSUB 7000:PRINTCHR$(14) 105 GOSUB10000 110 GOSUB480 250 GOTO 2000 300 N=N+1:REM IF Z=5 THEN N=N+1 310 RW=INT(RND(0)*6)+1:FOR J=1 TO 4:GOSUB920:DELAY=.3:GOSUB940 330 TX$=CHR$(CO(J))+RW$(RW)+CHR$(5):GOSUB 990:GOSUB 610:DELAY=.2:GOSUB 940 340 NEXTJ:RETURN 400 REM *** GET CHARACTER *** 410 GETA$:IFA$=""THEN410 411 RETURN 420 GOSUB 400:A=VAL(A$):IFAHITHEN420 421 RETURN 480 PRINT"[147]" 481 H=10:TX$="[214][201][211][201][207][206][160][211][207][198][212][215][193][210][197] PRESENTS:":V=1:GOSUB 600 482 TX$="[195]OMPARING [198]RACTIONS" 483 PRINT"";:H=10:V=3:GOSUB 600 484 PRINT"";:PRINT:GOSUB 800:RETURN 490 PRINT CHR$(142): REM *** PRINT SCREEN HEADER *** 491 PRINT"[147]" 492 TX$="VISION SOFTWARE PRESENTS:":H=10:V=1:GOSUB 610:TX$=T$ 493 PRINT"";:H=10:V=3:GOSUB 610 494 PRINT"";:PRINT:GOSUB 800:RETURN 500 REM **** REMOVE LEADING SPACES **** 510 L=LEN(SP$):IFLEFT$(SP$,1)<>" "THENGOTO530 520 L=L-1:SP$=RIGHT$(SP$,L) 530 RETURN 600 REM *** HOR/VER TAB *** 610 VT$="":FORQ=1TOV 620 :VT$=VT$+"":NEXT Q 630 PRINT"";VT$;:PRINTTAB(H);TX$;:RETURN 800 PRINT"";:FOR Q=1 TO 40 810 :PRINT"[192]";:NEXT Q:PRINT"";:RETURN 830 TX$="[159]"+"[182][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][161]":V=V2:GOSUB610 835 FORL=1TO8:TX$="[182] [161]":V=V+1:GOSUB610:NEXTL 840 TX$="[182][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][161]"+"":V=V+1:GOSUB610:RETURN 850 N1=7:IFNO<7THENN1=12:IFNO=5THENN1=10 855 V=V1:TX$=CL$+" [183][183][183][183]":GOSUB610:FORL=1TON1:TX$="[170] [180]"+"":V=V-1:GOSUB610 860 NEXTL:RETURN 880 TX$="[162][162][162][162][162]":GOSUB 610:RETURN 900 V=24:TX$="  TO CONTINUE, <_> TO EXIT[146]":GOSUB 990:GOSUB 610 901 LO=0:GOSUB400:IF A$="_" THEN 4000 902 IFA$<>CHR$(13) THEN 900 903 RETURN 910 V=24:TX$=" <[210][197][212][213][210][206]> TO CONTINUE, <_> TO EXIT[146]":GOSUB 990:GOSUB 610 911 LO=0:GOSUB400:IF A$="_" THEN 4000 912 IFA$<>CHR$(13) THEN 910 913 RETURN 920 H=0:TX$=" ":GOSUB 610:RETURN 940 TI$="000000" 941 GETA$:IFA$<>""THEN943 942 IFTI/60AN(1)THENAN=2 1030 SH$=SH$(INT(RND(1)*5)+1):FORL=1TO3:CR$(L)=CHR$(CO(INT(RND(1)*4)+1)):NEXTL 1040 DA$=STR$(DEN(AN)):NA$=STR$(NU(AN)):SP$=DA$:GOSUB500:DA$=SP$:SP$=NA$ 1050 GOSUB500:NA$=SP$:AN$=NA$+"/"+DA$ 1060 CL$=CHR$(5) 1090 RETURN 1100 REM WRITE NUMBERS 1110 FOR J=1 TO 3:V=V1+J:H=H1:TX$=CL$+NU$(IQ,J)+"":GOSUB 610:NEXT J :RETURN 1400 REM **** DRAW BAR GRAPH **** 1405 N2=1:IFNO<7THENN2=INT(12/NO) 1410 GOSUB850:V=V1:FORL=1TONO:TX$=CL$+"[167][183][183][183][183][165]":V=V-N2:GOSUB610:NEXTL 1420 Y=3:H=H+1:V=V1:FORL=1TONU:FORJ=1TON2 1450 TX$=CHR$(CO(Y))+" [146]"+"":V=V-1:GOSUB610:NEXTJ:IFY=2THENY=3:GOTO1470 1460 Y=2:NEXTL:RETURN 1470 NEXTL:RETURN 2000 IF RU=1 THEN 2035 2010 H=0:V=10:TX$="[196]O YOU NEED A LESSON? ":GOSUB 600:LO=0:GOSUB 400 2020 IFA$="Y"ORA$="[217]"THENPRINTA$: GOSUB20000:GOTO 2035 2021 IF A$="N" OR A$="[206]" THENPRINTA$:GOTO2030 2022 A$="":GOTO 2010 2030 TX$=" ":V=10:H=0:GOSUB600 2035 H=0:V=7:TX$="[215]HAT'S YOUR FIRST NAME? ":GOSUB610 2036 MX%=20:I$="":GOSUB60000:NF$=I$ 2037 IF NF$="" THEN 2035 2040 H=0:V=9:TX$="[215]HAT'S YOUR LAST NAME? ":GOSUB600 2041 MX%=20:I$="":GOSUB60000:NL$=I$ 2045 V=11:H=0:TX$="[215]OULD YOU LIKE TO: ":GOSUB600 2048 H=7:V=13:FORI=1TO3:TX$=STR$(I)+". "+OP$(I):GOSUB 610:V=V+1:NEXT I 2050 LO=1:HI=3:TX$="[217]OUR CHOICE: (1-3) ":H=0:V=V+1:GOSUB 610:GOSUB 420:PRINTA$ 2060 OP=A:HI=20:IF OP=1THEN HI=5 2065 V=19:H=0:TX$="[200]OW MANY PROBLEMS DO YOU WANT":GOSUB 610 2070 V=20:TX$="TO DO? (1 -"+STR$(HI)+") [157][157]" :GOSUB 610 2072 MX%=2:NO%=1:I$="":GOSUB60000:NP=VAL(I$) 2075 IFNPHITHEN NP=0 :GOTO2065 2110 FORK=1TONP 2120 GOSUB 1000:GOSUB 490:TX$="COMPARE THESE FRACTIONS:":V=6:H=2:GOSUB 610 2125 V2=8:H=8:GOSUB830:IQ=DEN(1):V1=13:H1=12:GOSUB1100:IQ=NU(1):V1=8:H1=12 2126 GOSUB1100:V=12:H=11:GOSUB880:IQ=DEN(2):V1=13:H1=22:GOSUB1100:IQ=NU(2):V1=8 2127 H1=22:GOSUB1100:H=21:V=12:GOSUB880 2130 ONOPGOSUB2200,2300,2400 2150 GOSUB900:NEXTK:GOTO4000 2200 REM **** OP 1 **** 2210 CL$=CR$(1):NS=DEN(1):V1=7:H=4:CL$=CR$(2):NS=DEN(2):V1=7:H=35 2230 CL$="":V1=20:H=1:NO=DEN(1):NU=NU(1):GOSUB1400:H=32:NU=NU(2):NO=DEN(2) 2240 GOSUB1400:TX$=AN$+" IS LARGER.":V=19:GOSUB990:GOSUB610 2250 CL$=CR$(3):IQ=NU(AN):V1=8:H1=12:IFAN=2THENH1=22 2290 GOSUB1100:IQ=DEN(AN):V1=13:GOSUB1100:RETURN 2300 REM **** OP 2 **** 2310 CL$="":V1=20:H=1:NO=DEN(1):NU=NU(1):GOSUB1400:H=32:NU=NU(2):NO=DEN(2) 2315 GOSUB1400:TX$="1.":V=9:H=10:GOSUB610:TX$="2.":V=9:H=20:GOSUB610 2320 TX$="WHICH IS LARGER (1 OR 2)? ":V=22:H=6:GOSUB610 2322 MX%=1:NO%=1:I$="":GOSUB60000:AA=VAL(I$):DELAY=1:GOSUB940 2325 IFAA=ANTHENGOSUB300:GOTO2335 2330 V=22:GOSUB920:TX$=AN$+" IS THE LARGER FRACTION.":V=22:GOSUB990:GOSUB610 2335 CL$=CR$(3):IQ=NU(AN):V1=8:H1=12:IFAN=2THENH1=22 2340 GOSUB1100:IQ=DEN(AN):V1=13:GOSUB1100:RETURN 2345 V=22:GOSUB920 2399 RETURN 2400 REM **** OP 3 **** 2410 TX$="1.":V=9:H=10:GOSUB610:TX$="2.":V=9:H=20:GOSUB610 2415 TX$="WHICH IS LARGER (1 OR 2)? ":V=22:H=6:GOSUB610 2417 MX%=1:NO%=1:I$="":GOSUB60000:AA=VAL(I$):DELAY=1:GOSUB940 2420 G=G+1:IFAA=ANTHENGOSUB300:GOTO2435 2425 V=22:GOSUB920:TX$=AN$+" IS THE LARGER FRACTION.":V=22:GOSUB990:GOSUB610 2430 MI=MI+1 2435 DELAY=1:GOSUB940:CL$=CR$(3):IQ=NU(AN):V1=8:H1=12:IFAN=2THENH1=22 2440 GOSUB1100:IQ=DEN(AN):V1=13:GOSUB1100 2445 V=22:GOSUB920 2450 CL$="":V1=20:H=1:NO=DEN(1):NU=NU(1):GOSUB1400:H=32:NU=NU(2):NO=DEN(2) 2455 GOSUB1400 2495 RETURN 3366 STOP 4000 PRINT CHR$(14):GOSUB 480:IF OP<>3 THEN 4100 4005 V=10:H=0:TX$="[217]OU GOT"+STR$(N)+" RIGHT OUT OF"+STR$(G)+" PROBLEMS" 4010 GOSUB 610:V=12:TX$="FOR "+STR$(INT((N/G)*100))+"%." 4020 GOSUB610:DELAY=3:GOSUB 940 4100 H=0:V=15:TX$="[196]O YOU WANT TO PLAY AGAIN? " :GOSUB 610 4120 LO=0:GOSUB400 :PRINTA$:IF A$="Y" OR A$="[217]" THEN CLR:RU=1 :GOTO 1 4130 IF A$="N" OR A$="[206]" THEN 4150 4140 GOTO 4120 4150 CLR:POKE53269,0:LOAD"MENU",8 4200 STOP 5390 RETURN 7000 REM *** READ DATA *** 7010 READT$:FOR I=1 TO 6:READ RW$(I):NEXT I 7020 FORI=1TO3:READ OP$(I):NEXT I:FOR I=1 TO 4:READ CO(I):NEXT I 7030 FORI=0TO9:FORJ=1TO3:READNU$(I,J):NEXTJ:NEXTI 7040 FORL=1TO5:READSH$(L):NEXTL:RETURN 8000 REM *** PROGRAM DATA *** 8010 DATA"COMPARING FRACTIONS" 8020 DATA"GREAT!","FANTASTIC!","SUPER!" 8030 DATA"YOU'RE REALLY GOING NOW!","YES! YES! YES!","THAT'S GREAT!" 8040 DATA"[211]EE EXAMPLES DONE." 8050 DATA"[196]O PROBLEMS WITH HELP." 8060 DATA"[196]O PROBLEMS YOURSELF." 8070 DATA 30,28,31,158 8075 DATA"[213][195][201]" 8076 DATA"[221] [221]" 8077 DATA"[202][195][203]" 8080 DATA" [174] "," [221] "," [177][160]" 8090 DATA"[213][195][201]","[213][195][203]","[173][195][189]" 8100 DATA"[213][195][201]"," [195][179]","[202][195][203]" 8110 DATA"[176] [176]","[173][195][179]" 8115 DATA" [177]" 8120 DATA"[176][195][174]","[173][195][201]","[202][195][203]" 8130 DATA"[213][195][201]","[171][195][201]","[202][195][203]" 8140 DATA"[176][195][174]"," [221]" 8145 DATA" [177]" 8150 DATA"[213][195][201]","[171][195][179]","[202][195][203]" 8160 DATA"[213][195][201]","[202][195][179]","[202][195][203]" 8170 DATA"[193]","[211]","[218]","[216]","[209]" 10000 REM *** DO SPRITEY THINGS *** 10001 FOR I=704 TO 767 10002 READX:POKEI,X 10003 NEXT 10004 POKE2040,11 10005 POKE53269,PEEK(53269)OR1 10006 POKE53287,2:POKE53277,255:POKE53271,255 10007 POKE53248,30:POKE53249,58 10008 RETURN 10009 DATA252,252,252,121,249,248,51,243,240 10010 DATA7,231,224,15,207,192,7,159,128 10011 DATA3,63,0,0,126,0,0,252,0 10012 DATA0,120,0,0,48,0,0,0,0 10013 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 20000 REM *** INFO INFO INFO *** 20001 GOSUB480:V=6:READN:FOR I=1 TO N:READ TX$ 20002 :IFTX$="PAGE"THENGOSUB 910 :GOSUB 480:V=6 :GOTO20009 20003 H=2:IFMID$(TX$,10,1)="[163]"THENV=V+1:GOSUB610:GOTO20008 20007 :V=V+2:GOSUB610 20008 :DELAY=.5:GOSUB940 20009 NEXTI:N=0:RETURN 20011 DATA35 20012 DATA"[212]HIS PROGRAM CAN HELP YOU COMPARE TWO" 20013 DATA"FRACTIONS AND CHOOSE THE LARGER OF" 20014 DATA"THE TWO." 20015 DATA"[212]HERE ARE THREE WAYS TO USE THE" 20016 DATA"PROGRAM:"," 1) [211]EE EXAMPLES DONE" 20017 DATA" 2) [196]O PROBLEMS WITH HELP" 20018 DATA" 3) [196]O PROBLEMS YOURSELF","PAGE" 20020 DATA" 1) [211]EE EXAMPLES DONE" 20021 DATA" [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 20022 DATA"[201]F YOU WANT TO SEE EXAMPLES DONE," 20023 DATA"[201] WILL SHOW YOU HOW TO DO THEM," 20024 DATA"EXPLAINING EACH STEP AS [201] GO.","PAGE" 20026 DATA" 2) [196]O PROBLEMS WITH HELP" 20027 DATA" [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 20028 DATA"[212]O DO PROBLEMS WITH HELP, [201] WILL" 20029 DATA"GIVE YOU A HINT FOR EACH STEP," 20030 DATA"AND CORRECT ANY MISTAKES YOU MAKE.","PAGE" 20032 DATA" 3) [196]O PROBLEMS YOURSELF" 20033 DATA" [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 20034 DATA"[212]HE THIRD OPTION IS TO WORK PROBLEMS" 20035 DATA"ON YOUR OWN. [217]OU SHOULD BE ABLE" 20036 DATA"TO DO THESE PROBLEMS IN YOUR HEAD.","PAGE" 20038 DATA" [206]UMBER OF [208]ROBLEMS" 20039 DATA" [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 20040 DATA"[204]AST, YOU DECIDE HOW MANY PROBLEMS" 20041 DATA"TO DO. [201]F YOU LET THE COMPUTER DO" 20042 DATA"THE WORK, YOU MAY ONLY HAVE 5" 20043 DATA"PROBLEMS; OTHERWISE YOU MAY HAVE" 20044 DATA"FROM 1 TO 20 PROBLEMS.","PAGE" 60000 : 60010 : REM INPUT ROUTINE 60020 : 60030 L%=LEN(I$) : C%=0 60040 PRINT I$; C1$; : POKE 198,0 60050 : 60060 GET G$ 60070 IF G$="" THEN C%=C%+1 : IF C%>20 THEN PRINT C1$; : C%=0 : GOTO 60060 60080 IF G$="" THEN IF C%>10 THEN PRINT C2$; : GOTO 60060 60090 IF G$="" THEN 60060 60100 : 60110 : REM RETURN KEY 60120 : 60125 IF G$<>CHR$(13) THEN 60150 60130 IF NO%=1 THEN NO%=0 60140 PRINT " " : RETURN 60150 : 60160 : REM DEL KEY 60170 : 60180 IF G$<>CHR$(20) THEN 60230 60190 IF L%=0 THEN 60060 60200 PRINT"[157] [157][157]";C1$; 60210 L% = L%-1 : I$=LEFT$(I$,L%) 60220 GOTO 60060 60230 : 60240 : REM ADD A KEY 60250 : 60260 IF L%>=MX% THEN 60060 60262 IF NO%=0 THEN 60270 60263 IF (G$<"0" OR G$>"9") AND G$<>"." AND G$<>"-" THEN 60060 60264 GOTO 60290 60270 IF (G$<" " OR G$>"[218]") THEN 60060 60280 IF (G$>"_" AND G$<"[193]") THEN 60060 60290 I$=I$+G$ : L%=L%+1 60300 PRINT G$; C1$; : C%=0 60310 GOTO 60060 60320 :