|
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: 2304 (0x900) Types: TextFile Names: »tsearchcon«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦162d2eb5b⟧ »talgprog« └─⟦this⟧ └─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ. └─⟦b2ec5d50f⟧ └─⟦this⟧ »tsearchcon«
(mode list.yes searchcon=algol connect.no searchcon mode list.no) 1980-10-24 begin boolean list,search; integer lb,ub,segm,i,j,char,content; integer array field rec; long array field doc,name; integer array bases(1:8),t(1:10); array sname(1:3); procedure listcon(lib,list,search,name); boolean list,search; long array lib; array name; if content=10 then begin integer field segm,w; array field sn; long array field n,doc; integer array field t; integer i,j,entry,entries; zone cat(128,1,stderror); open(cat,4,lib,0); w:=512; inrec6(cat,512); entries:=cat.w; sn:=n:=6; doc:=16; segm:=16; t:=14; setposition(cat,0,0); for entry:=1 step 1 until entries do begin inrec6(cat,34); i:=1; if list then begin write(out,"nl",1,"sp",4,true,12,cat.n, <<ddddd>,cat.segm); outshortcl(out,cat.t(6)); end else if search then begin if cat.sn(1)=name(1) then begin if cat.sn(2)=name(2) then begin write(out,"nl",1,true,12,cat.n, <<ddddd>,cat.segm); outshortcl(out,cat.t(6)); write(out,<: on :>,true,12,lib); end name part 2; end name part 1; end search; end entry; close(cat,true); end listcon; rec:=0; name:=6; doc:=16; lookup_tail(<:catalog:>,t); segm:=t(1); readifp(<:content:>,content,10); readbfp(<:list:>,list,false); readsfp(<:search:>,sname,<::>); readinfp(sname,1); search:=sname(1)<>real <::> or fpinareas>0; connectcuri(<:catalog:>); setposition(in,0,0); system(11,0,bases); lb:=bases(5); ub:=bases(6); 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 if lb=in.rec(2) and ub=in.rec(3) then begin if in.rec(16)shift (-12) extract 12=content and in.rec(1) extract 3>2 then begin if -,search then begin write(out,"nl",1,true,13,in.rec.name,true,6,in.rec(8), true,12,in.rec.doc); outshortcl(out,in.rec(6+7)); end; if list or search then listcon(in.rec.name,list,search,sname); end content; end user base; end entry; end record; end segments; if fpout then closeout; end; ▶EOF◀