|
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◀