10:AUT0G0T0 *START 20:: 30:*START 40: CLS : IF PEEK &BFDA6=&40 THEN P0KE &BFDA6,&9F: BTEXT$ ="S1:TEXT.BAS" 50: P0KE &EA,PEEK &EA AND &F7 60: IF PEEK &BFDA6 <> &80 THEN *MENU 70: IF (&BFC00-(PEEK &BFD1A+PEEK &BFD1B*&100+PEEK &BFD1C*&10000)) <> &1402 THEN *MENU 80: IF CHR$ PEEK &BE7FE+CHR$ PEEK &BE7FF <> "RG" THEN *MENU 90: IF FRE 0 < 1024*3 THEN *END 100: G0T0 *GCARD 110:: 200:*MENU 210: CLS : L0CATE 14,1: PRINT "MEM0RY 0VER": A=3000*7 220:*MENU1 230: B=ASC INKEY$ : IF B=2 THEN *MENU2 240: IF B=10 THEN *MENU3 250: A=A-1: IF A=0 THEN *MENU3 260: G0T0 *MENU1 270:*MENU2 280: P0KE &BFDA6,&40: P0KE &EA,PEEK &EA 0R 8: CALL &DECCD 290:*MENU3 300: P0KE &BFDA6,&40: P0KE &EA,PEEK &EA 0R 8: CALL &DEE08 310:: 320:*END 330: CLS : L0CATE 14,1: PRINT "MEM0RY 0VER": A=3000*7 340: *END10 350: B=ASC INKEY$ : IF B=2 THEN *END20 360: IF B=10 THEN *0FF 370: A=A-1: IF A=0 THEN *0FF 380: G0T0 *END10 390:: 400:*END20 410: G0SUB *FINISH: CALL &DEC72 420:: 500:*BATT 510:*0FF 520: G0SUB *FINISH: CALL &DED15 530:: 600:*FINISH 610: ERASE XD,R,RH 620: CLEAR EQ$,EQSV$,MES$,S16$,S24$,S40$ 630: USING 640: 0N ERR0R G0T0 0 650: P0KE &BFDA6,&40 660: P0KE &EA,PEEK &EA 0R 8 670: RETURN 1000:: 1010:*GCARD 1020: CLS : LINE (10,4)-(26,13),B 1030: GCURS0R (11,12):GPRINT &A0;&78;&24;&FF;&22;&2C;&30;&20;&30;&28;&24;&24;&22;&21;&20 1040: GCURS0R (6,22):GPRINT &E;&11;&15;&D;0;&1F;5;&D;&12;0;&1E;5;5;&1E;0;&1F;5;5;2;0;&1F;4;4;&1F 1050: G0SUB *NEGATIVE:L0CATE 16,1:PRINT " GRAPH ":G0SUB *P0SITIVE 1060: G0SUB *INIT 1070: IF ERFG THEN CLS : G0T0 *END 1080: L0CATE 0,3:PRINT "[FGRAPH][REGRES] [MENU ]" 1090:: 1100:*GC30 1110: G0SUB *IKEY 1120: IF IN=F1 THEN G0SUB *FMAIN: G0T0 *GCARD 1130: IF IN=F2 THEN G0SUB *SMAIN: G0T0 *GCARD 1140: IF IN=F5 THEN CLS : G0T0 *END20 1150: G0T0 *GC30 1160:: 2000:*FMAIN 2020: CLS : G0SUB *FINIT 2040:*FM10 2060: IF (((GMFG<>0) AND (IN<>TTL)) 0R (IN=F1) 0R (IN=F3) 0R (IN=F4)) AND (ERFG=0) THEN *FM20 2080: IF M0DE=GM0DE THEN CLS 2100: G0SUB *DP1: IF ERFG THEN G0SUB *XERR 2120:*FM20 2140: IF IN=F1 THEN G0SUB *RNG: G0T0 *FM10 2160: IF (IN=F3)+(IN=F4) THEN G0SUB *FSETASM: G0T0 *FM30 2200:*FM25 2220: G0SUB *IKEY: IF (IN=44)+((IN>=59)*(IN<=90)*(IN<>88)) THEN *FM25 2230: IF IN=F5 THEN *FM99 2240: G0SUB *TXTASM 2250: IF IN=88 THEN *FM25 2260: IF SIN (1)<>XSINSV THEN G0SUB *GRPCLRASM: G0SUB *FGCLR: XSINSV=SIN (1) 2270:*FM30 2280: IF IN=TTL THEN G0SUB *GRP: G0T0 *FM10 2300: IF IN=F1 THEN G0SUB *ADR: G0SUB *GRP: G0T0 *FM10 2320: IF IN=F2 THEN G0SUB *MDR: G0SUB *GRP: G0T0 *FM10 2340: IF IN=F3 THEN G0SUB *Z0M: IF (IN<>F5)*(IN<>TTL) THEN G0SUB *GRP: G0T0 *FM10 ELSE G0T0 *FM10 2360: IF IN=F4 THEN G0SUB *SLV: G0SUB *GRP: G0T0 *FM10 2380: IF IN=CH THEN *FM40 2400: G0T0 *FM20 2420:*FM40 2440: G0SUB *DP2 2460:*FM50 2480: G0SUB *IKEY 2500: IF IN=TTL THEN *FM30 2520: IF IN=F1 THEN G0SUB *RNG: CLS : G0SUB *DP1: G0T0 *FM25 2540: IF IN=F2 THEN G0SUB *GRPCLRASM: G0SUB *EQCLR: G0SUB *DP1: G0T0 *FM25 2560: IF IN=F3 THEN G0SUB *EQCLR: G0SUB *TXTINTASM: G0SUB *DP1: G0T0 *FM25 2580: IF IN=CH THEN G0SUB *DP1: G0T0 *FM25 2600: G0T0 *FM50 2620:*FM99 2640: CLS : RETURN 2660:: 2680:*DP1 2700: L0CATE 0,0: PRINT " * SET F0RMULA *" 2720: L0CATE 0,3: PRINT "[A_DRAW][DRAW ][Z00M ][S0LVE ][QUIT ]" 2740: G0SUB *DP3 2760: M0DE=TM0DE 2780: IN=-1: G0SUB *TXTASM 2800: RETURN 2820:: 2840:*DP2 2860: L0CATE 0,0: PRINT S40$+S40$ 2870: L0CATE 1,2: PRINT LEFT$ (S40$,39) 2880: L0CATE 0,3: PRINT "[RANGE ][GCLEAR][FCLEAR]"+S16$ 2920: RETURN 2940:: 2960:*DP3 2980: LINE (2,18)-(3,18):LINE (1,19)-(4,19):LINE (1,21)-(4,21):LINE (2,22)-(3,22) 3000: RETURN 3020:: 3040:*XERR 3080: L0CATE 2,2: PRINT LEFT$ ("ERR0R"+STR$ (ERFG)+S40$,38); 3100:*XE10 3120: G0SUB *IKEY 3140: IF (IN=CE)+(IN=RC)+(IN=LC) THEN *XE20 3160: G0T0 *XE10 3180:*XE20 3200: EQ$=EQSV$ 3210: P0KE PADR,29: CALL CADR 3220: L0CATE 2,2: PRINT LEFT$ (S40$,38); 3240: IN=-1: G0SUB *TXTASM 3260: ERFG=0 3280: TRFG=0 3320: RETURN 3340:: 4000:*INIT 4020: 0N ERR0R G0T0 *GERR 4040: PADR=&BE800: CADR=&DB800: C=0: IKTIME=4500*7: IXTIME=1130*7 4080: ERASE R: DIM R(15) 4100: XMIN=0: XMAX=1: XSCL=2: YMIN=3: YMAX=4: YSCL=5: XD0T=6: YD0T=7 4120: ERASE RH: DIM RH(7) 4140: HXMIN=0: HXMAX=1: HXDEL=2: HXD0T=3 4180: F1=241: F2=242: F3=243: F4=244: F5=245 4200: CE=2: TTL=3: RC=14: LC=15: UC=4: DC=5: CR=13: BS=23: CH=30: 0FF=10 4240: RDX$="dX =" 4260: MES$=" C0MPUTING ..." 4280: S40$=" " 4300: S24$=LEFT$ (S40$,24): S16$=LEFT$ (S40$,16) 4320: LVAL=-9.999999999E+99 4340: HVAL=ABS (LVAL) 4360: USING "#####################." 4400: DIM X52454E4745$(5): ERFG=0 4420: X52454E4745$(XMIN)="Xmin=": X52454E4745$(XMAX)="Xmax=": X52454E4745$(XSCL)="Xscl=": X52454E4745$(YMIN)="Ymin=": X52454E4745$(YMAX)="Ymax=": X52454E4745$(YSCL)="Yscl=" 4430: XSINSV=SIN (1): SCRCNT=0 4440: RETURN 4460:: 4480:*FINIT 4500: TRFG=0: GCFG=0: ERFG=0: BAFG=0: GBFG=0: MEFG=0: GMFG=0 4520: SGFG=0: ZMFG=0: IN=-1: TM0DE=0: GM0DE=1: M0DE=TM0DE 4540: ZM=1 4560: G0SUB *TXTINTASM: G0SUB *EQCLR: G0SUB *RINT 4580: G0SUB *GFUN: G0SUB *GRPCLRASM 4600: RETURN 4620:: 4640:*RINT 4660: R(XMIN)=-7: R(XMAX)=7: R(XSCL)=1: R(XD0T)=0.1 4680: R(YMIN)=-1.5: R(YMAX)=1.6: R(YSCL)=0.5: R(YD0T)=0.1 4700: RETURN 4720:: 4740:*IKEY 4760: A$=INKEY$ : IF A$<>"" THEN *IKEY 4780: A=IKTIME 4800:*IK20:A$=INKEY$ :A=A-1:IF A<0 THEN P0KE &BFDA6,&40:G0T0 *0FF 4820:IF A$="" THEN *IK20 4840: IN=ASC (A$): IF IN=0FF THEN P0KE &BFDA6,&40:G0T0 *0FF 4860: RETURN 4880:: 4900:*ADR 4910: IF MID$ (EQ$,1,1)=" " THEN ERFG=1: G0T0 *AD99 4920: Y=EVAL (EQ$): IF ERFG=1 THEN *AD99 ELES ERFG=0 4930: P0KE PADR,30: CALL CADR 4940: IF (A=0)+((A>=20)*(A<=22)) THEN *AD10 4950: IF A=10 THEN ERFG=1: G0T0 *AD99 4960: IF A=50 THEN ERFG=3: G0T0 *AD99 4970: IF (A=33)+(A=54)+(A=60) THEN ERFG=4: G0T0 *AD99 4980: ERFG=5: G0T0 *AD99 4990:*AD10 5000: G0SUB *DPC1 5010: G0SUB *FGCLR 5020: G0SUB *GRPCLRASM 5030: G0SUB *D0CALCASM 5040: G0SUB *YMINMAXASM 5050: Y1=A: Y2=B 5060: IF (ABS (Y1)=HVAL)*(ABS (Y2)=HVAL) THEN *AD50 5070: IF Y114 THEN Z=(Z-15)*3+15 ELSE *MD10 5350: IF SIN (30)=0.5 THEN *MD10 5360: IF SGN (SIN (30))=-1 THEN Z=Z+1 ELSE Z=Z+2 5370:*MD10 5380: REST0RE *SDAT 5390: P=R(XMIN),Q=R(XMAX),R=R(XSCL),S=R(YMIN),T=R(YMAX),U=R(YSCL) 5400: F0R A=1 T0 Z:READ P,Q,R,S,T,U:NEXT 5410: R(XMIN)=P,R(XMAX)=Q,R(XSCL)=R,R(YMIN)=S,R(YMAX)=T,R(YSCL)=U 5420: G0SUB *GRPCLRASM: SCRCNT=0 5430: G0T0 *MD30 5440:*MD20 5450: Y=EVAL (EQ$): IF ERFG=1 THEN *MD99 ELSE ERFG=0 5460: P0KE PADR,30: CALL CADR 5470: IF (A=0)+((A>=20)*(A<=22)) THEN *MD25 5480: IF A=10 THEN ERFG=1: G0T0 *MD99 5490: IF A=50 THEN ERFG=3: G0T0 *MD99 5500: IF (A=33)+(A=54)+(A=60) THEN ERFG=4: G0T0 *MD99 5510: ERFG=5: G0T0 *MD99 5520:*MD25 5530: IF GCFG THEN GCFG=0: G0SUB *GRPCLRASM 5540: IF MFG=0 THEN G0SUB *CNVASM 5550:*MD30 5560: G0SUB *GFUN: IF ERFG THEN *MD99 5570: G0SUB *D0CALCASM 5580: G0SUB *SETGBUFASM 5590:*MD99 5600: RETURN 5610:: 5620:*GRP 5640: IF ERFG THEN *GR99 5660: IF M0DE=GM0DE THEN *GR10 5680: CLS 5720: G0SUB *BAR 5740: G0SUB *DSPASM 5760:*GR10 5780: IF TRFG THEN G0SUB *XKEY ELSE G0SUB *IKEY 5800: IF (IN=RC)+(IN=LC) THEN SGFG=0: G0SUB *TRC 5820: IF (IN=F3)+(IN=F4) THEN *GR20 5840: IF (IN=F1)+(IN=F5) THEN G0SUB *FGCLR: G0T0 *GR99 5860: IF IN=CE THEN FGSV=TRFG: GMFG=0: SGFG=0: G0SUB *EQCLR: G0SUB *GCLR: IF GBFG THEN G0SUB *DSPASM: G0SUB *GR30 ELSE MEFG=0: G0T0 *GR99 5880: IF IN=CH THEN G0SUB *MECHG: G0T0 *GR10 5900: IF IN=TTL THEN MEFG=0: G0T0 *GR99 5920: IF ERFG=0 THEN *GR10 5940:*GR99 5960: RETURN 5980:: 6000:*GR20 6020: GMFG=1: IF MEFG THEN G0SUB *MECHG 6040: G0T0 *GR99 6060:: 6080:*GR30 6100: IF FGSV=0 THEN *GR39 6120: IF MEFG THEN A=2 ELSE A=3 6140: F0R B=0 T0 A:L0CATE 0,B:PRINT S16$:NEXT 6160: TRFG=0 6180:*GR39 6200: RETURN 6220:: 6240:*FGCLR:MEFG=0:GMFG=0:TRFG=0:SGFG=0:RETURN 6260:: 6280:*MECHG 6300: MEFG=MEFG X0R 1: IF MEFG THEN *ME10 6320: L0CATE 0,3: PRINT S40$: G0SUB *CLINE: G0SUB *L0WDSPASM 6340: G0T0 *ME99 6360:*ME10 6380: LINE (0,24)-(239,31),0,BF 6400: L0CATE 0,3:PRINT "[RANGE ] [Z00M ][S0LVE ][QUIT ]" 6420:*ME99 6440: RETURN 6500:: 6510:*Z0M 6520: IF (GBFG<2)+(MID$ (EQ$,1,1)=" ") THEN ERFG=5: G0T0 *Z099 6530: ZMFG=1 6540: IF M0DE=TM0DE THEN CLS : G0SUB *BAR: G0SUB *DSPASM 6560: ZM$=STR$ (ZM) 6620:*Z020 6630: ZM$=STR$ (VAL (ZM$)) 6640:*Z022 6650: L0CATE 0,0: PRINT "Z00M=": L0CATE 0,1: PRINT RIGHT$ (S16$+ZM$,16) 6660: L0CATE 0,2: PRINT LEFT$ ("?"+S16$,16): L0CATE 0,3: PRINT S16$ 6670: IF (TRFG=0)+(SGFG<>0) THEN *Z030 6690:*Z026 6700: A=LX: P0KE PADR,12: CALL CADR: IF A<0 THEN ERFG=5: G0T0 *Z099 6710: LY=A 6720:*Z030 6730: IF TRFG THEN G0SUB *XKEY ELSE G0SUB *IKEY: G0T0 *Z031 6740: IF IN=RC THEN *Z032 6750: IF IN=LC THEN *Z034 6760:*Z031 6830: IF IN=F5 THEN MEFG=0: GMFG=0: SGFG=0: G0T0 *Z099 6840: IF IN=CR THEN *Z060 6850: IF ((IN>47)*(IN<58))+(IN=46) THEN *Z040 6860: G0T0 *Z030 6870:*Z032 6880: SGFG=0: A=LX+1: G0SUB *RSEARCHASM: IF A>=0 THEN LX=A: G0T0 *Z026 6890: A=0: G0SUB *RSEARCHASM: LX=A: G0T0 *Z026 6900:*Z034 6910: SGFG=0: A=LX-1: G0SUB *LSEARCHASM: IF A>=0 THEN LX=A: G0T0 *Z026 6920: A=140: G0SUB *LSEARCHASM: LX=A: G0T0 *Z026 6930:*Z040 6940: ZM$=CHR$ (IN) 6950:*Z050 6960: IF ZM$<>"" THEN L0CATE 0,2: PRINT ZM$+"_ " 6970:*Z055:A$=INKEY$ :IF A$<>"" THEN *Z055 6980: IF TRFG THEN G0SUB *XKEY ELSE G0SUB *IKEY 6990: IF (IN=BS)+(IN=LC) THEN IF LEN (ZM$)>1 THEN ZM$=MID$ (ZM$,1,LEN (ZM$)-1) ELSE ZM$=STR$ (ZM): L0CATE 0,2: PRINT "?"+LEFT$ (S16$,15): G0T0 *Z030 7000: IF (IN>41)*(IN<58)*(IN<>44) THEN IF LEN (ZM$)<14 THEN ZM$=ZM$+CHR$ (IN) 7010: IF IN=CE THEN ZM$=STR$ (ZM): G0T0 *Z022 7020: IF IN=CR THEN L0CATE 0,2: PRINT ZM$+" ": G0T0 *Z060 7030: G0T0 *Z050 7040:*Z060 7050: G0SUB *RSV 7060: ZMSV=ZM 7070: A=EVAL (ZM$) 7080: IF ERFG THEN *ZERR 7090: IF (A<=0) THEN ERFG=2: G0T0 *ZERR 7100: ZM=A 7150: ZM$=STR$ (ZM) 7160: IF (TRFG=0)*(ZM=1) THEN *Z090 7200: L0CATE 0,1: PRINT RIGHT$ (S16$+ZM$,16): L0CATE 0,2: PRINT S16$ 7250: G0SUB *DPC2 7300:: 7350: IF TRFG=0 THEN LX=70: LY=16 7400: IF SCRCNT=0 THEN A=R(XMIN): B=R(XMAX) ELSE A=XMINSV+(XMAXSV-XMINSV)*(SCRCNT/140): B=XMAXSV+(XMAXSV-XMINSV)*(SCRCNT/140) 7410: XMINSVZ=A: XMAXSVZ=B 7450: IF SGFG THEN X=SGX ELSE IF SCRCNT=0 THEN X=R(XMIN)+(R(XMAX)-R(XMIN))*(LX/140) ELSE X=XMINSV+(XMAXSV-XMINSV)*((LX+SCRCNT)/140) 7500:: 7550: IF TRFG THEN Y=EVAL (EQ$) ELSE IF ABS (R(YMIN))=ABS (R(YMAX)) THEN Y=0 ELSE Y=R(YMAX)-(R(YMAX)-R(YMIN))*(16/31) 7600: IF SGFG THEN Y=0 7650: R(XMIN)=X-(B-A)/ZM/2 7700: R(XMAX)=X+(B-A)/ZM/2 7750:: 7800: A=R(YMIN):B=R(YMAX) 7850: IF (Y=0)*(LY=16) THEN R(YMAX)=R(YMAX)/ZM: R(YMIN)=R(YMIN)/ZM ELSE R(YMIN)=Y-((B-A)/ZM)*(15/31): R(YMAX)=Y+((B-A)/ZM)*(16/31) 7900: G0SUB *GFUN: IF ERFG THEN *ZERR 8000:: 8060: F0R A=0 T0 3:L0CATE 16,A:PRINT S24$:NEXT 8080: IF (R(XMIN)<>XMINSVZ)+(R(XMAX)<>XMAXSVZ)+((R(XMIN)+R(XMAX))=0) THEN SCRCNT=0 8120: G0SUB *GRPCLRASM 8140: G0SUB *BAR 8160: G0SUB *D0CALCASM 8180: G0SUB *SETGBUFASM 8200: L0CATE 0,3: PRINT S16$ 8220: G0SUB *DSPASM 8230:*Z090 8260: F0R A=0 T0 1: L0CATE 0,A: PRINT S16$: NEXT 8270: L0CATE 0,2: PRINT " " 8290:*Z099 8300: ZMFG=0 8320: TRFG=0 8330: SGFG=0 8340: RETURN 8360:: 8380:*ZERR 8400: G0SUB *RLD: ZM=ZMSV: ZM$=STR$ (ZM) 8420: L0CATE 0,2: PRINT LEFT$ ("ERR0R"+STR$ (ERFG)+S16$,16) 8440: L0CATE 0,3: PRINT S16$ 8460:*ZE10 8480: G0SUB *IKEY 8500: IF (IN=CE)+(IN=RC)+(IN=LC) THEN *ZE20 8520: G0T0 *ZE10 8540:*ZE20 8560: L0CATE 0,2: PRINT S16$ 8580: ERFG=0 8600: G0T0 *Z020 8620:: 10000:*TRC 10020: IF (LEFT$ (EQ$,1)=" ")+(GBFG<2) THEN TRFG=0: G0T0 *TR99 10040: IF TRFG=0 THEN G0SUB *TRFST: IF TRFG THEN *TR30 ELSE *TR99 10060:: 10080: LXSV=LX: LYSV=LY: SXSV=SX: SYSV=SY 10100:*TR10 10120: IF IN=LC THEN LX=LX-1: W=-1 ELSE LX=LX+1: W=1 10140: IF SCRCNT=0 THEN X=R(XMIN)+(R(XMAX)-R(XMIN))*(LX/140) ELSE X=XMINSV+(XMAXSV-XMINSV)*((LX+SCRCNT)/140) 10150: GY=EVAL (EQ$): IF ERFG THEN ERFG=0: GY=HVAL 10160: A=LX:P0KE PADR,12:CALL CADR 10180: IF (LX>=0)*(LX<141)*(A>=0) THEN *TR30 10200: G0SUB *RSV 10220: IF ((LX<0)+(LX>140))*(ABS (GY)=HVAL) THEN G0SUB *TERR: G0T0 *TR99 10240: IF (LX>=0)*(LX<141)*(ABS (GY)=HVAL) THEN G0SUB *SKIP 10260:: 10280: IF LX<0 THEN G0SUB *RSCR 10300: IF LX>140 THEN G0SUB *LSCR 10320: IF GYR(YMAX) THEN G0SUB *DSCR 10360: IF ERFG THEN G0SUB *TERR: G0T0 *TR99 10380: G0SUB *BARCLRASM: BAFG=1: G0SUB *BAR: G0SUB *DSPASM 10400:*TR30 10420: A=LX: P0KE PADR,12: CALL CADR 10440: IF A<0 THEN G0SUB *TERR: G0T0 *TR99 10460: LY=A 10480:*TR99 10500: RETURN 10510:: 10520:*SKIP 10530: G0SUB *VCLS 10540: P0KE PADR,8 10550: IF W>0 THEN Z=1 ELSE Z=-1 10560:*SKIP10 10570: LX=LX+Z: IF (LX<0)+(LX>140) THEN LX=LXSV: G0T0 *SKIP99 10580: A=LX: CALL CADR: IF ABS (A)<>HVAL THEN *SKIP99 ELSE *SKIP10 10630:*SKIP99 10640: IF SCRCNT=0 THEN X=R(XMIN)+(R(XMAX)-R(XMIN))*(LX/140) ELSE X=XMINSV+(XMAXSV-XMINSV)*((LX+SCRCNT)/140) 10650: GY=EVAL (EQ$) 10660: RETURN 10670:: 10680:*TERR 10700: ERFG=0: LX=LXSV: LY=LYSV: SX=SXSV: SY=SYSV: G0SUB *RLD 10720: RETURN 10740:: 10760:*RSCR 10780: IF ERFG THEN *RS99 10800: G0SUB *VCLS 10820: IF SCRCNT=0 THEN XMINSV=R(XMIN): XMAXSV=R(XMAX) 10840: IF GBFG=3 THEN G0SUB *0LDCLRASM 10860: R(XMIN)=XMINSV+(XMAXSV-XMINSV)*((-1+SCRCNT)/140) 10880: R(XMAX)=R(XMIN)+(XMAXSV-XMINSV) 10900: X=XMINSV+(XMAXSV-XMINSV)*((-2+SCRCNT)/140) 10920: D=R(XD0T) 10940: K=HY 10960: L=SY 10980: IF ERFG THEN *RS99 11000: A=1: P0KE PADR,7: CALL CADR 11020: TRFG=1 11040: LX=0 11060: SX=SX+1 11080: SCRFG=1 11100: SCRCNT=SCRCNT-1 11110: IF (R(XMIN)+R(XMAX))=0 THEN SCRCNT=0 11120:*RS99 11140: RETURN 11160:: 11180:*LSCR 11200: IF ERFG THEN *LS99 11220: G0SUB *VCLS 11240: IF SCRCNT=0 THEN XMINSV=R(XMIN): XMAXSV=R(XMAX) 11260: IF GBFG=3 THEN G0SUB *0LDCLRASM 11280: R(XMAX)=XMAXSV+(XMAXSV-XMINSV)*((1+SCRCNT)/140) 11300: R(XMIN)=R(XMAX)-(XMAXSV-XMINSV) 11320: X=XMINSV+(XMAXSV-XMINSV)*((-2+SCRCNT)/140) 11340: D=R(XD0T) 11360: E=XMAXSV+(XMAXSV-XMINSV)*((2+SCRCNT)/140) 11380: K=HY 11400: L=SY 11420: IF ERFG THEN *LS99 11440: A=1: P0KE PADR,6: CALL CADR 11460: TRFG=1 11480: LX=140 11500: SX=SX-1 11520: SCRFG=1 11540: SCRCNT=SCRCNT+1 11550: IF (R(XMIN)+R(XMAX))=0 THEN SCRCNT=0 11560:*LS99 11580: RETURN 11600:: 11610:*USCR 11620: IF ERFG THEN *US99 11630: G0SUB *VCLS 11640: IF GBFG=3 THEN G0SUB *0LDCLRASM 11650: A=MDF (GY*HY+SY): IF ERFG THEN ERFG=0: A=GY*HY+SY 11660: IF A<=31 THEN *US99 11680: GY=R(YMIN)-(A-31)*R(YD0T) 11690: R(YMIN)=GY 11700: IF R(YMIN)-R(YD0T)<=LVAL THEN ERFG=2: G0T0 *US99 11720: R(YMAX)=R(YMIN)+R(YD0T)*31 11740: IF R(YMIN)>=R(YMAX) THEN ERFG=2: G0T0 *US99 11750: SY=R(YMAX)/R(YD0T) 11760: TRFG=1 11780: D=R(XD0T) 11800: IF SCRCNT=0 THEN X=R(XMIN)-D ELSE X=XMINSV+(XMAXSV-XMINSV)*(SCRCNT/140) 11820: IF ERFG THEN *US99 11840: G0SUB *GRPCLRASM 11860: G0SUB *SETGBUFASM 11880:*US99 11900: RETURN 11920:: 11940:*DSCR 11960: IF ERFG THEN *DS99 11980: G0SUB *VCLS 12000: IF GBFG=3 THEN G0SUB *0LDCLRASM 12010: A=MDF (GY*HY+SY): IF ERFG THEN ERFG=0: A=GY*HY+SY 12020: IF A>=0 THEN *DS99 12050: GY=R(YMAX)+ABS (A)*R(YD0T) 12060: R(YMAX)=GY 12080: IF R(YMAX)+R(YD0T)>=HVAL THEN ERFG=2: G0T0 *DS99 12100: R(YMIN)=R(YMAX)-R(YD0T)*31 12110: SY=R(YMAX)/R(YD0T): IF (SY=-0.5)*(SYSV=-1.5) THEN SY=-0.49 12120: IF R(YMIN)>=R(YMAX) THEN ERFG=2: G0T0 *DS99 12140: TRFG=1 12160: D=R(XD0T) 12180: IF SCRCNT=0 THEN X=R(XMIN)-D ELSE X=XMINSV+(XMAXSV-XMINSV)*(SCRCNT/140) 12200: IF ERFG THEN *DS99 12220: G0SUB *GRPCLRASM 12240: G0SUB *SETGBUFASM 12260:*DS99 12280: RETURN 12300:: 12320:*TRFST 12340: G0SUB *VCLS 12360: TRFG=1 12380: IF IN=LC THEN A=140: G0SUB *LSEARCHASM ELSE A=0: G0SUB *RSEARCHASM 12400: IF A>=0 THEN LX=A: G0T0 *TRFST99 12420: TRFG=0 12440: IF MEFG THEN A=1 ELSE A=3 12460: L0CATE 0,A: PRINT S16$ 12480:*TRFST99 12500: RETURN 12520:: 12540:*VCLS 12560: L0CATE 0,1: PRINT S16$: IF MEFG=0 THEN L0CATE 0,3: PRINT S16$ 12580: IF MEFG THEN L0CATE 0,1 ELSE L0CATE 0,3 12600: PRINT MES$ 12620: RETURN 12640:: 13000:*XKEY 13020: IF ZMFG THEN *XK05 13040: IF IN<>TTL THEN *XK03 13060:*XK02 13080: A$=INKEY$ :IF A$<>"" THEN *XK02 13100:*XK03 13120: L0CATE 0,0: PRINT "X=": L0CATE 0,2: PRINT "Y=" 13130: IF SGFG THEN X=SGX: Y=0 ELSE IF SCRCNT=0 THEN X=R(XMIN)+(R(XMAX)-R(XMIN))*(LX/140): Y=EVAL (EQ$) ELSE X=XMINSV+(XMAXSV-XMINSV)*((LX+SCRCNT)/140): Y=EVAL (EQ$) 13140: IF ERFG THEN TRFG=0: IN=-1: G0T0 *XK99 13160: X$=RIGHT$ (S16$+STR$ (X),16): Y$=RIGHT$ (S16$+STR$ (Y),16) 13180: L0CATE 0,1: PRINT X$: IF MEFG=0 THEN L0CATE 0,3: PRINT Y$ 13200:*XK05 13210: A=0: C=LY: D=8: E=16 13220: IF SGFG THEN B=SLX+99 ELSE B=LX+99 13240: I=P0INT (B-1,C): J=P0INT (B+1,C): K=P0INT (B,C): L=P0INT (B,C-1): M=P0INT (B,C+1): N=P0INT (B,C-2): 0=P0INT (B,C+2): P=P0INT (B-2,C): Q=P0INT (B+2,C) 13260: LINE (B-2,C)-(B+2,C): LINE (B,C-2)-(B,C+2) 13280: T=IXTIME 13300:: 13320:*XK10:IF AE THEN A=0 ELSE A=A+1 13360:A$=INKEY$ :T=T-1:IF T<0 THEN *0FF 13380:IF A$="" THEN *XK10 13400:: 13420: IF I THEN PSET (B-1,C) ELSE PRESET (B-1,C) 13440: IF J THEN PSET (B+1,C) ELSE PRESET (B+1,C) 13460: IF K THEN PSET (B,C) ELSE PRESET (B,C) 13480: IF L THEN PSET (B,C-1) ELSE PRESET (B,C-1) 13500: IF M THEN PSET (B,C+1) ELSE PRESET (B,C+1) 13520: IF N THEN PSET (B,C-2) ELSE PRESET (B,C-2) 13540: IF 0 THEN PSET (B,C+2) ELSE PRESET (B,C+2) 13560: IF P THEN PSET (B-2,C) ELSE PRESET (B-2,C) 13580: IF Q THEN PSET (B+2,C) ELSE PRESET (B+2,C) 13600: IN=ASC (A$): IF IN=0FF THEN *0FF 13620:*XK99 13640: RETURN 13660:: 14000:*GCLR 14100: TRFG=0 14110: IF GBFG=3 THEN G0SUB *NEWCLRASM: GBFG=1 ELSE G0SUB *GRPCLRASM 14130: RETURN 14140:: 14150:*GFUN 14160: D=R(XMIN) 14170: E=R(XMAX) 14180: F=R(YMIN) 14190: G=R(YMAX) 14200: P=HVAL 14210: Q=LVAL 14220:: 14230: IF D>=E THEN ERFG=2 14240: IF F>=G THEN ERFG=2 14250: L=ABS ((E-D)/140) 14260: M=ABS ((G-F)/31) 14270: H=1/L 14280: J=-1/M 14290: I=D/-L 14300: K=G/M 14310: A=(D-L)*H+I 14320: A=(E+L)*H+I 14330: A=(F-M)*J+K 14340: A=(G+M)*J+K 14350: A=(-1+I)/H 14360: A=(141+I)/H 14370: A=(-1+K)/J 14380: A=(32+K)/J 14390: IF ((H*J)=0) THEN ERFG=2 14400: IF D-L<=Q THEN ERFG=2 14410: IF E+L>=P THEN ERFG=2 14420: IF F-M<=Q THEN ERFG=2 14430: IF G+M>=P THEN ERFG=2 14440: IF ERFG=0 THEN HX=H: SX=I: HY=J: SY=K: R(XD0T)=L: R(YD0T)=M 14450: RETURN 14460:: 14470:*CLINE 14480: IF MEFG THEN A=23 ELSE A=31 14490: LINE (98,0)-(98,A) 14500: M0DE=GM0DE 14510: RETURN 14520:: 14530:*BAR 14540: G0SUB *CLINE 14550: R=MDF (SX): IF ERFG THEN ERFG=0: R=999 14560: S=MDF (SY): IF ERFG THEN ERFG=0: S=999 14570: A=R: B=S 14580: IF MEFG THEN C=23 ELSE C=31 14590: IF BAFG THEN *BA10 14600: IF (B>=0)*(B<=C) THEN LINE (99,B)-(239,B) 14610: IF (A>=0)*(A<141) THEN LINE (A+99,0)-(A+99,C) 14620:*BA10 14630: G0SUB *BARASM 14640:: 14650: R=R+1: IF R<0 THEN R=0 14670: IF R=141 THEN R=139 14680: IF R>141 THEN R=140 14710: S=S-1: IF S>31 THEN S=31 14730: IF S=-1 THEN S=1 14750: IF S<-1 THEN S=0 14770:: 14790: P0KE PADR,10 14800: K=CADR 14810:: 14820: SS=140/((R(XMAX)-R(XMIN))/R(XSCL)): IF SS<1 THEN SS=1 14840: IF (SX>=0)*(SX<=140) THEN L=SX+SS: P=141: N=SS: G0SUB *BA100: L=SX-SS: P=-1: N=-SS: G0SUB *BA100: G0T0 *BA20 14850: IF SX<0 THEN P=141: N=SS: L=SX+INT (-SX/N)*N ELSE P=-1: N=-SS: L=SX-INT ((SX-140)/N)*N 14900: G0SUB *BA100 16000:: 16020:*BA20 16040: SS=31/((R(YMAX)-R(YMIN))/R(YSCL)): IF SS<1 THEN SS=1 16060: IF (SY>=0)*(SY<=31) THEN L=SY+SS: P=32: N=SS: G0SUB *BA200: L=SY-SS: P=-1: N=-SS: G0SUB *BA200: G0T0 *BA99 16080: IF SY<0 THEN P=32: N=SS: L=SY+INT (-SY/N)*N ELSE P=-1: N=-SS: L=SY-INT ((SY-31)/N)*N 16100: G0SUB *BA200 16120:: 16130:*BA99 16140: BAFG=0 16150: RETURN 16160:: 16170:*BA100 16180: B=S 16190: F=(B>=0)*(B<=C)*(BAFG=0) 16290: F0R I=L T0 P STEP N:A=INT (I+0.5):CALL K:IF (A>=0)*(A<141)*F THEN PSET (A+99,B) 16300: NEXT 16340: RETURN 16410:: 16420:*BA200 16460: A=R 16480: F=(A>=0)*(A<141)*(BAFG=0) 16600: F0R I=L T0 P STEP N:B=INT (I+0.5):CALL K:IF (B>=0)*(B<=31)*F THEN PSET (A+99,B) 16610: NEXT 16660: RETURN 16730:: 16740:*RNG 16760: CLS 16780: L0CATE 0,0: PRINT " * SET RANGE *" 16800: L0CATE 0,3: PRINT RIGHT$ (S40$+"[QUIT ]",40) 16820: P=XMIN: Q=0 16840:*RN20 16860: L0CATE 0,1:PRINT LEFT$ (X52454E4745$(P)+STR$ (R(P))+S24$,22) 16870: L0CATE 0,2:PRINT LEFT$ (X52454E4745$(P+1)+STR$ (R(P+1))+S24$,22) 16880: L0CATE 22,Q+1:PRINT LEFT$ ("?"+S24$,18) 16890: L0CATE 22,2-Q:PRINT LEFT$ (S24$,18) 16900: G0SUB *IKEY 16920: IF IN=UC THEN Q=Q-1: IF Q<0 THEN Q=0: P=P-1: IF P1 THEN Q=1: P=P+1: IF P>YMAX THEN P=XMIN: Q=0 16960: IF (IN>44)*(IN<58)*(IN<>47) THEN *RN30 16980: IF IN=CE THEN G0SUB *RINT: GCFG=1: PSV=P: QSV=Q: G0SUB *GFUN: P=PSV: Q=QSV: SCRCNT=0 18000: IF IN=F5 THEN *RN99 18020: IF IN=TTL THEN IF (P+Q)1 THEN KB$=MID$ (KB$,1,LEN (KB$)-1) ELSE KB$="": G0T0 *RN20 18180: IF ((IN>41)*(IN<58)*(IN<>44))*(LEN (KB$)<16) THEN KB$=KB$+CHR$ (IN) 18190: IF (IN=31)*(LEN (KB$)<16) THEN KB$=KB$+"E" 18200: IF IN=CE THEN KB$="": G0T0 *RN20 18220: IF IN=CR THEN L0CATE 22,Q+1: PRINT KB$+" ": G0T0 *RN50 18240: G0T0 *RN45 18300:*RN50 18320: G0SUB *RSV 18340: R(P+Q)=EVAL (KB$) 18360: IF ERFG THEN KB$="": G0SUB *RERR:G0T0 *RN20 18380: GCFG=1 18400: 0N P+Q+1 G0T0 *R100,*R200,*R700,*R400,*R500,*R700 18420: G0T0 *R900 18440:*R100: IF R(XMIN)1 THEN Q=1: P=P+1: IF P>YMAX THEN P=XMIN: Q=0 18680: G0T0 *RN20 18700:*RN99 18720: CLS 18740: IF GCFG=1 THEN GCFG=0: G0SUB *GRPCLRASM 18760: RETURN 18780:: 18800:*RERR 18810: L0CATE 0,1: PRINT LEFT$ (X52454E4745$(P+Q)+S40$,40) 18820: L0CATE 0,2: PRINT LEFT$ ("ERR0R"+STR$ (ERFG)+S40$,40) 18830: G0SUB *RLD 18840:*RE10 18850: G0SUB *IKEY 18860: IF (IN=CE)+(IN=RC)+(IN=LC) THEN *RE20 18870: G0T0 *RE10 18880:*RE20 18890: ERFG=0 18900: RETURN 18910:: 18920:*SLV 18930: IF (GBFG<2)+(MID$ (EQ$,1,1)=" ") THEN ERFG=5: G0T0 *SL99 18940: IF M0DE=TM0DE THEN CLS : G0SUB *BAR: G0SUB *DSPASM ELSE F0R A=0 T0 3:L0CATE 0,A:PRINT S16$:NEXT 18950: L0CATE 5,1: PRINT "S0LVE" 18960: IF GBFG=3 THEN G0SUB *0LDCLRASM: G0SUB *DSPASM 18970: IF SGN (R(YMIN))=SGN (R(YMAX)) THEN *SLNASHI 18980: G0SUB *DPC2 18990:: 19000: C=0: F=R(YMIN): G=R(YMAX): E=0 19010: IF SCRCNT=0 THEN D=R(XMIN): Z=R(XMAX)-R(XMIN) ELSE D=XMINSV+(XMAXSV-XMINSV)*(SCRCNT/140): Z=XMAXSV-XMINSV 20110: A=0: G0SUB *RSEARCHASM: X1=A 20120: A=140: G0SUB *LSEARCHASM: X2=A 20130: IF TRFG THEN H=LX-1 ELSE H=X1-1: LX=-1 20140: K=X1-1 20150: L=X2+1 20160: M=X2-X1+2 20180: SLCNT=0 20190:*SL20:X=D+Z*(H/140):I=EVAL (EQ$):X=D+Z*((H+1)/140):J=EVAL (EQ$) 20220:IF ERFG THEN ERFG=0: G0T0 *SL30 20260:IF SGN (I)<>SGN (J) THEN *SLARI 20270:*SL30:H=H+1:IF H>L THEN H=K:LX=N0T LX 20290:C=C+1:IF C>M THEN *SLNASHI ELSE *SL20 20310:: 20320:*SLARI 20330: X1=D+Z*(H/140) 20340: X2=D+Z*((H+1)/140) 20350: IF I=0 THEN SGX=X1: FG=0: G0T0 *SLARI10 20360: IF J=0 THEN SGX=X2: FG=0: G0T0 *SLARI10 20370: G0SUB *SFUN 20380:*SLARI10 20390: A=MDF (((SGX-R(XMIN))*140)/(R(XMAX)-R(XMIN))): IF ERFG THEN ERFG=0: A=999 20400: IF (FG<>0)+(A<0)+(A>140)+(A=LX)+(A=LX-1) THEN C=-1: SLCNT=SLCNT+1: IF SLCNT<10 THEN *SL30 ELSE *SLNASHI 20410:: 20420: LX=A: LY=MDF (SY) 20430: P0KE PADR,12 20440: A=H: CALL CADR: Y1=A 20450: A=H+1: CALL CADR: Y2=A 20460: IF ABS (Y1-MDF (SY))=R(XMAX) THEN ERFG=2 22360: IF (ERFG=0)*(SV<>R(XMIN)) THEN SCRCNT=0 22370: RETURN 22380:: 22390:*XMAX 22400: SV=R(XMAX) 22410: R(XMAX)=R(XMIN)+(140*R(XD0T)) 22420: IF R(XMAX)+R(XD0T)>=HVAL THEN ERFG=2 22430: IF R(XMIN)>=R(XMAX) THEN ERFG=2 22440: IF (ERFG=0)*(SV<>R(XMAX)) THEN SCRCNT=0 22450: RETURN 22460:: 22470:*XD0T 22480: SV=R(XD0T) 22490: R(XD0T)=ABS ((R(XMAX)-R(XMIN))/140) 22500: IF R(XMIN)-R(XD0T)<=LVAL THEN ERFG=2 22510: IF R(XMAX)+R(XD0T)>=HVAL THEN ERFG=2 22520: IF R(XD0T)<=0 THEN ERFG=2 22530: IF (ERFG=0)*(SV<>R(XD0T)) THEN SCRCNT=0 22540: RETURN 22550:: 22560:*YMIN 22570: R(YMIN)=R(YMAX)-(31*R(YD0T)) 22580: IF R(YMIN)-R(YD0T)<=LVAL THEN ERFG=2 22590: IF R(YMIN)>=R(YMAX) THEN ERFG=2 22600: RETURN 22610:: 22620:*YMAX 22630: R(YMAX)=R(YMIN)+(31*R(YD0T)) 22640: IF R(YMAX)+R(YD0T)>=HVAL THEN ERFG=2 22650: IF R(YMIN)>=R(YMAX) THEN ERFG=2 22660: RETURN 22670:: 22680:*YD0T 22690: R(YD0T)=ABS ((R(YMAX)-R(YMIN))/31) 22700: IF R(YMIN)-R(YD0T)<=LVAL THEN ERFG=2 22710: IF R(YMAX)+R(YD0T)>=HVAL THEN ERFG=2 22720: IF R(YD0T)<=0 THEN ERFG=2 22730: RETURN 22740:: 22850:*RSV:F0R A=0 T0 7:R(A+8)=R(A):NEXT :RETURN 22860:*RLD:F0R A=0 T0 7:R(A)=R(A+8):NEXT :RETURN 22870:: 22880:*EQCLR:TRFG=0:EQ$=S40$+S40$:EQSV$=EQ$:RETURN 22890:: 22900:*DSPASM 22910: IF MEFG THEN P0KE PADR,15 ELSE P0KE PADR,1 22920: IF GBFG THEN CALL CADR 24040: RETURN 24060:: 24070:*GRPCLRASM:GBFG=0:P0KE PADR,2:CALL CADR:RETURN 24090:*0LDCLRASM:GBFG=GBFG AND &FE:P0KE PADR,4:CALL CADR:RETURN 24100:*BARASM:P0KE PADR,5:CALL CADR:RETURN 24110:*YMINMAXASM:P0KE PADR,9:CALL CADR:RETURN 24120:*BARCLRASM:P0KE PADR,11:CALL CADR:RETURN 24130:*TXTINTASM:P0KE PADR,13:CALL CADR:RETURN 24140:*L0WDSPASM:P0KE PADR,16:CALL CADR:RETURN 24150:*NEWCLRASM:P0KE PADR,17:CALL CADR:RETURN 24160:*0LDCHKASM:P0KE PADR,18:CALL CADR:RETURN 24170:*FSETASM:A=IN:P0KE PADR,19:CALL CADR:RETURN 24180:*RSEARCHASM:P0KE PADR,27:CALL CADR:RETURN 24190:*LSEARCHASM:P0KE PADR,28:CALL CADR:RETURN 24200:: 24210:*CNVASM 24220: IF GBFG>1 THEN P0KE PADR,3: CALL CADR: GBFG=1 24230: RETURN 24240:: 24250:*TXTASM 24260: IF IN=CH THEN RETURN 24270: IF (IN=F1)+(IN=F2) THEN EQSV$=EQ$ 24280: A=IN:P0KE PADR,14:CALL CADR 24290: RETURN 24300:: 24310:*D0CALCASM 24320: D=R(XD0T) 24340: IF SCRCNT=0 THEN F=R(XMAX): G=R(XMIN): X=R(XMIN)-(R(XMAX)-R(XMIN))*(1/140) ELSE F=XMAXSV+(XMAXSV-XMINSV)*(SCRCNT/140): G=XMINSV+(XMAXSV-XMINSV)*(SCRCNT/140): X=XMINSV+(XMAXSV-XMINSV)*((-1+SCRCNT)/140) 24360: P0KE PADR,25: CALL CADR 24430: RETURN 24450:: 24470:*SETGBUFASM 24490: K=HY: L=SY 24510: P0KE PADR,21: CALL CADR 24530:*BUFCHK 24550: G0SUB *0LDCHKASM: IF A THEN GBFG=1 ELSE GBFG=0 24570: A=0: G0SUB *RSEARCHASM: IF A>=0 THEN GBFG=GBFG 0R 2 24590: RETURN 24610:: 24630:*GERR 24650: IF ERN =10 THEN ERFG=1:RESUME NEXT 24670: IF ERN =20 0R ERN =21 THEN ERFG=2:RESUME NEXT 24690: IF ERN =50 THEN ERFG=3:RESUME NEXT 24710: IF ERN =33 0R ERN =54 0R ERN =60 THEN ERFG=4:RESUME NEXT 24720: IF ERN =99 THEN *BATT 24770: ERFG=5:RESUME NEXT 24790:: 24810:*FDAT:DATA "L0G","LN ","TEN","EXP","SQR","CUR","SQU","RCP","HSN","HCS","HTN","AHS","AHC","AHT","SIN","C0S","TAN","ASN","ACS","ATN" 24830:: 24850:*SDAT 24870:DATA -1,13,1,-1.2,1.28,.5 24890:DATA -1,13,1,-3,3.2,1 24910:DATA -.4,1,.1,-.75,7,1 24930:DATA -.6,2.2,.5,-.6,5.6,1 24950:DATA -2,12,1,-.375,3.5,1 24970:DATA -7,7,1,-1.875,2,1 24990:DATA -7,7,1,-4,27,5 26010:DATA -7,7,1,-1.875,2,1 26030:DATA -7,7,1,-15,16,5 26050:DATA -7,7,1,-5,26,5 26070:DATA -3.5,3.5,1,-1,1,.5 26090:DATA -7,7,1,-3,3.2,1 26110:DATA -1,13,1,-.475,3.4,1 26130:DATA -1.4,1.4,.5,-1.5,1.6,.5 26150:DATA -360,360,90,-1,1,.5 26170:DATA -6.283185307,6.283185307,1.570796327,-1,1,.5 26190:DATA -400,400,100,-1,1,.5 26210:DATA -360,360,90,-1,1,.5 26230:DATA -6.283185307,6.283185307,1.570796327,-1,1,.5 26250:DATA -400,400,100,-1,1,.5 26270:DATA -360,360,90,-6.2,6.2,5 26290:DATA -6.283185307,6.283185307,1.570796327,-6.2,6.2,5 26310:DATA -400,400,100,-6.2,6.2,5 26330:DATA -1.4,1.4,.5,-90,90,30 26350:DATA -1.4,1.4,.5,-1.570796327,1.570796327,5.235987756E-01 26370:DATA -1.4,1.4,.5,-100,100,33.33333333 26390:DATA -1.4,1.4,.5,-6,180,45 26410:DATA -1.4,1.4,.5,-.733407346,3.141592654,7.853981635E-01 26430:DATA -1.4,1.4,.5,-17,200,50 26450:DATA -7,7,1,-90,90,30 26470:DATA -7,7,1,-1.570796327,1.570796327,5.235987756E-01 26490:DATA -7,7,1,-100,100,33.33333333 26510:: 30000:*KAIKI 30010: CLS 30020: L0CATE 0,0: PRINT " * REGRESSI0N CURVE *" 30030: G0SUB *DATASELECT: IF IN=F5 THEN *KAIKI99 30040: G0SUB *DPC1 30050: G0SUB *MINMAX: IF ERFG THEN *KAIKI99 30060: IF SAMP=0 THEN G0SUB *N0TDATA: G0T0 *KAIKI99 30070: G0SUB *CNVASM 30080: G0SUB *STATUSCALC: IF ERFG THEN *KAIKI99 30090: G0SUB *GRAPHDRAW:IF ERFG THEN *KAIKI99 30100: G0SUB *SRP 30110:*KAIKI99 30120: RETURN 30130:: 30140:*DPL0T 30150: CLS 30160: L0CATE 0,0: PRINT " * DATA PL0T *" 30170: G0SUB *DATASELECT: IF IN=F5 THEN *DPL0T99 30180: G0SUB *DPC1 30190: G0SUB *MINMAX: IF ERFG THEN *DPL0T99 30200: IF SAMP=0 THEN G0SUB *N0TDATA: G0T0 *DPL0T99 30210: G0SUB *DATAS0RT: IF ERFG THEN *DPL0T99 30230: G0SUB *CNVASM 30240: G0SUB *GFUN: IF ERFG THEN *DPL0T99 30250:: 30260: C=LVAL: P0KE PADR,0: P=CADR 30270: E=R(XMIN): F=R(XMAX): G=R(YMIN): H=R(YMAX) 30280: S=R(XMAX)-R(XMIN): T=(R(YMAX)-R(YMIN))/31 30290: IF SAMP-1=SAMP-2 THEN ERFG=4: G0T0 *DPL0T99 30300: F0R J=0 T0 SAMP-1:IF (XD(J,0)F) 0R (XD(J,1)H) THEN *DPL0T30 30310: A=MDF (XD(J,0)*HX+SX):B=MDF (XD(J,1)*HY+SY):IF ERFG THEN ERFG=0 ELSE CALL P 30320:*DPL0T30:NEXT 30330: G0SUB *BUFCHK 30340: CLS : G0SUB *BAR: G0SUB *DSPASM 30350: XDP=0: ZMFG=1: TRFG=1 30360:*DPL0T32 30370: IF TRFG=0 THEN *DPL0T40 30400: IF XDP<0 THEN XDP=0 30410: IF XDP>SAMP-1 THEN XDP=SAMP-1 30420: LX=MDF (XD(XDP,0)*HX+SX) 30430: LY=MDF (XD(XDP,1)*HY+SY) 30440: F=(LY<0) 0R (LY>31) 0R (LX<0) 0R (LX>140) 30450: IF ERFG THEN ERFG=0: F=1 30460: IF (XDP=0) AND F THEN IN=RC 30470: IF (XDP=SAMP-1) AND F THEN IN=LC 30480: IF F THEN *DPL0T42 30490:*DPL0T38 30500: L0CATE 0,0: PRINT "x=" 30520: L0CATE 0,1: PRINT RIGHT$ ((S16$+STR$ (XD(XDP,0))),16) 30540: L0CATE 0,2: PRINT "y=" 30560: L0CATE 0,3: PRINT RIGHT$ ((S16$+STR$ (XD(XDP,1))),16) 30580:*DPL0T40 30600: IF TRFG THEN G0SUB *XKEY ELSE G0SUB *IKEY 30620:*DPL0T42 30640: IF IN=RC THEN XDP=XDP+1: G0T0 *DPL0T32 30660: IF IN=LC THEN XDP=XDP-1: G0T0 *DPL0T32 30680: IF IN=CE THEN G0SUB *GCLR: IF GBFG THEN G0SUB *DSPASM: TRFG=0 ELSE *DPL0T99 30700: IF (IN=F5) 0R (IN=TTL) THEN *DPL0T99 30720: G0T0 *DPL0T40 30740:*DPL0T99 30750: TRFG=0 30760: RETURN 30780:: 30800:*DATASELECT 30820: IF C$="" THEN C$="1" 30840: IF D$="" THEN D$="2" 30860: CC$=C$: DD$=D$ 30880:*DSELE10 30900: C=VAL (C$): D=VAL (D$) 30920: G0SUB *XDISP 30940: G0SUB *YDISP 30960: G0SUB *QDISP 30970: L0CATE 7,1: PRINT "_" 30980:*DSELE20 31020: G0SUB *IKEY 31060: G0SUB *XDISP 31080: IF IN=F5 THEN *DSELE99 31100: IF (IN<&31 0R IN>&39) AND (IN<>13) THEN *DSELE20 31120: IF IN=13 THEN C=C-1: G0T0 *DSELE30 31140: IF IN>ASC (RIGHT$ (STR$ (HMAX+1),1)) THEN *DSELE20 31160: C=VAL (CHR$ (IN)): C$=RIGHT$ (STR$ (C),1): C=C-1 31180:*DSELE30 31190: L0CATE 7,1: PRINT " " 31200: G0SUB *XDISP 31210: L0CATE 7,2: PRINT "_" 31220:*DSELE40 31260: G0SUB *IKEY 31300: G0SUB *YDISP 31320: IF IN=F5 THEN *DSELE99 31340: IF (IN<&31 0R IN>&39) AND (IN<>13) THEN *DSELE40 31360: IF IN=13 THEN D=D-1: G0T0 *DSELE50 31380: IF IN>ASC (RIGHT$ (STR$ (HMAX+1),1)) THEN *DSELE40 31400: D=VAL (CHR$ (IN)): D$=RIGHT$ (STR$ (D),1): D=D-1 31420:*DSELE50 31430: L0CATE 7,2: PRINT " " 31440: G0SUB *YDISP 31460: IF C=D THEN *DSELE10 31470: F0R A=0 T0 500: NEXT 31500:*DSELE99 31510: IF CC$<>C$ 0R DD$<>D$ THEN G0SUB *GRPCLRASM 31520: RETURN 31540:: 31560:*MINMAX 31580: G0SUB *VMX 31600: E=HVAL: G=E 31620: F=LVAL: H=F 32000: SAMP=0 32010: IF VMAX=VMAX-1 THEN ERFG=4: G0T0 *MINMAX99 32020: F0R 0=0 T0 VMAX:A=MD(0,C):B=MD(0,D):IF A=-9.999999999E+99 0R MD(0,D)=-9.999999999E+99 THEN *MINMAX10 32040: IF AF THEN F=A 32060: IF BH THEN H=B 32080: SAMP=SAMP+1 32090:*MINMAX10:NEXT 32110: IF F<=E THEN F=E+1 32120: IF H<=G THEN H=G+1 32130: IF (R(XMIN)<>E) 0R (R(XMAX)<>F) 0R (R(YMIN)<>G) 0R (R(YMAX)<>H) THEN G0SUB *GRPCLRASM 32140: R(XMIN)=E: R(XMAX)=F: G0SUB *XD0T: R(YMIN)=G: R(YMAX)=H: G0SUB *YD0T 32150: R(XSCL)=(R(XMAX)-R(XMIN))/6: R(YSCL)=(R(YMAX)-R(YMIN))/4 32160:*MINMAX99 32170: RETURN 32180:: 32190:*DATAS0RT 32200: V=SAMP 32210: ERASE XD: DIM XD(V-1,1): IF ERFG=4 THEN *DATAS0RT99 32220: ERFG=0 32230: XD(0,0)=MD(0,C) 32240: XD(0,1)=MD(0,D) 32250: V=1 32260: IF VMAX=VMAX-1 THEN ERFG=4: G0T0 *DATAS0RT99 32280: F0R 0=1 T0 VMAX:G=0:A=MD(0,C):B=MD(0,D):IF A=-9.999999999E+99 0R B=-9.999999999E+99 THEN *DATAS0RT90 32290: F0R P=0 T0 V-1:E=XD(P,0):F=XD(P,1):IF E140 THEN LX=140 40980: G0SUB *SEDISP 41000: ZMFG=1 41020:*BARG08 41040: XDPSV=XDP 41060: G0SUB *XKEY 41080: IF (IN=F5) 0R (IN=TTL) THEN *BARG99 41100: IF IN=LC THEN XDP=XDP-1: G0T0 *BARG06 41120: IF IN=RC THEN XDP=XDP+1: G0T0 *BARG06 41140: IF IN=CE THEN *BARG10 41160: IF IN=CH THEN XYFG=-XYFG: G0SUB *HCRTMAK: G0SUB *SEDISP 41180: G0T0 *BARG08 41200:*BARG10 41220: G0SUB *GCLR: IF GBFG THEN G0SUB *DSPASM ELSE *BARG99 42000:*BARG20 42020: G0SUB *IKEY 42040: IF IN=CE THEN G0SUB *GCLR: G0T0 *BARG99 42060: IF (IN<>F5) AND (IN<>TTL) THEN *BARG20 42080:*BARG99 42090: RETURN 42100:: 42110:*SEDISP 42120: IF XYFG=1 THEN *SEDISP10 42130: L0CATE 0,3: PRINT RIGHT$ (S16$+STR$ (XD(XDP)),16) 42140: RETURN 42150:*SEDISP10 42160: A=R(XMIN)+RDX*XDP: IF A140) 0R B>R(XMAX) THEN PRINT S16$ ELSE PRINT RIGHT$ (S16$+STR$ (B),16) 42200: RETURN 42210:: 42220:*HRNG 42230: CLS 42240: L0CATE 0,0: PRINT " * RANGE *" 42250: L0CATE 0,3: PRINT RIGHT$ (S40$+"[QUIT ]",40) 42260: L0CATE 6,2: PRINT "1.": L0CATE 17,2: PRINT "2." 42270:*AM10 42280: G0SUB *AMSUB 42290: G0SUB *IKEY 42300: IF IN=14 0R IN=15 THEN AT=-AT 42310: IF IN=&31 THEN IF AT=-1 THEN *HRN01 ELSE AT=-1: G0SUB *AMSUB: G0T0 *HRN01 42320: IF IN=&32 THEN IF AT=1 THEN *HRN10 ELSE AT=1: G0SUB *AMSUB: G0T0 *HRN10 42330: IF IN=F5 THEN *HRN99 42340: IF IN=CR THEN *AM99 42350: G0T0 *AM10 42360:*AM99 42370: IF AT=1 THEN *HRN10 42380:*HRN01 42390: L0CATE 0,1: PRINT LEFT$ (X52454E4745$(XMIN)+STR$ (R(XMIN))+S40$,40) 42400: L0CATE 0,2: PRINT LEFT$ (X52454E4745$(XMAX)+STR$ (R(XMAX))+S40$,40) 42410: L0CATE 0,3: PRINT LEFT$ (RDX$+STR$ (RDX)+S40$,32) 42420:*HRN02 42430: G0SUB *IKEY 42440: IF IN=F5 THEN *HRN99 42450: G0T0 *HRN02 42510:: 42520:*HRN10 42530: L0CATE 0,0: PRINT " * SET RANGE *" 42540: RH(HXMIN)=R(XMIN): RH(HXMAX)=R(XMAX): RH(HXD0T)=R(XD0T): RH(HXDEL)=RDX: RSV$=X52454E4745$(XSCL): X52454E4745$(XSCL)=RDX$ 42550: P=HXMIN: Q=0 42560:*HRN20 42570: L0CATE 0,1:PRINT LEFT$ (X52454E4745$(P)+STR$ (RH(P))+S24$,22) 42580: L0CATE 0,2:PRINT LEFT$ (X52454E4745$(P+1)+STR$ (RH(P+1))+S24$,22) 42590: L0CATE 22,Q+1:PRINT LEFT$ ("?"+S24$,18) 42600: L0CATE 22,2-Q:PRINT LEFT$ (S24$,18) 42610: G0SUB *IKEY 42620: IF IN=UC THEN Q=Q-1: IF Q<0 THEN Q=0: P=P-1: IF P1 THEN Q=1: P=P+1: IF P>HXMAX THEN P=HXMIN: Q=0 42640: IF (IN>44)*(IN<58)*(IN<>47) THEN *HRN30 42650: IF IN=CE THEN G0SUB *RHINT: GCFG=1 42660: IF IN=F5 THEN *HRN90 42670: G0T0 *HRN20 42680:*HRN30 42690: KB$=CHR$ (IN) 42700:*HRN45 42710: L0CATE 22,Q+1: PRINT KB$+"_ " 42720: G0SUB *IKEY 42730: IF (IN=BS)+(IN=LC) THEN IF LEN (KB$)>1 THEN KB$=MID$ (KB$,1,LEN (KB$)-1) ELSE KB$="": G0T0 *HRN20 42740: IF ((IN>41)*(IN<58)*(IN<>44))*(LEN (KB$)<16) THEN KB$=KB$+CHR$ (IN) 42750: IF (IN=31)*(LEN (KB$)<16) THEN KB$=KB$+"E" 42760: IF IN=CE THEN KB$="": G0T0 *HRN20 42770: IF IN=CR THEN L0CATE 22,Q+1: PRINT KB$+" ": G0T0 *HRN50 42780: G0T0 *HRN45 42810:*HRN50 42820: G0SUB *RHSV 42840: RH(P+Q)=EVAL (KB$) 42860: IF ERFG THEN KB$="": G0SUB *RHERR:G0T0 *HRN20 42880: GCFG=1 42900: 0N P+Q+1 G0T0 *RH100,*RH200,*RH700 42920: G0T0 *RH900 42940:*RH100: IF RH(HXMIN)47) THEN ERFG=2 43020:*RH900 43030: PSV=P: QSV=Q 43040: G0SUB *GFUN 43050: P=PSV: Q=QSV 43060: IF ERFG THEN G0SUB *RHERR: G0T0 *HRN20 43080: Q=Q+1: IF Q>1 THEN Q=1: P=P+1: IF P>HXMAX THEN P=HXMIN: Q=0 43100: G0T0 *HRN20 43120:*HRN90 43140: CLS 43160: IF GCFG=1 THEN GCFG=0: G0SUB *GRPCLRASM 43180: R(XMIN)=RH(HXMIN): R(HXMAX)=RH(HXMAX): R(XD0T)=RH(HXD0T): RDX=RH(HXDEL): X52454E4745$(XSCL)=RSV$ 43190:*HRN99 43200: RETURN 43210:: 43220:*AMSUB 43230: IF AT=-1 THEN G0SUB *NEGATIVE: L0CATE 8,2: PRINT " AUT0 ": G0SUB *P0SITIVE ELSE L0CATE 8,2: PRINT " AUT0 " 43240: IF AT=1 THEN G0SUB *NEGATIVE: L0CATE 19,2: PRINT " MANUAL ": G0SUB *P0SITIVE ELSE L0CATE 19,2: PRINT " MANUAL " 43250: RETURN 43260:: 43270:*RHERR 43280: L0CATE 0,1: PRINT LEFT$ (X52454E4745$(P+Q)+S40$,40) 43290: L0CATE 0,2: PRINT LEFT$ ("ERR0R"+STR$ (ERFG)+S40$,40) 43300: G0SUB *RHLD 43320:*RHE10 43340: G0SUB *IKEY 43360: IF (IN=CE)+(IN=RC)+(IN=LC) THEN *RHE20 43380: G0T0 *RHE10 43400:*RHE20 43420: ERFG=0 43440: RETURN 43460:: 43480:*XHMIN 43500: RH(HXMIN)=RH(HXMAX)-(140*RH(HXD0T)) 43520: IF R(XMIN)-R(XD0T)<=LVAL THEN ERFG=2 43540: IF RH(HXMIN)>=RH(HXMAX) THEN ERFG=2 43560: RETURN 43580:: 43600:*XHMAX 43620: RH(HXMAX)=RH(HXMIN)+(140*RH(HXD0T)) 43640: IF R(XMIN)-R(XD0T)<=LVAL THEN ERFG=2 43660: IF RH(HXMIN)>=RH(HXMAX) THEN ERFG=2 43680: RETURN 43700:: 43720:*XHD0T 43740: RH(HXD0T)=ABS ((RH(HXMAX)-RH(HXMIN))/140) 43760: IF R(XMIN)-R(XD0T)<=LVAL THEN ERFG=2 43780: IF R(XMAX)+R(XD0T)>=HVAL THEN ERFG=2 43800: IF RH(HXD0T)<=0 THEN ERFG=2 43820: RETURN 43840:: 43860:*RHSV:F0R A=0 T0 3:RH(A+4)=RH(A):NEXT :RETURN 43870:*RHLD:F0R A=0 T0 3:RH(A)=RH(A+4):NEXT :RETURN 43880:: 43890:*HDATASELECT 43900: CLS 43910: L0CATE 1,0: PRINT "* HIST0GRAM *" 43920: A$=C$ 43930: IF C$="" THEN C$="1" 43940: C=VAL (C$) 43950: G0SUB *XDISP 43960: G0SUB *QDISP 43970: L0CATE 7,1: PRINT "_" 43980:*HDSELE50 43990: G0SUB *IKEY 44010: G0SUB *XDISP 44020: IF IN=F5 THEN *HDSELE99 44030: IF (IN<49 0R IN>57) AND (IN<>13) THEN *HDSELE50 44040: IF IN=13 THEN C=C-1: G0T0 *HDSELE70 44050: IF IN>ASC (RIGHT$ (STR$ (HMAX+1),1)) THEN *HDSELE50 44060: C=VAL (CHR$ (IN)): C$=RIGHT$ (STR$ (C),1): C=C-1 44070:*HDSELE70 44080: L0CATE 7,1: PRINT " " 44090: G0SUB *XDISP 44100: F0R A=0 T0 500: NEXT 44110:*HDSELE99 44130: RETURN 44140:: 44150:*DATAST0RE 44160: U=R(XMAX): V=R(XMIN): M=RDX 44180: IF M=0 THEN W=0 ELSE W=INT ((U-V)/M) 44190: ERASE XD: DIM XD(W): IF ERFG=4 THEN *DATAST0RE99 44200: ERFG=0 44210: IF VMAX=VMAX-1 THEN ERFG=4: G0T0 *DATAST0RE99 44220: F0R J=0 T0 VMAX:A=MD(J,C):IF A<>-9.999999999E+99 AND A<=U AND A>=V THEN I=INT ((A-V)/M):IF I<=W THEN XD(I)=XD(I)+1 44230: NEXT 44240:*DATAST0RE99 44250: RETURN 44260:: 44270:*NDS 44280: BRKFG=0 44290: G0SUB *HDATASELECT: IF IN=F5 THEN *NDS99 44300: G0SUB *DPC1 44310: G0SUB *VMX 44320: IF AT=-1 THEN G0SUB *HMINMAX: IF A=-1 THEN BRKFG=1: G0T0 *NDS99 44330: IF ERFG THEN *NDS99 44350: G0SUB *CNVASM: G0SUB *BARCLRASM 44360:: 44370: C=VAL (C$)-1: IF ERFG THEN *NDS99 44380: P0KE &BFE00,9,2,&41,C,255: CALL &FFFDC 44390: EQ$=CHR$ (&FE)+CHR$ (&93)+"((X-"+STR$ (T)+")^2/"+STR$ (-2*R*R)+")/"+STR$ (SQR (2*PI )*R)+CHR$ (&D) 44400: P0KE PADR,26: CALL CADR 44410:: 44420: G0SUB *D0CALCASM 44440: G0SUB *YMINMAXASM 44450: Y1=A: Y2=B 44460: IF (ABS (Y1)=HVAL) 0R (ABS (Y2)=HVAL) THEN ERFG=2: G0T0 *NDS99 44480: IF Y1A THEN V=A 44780: IF U