|
|
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◀