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

⟦dfcf25505⟧ TextFile

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

Derivation

└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦this⟧ »ramsavex« 

TextFile

clear user ramsave
ramsave=set 1 disc5
scope user ramsave
ramsave=algol list.no
\f


RAMAN SAVESYSTEM  program: ramsave

begin
  integer i,j,s,nsegm,tnr,efil,sfil,fil,bnr,b,ab;
  real time,r;
  boolean closeres;
  integer array tail(1:10);
  long array navn(1:2);
  array text(1:12);
  zone int,MAG(128,1,stderror),res(128,1,stderror);



  closeres:= outmedium(res);
  lookuptail(<:ramnr:>,tail);
  efil:=tail(8);  sfil:=tail(10)-1;
  tnr:=tail(9)-1; bnr:=tnr//1000+1;


  open(MAG,4 shift 12 + 18,<:ramtape:>,0); setposition(MAG,0,0);
  inrec(MAG,128);
  if MAG(1)=444 and MAG(2)=444 and MAG(3)=444 then
  begin if MAG(4)<>bnr then
        begin write(out,<:*forkert baand:>);
              goto SLUT;
        end;
  end;

  setposition(MAG,efil,0); inrec(MAG,128);
  if MAG(1)=666 and MAG(2)=666 and MAG(3)=666 then
  begin write(out,<:OK:>,false add 101); setposition(out,0,0);
  end
  else
  begin write(out,<:efil ikke fundet:>); setposition(out,0,0);
        goto SLUT;
  end;

  for fil:=efil step 1 until sfil do
  begin setposition(MAG,fil,0);
ramng(fil,navn,1);
        if lookuptail(navn,tail)<>0 then 
        begin outrec(MAG,128); 
              MAG(21):=fil; MAG(22):=tnr;
              for s:=1 step 1 until 20 do MAG(s):=-1;
              MAG(16):=2;
              goto NYOMR;
        end;
        nsegm:= tail(1);
        open(int,4,navn,0);
        for j:= 1 step 1 until nsegm do
        begin inrec(int,128); outrec(MAG,128);
              for s:= 1 step 1 until 128 do MAG(s):= int(s) 
        end;
        close(int,true);
NYOMR:
  end fil;

  setposition(MAG,sfil+1,0); outrec(MAG,128);
  MAG(1):= MAG(2):= MAG(3):= 666; MAG(4):= bnr;
  systime(1,0,time); 
  write(res,false add 102,<:<12>:>,<:SAVE PÅ RAMAN-BÅND NR:>,<<ddd>,bnr); 
  write(res,<:     DATO:>,<<  dd dd dd>,systime(2,time,r));
  lookuptail(<:ramnr:>,tail);
  tail(8):=sfil+1;
  changetail(<:ramnr:>,tail);

  for fil:=efil step 1 until sfil do
  begin setposition(MAG,fil,0); inrec(MAG,128);
        b:=MAG(16); ab:=abs b;
        if ab=0 then ab:=1;
        case ab of begin
        begin write(res,false add 102,
              <<dddddd>,MAG(17),
              <:-:>,
              false add (64+bnr),1,
              case cif(MAG(21)) of (<:00:>,<:0:>,<::>),
              case cif(MAG(21)) of (<<d>,<<dd>,<<ddd>),MAG(21),
              <<  ddd>,MAG(13),
              <<  d>,  MAG(14),
              <<  ddd>,MAG(15),
              case b+2 of(<: p:>,<: -:>,<: d:>));
              for j:=1 step 1 until 12 do text(j):=MAG(j);
              write(res,false add 32,2,string inc(text));
        end b=1;
        begin write(res,false add 102,<:000000-:>,
              false add (64+bnr),1,
              case cif(MAG(21)) of(<:00:>,<:0:>,<::>),
              case cif(MAG(21)) of(<<d>,<<dd>,<<ddd>),MAG(21),
              <:  indgangen findes ikke:>);
        end b=2;
        end case b;
  end fil;
  SLUT:setposition(MAG,0,0);
  close(MAG,false);
  write(res,false add 101);
  write(res,<:<12>:>,<:<25>:>);
  close(res,closeres);
end;

\f


▶EOF◀