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