|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3072 (0xc00) Types: TextFile Names: »chopltxt«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt. └─⟦0364f57e3⟧ └─⟦this⟧ »chopltxt« └─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ. └─⟦b2ec5d50f⟧ └─⟦this⟧ »chopltxt«
clear temp chopl chopl=set 150 chopl=algol program for plotting of model chemical reactions from RC8000 24 01 81 18 00 00 fpinit: area.kemdata plotter.tek4006b scale.false cnr.3 nunit.60 begin integer ndata,idata,cnr,nunit,i,timeunit; real date,clock,cmax,cmin,told,tmax; boolean blog,test,scale,nl,sp; integer array TAIL(1:10); real array BS,PLN(1:3); zone DATA(128,1,stderror); nl:= false add 10; sp:= false add 32; readbfp(<:test:>,test,false); readbfp(<:scale:>,scale,false); if -,readsfp(<:area:>,BS,<:kemdata:>) then begin write(out,nl,1,<:data area = :>); setposition(out,0,0); readstring(in,BS,1); end; open(DATA,4,string inc(BS),0); inrec(DATA,128); date:= DATA(125); clock:= DATA(126); ndata:= DATA(127); idata:= DATA(128); write(out,nl,1,<< dd dd dd>,date,clock,nl,1); write(out,string inc(DATA)); setposition(out,0,0); lookuptail(BS,TAIL); if ndata<0 or ndata>(TAIL(1)-1)*(128//idata) then ndata:= (TAIL(1)-1)*(128//idata); if -,readsfp(<:plotter:>,PLN,<:tek4006b:>) then begin write(out,nl,1,<:plotter name = :>); setposition(out,0,0); readstring(in,PLN,1) end; i:= 1; setplotname(string PLN(increase(i)),0); cnr:= 3; readifp(<:cnr:>,cnr,3); readrfp(<:tmax:>,tmax,'600); cmax:= 0; cmin:= '600; told:= 0; for i:= 1 step 1 until ndata do begin inrec(DATA,idata); if test then begin write(out,nl,1,i,<< -d.dd'-d>,DATA(2),DATA(3+cnr)); setposition(out,0,0); end; if DATA(2)<told or DATA(2)>tmax then ndata:= i-1 else begin told:= DATA(2); if DATA(cnr+3)>cmax then cmax:= DATA(cnr+3); if DATA(cnr+3)>0 and DATA(cnr+3)<cmin then cmin:= DATA(cnr+3); end; end; if scale then begin cmin:= readr(<:cmin:>); cmax:= readr(<:cmax:>) end; blog:= ln(cmax)-ln(cmin)>ln10; nunit:= 60; readifp(<:nunit:>,nunit,60); plotform(0,nunit+4,14); setmargin(2,12); writeplot(<:<12>:>,if blog then <:log:>else<::>,<: c(:>, <<d>,cnr,<:):>,sp,10,<< dd dd dd>,date,clock); timeunit:= 1; readifp(<:timeunit:>,timeunit,1); if timeunit<>1 then begin setmargin(nunit,1-linediff); writeplot(<:<12>(:>,<<d>,timeunit,<: sec):>); end; plotsubform(1,nunit+4,0,12,false); if blog then plotautcoor(0,told/timeunit,entier(ln(cmin)/ln10), entier(ln(cmax)/ln10)+1) else plotautcoor(0,told/timeunit,cmin,cmax); setposition(DATA,0,1); for i:= 1 step 1 until ndata do begin inrec(DATA,idata); if i=2 then pendown; if blog then plotmove(DATA(2)/timeunit,ln(DATA(cnr+3)+'-500)/ln10) else plotmove(DATA(2)/timeunit,DATA(cnr+3)); end; penup; close(DATA,true); plotclose; end; ▶EOF◀