|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3072 (0xc00)
Types: TextFile
Names: »tplc«
└─⟦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⟧
(
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◀