|
|
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: 5376 (0x1500)
Types: TextFile
Names: »epix«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦this⟧ »epix«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦this⟧ »epix«
clear user epi
epi=set 2 disc5
scope user epi
epi=algol list.no
RAMAN2 program: epi (indlæsningsprogram)
external procedure epi;
begin
integer i,k,j,t,umax,umin,nc,v,u,u0,a;
array BS,nspo(1:2), head(1:12);
integer array D(1:1), Z(1:20), tsp1,tsp2,tspi,tspo,trs(1:10);
integer field fi;
real tmin,tmax,min,max,bmin,bmax,b,p,del,u1,alfa,to,t1;
zone sp1,sp2, spi,spo,zrs(128,1,stderror);
BS(1):=BS(2):=real <::>;
F:write(out,<:FRA=:>); setposition(out,0,0); readstring(in,BS,1);
if lookuptail(BS,tspi) <> 0 then
begin write(out,false add 10,1,<:***:>,string inc(BS),<: unknown:>);
goto F;
end;
nspo(1):=nspo(2):=real <::>;
write(out,<:TIL=:>); setposition(out,0,0); readstring(in,nspo,1);
write(out,<:NPF=:>); setposition(out,0,0); read(in,t1);
alfa:=0.998;
open(spi,4,string inc(BS),0);
inrec(spi,128);
for j:=1 step 1 until 12 do head(j):=spi(j);
tmin:=tspi(9); tmax:=tspi(10);
write(out,false add 10,2,<:TMIN=:>,<< dddd>,tmin,<: TMAX=:>,tmax);
p:=1.1904; to:=6361;
b:=tmin*alfa-to-t1-6368*(alfa-1);
bmin:=(entier(b*10+1))*0.1;
bmax:=tmax*alfa-to-t1-6368*(alfa-1);
write(out,false add 10,1,<:BMIN=:>,<< -dddd.dd>,bmin,<: BMAX=:>,bmax);
if lookupentry(<:ramsp1:>) = 0 then removeentry(<:ramsp1:>);
cleararray(tsp1);
tsp1(1):=400;
reservesegm(<:ramsp1:>, tsp1(1)); permentry(<:ramsp1:>,15);
open(sp1,4,<:ramsp1:>,0);
if tspi(8)>0 then setposition(spi,0,1); setposition(sp1,0,2);
t:=0; max:=0; min:=maxinteger;
getzone(spi,Z); redefarray(D,Z(14)+1,256);
for j:=inrec(spi,128) while spi(1) shift (-40) extract 8=0, j do
begin k:=D(1) extract 16;
for j:=1 step 1 until k do
begin outrec(sp1,1);
i:=D(j+1); sp1(1):=i;
end j;
t:=t+k;
end inrec;
tsp1(1):=2 + (t+127)//128;
monitor(44,sp1,15,tsp1);
setposition(sp1,0,2); swoprec(sp1,128);
sp1(1):=sp1(2):=sp1(3):=sp1(4):=sp1(5);
close(spi,true);
write(out,false add 10,1,<:ANTAL=:>,<< ddddd>,t,<: CALC. ANTAL=:>,
(tmax-tmin)*8.4,<: R=:>,<< d.dddd>,t/(tmax-tmin)/8.4);
if lookupentry(<:ramsp2:>) = 0 then removeentry(<:ramsp2:>);
cleararray(tsp2);
tsp2(1):=400;
reservesegm(<:ramsp2:>, tsp2(1)); permentry(<:ramsp2:>,15);
open(sp2,4,<:ramsp2:>,0); setposition(sp2,0,2); tsp2(1):=2;
setposition(sp1,0,2); inrec(sp1,128);
a:=0; u0:=0;
for k:=0 step 1 until 400 do
begin tsp2(1):=tsp2(1)+1; outrec(sp2,128);
for i:=1 step 1 until 128 do
begin v:=k*128+i;
u:=entier((v/p));
if u>t-1 then goto L1; del:=v/p-u;
if u mod 128=1 and u>10 and u>u0 then
begin a:=a+1; inrec(sp1,128);
end;
u0:=u;
j:=u-a*128;
if j<1 then goto B1;
if j=128 then
sp2(i):=sp1(j)
else
sp2(i):=sp1(j)+(sp1(j+1)-sp1(j))*del;
B1: end i;
end k;
L1:
monitor(44,sp2,15,tsp2);
setposition(sp1,0,2); setposition(sp2,0,2);
inrec(sp1,128); swoprec(sp2,128); sp2(1):=sp1(1);
t:=v;
close(sp1,true);
if lookupentry(nspo) = 0 then removeentry(nspo);
cleararray(tspo);
tspo(1):=400;
reservesegm(nspo,tspo(1)); permentry(nspo, 0);
open(spo,4,string inc(nspo),0); setposition(spo,0,2); tspo(1):=2;
setposition(sp2,0,2); inrec(sp2,128);
a:=0; u0:=0;
for k:=0 step 1 until 400 do
begin tspo(1):=tspo(1)+1; outrec(spo,128);
for i:=1 step 1 until 128 do
begin v:=k*128+i;
u1:=(bmin+0.1*(v-1)+to+t1+6368*(alfa-1))/alfa;
u:=entier((u1-tmin)*10)+1;
if u>=t then goto L2;
del:=u1*10-entier(u1*10);
u0:=u;
j:=u-a*128;
if j>128 then
begin a:=a+1;
inrec(sp2,128);
j:=1;
end;
if j<1 then goto B2;
if j=128 then
spo(i):=sp2(j)
else
spo(i):=sp2(j)+(sp2(j+1)-sp2(j))*del;
if spo(i)>max then begin max:=spo(i); umax:=v; end else
if spo(i)<min then begin min:=spo(i); umin:=v; end;
B2: end i;
end k;
L2:
monitor(44,spo,15,tspo); close(sp2,true);
setposition(spo,0,0);
outrec(spo,128); for j:=1 step 1 until 128 do spo(j):=-1;
outrec(spo,128); for j:=1 step 1 until 128 do spo(j):=-1;
setposition(spo,0,0); swoprec(spo,128);
spo(1):= tspo(1); spo(2):= v; spo(3):= (tmax-tmin)*8.4;
spo(4):=min; spo(5):=umin;
spo(6):=max; spo(7):=umax;
spo(8):=tmin; spo(9):=tmax; spo(10):=nc;
spo(11):=bmin; spo(12):=bmax;
for j:=1 step 1 until 12 do spo(j+99):=head(j);
close(spo,true); slut:end; end
▶EOF◀