DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦f954e49fe⟧ TextFile

    Length: 3072 (0xc00)
    Types: TextFile
    Names: »tcatstat«

Derivation

└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
    └─⟦b2ec5d50f⟧ 
        └─⟦393858ad9⟧ »tsysprog« 
            └─⟦this⟧ 

TextFile

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