|
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: 3840 (0xf00) Types: TextFile Names: »tdiscusstat«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦this⟧ »tdiscusstat«
lookup discusstat if ok.yes (scope temp discusstat clear temp discusstat) discusstat=set 1 discusstat=algol 1980-08-07 begin boolean minlist,list,found,docname,tlb,tub; integer lb,ub,segm,i,j,k,char,res,minsiz,maxsiz,elb,eub,key; integer array field rec,tail; long array field doc,name; integer array bases(1:8),t(1:10),ds,dsl,entries,segments,slices(0:6), totentries(0:6); long array names(0:6); array field d; long array tname,disc,ename,fname,odoc(1:3); rec:=0; d:=0; name:=6; tail:=14; doc:=16; ds(0):=0; dsl(0):=0; names(0):=long <:total:>; ds(1):=1004; dsl(1):=1; names(1):=long <:drum:>; ds(2):=1004; dsl(2):=1; names(2):=long <:drum1:>; ds(3):=14*1845; dsl(3):=14; names(3):=long <:disc:>; ds(4):=14*1845; dsl(4):=14; names(4):=long <:disc1:>; ds(5):=14*1845; dsl(5):=14; names(5):=long <:disc2:>; ds(6):=63*1656; dsl(6):=63; names(6):=long <:disc3:>; for i:=0 step 1 until 6 do entries(i):=segments(i):=slices(i):= totentries(i):=0; lookup_tail(<:catalog:>,t); segm:=t(1); readbfp(<:list:>,list,false); readifp(<:min:>,minsiz,0); minlist:=readifp(<:list:>,minsiz,0); readifp(<:max:>,maxsiz,maxinteger-1); docname:=readsfp(<:doc:>,disc.d,<::>); readifp(<:key:>,key,3); connectcuri(<:catalog:>); setposition(in,0,0); ub:=maxinteger-1; if readifp(<:base:>,lb,-maxinteger) then readifpnext(fpnr,ub); if list then connectlso; for segm:=segm step -1 until 1 do begin inrec6(in,512); for rec:=0 step 34 until 512-34 do begin if in.rec(1)<>-1 then begin elb:=in.rec(2); eub:=in.rec(3); if elb>=0 and lb<=0 then tlb:=true else if elb<0 and lb>=0 then tlb:=false else tlb:=lb<=elb; if eub<=0 and ub>=0 then tub:=true else if eub>0 and ub<0 then tub:=false else tub:=eub<=ub; if tlb and tub then begin if in.rec(1) extract 3=key and (-,docname or disc(1)=in.rec.doc(1)) then begin totentries(0):=totentries(0)+1; if list and in.rec.tail(1)>=minsiz and in.rec.tail(1)<=maxsiz then write(out,"nl",1,"*",1,true,12,in.rec.name, <:=set :>,<<dddd >,in.rec.tail(1),true,8,in.rec.doc); found:=false; i:=0; repeat i:=i+1; found:=in.rec.doc(1)=names(i); until found or i=6; if found then begin totentries(i):=totentries(i)+1; if in.rec.tail(1)>minsiz and in.rec.tail(1)<=maxsiz then begin entries(0):=entries(0)+1; entries(i):=entries(i)+1; j:=in.rec.tail(1); segments(0):=segments(0)+j; segments(i):=segments(i)+j; k:=if dsl(i)=1 then j else (j-1)//dsl(i)+1; if minlist then write(out,"nl",1,"*",1,true,12, in.rec.name,<:=set:>,<< dddd>,in.rec.tail(1), true,7,in.rec.doc); slices(i):=slices(i)+k; end found; end size>0; end key>=3; end base; end entry; end record; end segments; write(out,"nl",4,<:usage of drums and discs for permanent storage:>); write(out,"nl",1,<:catalog size :>,t(1),<: segments :>,t(1)*15,<: entries:>); write(out,"nl",1,<:base interval :>,<<-dddddddd>,lb,<:::>,ub); write(out,"nl",1,<:segmentsize interval :>,<<dddddddd>,minsiz+1,<:::>,maxsiz); write(out,"nl",1,<:document:>,"sp",4,"sp",5,<:entries:>, "sp",7,<:areas:>,"sp",4,<:segments:>, "sp",6,<:slices:>,"sp",4,<:occupied:>); for i:=if docname then 1 else 0 step 1 until 6 do begin if totentries(i)>0 then write(out,"nl",1,true,12,string names(i), << dddddd>,totentries(i),entries(i), segments(i)); if slices(i)>0 then write(out,<< dddddd>,slices(i), slices(i)*dsl(i)); end; write(out,"nl",2); if fpout then closeout; end; scope project discusstat discusstat doc.disc3 mode list.no 15.no o c ▶EOF◀