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

⟦9ae445678⟧ TextFile

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

Derivation

└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦this⟧ »plotfx« 

TextFile

;inputfil til plotfx system
;rene moss 8-4-80/29-3-82
map=set 150
fx=set 12
yfx=set 12
c=message type expression fx
fx=copy message.no c
o points
yfx=edit fx
r@@Y:=@,l b,i@
;
@,f
points=set 12
scope day map points
mode 1.no
map=algol message.no
program for interactive plotting of y(x)
;rene moss 31-3-80/29-3-82
begin
  integer i,asize,lin,char,xsize,ysize,formmode,N,segm,val,valg;
  real xmin,xmax,ymin,ymax,x,y,dx,xm;
  integer field fi;
  real field fx,fy;
  long array field fla;
  integer array ZD(1:20);
  array tname(1:2);
  zone z(128,1,stderror);
  boolean first;
  fi:=2; fx:=6; fy:=10;
  fla:=lin:=xsize:= ysize:= 0;
  asize:= 5; formmode:= 2; first:=true;
  xmin:=ymin:='600; xmax:=ymax:=-'600;
  initfp;
  write(out,<:output stored on :>);
  readlsfp(tname);
  open(z,4,tname.fla,0);
  write(out,tname.fla);
  for i:=0,i+1 while val<>25 do
  begin
    readchar(in,val);
    if (val<>10 or valg<>10) and val<>0 then
    begin
      if val=10 then lin:=lin+1;
      valg:=val;
      outchar(z,val)
    end
  end;
  connectcuri(<:v:>);
  write(z,false,6);
  setposition(z,0,1);
  outrec6(z,10);
  begin
    real procedure Y(x);
    real x;
      algol copy.yfx;
    if first then
    begin
      if formmode=2 then xsize:=5
      else
      begin
        if xsize<=0 then xsize:=readr(<:xsize:>);
        if ysize<=0 then ysize:=readr(<:ysize:>)
      end;
      first:=false
    end;
    N:=2**9-1;
    x:=readr(<:xmin:>);
    xm:=readr(<:xmax:>);
    dx:=(xm-x)/N;
    if x<xmin then xmin:=x;
    if xm>xmax then xmax:=xm;
    z.fi:=-1; z.fx:=x; z.fy:=y:=Y(x);
    if y<ymin then ymin:=y;
    if y>ymax then ymax:=y;
    outrec6(z,10);
    z.fi:=-2; z.fx:=x; z.fy:=y;
    for x:=x+dx while x<=xm do
    begin
      outrec6(z,10);
      z.fi:=0; z.fx:=x; z.fy:=y:=Y(x);
      if y<ymin then ymin:=y else if y>ymax then ymax:=y
    end;
    outrec6(z,10);
    z.fi:=8000000;
    getposition(z,0,segm); getzone6(z,ZD);
    setposition(z,0,0); swoprec(z,128);
    z(117):=formmode; z(118):=xsize; z(119):=ysize; 
    z(120):=(lin+2)*.7;
    z(125):=xmin; z(126):=xmax;
    z(127):=ymin; z(128):=ymax;
    setposition(z,0,segm); setzone6(z,ZD);
  end; fpproc(7,0,0,0)
end
if ok.yes warning.no
if 1.yes
(c=message syntax error in
c=copy message.no fx
c=char nl
end)
lookup execplot
if ok.no
i execplotxt
o c
points=map fx
execplot points plotter.houstona 
if ok.no
(c=message plotting not ok
end)
c=message plotting finished
▶EOF◀