|
|
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: »tcatstat«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦393858ad9⟧ »tsysprog«
└─⟦this⟧
;ali
catstat=set 60
lookup catlist
if ok.yes
catstat=algol list.yes
catstat=algol
catstat
; 16 3 74
begin
zone cat(2*128,2,stderror);
integer field segm,head;
integer array field tail;
real r,time;
integer array ctail(1:10),sort(1:1025),catkey,catent,catarea(0:3);
integer i,j,k,cats,s,cno,tno,st,cmax,entries,smax,key,
totsegm,sts,sa,so,slicel;
open(cat,4,<:catalog:>,0);
inrec(cat,128);
lookuptail(<:catalog:>,ctail);
cats:=ctail(1);
cleararray(sort);
readifp(<:smax:>,smax,1024);
if smax>1024 or smax<1 then smax:=1024;
totsegm:=entries:=0;
cleararray(catkey);
cleararray(catent);
cleararray(catarea);
readifp(<:sts:>,sts,20);
readifp(<:slicelength:>,slicel,14);
cmax:=50;
for cno:=2 step 1 until cats do begin
tail:=14; head:=2;
for tno:=1 step 1 until 15 do begin
key:=cat.head extract 3;
s:=cat.tail(1);
if s>0 and key<4 then
begin
catkey(key):=catkey(key)+s;
catarea(key):=catarea(key)+1;
end else if key<4 then catent(key):=catent(key)+1;
if key<>1 and key>0 and cat.head>0 then begin
entries:=entries+1;
if s>0 then begin
totsegm:=totsegm+s;
if s<=smax then sort(s):=sort(s)+1 else
sort(1025):=sort(1025)+1;
end;
end;
tail:=tail+34; head:=head+34;
end;
if cno<cats then inrec(cat,128);
end;
write(out,<:<12><10>catalog statistics, permanent entries<10><10>:>);
write(out,<:total no of bs-entries :>,entries,<:<10>:>);
systime(1,0,time);
write(out,<< dd dd dd>,systime(4,time,r),r);
write(out,<:<10>:>);
sa:=0;
for i:=1 step 1 until smax do begin
s:=sort(i);
if s>0 then begin
if s//sts>cmax then st:=cmax else st:=s//sts;
sa:=sa+s*i;
j:=write(out,<:<10>s=:>,<<ddd>,i,<: :>,false add 42,st);
write(out,false add 32,cmax-st+2,<<dddd>,s,<:= :>,s*i,<: , :>,sa);
end;
end;
write(out,<:<10>greater than :>,smax,<: = :>,sort(1025),
<:<10>total permanent segments :>,totsegm,<:<10>:>);
sa:=0;
for i:=1 step 1 until smax do
begin
s:=sort(i);
if s>0 then
begin
sa:=sa+(i//slicel+(if i mod slicel=0 then 0 else 1))*slicel*s;
end;
end loop;
write(out,<:<10>with slicelength :>,slicel,<: total permanet segments :>,
sa);
outendcur(12);
for key:=0 step 1 until 3 do
write(out,<:<10>key :>,<<dd>,key,<: = :>,<<dddd>,catkey(key),
<: segments, :>,catarea(key),<: area entries:>,
catent(key),<: other entries:>);
s:=sa:=so:=0;
for i:=0 step 1 until 3 do
begin
s:=s+catkey(i);
sa:=sa+catarea(i);
so:=so+catent(i);
end;
write(out,<:<10>total used segments :>,s,
<:<10>total used area entries :>,sa,
<:<10>total used other entries :>,so);
outendcur(10); outendcur(12);
end;
catstat
;1024
▶EOF◀