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

⟦2f818059a⟧ TextFile

    Length: 2304 (0x900)
    Types: TextFile
    Names: »testplotfx«

Derivation

└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
    └─⟦b2ec5d50f⟧ 
        └─⟦this⟧ »testplotfx« 

TextFile

program for interactiv plotting of f(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;
      Y:=
1;    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:=maxinteger;
    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
end
▶EOF◀