|
|
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: 7680 (0x1e00)
Types: TextFile
Names: »eppx«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦this⟧ »eppx«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
└─⟦4334b4c0b⟧
└─⟦this⟧ »eppx«
clear user epp
epp=set 12 disc5
scope user epp
epp=algol list.no
PLOTPROGRAM
external procedure epp;
begin
integer i,j,k,h,t,m,min,df,dt,antal,l,no,b,s,n,ver,M,v,e,
deltaf,nyfmax,fmin,fmax,del,stpl,std,sk,spl,im,layout;
real up,u1p,u,um,u0,u1,w,s1,s2,t1,t2,kb,pi,c,ga,ao,f,f1,p,wo,wq,w1,wm,
gain,bagr,bgr,
sum,maxsum,jmax,tmin,tmax,smin,smax,bmin,bmax,max1,max2,umax,max,ymax,
si,x,y,fx,fy,dx,dy,skax,skay,
g,a1,x1,x2,y1,y2;
boolean ir,headb;
array text(1:12), spname(1:2), a(1:10);
array head(1:12);
integer array sptail(1:10);
zone sp(128,1,stderror);
M:=-1;
write(out,false add 10,2,<:PLOTTER=:>); setposition(out,0,0);
Z: if readchar(in,m) <> 6 then goto Z;
m:=m-96; if m=24 then m:=0;
if m<>0 then
begin M:=1;
write(out,<:LAYOUT=:>); setposition(out,0,0); read(in,layout);
x:=26; y:=18; si:=1.5; im:=-1;
if cb(1,layout) then
begin write(out,<:X Y SI=:>); setposition(out,0,0); read(in,x,y,si);
end;
if cb(2,layout) then plotspline:=true;
if cb(3,layout) then im:=1;
setplotname(case abs(m) of(
<:tek4006a:>,<:houstona:>,<:tek4006c:>,<:tek4006d:>),if m=4 then 3 else 0);
if cb(4,layout) then
begin plotform(10,38,25);
write(out,<:xmin xmax ymin ymax SI=:>);
setposition(out,0,0);
read(in,x1,x2,y1,y2,si);
x1:=x1-1; x2:=x2+1;
y1:=y1-1; y2:=y2+2;
plotsubform(x1,x2,y1,y2-1,false);
x:=x2-x1; y:=y2-y1-1;
end
else
plotform(10,x,y+1);
plotsize:=0.2*si; plotheight:=0.28*si; linediff:=0.56*si;
headb:=true;
write(out,<:<HEAD>=:>); setposition(out,0,0);
readchar(in,i); if i<>10 then
begin repeatchar(in);
readhead(in,head,1);
headb:=false;
end;
write(out,<:FMIN FMAX DF DT =:>);
setposition(out,0,0);
read(in,fmin,fmax,df,dt);
deltaf:=fmax-fmin;
end;
start:
R: write(out,<:s= :>); setposition(out,0,0); read(in,s);
if s<0 then goto slut; if s>1 then goto R;
if s=0 then begin
for i:=1 step 1 until 10 do sptail(i):=0;
write(out,false add 10,1,<:NAME=:>);
setposition(out,0,0); readstring(in,spname,1);
open(sp,4,string inc(spname),0);
if monitor(42,sp,0,sptail) <> 0 then begin
write(out,<:***:>,string inc(spname),<: unknown:>,false add 10,1);
close(sp,true); goto start;
end;
p:=10;
inrec(sp,128);
sptail(1):=sp(1);
t:=sp(2);
min:=sp(4); max:=sp(6); umax:=sp(7);
bmin:=sp(11); bmax:=sp(12);
if headb then
for j:=1 step 1 until 12 do head(j):=sp(j+99);
ir:=false;
if sp(40)>0 then sk:=10 else sk:=1;
if sp(41)>0 then ir:=true;
b:=sp(50);
smin:=if fmin<bmin then bmin else fmin;
smax:=if fmax>bmax then bmax else fmax;
gain:=1; bagr:=1; dx:=0; del:=1;
write(out,<:VER=:>); setposition(out,0,0); read(in,ver);
if ver=0 then write(out,false add 10,1,<:Standardparametre:>,false add 10,2);
setposition(out,0,0);
if cb(1,ver) then
begin write(out,<:GAIN BAGR DEL =:>);
setposition(out,0,0); read(in,gain,bagr,del);
end;
if cb(2,ver) then
begin B1: write(out,<:BMIN=:>,<< dddd.dd>,bmin,<: CM-1 SMIN=:>);
setposition(out,0,0); read(in,smin);
if smin<bmin or smin<fmin then goto B1;
B2: write(out,<:BMAX=:>,<< dddd.dd>,bmax,<: CM-1 SMAX=:>);
setposition(out,0,0); read(in,smax);
if smax>bmax or smax>fmax then goto B2;
end;
if cb(3,ver) then
begin write(out,<:STPL=:>);
setposition(out,0,0); read(in,maxsum);
end;
if cb(5,ver) then
begin write(out,<:SK DX=:>); setposition(out,0,0); read(in,sk,dx);
end;
end s=0;
if M=1 then begin
skax:=(x-2)/deltaf;
skay:=(y-4)/max;
M:=-1;
setmargin(1,y-0.75);
if cb(4,layout) then goto LL;
if b=-1 then writeplot(<:<12>I(<14>n<15>):>);
if b>0 then
writeplot(case b of(
<:<12>R(<14>n<15>):>,<:<12>R(<14>n<15>):>,<:<12><14>c<15>(<14>n<15>):>,
<::>,<::>,<:<12>lnI(<14>n<15>):>,
<:<12>I(<14>n<15>):>));
LL:
costhetay:=cos(-15*pi/180); sinthetay:=sin(-15*pi/180);
setmargin(3,y-0.75);
writeplot(<:<12>:>,string inc(head));
costhetax:=costhetay:=0; sinthetax:=sinthetay:=1;
setmargin(.6,(y-plotsize*17)/2);
writeplot(<:<12>I N T E N S I T Y:>);
costhetax:=costhetay:=1; sinthetax:=sinthetay:=0;
if im>0 then begin
setmargin(.5,1.9); writeplot(<:<12>:>,<:0:>);
plotmove(1,2); pendown; plotmove(1.4,2); penup;
setmargin(.5 ,y-2.1); writeplot(<:<12>:>,<:1:>);
plotmove(1,y-2); pendown; plotmove(1.4,y-2); penup;
end im;
plotmove(1,1); pendown;
for j:=fmin step df until fmax do
begin f1:=(j-fmin)*skax+1;
if j<>fmin then
begin plotmove(f1,1);
plotmove(f1,1+y/(if j mod dt=0 then 25 else 50));
plotmove(f1,1);
end;
if j mod dt = 0 then
begin setmargin(f1-plotsize*0.5*cif(j),0.8-plotheight);
writeplot(<:<12>:>,case cif(j) of(
<<d>,<<dd>,<<ddd>,<<dddd>),j);
plotmove(f1,1); pendown;
end;
end;
plotmove(x-1,1); plotmove(x-1,y-1);
plotmove(x-1,1); plotmove(x-1,y-1);
for j:=fmin step df until fmax do
if j mod df=0 then nyfmax:=j;
for j:=nyfmax step -df until fmin do
begin f1:=(j-fmin)*skax+1;
if j<>fmin then
begin plotmove(f1,y-1);
plotmove(f1,y-1-y/(if j mod dt=0 then 25 else 50));
plotmove(f1,y-1);
end;
end;
plotmove(1,y-1); plotmove(1,1);
plotmove(1,y-1); plotmove(1,1);
if cb(4,layout) then
plotsubform(x1+1,x2-1,y1+1,y2-1,false)
else
plotsubform(1,x-1,1,y-1,false);
plotend;
end M;
penup;
if s=0 then begin
um:=(bmin-fmin+t/p)*skax;
u0:=(smin-bmin)*10; h:=entier(u0/128); u0:=u0-h*128;
if u0=0 then u0:=1;
setposition(sp,0,h+2); inrec(sp,128);
u1:=gain*sp(u0)*skay+bagr;
u:=(smin-fmin)*skax; ymax:=y-2;
plotmove((if ir then u-um else u)*sk+dx,if u1>ymax then ymax else u1);
pendown; setposition(sp,0,2);
sum:=0;
up:=u; u1p:=u1;
for k:=0 step 1 until sptail(1)-3 do
begin inrec(sp,128);
for j:=1 step 1 until 128 do
begin i:=k*128+j;
if i<t and (k*128+j) mod del = 0 then
begin u:=(bmin-fmin+i/p)*skax;
if u< (smin-fmin)*skax then goto S1;
if u> (smax-fmin)*skax then goto S2;
u1:=gain*sp(j)*skay+bagr;
if cb(3,ver) then begin
if sum>maxsum then
begin sum:=0;
if penstatus=0 then
pendown
else
penup;
end;
sum:=sqrt((up-u)*sk*(up-u)*sk+(u1p-u1)*(u1p-u1))+sum;
up:=u; u1p:=u1;
end;
plotmove((if ir then (u-um) else u)*sk+dx,
if u1>ymax then ymax else u1);
end;
S1: end j;
end k;
S2: plotend;
penup;
close(sp,false);
open(sp,4,string inc(spname),0); swoprec(sp,128);
sp(20):=fmin; sp(21):=fmax;
close(sp,true);
end s=0;
goto start; slut: if s=-2 then plotclose; end; end
▶EOF◀