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

⟦48df4c39f⟧ TextFile

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

Derivation

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

TextFile

(
scope temp plotcurve plotgraph setmargin plotline,
           movecoor plotsegm
clear temp plotcurve plotgraph setmargin plotline,
           movecoor plotsegm
 plotcurve=set 1
 plotgraph=set 1
 setmargin=set 1
 plotline=set 1
 movecoor=set 1
 plotsegm=set 5
 scope user plotcurve plotgraph setmargin plotline,
            movecoor plotsegm
)

message plotcurve in tplc
plotcurve=algol message.no list.no
external
boolean procedure plotcurve(x,y,t,tl,th,dt);
value tl,th;
real x,y,t,tl,th,dt;
  begin 
    penup;
    t:=tl;
    plotmove(x,y);
    pendown;
    for t:=tl+dt step dt until th,th do
    begin
      plotcurve:=plotmove(x,y);
    end;
  penup;
  end plotcurve;
end;
\f


message plotgraph in tplc
plotgraph=algol message.no list.no
external

  boolean procedure plotgraph(x,y,xl,xh,dx);
  value xl,xh;
  real xl,xh,x,y,dx;
  begin 
    penup;
    x:=xl;
    plotmove(x,y);
    pendown;
    for x:=xl+dx step dx until xh,xh do
      plotgraph:=plotmove(x,y);
    penup;
  end plotgraph;
end;
\f


message setmargin in tplc
setmargin=algol message.no list.no
external
procedure setmargin(x,y);
value x, y;
real x, y;
begin
marginx:=x;
marginy:=y;
margintime:=true;
end setmargin;
end;
\f


message plotline in tplc
plotline=algol message.no list.no
external
 boolean procedure plotline(x0,y0,x1,y1);
  value x0,y0,x1,y1;
  real x0,y0,x1,y1;
  begin 
    penup;
    plotmove(x0,y0);
    pendown;
    plotline:=plotmove(x1,y1);
    penup;
  end plotline;
end;
message plotsegm in tplc
plotsegm=algol  message.no list.no
external
procedure plotsegm(x,y,gridunit,xpos,ypos);
value x,y,gridunit;
integer x,y,gridunit; long xpos,ypos;
begin
integer d,absu,absu0,absv0,du,dv,dv0;
boolean inv;
absu:=abs(x);              absv0:=abs(y);
du:=sign(x);               dv0:=sign(y);
inv:=absu<absv0;
if inv then
begin
  d:=absu; absu:=absv0; absv0:=d;
  d:=du; du:=dv0; dv0:=d
end;
absu0:=absu shift 1;       absv0:=absv0 shift 1;
d:=absv0-absu;
for absu:=absu-1 while absu>=0 do
begin
  if d>=0 then
  begin
    dv:=dv0;
    d:=d-absu0
  end
  else dv:=0;
  d:=d+absv0;
  if inv then
  begin
    xpos:=xpos+dv*plotunit; ypos:=ypos+du*plotunit
  end
  else
  begin
    xpos:=xpos+du*plotunit; ypos:=ypos+dv*plotunit
  end;
  plotmove(xpos/gridunit/plotunit,ypos/gridunit/plotunit);
end for;
end plotsegm ; end
\f


message movecoor in tplc
movecoor=algol message.no list.no
external
  procedure movecoor(x,y);
  value x, y;
  real x,y;
  begin
  real dx,dy;
  dx:=round(100*(-x*deltax))/100;
  dy:=round(100*(-y*deltay))/100;
    plotxpos:=(plotxpos*deltax+dx)/deltax;
    plotypos:=(plotypos*deltay+dy)/deltay;
    plotxmin:=(plotxmin*deltax+dx)/deltax;
    plotxmax:=(plotxmax*deltax+dx)/deltax;
    plotymin:=(plotymin*deltay+dy)/deltay;
    plotymax:=(plotymax*deltay+dy)/deltay;
    plotxcoor:=plotxcoor-dx;
    plotycoor:=plotycoor-dy;
  end movecoor;
end;
▶EOF◀