|
|
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: 3840 (0xf00)
Types: TextFile
Names: »plotxyt«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
└─⟦4334b4c0b⟧
└─⟦this⟧ »plotxyt«
;inputfil til plotxy system
;rene moss 10-4-80/17-11-80
r=set 150
if 2.no
(s=set 11
c=message type expression xt
s=copy message.no c
t=set 11
c=message type expression yt
t=copy message.no c
u=set 11
if 1.yes
(c=copy message.no nlem
c=message type param declar and assignments and statements
u=copy message.no c
)
if 1.no
(u=copy message.no nlem)
)
r=algol plotxytb s plotxytc t endsemikol u plotxyte message.no
if ok.no
(c=message syntax error in
c=copy message.no s nlem t nlem u
end)
if warning.yes
(c=message syntax error in
c=copy message.no s nlem t nlem u
end)
s=copy message.no s nlem t
t=set 30
t=r s
lookup execplot
if ok.no
i execplotxt
execplot t
if ok.no
(c=message plotting not ok
end)
c=message plotting finished
program for interactive plotting of x(t),y(t)
;rene moss 31-3-80/20-11-80
begin
integer i,asize,lin,char,xsize,ysize,formmode,N,segm,val,valg;
real xmin,xmax,ymin,ymax,x,y,stop,t,tmax,dt;
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;
xmin:= xmax:= ymin:= ymax:= 0.0;
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);
if tname(1) extract 40 = 0 then
begin
i:=tname(1) shift (-40) extract 8;
if 114<=i and i<=117 then
begin
write(out,false add i,1,<: = :>);
redefarray(tname,firstnote+(i-113)*22+4,2);
if lookupentry(tname)<>0 then
begin
end
end
end;
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 X(t);
real t;
begin
X:=
end;
real procedure Y(t);
real t;
begin
Y:=
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;
t:=readr(<:tmin:>);
tmax:=readr(<:tmax:>);
dt:=(tmax-t)/N;
z.fi:=-1; z.fx:=x:=X(t); z.fy:=y:=Y(t);
if y<ymin then ymin:=y else if y>ymax then ymax:=y;
if x<xmin then xmin:=x else if x>xmax then xmax:=x;
outrec6(z,10);
z.fi:=-2; z.fx:=x; z.fy:=y;
for t:=t+dt while t<=tmax do
begin
outrec6(z,10);
z.fi:=0; z.fx:=x:=X(t); z.fy:=y:=Y(t);
if y<ymin then ymin:=y else if y>ymax then ymax:=y;
if x<xmin then xmin:=x else if x>xmax then xmax:=x
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◀