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

⟦be462c4e5⟧ TextFile

    Length: 7680 (0x1e00)
    Types: TextFile
    Names: »eppx«

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦this⟧ »eppx« 
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦this⟧ »eppx« 

TextFile

clear user epp
epp=set 12 disc5
scope user epp
epp=algol list.no


PLOTPROGRAM
external procedure epp;
begin
  integer i,j,k,h,t,m,min,df,dt,antal,l,no,b,s,n,ver,M,v,e,
  deltaf,nyfmax,fmin,fmax,del,stpl,std,sk,spl,im,layout;
  real up,u1p,u,um,u0,u1,w,s1,s2,t1,t2,kb,pi,c,ga,ao,f,f1,p,wo,wq,w1,wm,
  gain,bagr,bgr,
  sum,maxsum,jmax,tmin,tmax,smin,smax,bmin,bmax,max1,max2,umax,max,ymax,
  si,x,y,fx,fy,dx,dy,skax,skay,
  g,a1,x1,x2,y1,y2;
  boolean ir,headb;
  array text(1:12), spname(1:2), a(1:10);
  array head(1:12);
  integer array sptail(1:10);
  zone sp(128,1,stderror);


M:=-1;

  write(out,false add 10,2,<:PLOTTER=:>); setposition(out,0,0);
  Z: if readchar(in,m) <> 6 then goto Z;
  m:=m-96; if m=24 then m:=0;
  if m<>0 then
begin M:=1;
      write(out,<:LAYOUT=:>); setposition(out,0,0); read(in,layout);
      x:=26; y:=18; si:=1.5; im:=-1;
      if cb(1,layout) then
      begin write(out,<:X Y SI=:>); setposition(out,0,0); read(in,x,y,si);
      end;
      if cb(2,layout) then plotspline:=true;
      if cb(3,layout) then im:=1;
      setplotname(case abs(m) of(
      <:tek4006a:>,<:houstona:>,<:tek4006c:>,<:tek4006d:>),if m=4 then 3 else 0);
      if cb(4,layout) then
      begin plotform(10,38,25);
            write(out,<:xmin xmax ymin ymax SI=:>);
            setposition(out,0,0);
            read(in,x1,x2,y1,y2,si);
            x1:=x1-1; x2:=x2+1;
            y1:=y1-1; y2:=y2+2;
            plotsubform(x1,x2,y1,y2-1,false);
            x:=x2-x1; y:=y2-y1-1;
      end
      else
      plotform(10,x,y+1);

      plotsize:=0.2*si; plotheight:=0.28*si; linediff:=0.56*si;
      headb:=true;
      write(out,<:<HEAD>=:>); setposition(out,0,0);
      readchar(in,i); if i<>10 then 
      begin repeatchar(in);
            readhead(in,head,1);
            headb:=false;
      end;


      write(out,<:FMIN FMAX DF DT =:>);
      setposition(out,0,0);
      read(in,fmin,fmax,df,dt);

      deltaf:=fmax-fmin;
end;


start:


R: write(out,<:s= :>); setposition(out,0,0); read(in,s);
if s<0 then goto slut; if s>1 then goto R;


if s=0 then begin
      for i:=1 step 1 until 10 do sptail(i):=0;
      write(out,false add 10,1,<:NAME=:>);
      setposition(out,0,0); readstring(in,spname,1);
  open(sp,4,string inc(spname),0);
  if monitor(42,sp,0,sptail) <> 0 then begin
     write(out,<:***:>,string inc(spname),<: unknown:>,false add 10,1);
     close(sp,true); goto start;
  end;

  p:=10;
  inrec(sp,128);
  sptail(1):=sp(1);
  t:=sp(2);
  min:=sp(4); max:=sp(6); umax:=sp(7);
  bmin:=sp(11); bmax:=sp(12);
  if headb then
  for j:=1 step 1 until 12 do head(j):=sp(j+99);
  ir:=false;
  if sp(40)>0 then sk:=10 else sk:=1;
  if sp(41)>0 then ir:=true;
  b:=sp(50);

  smin:=if fmin<bmin then bmin else fmin;
  smax:=if fmax>bmax then bmax else fmax;

  gain:=1; bagr:=1; dx:=0; del:=1;

  write(out,<:VER=:>); setposition(out,0,0); read(in,ver);
  if ver=0 then write(out,false add 10,1,<:Standardparametre:>,false add 10,2);
  setposition(out,0,0);
  if cb(1,ver) then
  begin write(out,<:GAIN BAGR DEL =:>);
        setposition(out,0,0); read(in,gain,bagr,del);
  end;
  if cb(2,ver) then
  begin B1: write(out,<:BMIN=:>,<< dddd.dd>,bmin,<: CM-1  SMIN=:>);
        setposition(out,0,0); read(in,smin);
        if smin<bmin or smin<fmin then goto B1;
        B2: write(out,<:BMAX=:>,<< dddd.dd>,bmax,<: CM-1  SMAX=:>);
        setposition(out,0,0); read(in,smax);
        if smax>bmax or smax>fmax then goto B2;
  end;
  if cb(3,ver) then
  begin write(out,<:STPL=:>); 
        setposition(out,0,0); read(in,maxsum);
  end;
  if cb(5,ver) then
  begin write(out,<:SK DX=:>); setposition(out,0,0); read(in,sk,dx);
  end;
end s=0;


if M=1 then begin
  skax:=(x-2)/deltaf; 
  skay:=(y-4)/max;
  M:=-1;
  setmargin(1,y-0.75);
  if cb(4,layout) then goto LL;

  if b=-1 then writeplot(<:<12>I(<14>n<15>):>);
  if b>0 then
  writeplot(case b of(
  <:<12>R(<14>n<15>):>,<:<12>R(<14>n<15>):>,<:<12><14>c<15>(<14>n<15>):>,
  <::>,<::>,<:<12>lnI(<14>n<15>):>,
  <:<12>I(<14>n<15>):>));
LL:
  costhetay:=cos(-15*pi/180); sinthetay:=sin(-15*pi/180);
  setmargin(3,y-0.75);

  writeplot(<:<12>:>,string inc(head));
  costhetax:=costhetay:=0; sinthetax:=sinthetay:=1;
  setmargin(.6,(y-plotsize*17)/2);
  writeplot(<:<12>I N T E N S I T Y:>);
  costhetax:=costhetay:=1; sinthetax:=sinthetay:=0;
  if im>0 then begin

  setmargin(.5,1.9); writeplot(<:<12>:>,<:0:>);
  plotmove(1,2); pendown; plotmove(1.4,2); penup;
  setmargin(.5 ,y-2.1); writeplot(<:<12>:>,<:1:>);
  plotmove(1,y-2); pendown; plotmove(1.4,y-2); penup;
  end im;


  plotmove(1,1); pendown;


  for j:=fmin step df until fmax do
  begin f1:=(j-fmin)*skax+1;
        if j<>fmin then
        begin plotmove(f1,1);
              plotmove(f1,1+y/(if j mod dt=0 then 25 else 50));
              plotmove(f1,1);
        end;
        if j mod dt = 0 then
        begin setmargin(f1-plotsize*0.5*cif(j),0.8-plotheight);
              writeplot(<:<12>:>,case cif(j) of(
              <<d>,<<dd>,<<ddd>,<<dddd>),j);
               plotmove(f1,1); pendown;
        end;
  end;
  plotmove(x-1,1); plotmove(x-1,y-1);
  plotmove(x-1,1); plotmove(x-1,y-1);

  for j:=fmin step df until fmax do
  if j mod df=0 then nyfmax:=j;

  for j:=nyfmax step -df until fmin do
  begin f1:=(j-fmin)*skax+1;
        if j<>fmin then
        begin plotmove(f1,y-1);
              plotmove(f1,y-1-y/(if j mod dt=0 then 25 else 50));
              plotmove(f1,y-1);
        end;
  end;
  plotmove(1,y-1); plotmove(1,1);
  plotmove(1,y-1); plotmove(1,1);
  if cb(4,layout) then
  plotsubform(x1+1,x2-1,y1+1,y2-1,false)
  else
  plotsubform(1,x-1,1,y-1,false);
  plotend;
end M;

penup;



if s=0 then begin
  um:=(bmin-fmin+t/p)*skax;
  u0:=(smin-bmin)*10; h:=entier(u0/128); u0:=u0-h*128;
  if u0=0 then u0:=1;
  setposition(sp,0,h+2); inrec(sp,128);
  u1:=gain*sp(u0)*skay+bagr;
  u:=(smin-fmin)*skax; ymax:=y-2;
  plotmove((if ir then u-um else u)*sk+dx,if u1>ymax then ymax else u1);
  pendown; setposition(sp,0,2);
  sum:=0;
  up:=u; u1p:=u1;

  for k:=0 step 1 until sptail(1)-3 do
  begin inrec(sp,128);
        for j:=1 step 1 until 128 do
        begin i:=k*128+j;
              if i<t  and (k*128+j) mod del = 0 then
              begin u:=(bmin-fmin+i/p)*skax;
                    if u< (smin-fmin)*skax then goto S1;
                    if u> (smax-fmin)*skax then goto S2;
                    u1:=gain*sp(j)*skay+bagr;
                    if cb(3,ver) then begin
                    if sum>maxsum then
                    begin sum:=0; 
                          if penstatus=0 then 
                          pendown
                          else
                          penup;
                    end;
                    sum:=sqrt((up-u)*sk*(up-u)*sk+(u1p-u1)*(u1p-u1))+sum;
                    up:=u; u1p:=u1;
                    end;
                    plotmove((if ir then (u-um) else u)*sk+dx,
                    if u1>ymax then ymax else u1);
              end;
S1:     end j;
  end k;
  S2: plotend;
  penup;
  close(sp,false);
  open(sp,4,string inc(spname),0); swoprec(sp,128);
  sp(20):=fmin; sp(21):=fmax;
  close(sp,true);
end s=0;
goto start; slut: if s=-2 then plotclose;  end; end
▶EOF◀