|
|
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: 3840 (0xf00)
Types: TextFile
Names: »vistx «
└─⟦110021343⟧ Bits:30007476 RC8000 Backup tape fra HT's bus-radio system
└─⟦a957ba283⟧
└─⟦this⟧ »vistx «
vis=set 1
vis=algol connect.no
begin
message vis side 1. cl 920220;
<* vis udskriver en eller flere angivne katalogindgange
kald:
*
(vis/wis) (<katalogindgangsnavn>)
1
hvis programmet kaldes under navnet 'wis' skrives tail som 24-bit integers.
procedurekald:
fpparam,
skrivindg,
*>
\f
message vis side 2;
begin
integer array navn1,navn,tekst(1:4),ia,ib(1:32);
integer array field indgang;
integer afsæt, katstørrelse,antalnøgler,partitioner,segmno,
værdi,værdi1,sep,sep1,nr,i,j,j1,k;
integer field ant_indg;
boolean wis, fundet;
boolean array field baf;
long nøglesum;
long array prognavn(1:2), linie(1:30);
long array field enavn,laf0,laf;
real array field raf;
zone z(1,1,stderror),zcat(128,1,stderror);
afsæt:=1;
i:=system(4,1,prognavn);
if i <> (6 shift 12 +10) then begin afsæt:=0;i:=system(4,0,prognavn);end;
wis:=prognavn(1)=long<:wis:>;
\f
message vis side 3;
open(zcat,4,<:catalog:>,0);
monitor(42,zcat,0,ia);
katstørrelse:=ia(1);
antalnøgler:=ia(8);
partitioner:=ia(1)//ia(8);
ant_indg:=512;
enavn:=6;
nr:=afsæt+1;
laf0:=laf:=raf:=0;
baf:=1;
trapmode:=1 shift 10;
for j:=fpparam(nr,værdi,navn,sep) while j extract 12 <> 1 do
begin
nr:=nr+1;
j1:=fpparam(nr,værdi1,navn1,sep1);
<*
write(out,<:<10>!!! navn,sep,navn1,sep1: :>,
navn.laf,sep,sp,2,navn1.laf,sep1);
*>
if sep<>61<*=*> and sep<>46<*.*> then
begin
if j extract 12<> 4 <*navn*> then
write(out,<:*** vis param: :>,case j extract 12 of
(<:empty:>,<:separator:>,<:integer:>),
<< bdd>,case j extract 12 of (0,sep,værdi),nl,1)
else
begin
integer i, j, k, nr, ant;
<* j:=hashnøgle(navn.laf0,katstørrelse); *>
nøglesum:=navn.laf0(1)+navn.laf0(2);
nøglesum:= nøglesum shift (-24) + nøglesum extract 24;
nøglesum:=nøglesum extract 24 +
(nøglesum shift (-12) shift 36)//(extend 1 shift 36);
nøglesum:=nøglesum shift 24 shift (-24);
segmno:=nøglesum mod katstørrelse;
j:=segmno mod antalnøgler;
setposition(zcat,0,segmno);
inrec6(zcat,512);
ant:=zcat.ant_indg;
fundet:=false;
nr:=k:=0;
while nr<ant do
begin
indgang:=k*34;
if zcat.indgang(1) shift(-3) extract 9 = j then
begin
if zcat.indgang.enavn(1)=navn.laf0(1) and
zcat.indgang.enavn(2)=navn.laf0(2) then
begin
skrivindg(linie,zcat.indgang,0,wis);
put_char(linie,81,0,6);
write(out,linie,"nl",1);
fundet:=true;
end;
nr:=nr+1;
end;
k:=k+1;
if k>15 then
begin
k:=0;
getposition(zcat,0,i);
if i=katstørrelse-1 then setposition(zcat,0,0);
inrec6(zcat,512);
end;
end;
if not fundet then
write(out,<:*** vis: :>,navn,<: ikke fundet<10>:>);
end;
end;
end;
end;
end;
▶EOF◀