|
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: 3072 (0xc00) Types: TextFile Names: »ramsavex«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦this⟧ »ramsavex«
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◀