DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦b6e9133da⟧ TextFile

    Length: 3072 (0xc00)
    Types: TextFile
    Names: »chopltxt«

Derivation

└─⟦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« 

TextFile

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◀