DataMuseum.dk

Presents historical artifacts from the history of:

RC3500

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

See our Wiki for more about RC3500

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦56f40bbc1⟧ TextFileVerbose

    Length: 2304 (0x900)
    Types: TextFileVerbose
    Names: »dumplogtxt«

Derivation

└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
    └─⟦72244f0ef⟧ 
        └─⟦this⟧ »dumplogtxt« 

TextFileVerbose

begin
   integer segm_pr_block;
   segm_pr_block := l{s_fp_tal(<:segm:>);
   begin
      zone tape(128*segm_pr_block,1,tapeerror),zin(128*segm_pr_block,1,stderror);
      real array tapename(1:2);
      integer log_no,i,max_block;
      long min_time;
      
      procedure tape_error(z,s,b);
      zone z;
      integer s,b;
      begin
         if s shift (-22) extract 1 = 1 then error(1) else
         if s shift (-7) extract 1 = 1 then error(2) else stderror(z,s,b);
         close(z,true);
         goto after_tape_error;
      end tapeerror;
      
      procedure error(no);
      integer no;
      begin
         write(out,"nl",1,case no of (
         <:paritetsfejl p} b}nd:>,
         <:"worddefect" p} b}nd:>),
         "sp",4,<:dumplog ikke udf|rt:>,"nl",1);
      end error;
      
      l{s_fp_text(<:name:>,tape_name);
      log_no := l{s_fp_tal(<:logno:>);
      max_block := l{s_fp_tal(<:maxblock:>);
      i := 1;
      open(tape,18,string tape_name(increase(i)),0);
      setposition(tape,1,0);
      open(zin,4,case log_no of (<:disclog1:>,<:disclog2:>),0);
      inrec6(zin,max_block * 4);
      min_time := extend (-1) shift (-1);
      
      for i := 1 step 1 until max_block do
      begin
         if long(zin(i)) < min_time then
         min_time := long(zin(i));
      end;
      
      outrec6(tape,128 * 4 * segm_pr_block);
      tofrom(tape,zin,max_block * 4);
      
      repeat
         invar(zin);
         outvar(tape,zin)
      until zin(2) = real(extend (-1));
      
      close(zin,true);
      setposition(tape,-1,0);
      close(tape,true);
      
      i := 1;
      write(out,"nl",1,string tape_name(increase(i)),
      <: indeholder logning fra :>,min_time,"nl",1);
   end;
after_tape_error:
end
«eof»