|
|
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: »katalog«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦this⟧ »katalog«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦this⟧ »katalog«
begin <*program, niveau 1*>
integer lbrug-inf-kons;<*den samlet længde målt i ord af*>
<*de informationskonstanter brugeren*>
<*kan ændre*>
integer lbrug-kpost-felt;<*antal felt-typer som brugeren kan*>
<ændre i en katalogpost*>
integer anttilstande; <*antal tilstande i aktionstabellen*>
integer antinputordre;<*antal inputordre i aktionstabellen*>
<*index til brug ved opslag, efter felter i kpfl arrayet*>
integer type-index, titel-index,for-index,bib-index,res-index;
integer ankomst-index, journal-index, stikord-index, beskriv-index;
integer ord-index, søgemængder-index, mængdestr-index;
procedure init;
begin
integer i,j,k,n;
<*indlæs fil-information*>
open(filinf,4,brugerfil,0);
setposition(filinf,0,0);
inrec6(filinf, lfilinf*4);
nykatstart:=gfkatstart:=filinf.kikatstart;
nykatstr:=gfkatstr:=filinf.kikatstr;
nyinvstart:=gfinvstart:=filinf.kiinvstart;
for i:=1 step 1 until lbrug-inf-kons do
begin
k-ny-fl(i):=k-gf-fl(i):=filinf.kiarraystart(i);
end;
close(filinf,true);
ledigkatpost:=gfkatstr+1;
<*initialisering af katalogpost*>
slettet:=i:=1;
udvidet:=i:=i+1;
mor:=i:=i+1;
i:=i+1;
moradr:=i:=i+2;
barnadr:=i:=i+2;
stiktegnantal:=i:=i+2;
k:=kpostarraystart:=1;
j:=1;
for i:=1 step 1 until lbrug-kpost-felt do
begin
n:=1;
if i:=for-index then begin n:=3; end;
j:=j+n*k-gf-fl(i);
k:=k+n*k-gf-fl(i);
kpost(i):=j-n*k-gf-fil(i);
end;
dobbeltordlængde(gf-ktp-længde,k);
<*udregning af konstanter til brug ved læsning og*>
<*skrivning af katalogposter*>
post-skriv-læs-konstanter(gf-ktp-længde,gf-ktp-antal,gf-ktp-seg);
<*initialiserer værdilisten*>
open(værinf,4,værdifil,0);
setposition(værinf,0,0);
inrec6(værinf, lværinf*4);
vfværførst:=værinf.viførst;
vfværantal:=værinf.viantal;
close(værinf,true);
<*initialisering af poster i værdifilen*>
vford:=i:=0;
i:=i+4*gford;
vfantal:=i:=i+2;
vfref:=i:=i+2;
dobbeltordlængde(vf-vær-længde,i);
post-skriv-læs-konstanter(vf-vær-længde,vf-vær-antal,vf-vær-seg);
end;
procedure skriv-ny-ga-katpost(nr,buffer);
integer nr;
long array buffer;
<*skriver en katalog-post på bruger filen eller på den*>
<*temporere nye brugerfil. Proceduren bruges ved udskrivning*>
<*af ny moderposter og postudvidelser*>
begin
if nr < gfkatstr then
begin
<*posten skal lægges i brugerfilen*>
skriv-katalogpost(nr,gfkatstart, buffer);
end;
else
begin
<*posten ligger i ny brugerfil*>
skriv-nykatalogpost(nr-gfkatstr,0,buffer);
end;
end;
procedure indsæt-i-array(resultal,værdiarray,værlængde);
value reslængde, værdiarray,værlængde;
long array værdiarray;
integer værlængde;
<*tegnet i hvert enkelt finis
wrk000074=finisf wrk000074
i job1
finis
81 11 17.13 08
▶EOF◀