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

⟦9e4ac0146⟧ TextFile

    Length: 2304 (0x900)
    Types: TextFile
    Names: »tsearchcon«

Derivation

└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦162d2eb5b⟧ »talgprog« 
            └─⟦this⟧ 
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
    └─⟦b2ec5d50f⟧ 
        └─⟦this⟧ »tsearchcon« 

TextFile

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