9	CLEAR(25): DEFFNLG(X)=LOG(X)/LOG(10)
10	DIM YL(1000),TI(1000),TE(1000),ST(3,3),SE(3)
20	DATA 2,2,5,5,10: READ SE(0),SE(1),SE(2),SE(3): X=0: Y=0: Z=0: NF=1
30	DATA 0,120,0,240: READ ST(0,0),ST(0,1),ST(0,2),ST(0,3)
60	GOSUB 7280
1330	PRINT CHR$(31);TAB(33);"		men` ************ "
1340	PRINT TAB(14);"zapisx tarmogrammy..............................1"
1350	PRINT TAB(14);"prosmotr rezulxtatow............................2"
1360	PRINT TAB(14);"pe~atx rezulxtatow..............................3"
1370	PRINT TAB(14);"postroenie grafika..............................4"
1380	PRINT TAB(14);"wywod dannyh na magnitofon......................5"
1390	PRINT TAB(14);"differencirowanie intensiwnosti.................6"
1570	INPUT "***************** wid raboty ***************** ";W
1580	ON W GOSUB 2000,10000,18000,24000,32000,58000
1590	GOTO 1330
2000	INPUT " budem rabotatx s cdr ? 1-da, 0-net  ";IL
2002	IF IL=0 THEN 2210
2003	INPUT " granicy otobravaemoj temperatury ";T4,T5
2004	INPUT " granicy otobravaemoj intensiwnosti ";T7,T8
2005	INPUT " wremq |ksperimenta ";T6
2006	INPUT " stiratx starye grafiki ? 1-da, 0-net  ";X
2007	IF X=0 THEN 2210
2008	X=31: Y=193: WREG 1,X: WREG 2,Y: FCAM 14,0,1
2210	INPUT " data i nomer |ksperimenta ";D$
2220	INPUT " period s~itywaniq informacii ";IT
2290	GOSUB 5080: GOSUB 5030: TR=2
2320	PRINT CHR$(31): BT=F+IT
2330	FOR IC=1 TO 1000
2370	PRINT CHR$(27); CHR(72);"    wremq ",F,
2375	PRINT "    poprawka ";W$;
2380	PRINT "            * S * P *"
2390	PRINT "     nomer       |ds          t(k)  skorostx s~eta";
2400	PRINT " *";IT;W
2410	ON TR GOSUB 7490,7620
2415	GOSUB 7130
2420	GOSUB 7190: GOSUB 7000: IP=QQ+QP*F: GOSUB 42070: FP=T
2431	TT=(F-SS)*TD+TN: IF (T>TZ)AND(FP>TZ) THEN 2660
2440	ON PR GOTO 2450,2465,2660
2441	GOTO 2660
2450	IF F<BT-.55 THEN 2370
2460	X=7: GOSUB 7400: PR=2: GOTO 2370
2465	IF F<BT+.4 THEN 2370
2470	GOSUB7260:GOSUB7460:PR=1:BT=BT+IT:GOSUB7000:TI(IC)=F:TE(IC)=T
2480	YL(IC)=LY: POKE 6497,0
2520	I=IC: IF IC>20 THEN I=20
2530	FOR J=1 TO I: PRINT CHR$(27);"B";: NEXT J: PRINT " "
2540	PRINT TAB(5);IC,U,T," ";LY
2541	IF IL=0 THEN 2560
2542	X=INT (F*255/T6): Y=255-INT((T-T4)*(255/(T5-T4))): Z=97
2543	WREG 1,X: WREG 2,Z: FCAM 14,0,1: Z=113
2544	WREG 1,Y: WREG 2,Z: FCAM 14,0,1
2545	X=INT((T-TN)*255/(TZ-TN)):Y=255*INT((LY-T7)*(255/(T8-T7))):Z=161
2546	WREG 1,Y: WREG 2,Z: FCAM 14,0,1: Z=177
2547	WREG 1,Y: WREG 2,Z: FCAM 14,0,1
2560	NEXT IC
2660	IC=IC-1: FP=128: GOSUB 42200
3999	RETURN
5030	TT=TN: W$="+": SI=1: GOSUB 7280
5032	X=0: Y=0: Z=0
5035	GOSUB 7130: GOSUB 7190: GOSUB 7000
5036	POKE 6497,0
5060	RETURN
5080	INPUT "zadajte na~. i kon. temperaturu, skorostx rosta";TN,TZ,TD
5085	QQ=176.6*TD^2-21.3*TD: QP=0.1*TD
5090	SS=F-1: RETURN
7000	IF U<=0 THEN 7050: IF U>4.5 THEN 7070
7010	T=(U*(U*(U*-.850226E-6+3.10376E-4)-5.39121E-3)+6.72564E-2)*U
7020	T=U*(U*(T-.828478)+26.0228)+273.154: RETURN
7050	T=((U*(U*(U*-4.402E-3-5.36152E-2)-.275789)-.563993)*U-1.50299)*U
7060	T=(T+25.6831)*U+273.13: RETURN
7070	U=U-4.27745
7080	T=U*(U*(U*(U*(U*-.764367E-2+.108668)-.514869)+.669992)+20.6822)
7090	T=T+373.24: U=U+4.27745: RETURN
7130	FCAM 6,0,0
7132	REG 1,X
7135	REG 2,Y
7136	F=.1*(X+255*Y): IF F0>6550 THEN 7138
7137	IF ABS(F-F0)>5 THEN 7130
7138	F0=F
7140	IF T1>F THEN T0=T0+6553.5
7141	T1=F: F=(T0+F)*.9
7142	RETURN
7190	FCAM 4,0,0
7195	REG 1,X: REG 2,Y
7200	IF X+Y=510 THEN 7190
7205	X=255-X: Y=255-Y: REG 3,Z
7210	U=(YAND240)*.625E-1+.1*(YAND15)+.625E-3*(XAND240)+.001*(XAND15)
7215	REG 3,Z
7220	IF Z<>1 THEN U=-U
7230	RETURN
7260	FCAM 4,1,0: REG 1,X: REG 2,Y
7262	IF X+Y=510 THEN 7260
7263	GOTO 7205
7280	T0=0: T1=-.55: PR=1: SR=0: TQ=0: F0=0
7350	FCAM 0,0,5:FCAM4,0,2:FCAM3,0,2:FCAM6,0,2:FCAM5,0,2:FCAM4,1,2
7355	FCAM 8,0,2: FCAM 18,1,2: FP=128: GOSUB 42200
7380	RETURN
7400	WREG 1,X: FCAM 8,0,1: X=0: WREG 1,X: FCAM 8,0,1: RETURN
7460	FCAM 5,0,0: X=0: Y=0: Z=0: REG 1,X: REG 2,Y: REG 3,Z
7462	X=255-X: Y=255-Y: Z=255-Z
7465	LY=(X AND 15)*10+(X AND 240)*6.25+(Y AND 15)*1E3+(YAND240)*625
7470	LY=LY+(Z AND 15)*1E5+(Z AND 240)*.0625: RETURN
7490	RT=PEEK(6497): IF RT=0 THEN RETURN
7495	POKE 6497,0: IF RT=18 THEN PR=3:PRINT CHR$(7): RETURN
7520	IF RT=71 THEN TT=TT+TD: RETURN
7540	IF RT=76 THEN TT=TT-TD: RETURN
7551	IF RT<>45 THEN 7560
7552	SI=SI*-1: W$="+": IF SI=-1 THEN W$="-"
7553	IF ABS(SI)<>1 THEN THEN SI=1
7554	RETURN
7560	RT=RT-48: IF RT>9 THEN RETURN
7570	IF RT<1 THEN RETURN
7580	IT=IT+RT*SI
7590	RETURN
7620	RT=PEEK(6497): IF RT=0 THEN RETURN
7630	POKE 6497,0: IF RT=18 THEN PR=3: PRINT CHR$(7): RETURN
7640	GOTO 7551
10000	PRINT "                                    *prosmotr*"
10010	PRINT " uprawlenie: <N>EW-nowoe na~alo prosmotra ";
10020	PRINT " <R>ETURN-wozwrat w men` "
10030	PRINT " ostalxnye prodwiga`t tekst na odnu stranicu"
10040	INPUT " na~alo prosmotra ";I
10050	RT=0: POKE 6497,0: TD=0
10060	FOR J=I TO IC
10070	PRINT J;"   ";TI(J);TE(J),YL(J);
10080	GOSUB 10200
10090	PRINT " ": RT=RT+1: IF RT<15 THEN 10130
10100	TT=PEEK(6497): IF TT=78 THEN 10040
10105	IF TT=0 THEN 10100
10110	IF TT=82 THEN 10250
10120	RT=0: POKE 6497,0
10130	NEXT J
10140	INPUT "wozwrat (Y/N) ";W$
10150	IF W$<>"Y" THEN 10040: RETURN
10200	IF J-TD>5 THEN 10230
10210	IF ABS(TI(J)-TI(TD))>10 THEN 10230
10220	IF ABS(TE(J)-TE(TD))<6 THEN RETURN
10230	FI=(TE(J)-TE(TD))/(TI(J)-TI(TD))
10240	TD=J: PRINT FI;
10250	RETURN
18000	PRINT "                              * pe~atx rezulxtatow *"
18010	PRINT " wsego zapisano ";IC;" to~ek"
18020	TT=1: TD=IC
18030	INPUT "nomer perwoj i poslednej to~ki ";TT,I
18035	POKE 6497,0
18040	PRINT "prerywanie pe~ati knopka <R>-ETURN"
18050	PRINT "wkl`~ite ROBOTRON i navmite <G>"
18060	RT=PEEK(6497)
18070	IF RT<>71 THEN 18060
18080	POKE 6486,1: TD=0
18090	PRINT " DATE ";D$
18100	PRINT " TSL(E) .........................................."
18110	FOR J=TT TO I
18120	PRINT J,TI(J),TE(J),YL(J);" ";
18130	GOSUB 10200: PRINT " "
18150	IF PEEK(6497)=82 THEN 18170
18160	NEXT J
18170	POKE 6486,0: RETURN
24000	PRINT "                              * grafopostroitelx *"
24010	PRINT TAB(14);"informaciq o zapisannyh dannyh ...........1"
24020	PRINT TAB(14);"zadanie koordinatnyh setok ...............2"
24030	PRINT TAB(14);"postroenie grafika .......................3"
24040	PRINT TAB(14);"zadanie tipa wywodimoj zawisimosti........4"
24050	PRINT TAB(14);"0-wozwrat w osnownoe men` "
24100	INPUT " **************** wid raboty ***************** ";W
24110	ON W GOSUB 24130,24300,26100
24115	IF W<>0 THEN 24000
24120	RETURN
24130	PRINT "           * informaciq *"
24140	PRINT "             minimum               maksimum       "
24150	PR=1E-30: TQ=1E+30: TN=PR: RT=TQ: LY=PR: U=TQ
24160	FOR I=1 TO IC
24170	IF TI(I)>PR THEN PR=TI(I)
24175	IF TI(I)<TQ THEN TQ=TI(I)
24180	IF TE(I)>TN THEN TN=TE(I)
24185	IF TE(I)<RT THEN RT=TE(I)
24190	IF YL(I)>LY THEN LY=YL(I)
24195	IF YL(I)<U THEN U=YL(I)
24200	NEXT I
24210	PRINT " wremq                   ";TQ,PR
24220	PRINT " temperatura             ";RT,TN
24230	PRINT " intensiwnostx           ";U,LY
24240	PRINT "    wsego w pamqti ";IC;" to~ek"
24250	POKE 6497,0
24260	PRINT "dlq wozwrata w men` navmite l`bu` knopku"
24270	X=PEEK(6497)
24271	IF X=0 THEN 24270
24280	RETURN
24300	PRINT "          * zadanie setok *"
24310	PRINT "          imeetsq :"
24320	PRINT " nomer    MIN.X    MAX.X      MIN.Y    MAX.Y"
24330	FOR I=1 TO 4
24340	PRINT I;"    ";
24360	FOR J=0 TO 3
24370	PRINT ST(I-1,J);"   ";: NEXT J
24380	PRINT "   "
24385	NEXT I
24390	INPUT "nomer izmenqemoj setki (0-wozwrat) ";W
24400	IF W=0 THEN 24430: PRINT "wwedite ~erez zapqtu`:"
24410	INPUT "MIN.X,MAX.X,MIN.Y,MAX.Y ";X,Y,Z,J
24415	W=W-1: ST(W,0)=X: ST(W,1)=Y: ST(W,2)=Z: ST(W,3)=J
24430	W=1: RETURN
24500	PRINT "          * postroenie grafika *"
24505	PRINT "tip risuemoj funkcii ";NF
24510	INPUT "nomer koordinatnoj setki (1-4, 0-wyhod w men`)";FP
24520	IF FP=0 THEN RETURN
24525	FP=FP-1:PRINT"predely izmeneniq X,Y:";ST(FP,0);" - ";ST(FP,1);
24526	PRINT " i ";ST(FP,2);" - ";ST(FP,3)
24527	IF ST(FP,1)-ST(FP,0)>0 AND ST(FP,3)-ST(FP,2)>0 THEN 24530
24528	PRINT "nu ~to tut skave{x..? razwe tolxko |to:": GOTO 24510
24530	INPUT "setka(1-nuvna, 2-ne nuvna, 0-wopros prevdewremennyj)";U
24540	TD=0: PR=0: RT=0: F=.00003: IT=ST(FP,0): SR=ST(FP,2)
24550	FOR I=1 TO IC
24560	ON NF GOTO 24570,24580,24590,24600
24570	BT=TE(I): SI=YL(I): GOTO 24610
24580	BT=TI(I): SI=YL(I): GOTO 24610
24590	BT=TI(I): SI=TE(I): GOTO 24610
24600	BT=TE(I): SI=TI(I)
24610	IF BT<ST(FP,0)ORBT>ST(FP,1)ORSI<ST(FP,2)ORSI>ST(FP,3)THEN24700
24620	GOSUB 26200
24630	TD=255
24700	NEXT I
24710	TD=0: SI=SR: BT=IT: GOSUB 25180: F=.0015
24720	BT=ST(FP,0): SI=ST(FP,2): GOSUB 25180: IT=BT: SR=SI
24730	IF U=0 THEN INPUT "setka (1-nuvna, 2-net) ";U
24740	ON U GOTO 24755,24990
24750	PRINT CHR$(27);"A";: U=0: GOTO 24730
24755	J=1: GOSUB 26000: TN=W: TT=Z: J=3: GOSUB 26000
24760	TD=255: TQ=W: LY=Z: PRINT "{ag setki po X,Y :";TN,TQ
24770	SI=ST(FP,3): GOSUB 26200: BT=ST(FP,1): GOSUB 26200
24780	SI=ST(FP,2): GOSUB 26200: BT=ST(FP,0): GOSUB 26200
24785	T0=1
24790	FOR BT=TT TO ST(FP,1) STEP TN
24810	IF BT<=ST(FP,0) THEN NEXT BT
24825	GOSUB 26200
24830	ON T0+2 GOTO 24860,24840,24840
24840	SI=ST(FP,3): GOTO 24880
24860	SI=ST(FP,2)
24880	T0=-T0
24890	GOSUB 26200: NEXT BT
24895	BT=IT: SI=SR: TD=0: GOSUB 25180
24900	BT=ST(FP,1): IS=ST(FP,2): GOSUB 25180: T0=1: SR=SI: IT=BT
24905	TD=255: GOSUB 25180
24910	FOR SI=LY TO ST(FP,3) STEP TQ
24920	IF SI<=ST(FP,2) THEN NEXT SI
24925	GOSUB 2620
24930	ON T0+2 GOTO 24960,24940
24940	BT=ST(FP,0): GOTO 24970
24960	BT=ST(FP,1)
24970	T0=-T0: GOSUB 26200: NEXT SI
24980	BT=ST(FP,0): SI=ST(FP,2): GOSUB 25180
24990	W=1: RETURN
25100	TD=255
25110	WREG 3,DT: FCAM 7,0,1
25160	RETURN
25170	DT=0: GOTO 25110
25180	Z=.5388*(BT-ST(FP,0))/(ST(FP,1)-ST(FP,0))*1023
25185	GOSUB 25280: DT=X: IP=Y
25190	Z=.9150*(SI-ST(FP,2))/(ST(FP,3)-ST(FP,2))*1023:GOSUB 25280
25200	FCAM 7,0,1: WREG 2,IP: WREG 3,TD
25280	Y=INT(Z/256): X=INT(Z-Y*256)
25290	RETURN
26000	X=FNLG(ST(FP,J)-ST(FP,J-1))
26010	Y=0: IF X<0 THEN Y=1
26020	Z=10^(X-INT(X)+Y): W=1
26030	FOR I=0 TO 3
26040	IF ABS(W-Z)>ABS(SE(I)-W) THEN W=SE(I)
26050	NEXT I: W=W*10^(INT(X)-Y-1)
26060	Z=W*(INT(ST(FP,J-1)/W)-1): RETURN
26100	PRINT "                   * zadanie tipa zawisimosti *"
26110	PRINT "          warianty grafikow :"
26120	PRINT TAB(14);"X-temperatura.........Y-intensiwnostx.......1"
26130	PRINT TAB(14);"X-wremq...............Y-intensiwnostx.......2"
26140	PRINT TAB(14);"X-wremq...............Y-temperatura.........3"
26150	PRINT TAB(14);"X-temperatura.........Y-wremq...............4"
24160	PRINT "tip zawisimosti (0-prevnij,=";NF;: INPUT ") ";Y
26170	IF Y<0OR Y>4 THEN PRINT CHR$(7);"sie newozmovno...":GOTO26110
26180	IF Y<>0 THEN F=Y
26110	RETURN
26200	J=BT-IT: W=SI-SR
26210	X=J/(ST(FP,1)-ST(FP,0)): Y=W(ST(FP,3)-ST(FP,2))
26220	IF X*X+Y*Y>F THEN J=J/2: W=W/2: GOTO 26210
26230	PR=BT: RT=SI: SI=SR
26240	FOR BT=IT TO PR STEP J
26250	GOSUB 25180
26260	SI=SI+W: NEXT BT
26270	BT=PR: IF ((SI+W>=RT)AND W>=0)OR((SI+W<=RT)AND W<0)THEN26300
26280	SI=SI+W: GOSUB 25180
26290	GOTO 26270
26300	SI=RT: GOSUB 25180: SR=SI: IT=BT: RETURN
42070	FP=0: IF IP<0 THEN 42110
42080	FP=31
42090	IF IP<31 THEN FP=INT(IP)
42100	W=FP: FP=FP+128: GOTO 42200
42110	IF RT>.9 THEN FP=FP+128
42200	WREG 1,FP: FCAM 18,1,1
47999	RETURN
58000	FOR I=1 TO IC-1
58005	W=TE(I+1)-TE(I)
58006	IF W=0 THEN YL(I)=0: GOTO 58020
28010	YL(I)=(YL(I+1)-YL(I))/W
58020	NEXT I
58030	RETURN
                     