5 REM COPYRIGHT 1994 -COMPUTE PUBLICATIONS INTL LTD - ALL RIGHTS RESERVED 10 REM BY ROBERT QUINN 20 GOSUB2760 30 GETB$:JS=PEEK(P6)ANDPEEK(P7)ANDP8 40 POKEVM+P(PX),PEEK(VM+P(PX))-N8:POKEVM+P(PX)-1,N2:POKEVM+P(PX)+1,N2 50 : 60 R=(JS=30)+ABS(JS=29):IFR<>K0THENPX=PX+R:PX=PX+(PX=11)*KA-(PX=K0)*KA 70 IFJS>KFANDJS<28THENIFPX<>K4ANDPX<>K6THENGOSUB190 80 IFB$>"0"THENIFB$<"7"THENNC=VAL(B$) 90 IFB$="Q"THENNC=7 100 IFB$="W"THENNC=8 110 IFB$="E"THENNC=9 120 IFB$="T"THENNC=10 130 IF(JS=KF)OR(B$=B1$)THENNC=PX 140 IFNC>K0THENPX=NC 150 POKEVM+P(PX),PEEK(VM+P(PX))+N8:POKEVM+P(PX)-K1,K0:POKEVM+P(PX)+K1,K0 160 IFNC>K0THEN220 170 IFB$>B1$THENIFB$<>CHR$(95)THENGOSUB2940 180 FORR=1TO44:NEXT:GOTO30 190 IFPXK6ANDPXK1ANDNC<>K4THENSYS879 240 ONNCGOSUB270,1010,1010,270,1960,2330,830,1750,1750,1960 250 IFNC<>K1ANDNC<>K4ANDNC<>K6THENSYS879 260 NC=K0:POKE53280,14:POKE198,K0:GOTO30 270 BN=INT(RND(1)*KA)+N4:CN=INT(RND(K1)*KA)+N4:IFNC=K4THENCN=INT(RND(K1)*9)+49 280 IFBN=PEEK(907)ORCN=PEEK(908)THEN270 290 POKE907,BN:POKE908,CN:SYS879 300 BN$=CHR$(BN):SYS856,KA,22:PRINTKF$RN$BN$B1$B1$R1$;"="R1$; 310 IFNC=K6THEN360 320 PRINTRF$R1$"POWER ";:IFNC=K4THENPRINT"-"; 330 PRINTCHR$(CN)" OF "BN$;:IFNC=K4THEN360 340 IFCN=51THENPRINTR1$R2$"[CUBE]"; 350 IFCN=50THENPRINTR1$R2$"[SQUARE]"; 360 SYS856,KA,21:PRINTRN$B1$;:IFNC=K4THENPRINT"-"; 370 PRINTCHR$(CN);:IFNC=K1ORNC=6THENPRINTB1$; 380 IFNC=6THEN440 390 PRINTR2$R2$RF$;:FORR=1TO2222:NEXT:IFNC=K4THENPRINT"-"; 400 PRINTCHR$(CN);" IS THE EXPONENT" 410 FORR=1TO2222:NEXT:PRINT"BASE "BN$; 420 FORR=1TO2222:NEXT:IFCN=N4THENBN=49 430 FORR=856TOR+23:POKER+VM,0:POKER+VN,11:POKER+40+VM,0:POKER+40+VN,11:NEXT 440 DX=17:SYS856,16,22:PRINTRN$; 450 IFNC=K4THENDX=21:PRINT"1 / ";:IFBN=N4THENSYS856,9,19:PRINTM5$; 460 SYS856,DX-K1,22:PRINTCHR$(BN);:IFCN<50THEN530 470 SYS856,14,24:PRINT"=";:IFNC=K4THENIFBN<>49THENPRINTSPC(K1)"1 / "; 480 RW=BN-N4:RY=RW 490 FORR=1TOCN-49:FORRM=1TO555:NEXT:SYS856,DX,22:PRINT"X"BN$;:DX=DX+K2 500 IFBN=49THENB$=" 1 ":GOTO520 510 GOSUB780 520 SYS856,KF+NC+(NC=6)*5,24:PRINTB$;:NEXT 530 IFNC=6THENRETURN 540 AA$=CHR$(CN):CC$="X A X B ":BB$=AA$:IFNC=K4THEN640 550 IFCN=N4THENB$=" 1 ":CC$="X 1 X 1 ":BB$=CHR$(160) 560 IFCN=49THENB$=BN$+B1$:BB$=CHR$(160) 570 RW=LEN(B$):RY=INT((KD-RW)/K2) 580 SYS856,K1+RY,16:PRINT"("BN$"AB) = "BN$" A B ="B$CC$; 590 SYS856,K1+RY,KF:PRINTB1$B1$B3$AA$;B3$AA$B1$AA$B1$AA$B3$B3$; 600 FORR=K2TORW:PRINTB1$;:NEXT:PRINTBB$B3$BB$B1$; 610 FORR=601+RYTOR+38-RY:IFPEEK(R+VM)K0THENRY=INT(RND(K1)*K2):IFRY=K0THENRY=-K1:BB$="-"+BB$:R=-R 670 RW=RX*R:SYS856,4,KD:PRINTM1$; 680 GETB$:JS=PEEK(P6)ANDPEEK(P7)ANDP8:IFB$<>B1$ANDJS<>KFTHEN680 690 SYS893:POKE880,0:SYS879:POKE880,N2:PRINTRN$; 700 FORRX=K0TOK3:SYS856,K7,KD+RX:FORR=K1TO9:PRINTB3$;:NEXT:PRINTB1$;:NEXT 710 SYS856,K7,14:PRINTB1$CHR$(97)B1$AA$CHR$(99)BB$B3$AA$" X "BB$; 720 PRINTB3$LEFT$(B1$,ABS(RWK0THENB$=B$+MID$(AA$,2,WX)+B1$ 810 IFRX>K0THENFORRM=K0TORX-K1:B$=B$+MID$(AA$,WX+K2+RM*K3,K3)+B1$:NEXT 820 RETURN 830 BN=INT(RND(K1)*KA)+N4:BN$=CHR$(BN):CN=INT(RND(1)*KA)+N4:RM=0:XB$="":AA$=BN$ 840 SYS856,9,22:PRINTKF$RN$B1$CHR$(CN) 850 SYS856,9,23:PRINTRN$BN$B1$R1$"="R1$"?" 860 GOSUB980:IFCN=N4THENBN$="1":AA$=BN$ 870 GETB$:JS=PEEK(P6)ANDPEEK(P7)ANDP8 880 IFRM>K0THENIFB$=CHR$(KD)OR(JS>KFANDJSB1$ANDJS<>KFTHEN870 900 AA$=AA$+XB$:SYS856,14,23:PRINTAA$"?";:XB$="X"+BN$ 910 RM=RM+K1:PRINTRN$;:IFRM<>12THENGOSUB970:GETB$:GOTO870 920 IFRM=CN-N4THENSYS856,14,23:PRINTKB$AA$CHR$(64); 930 PRINTKF$RN$;:IFCN>49THENFORR=2TOCN-N4:BN$=BN$+XB$:NEXT 940 RM=K0:GOSUB970:SYS856,9,20:PRINTCHR$(BN)B1$R1$"="R1$BN$; 950 POKE769+VN,KF:POKE770+VN,KF:POKE770+VM,CN+N8:RETURN 960 : 970 SYS879:IFRM=K0THENRETURN 980 SYS856,4,KF:PRINTM1$ 990 IFRM>K0THENSYS856,K2,17:PRINT"OR PRESS RETURN/PUSH JOYSTICK TO QUIT"; 1000 RETURN 1010 XC=24:XD=43:XF=K0:IFNC=K3THENXC=47:XD=45:XF=K1 1020 WF=K0:BN=INT(RND(K1)*9)+K1:BN$=MID$(STR$(BN),2) 1030 FORR=K0TOK1 1040 SYS856,K5,R+20:PRINTKF$RN$B1$B3$R2$R2$B1$R2$R2$B1$B3$R2$; 1050 PRINTKB$CHR$(96)CHR$(96)KF$R2$B3$B3$:NEXT 1060 POKE845+VM,BN+176:POKE858+VM,BN+176:POKE853+VM,XC+N8 1070 FORR=1TO2:XB$="":RF=N4:BB$=BN$:PA=K1:PB=806:IFR=K2THENPA=21:PB=819 1080 SYS856,K2,13:IFNC=K2THENPRINT"MULTIPLY"; 1090 IFNC=K3THENPRINT"DIVID"; 1100 PRINT"ING POWERS OF THE SAME BASE":SYS856,0,KF:PRINTM1$; 1110 GETB$:JS=PEEK(P6)ANDPEEK(P7)ANDP8 1120 IFRF>N4THENIFB$=CHR$(KD)OR(JS>KFANDJSB1$ANDJS<>KFTHEN1110 1140 BB$=BB$+XB$:RF=RF+K1:POKEPB+VM,RF+N8:SYS856,PA,24:PRINTBB$; 1150 SYS879:SYS856,0,KF:PRINTM1$RN$"AGAIN?" 1160 SYS856,K1,17:PRINT"OR PRESS RETURN/PUSH JOYSTICK TO QUIT"; 1170 IFRF=57THEN1190 1180 XB$="X"+BN$:GETB$:GOTO1110 1190 SYS879:IFR=K1THENAA=RF-N4:AA$=BB$ 1200 IFR=K2THENCC=RF-N4:CC$=BB$ 1210 NEXT:POKE979+VM,XC:POKE979+VN,1:POKE868+VM,BN+176:POKE829+VM,63 1220 RL=K0:RD=N4:FORR=960TO999:RF=PEEK(R+VM):RK=PEEK(R+VN)ANDKF 1230 CX=K0:POKER+VN,1:POKER+VM,191:IFRFK2THEN1300 1280 IFR<979ANDAA=K0THENCX=K1 1290 IFR>979THENCX=-(AA=K0):IFCC=K0THENCX=CX+K1 1300 POKER-40+VN,K1:POKER-40+VM,RD-CX 1310 IFXF=0THENIFAA>0ANDRD>57THENPOKER-40+VM,49:POKER-39+VN,1:POKER-39+VM,RD-KA 1320 IFNOT(XF=K1ANDR>979)THEN1340 1330 POKER-39+(CC=K0)+VN,K1:POKER-39+(CC=K0)+VM,RD-CX:IFCC<>0THENPOKER-40+VM,45 1340 IFWF=K3THEN1400 1350 IFRF=K0THENIFRD>N4THENPH=R-41:GOSUB1570 1360 IFXF=K1ANDR+RL=997THENGOSUB1570:GOTO1380 1370 IFXF=K1ANDWF=K3THENPH=RL-41 1380 IFWFK0THENFORRM=1TO222:NEXT 1400 POKER+VN,RK:POKER+VM,RF:NEXT:IFWF=K3THEN1450 1410 FORRM=1TO666:NEXT:SYS856,20,24:PRINTKF$CC$KB$"@@";:FORRM=1TO111:NEXT 1420 FORR=K1TO18-LEN(AA$):POKE211,R:PRINTKB$"@"KF$AA$; 1430 FORRM=1TO111:NEXT:NEXT:TN=K1:WF=K2:IFXF=K1THENPOKE979+VM,47:GOSUB1680 1440 GOTO1220 1450 IFXF=0THENBA=AA+CC 1460 IFXF=1THENBA=AA-CC 1470 RY=BA:GOSUB2590 1480 FORR=PH-920TO36:SYS856,R,23:PRINTKB$CHR$(64)CHR$(5)VE$; 1490 FORRM=1TO111:NEXT:NEXT:FORR=K0TOK3:SYS856,37,23-R:PRINTKB$"@@"; 1500 SYS856,37,22-R:PRINTCHR$(5)VE$;:FORRM=1TO111:NEXT:NEXT 1510 FORR=K1TOK4:POKE211,37-R:PRINTKF$RN$VE$KB$RF$CHR$(64); 1520 FORRM=1TO111:NEXT:NEXT 1530 POKE790+VN,KF:POKE790+VM,XD+N8:POKE792+VN,KF:POKE792+VM,189 1540 FORRM=1TO444:NEXT:POKE211,29:PRINTCHR$(17)KF$RN$VE$B1$; 1550 FORRM=1TO2222:NEXT:B$="":SYS856,29,19:PRINTRF$KB$"@@@@@@";:RETURN 1560 : 1570 IFWF=K2THENWF=K3:PH=R-41:RETURN 1580 TN=K1:IFWF=K0THENBA=AA:RX=908 1590 IFWF=K1THENBA=CC:RX=910 1600 IFWF=K1ANDBA>K5THENTN=-K1:RX=912 1610 POKEPH+VN+1,11:POKEPH+VM+1,0:POKEPH+VN,11:POKEPH+VM,0:PH=PH-40 1620 FORRY=PHTORXSTEPTN:POKERY+VN,11:POKERY+VM,K0 1630 POKERY+TN+VN,K1:POKERY+TN+VM,BA+N4:FORRM=1TO55:NEXT:NEXT 1640 SYS856,29,22:PRINTRF$KB$"@@@@@@"; 1650 POKERX+TN+VM-120,BA+176:POKERX+TN+VN-120,KF 1660 IFWFPEEK(CK+VM)THEN1740 1690 FORRM=1TO222:NEXT:POKECK+VN,K1:POKECK+VM,DX+N8 1700 FORRM=1TO999:NEXT:POKECK+VM,0:FORRM=1TO222:NEXT 1710 POKECK+VN,11:POKECK+VM,49:FORRM=1TO222:NEXT 1720 POKER-VM+VN,K1:POKER,DX+N8:FORRM=1TO999:NEXT:POKER,K0:FORRM=1TO222:NEXT 1730 POKER-VM+VN,11:POKER,49:FORRM=1TO222:NEXT:CK=CK+K2 1740 NEXT:RETURN 1750 RL=0:ZG=1:RD=829:XC=24:XD=43:IFNC=9THENXC=47:XD=45:XF=K1 1760 WF=K0:BN=INT(RND(K1)*9)+K1:BN$=MID$(STR$(BN),K2) 1770 FORR=K0TOK1:SYS856,K5,R+20:PRINTKF$RN$; 1780 PRINTB1$B3$R2$R2$B1$R2$R2$B1$B3$R2$; 1790 PRINTKB$CHR$(96)CHR$(96)KF$R2$B3$B3$:NEXT 1800 XB$="X"+BN$:AA=INT(RND(K1)*KA):CC=INT(RND(K1)*KA) 1810 BA=AA+CC:IFXF=1THENBA=AA-CC 1820 POKE845+VM,BN+176:POKE858+VM,BN+176:POKE868+VM,BN+176:POKE853+VM,XC+N8 1830 POKE806+VM,AA+176:POKE819+VM,CC+176 1840 GOSUB2640:FF=VF:RY=FF:GOSUB2590 1850 SYS856,29-RL,20:PRINTRN$CHR$(VF+N4);:ZG=K0:IFRLK0THEN1880 1870 DX=VF:RY=DX:GOSUB2590:SYS856,30,20:PRINTRN$CHR$(VF+N4);:FF=FF*KA+DX 1880 SYS879:IFZG=K1THENPOKERD+VM,0 1890 ZG=K0:AA$=BN$:IFAA=K0THENAA$="1" 1900 IFAA>K1THENFORR=K2TOAA:AA$=AA$+XB$:NEXT 1910 CC$=BN$:IFCC=0THENCC$="1" 1920 IFCC>K1THENFORR=K2TOCC:CC$=CC$+XB$:NEXT 1930 SYS856,K1,24:PRINTRF$AA$;:POKE211,21:PRINTCC$; 1940 POKE979+VN,K1:POKE979+VM,XC:WF=K0:IFBA<>FFTHENPOKE53280,K2 1950 GOTO1220 1960 WF=K0:XF=K1:DX=K0 1970 SYS879:RL=0:BN=INT(RND(K1)*KA):XB$="X"+CHR$(BN+N4) 1980 AA=INT(RND(K1)*19)-9:CC=INT(RND(K1)*19)-9:SYS856,K2,KD:PRINTCHR$(153)RF$; 1990 IFWF=K0THENBA=AA+CC:XC=152:XD=43:BB$="+":PRINT"MULTIPLY"; 2000 IFWF<>K0THENBA=AA-CC:XC=175:XD=45:BB$="-":PRINT"DIVID"; 2010 PRINT"ING POWERS OF THE SAME BASE"KF$;:IFNC=KATHEN2040 2020 SYS856,K5,24:IFWF=K0THENPRINTRN$"MULTIPLICATION: ADD EXPONENTS"; 2030 IFWF=-K1THENPRINTRN$"DIVISION: SUBTRACT EXPONENTS"; 2040 RY=AA:GOSUB2590:AA$=VE$:RY=CC:GOSUB2590:CC$=VE$ 2050 RY=BA:GOSUB2590:POKE801+VN,KF:POKE801+VM,BN+176 2060 POKE805+VN,KF:POKE805+VM,XC:POKE808+VN,KF:POKE808+VM,BN+176 2070 SYS856,2,19:PRINTRN$AA$;:POKE211,9:PRINTCC$; 2080 POKE813+VM,189:POKE815+VN,KF:POKE815+VM,BN+176:IFNC=K5THEN2120 2090 GOSUB2260:IFFF=RYTHENR=K6 2100 IFFF<>RYOR(BN=K0AND(AA<0ORCC<0ORWF=-K1))THENR=K2 2110 POKE53280,R 2120 FORRM=1TO999:NEXT 2130 POKE211,16:PRINTKF$RN$AA$CHR$(XD)"("CC$")";:FORRM=1TO555:NEXT 2140 IFCCB1$ANDJS<>KFTHEN2410 2420 SYS879:POKE829,11:SYS828:PRINTKF$RN$;:CC$="1/"+CHR$(CN):RX=CN-N4 2430 FORR=K1TORX:SYS856,7*(R-1),18:PRINTB1$CC$;:SYS856,7*(R-1),19:PRINTBN$B3$; 2440 FORRM=1TO444:NEXT:IFRB1$ANDJS<>KFTHEN2500 2510 FORR=720+VMTOR+39:POKER,N2:NEXT 2520 SYS879:SYS828:BN=INT(RND(K1)*KA)+N4:CN=INT(RND(K1)*9)+49:RW=BN-N4:RY=RW 2530 B$=B1$+CHR$(BN)+B1$:IFBN=49THEN2550 2540 IFCN>49THENFORR=50TOCN:GOSUB780:NEXT 2550 PRINTRN$CHR$(158); 2560 FORRX=K0TOK3:SYS856,9,KD+RX:FORR=K1TOK7:PRINTB3$;:NEXT:NEXT 2570 SYS856,9,KF:PRINTB$CHR$(145)CHR$(157); 2580 PRINT"1/"CHR$(CN)CHR$(17)B1$"="B1$CHR$(BN);:FORR=1TO2222:NEXT:GOTO300 2590 B$=STR$(RY):VE$=MID$(B$,K2,K1)+RIGHT$(B$,K1) 2600 IFRYK0THENVE$=CHR$(RY+N4) 2610 IFRY-KATHENVE$="-"+CHR$(ABS(RY)+N4) 2620 IFRY<-9THENVE$="-"+VE$ 2630 RETURN 2640 XK=KF:XL=K5:CX=9 2650 GETB$:JS=PEEK(P6)ANDPEEK(P7)ANDP8:VF=VAL(B$):IFCX<>9THEN2670 2660 POKERD+VM,63:SYS856,XL,XK:PRINTRF$"PRESS A NUMBER KEY "; 2670 CX=CX+1:IFCX<18THEN2700 2680 CX=0:POKERD+VM,191 2690 IFXF+ZG=K2THENSYS856,XL,XK:PRINTRN$"NEGATIVE? PRESS - KEY"; 2700 IFB$=B1$ORB$=CHR$(KD)ORJS=KFTHENIFZG=K0THENZG=K1:GOTO2730 2710 IFB$="-"ANDXF+ZG=K2THENRL=-K1:ZG=K2:POKERD+VM,173:RD=RD+K1 2720 IFB$<"0"ORB$>"9"THEN2650 2730 CX=12:RETURN 2740 SYS856,30,KF:PRINTRN$" AGAIN? " 2750 SYS856,K5,17:PRINT"OR PRESS SPACE OR FIRE TO QUIT":RETURN 2760 POKE53269,0:FORR=828TO877:READRX:POKER,RX:NEXT:SYS828 2770 POKE56578,PEEK(56578)OR3:POKE56576,(PEEK(56576)AND252)OR0 2780 POKE53272,57:POKE648,204:FORR=57344TOR+7:POKER,255:NEXT 2790 FORR=828TO906:READRX:POKER,RX:NEXT 2800 VM=52224:VN=55296:DX=0:WX=4:JS=31:RY=144:N8=128:N2=32:PX=1:N4=48 2810 P6=56320:P7=56321:P8=31 2820 K0=0:K1=1:K2=2:K3=3:K4=4:K5=5:K6=6:K7=7:KA=10:KD=13:KF=15 2830 DIMRW,WF,NC,BN,CN,RF,RL,RD,RK,PH,RM,BA,PA,PB,AA,CC,ZG,XC,XD,FF,CK,XK,XL 2840 TN=1:DIMB$,BN$,BB$,AA$,CC$,XB$,VE$ 2850 R1$=CHR$(29):R2$=CHR$(29)+CHR$(29):B1$=CHR$(N2):B3$=" " 2860 KF$=CHR$(155):RN$=CHR$(18):RF$=CHR$(146):KB$=CHR$(151) 2870 M1$=RF$+CHR$(153)+" PRESS SPACE OR FIRE WHEN READY " 2880 M5$=CHR$(158)+"NO DIVISION BY ZERO" 2890 B$=CHR$(175):M2$=B1$:FORR=1TO38:M2$=M2$+B$:NEXT 2900 R=PEEK(162):POKE139,R+(R>127)*N8 2910 DIMP(KA):FORR=K1TOKA:READRX:P(R)=RX:NEXT 2920 FORR=58888TOR+P8:READRX:POKER,RX:NEXT 2930 POKE650,N8:POKE53281,0:POKE649,KA:PRINTCHR$(8)CHR$(142) 2940 PRINTCHR$(147);:POKE829,8:SYS828:POKE53280,14 2950 PRINTCHR$(K5)RN$;:SYS856,21,K0:PRINT" DEF/DEMO PROBLEM ":PRINT 2960 PRINTCHR$(158)" POSITIVE EXPONENTS"SPC(7)" 1 Q " 2970 PRINT" MULTIPLICATION"SPC(11)" 2 W " 2980 PRINT" DIVISION"SPC(17)" 3 E ":PRINT 2990 PRINTKF$" NEGATIVE EXPONENTS"SPC(7)" 4 ":PRINT 3000 PRINTCHR$(158)" MULTIPLICATION/DIVISION 5 T ":PRINT 3010 PRINTKF$" ROOTS"SPC(20)" 6 ":PRINTM2$ 3020 POKEVM+P(PX),PEEK(VM+P(PX))+N8:POKEVM+P(PX)-1,0:POKEVM+P(PX)+1,0:RETURN 3030 DATA206,14,220,165,1,41,251,133,1,169,208,133,32,169,224,133,34,169,0,133 3040 DATA31,133,33,168,162,16,177,31,145,33,200,208,249,230,32,230,34,202,208 3050 DATA242,165,1,9,4,133,1,238,14,220,96 3060 DATA169,11,162,0,160,240,157,248,218,232,136,208,249,169,0,162,0,160,240 3070 DATA157,248,206,232,136,208,249,96,0 3080 DATA32,253,174,32,158,183,142,87,3,32,253,174,32,158,183,172,87,3,24 3090 DATA32,240,255,96 3100 DATA169,32,162,0,160,240,157,224,205,232,136,208,249,96 3110 DATA169,15,162,0,160,240,157,224,217,232,136,208,249,96 3120 DATA107,147,187,267,347,427,115,155,195,355 3130 DATA227,199,143,159,31,63,63,63,63,63,63,31,159,143,199,227 3140 DATA199,227,241,249,248,252,252,252,252,252,252,248,249,241,227,199