|
|
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: »gonimfit3«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦1248b0c55⟧ »gobib«
└─⟦this⟧
;gosav time.200
gopr=set 50
permanent gopr.17
o gopr
s=edit gonimfit
d,g1/funclinda/nimlinda/,l./algol/,s,f
i s
nimlinda=algol fittt index.no list.no
r=edit algfuncfit
l./algol/,r/no/yes/
l./B, nl/,i/
real timebase, time, stoptime;
/,l3,r/res/z,res/,l./outmed/,d,i/
read(in,time);
if time>0 then begin /,l1,r/; n/ end
else begin
open(res,4,<:nimtrack:>,0); inrec(res,128);
N:= res(1) shift (-24) extract 24; p:= res(1) extract 24;
nt:= res(2) shift (-12) extract 12;
nf:= res(2) extract 12;
for i:=1 step 1 until 12 do head(i):= res(i+2)
end;
n/,l2,r/ i:= 1;/
k:= if nt>10 then nt else 10;/,l1,d,l2,r/:nt/:k/
l1,r/a(1:N,1:n+1),//,l./read/,i/
if time>0 then begin
closeres:= outmedium(res);
/,l./127 else 124/,r/127/112/
l3,i?
end else begin
B:= false add (res(2) shift (-36) extract 12);
continue:= false add (res(2) shift (-24) extract 12);
yzero:= false;
S:= Sold:= res(15);
i:= nt+nt+p+2; k:= (i+3)//4; m:= k*4-i; j:= k+15;
if m<>0 then begin m:= -m*12; res(j):= res(j) shift (-m) end;
for i:=p+2 step -1 until 1 do begin
space(i):= res(j) shift m extract 12; m:= m-12;
if m<-36 then begin j:= j-1; m:= 0 end end;
for i:=nt step -1 until 1 do begin
cif(i):= res(j) shift m extract 12; m:= m-12;
if m<-36 then begin j:= j-1; m:= 0 end end;
for i:=nt step -1 until 1 do begin
no(i):= res(j) shift m extract 12; m:= m-12;
if m<-36 then begin j:= j-1; m:= 0 end end;
k:= k+15;
for i:=p+2 step -1 until 1 do layout(i):= res(k+i);
k:= k+p+2;
for i:=1 step 1 until nt do pm(i):= res(k+i);
k:= k+nt;
for i:=1 step 1 until n do
for j:=1 step 1 until n do begin
if k=128 then begin k:= 0; inrec(res,128) end;
k:= k+1; A(i,j):= res(k)
end;
for i:=1 step 1 until N do
for j:=1 step 1 until p+2 do begin
if k=128 then begin k:= 0; inrec(res,128) end;
k:= k+1; point(i,j):= res(k)
end;
close(res,true);
closeres:= outmedium(res);
end;
i:= 1;
if continue then
write(res,<:<12>:>,nl,3,string head(increase(i)),nl,3);
systime(1,0,timebase); stoptime:= abs time; time:= 0;
l:= (N-1)//(128//(n+1))+1;
open(z,4,<:atrack:>,0); i:= monitor(42,z,0,exp);
if i=0 and exp(1)<>l then begin
if monitor(48,z,0,exp)>0 then goto slut; i:= 2 end;
if i<>0 then begin
for i:=2 step 1 until 10 do exp(i):= 0; exp(1):= l;
monitor(40,z,0,exp)
end;
?,l./<:Error/,l-2,d3,i/
forceout(res);
/,l./Cor/,r/nl,1/nl,2/,
l./:x:/,r/<:x:>,<<d>,j/case j of (<:m :>,<:J":>,<:k":>,<:J':>,<:k':>)/,
l./<:obs/,r/+2/-2/,l3,r/-6/-10/
l2,i/
forceout(res);
/,l./funclinda/,r/func/nim/,l./a(m,j)/,i/
outrec(z,n+1);
/,g2/a(m,/z(/,l./continue:=/,i/
array a(1:m,1:n+1);
setposition(z,0,0);
for i:=1 step 1 until m do begin
inrec(z,n+1);
for j:=1 step 1 until n+1 do a(i,j):= z(j)
end;
close(z,true);
/,l./Sold>S/,r/S or/S*1.01 or/,l2,i?
y:= time; systime(1,timebase,time);
if time-y>stoptime-time or -,continue then begin
open(z,4,<:nimtrack:>,0);
l:= 17+(nt+nt+p+5)//4+p+nt+n*n+N*(p+2);
j:= (l+127)//128;
i:= monitor(42,z,0,exp);
if i=0 and j<>exp(1) then begin
monitor(48,z,0,exp); i:= 2 end;
if i<>0 then begin
for i:=2 step 1 until 10 do exp(i):= 0;
exp(1):= j; monitor(40,z,0,exp); monitor(50,z,17,exp);
end;
outrec(z,128); z(1):= 0.0 shift 24 add N shift 24 add p;
z(2):= 0.0 shift 12 add (if B then 1 else 0) shift 12 add
(if continue then 1 else 0) shift 12 add nt shift 12 add nf;
z(15):= S;
for i:= 1 step 1 until 12 do z(i+2):= head(i);
j:= 0; k:= 16;
for i:=1 step 1 until nt do begin
if j=4 then begin j:= 0; k:= k+1 end;
z(k):= z(k) shift 12 add no(i); j:= j+1
end;
for i:=1 step 1 until nt do begin
if j=4 then begin j:= 0; k:= k+1 end;
z(k):= z(k) shift 12 add cif(i); j:= j+1
end;
for i:=1 step 1 until p+2 do begin
if j=4 then begin j:= 0; k:= k+1 end;
z(k):= z(k) shift 12 add space(i); j:= j+1
end;
for i:=p+2 step -1 until 1 do z(k+i):= layout(i);
k:= k+p+2;
for i:=1 step 1 until nt do z(k+i):= pm(i);
k:= k+nt;
for i:=1 step 1 until n do
for j:=1 step 1 until n do begin
if k=128 then begin k:=0; outrec(z,128) end;
k:= k+1; z(k):= A(i,j)
end;
for i:=1 step 1 until N do
for j:=1 step 1 until p+2 do begin
if k=128 then begin k:= 0; outrec(z,128) end;
k:= k+1; z(k):= point(i,j)
end;
close(z,true);
if time-y>stoptime-time then begin
l:= 0; k:= psubmit(<:gocont:>,l);
if k=0 then write(res,<:Continued in job nr. :>,<<dddd>,l,nl,1);
closeout; goto slut end
end;
if continue then open(z,4,<:atrack:>,0);
?,l./l:= 14+nt/,r/14+/1+/,r/+(p+1)*N//,l10,d3,i/
res(1):= 0.0 shift 12 add n;
/,l2,r/+14/+1/
l./A(/,r/i,j)/i,j)*S;/,l2,d7,f
i r
rename funcfit.nimfit
permanent nimfit.17
▶EOF◀