|
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◀