|
|
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: 2304 (0x900)
Types: TextFile
Names: »claimproctx «
└─⟦110021343⟧ Bits:30007476 RC8000 Backup tape fra HT's bus-radio system
└─⟦a957ba283⟧
└─⟦this⟧ »claimproctx «
message procedure claimproc side 1. (hko,ar) 781101;
boolean procedure claimproc
(keyno,bsno,bsname,entries,segm,slicelength);
value keyno, bsno;
integer keyno,bsno,entries,segm,slicelength;
long array bsname;
<*
claimproc finder en proces's ledige resourcer på baggrundslageret.
parametrene har følgende betydning:
claimproc(return, boolean) true if bsno>=0 and bsno<=max bsno
and keyno is legal
else false. If claimproc is false then
all return parameters are zero.
keyno (call, integer) 0=temp
2=login
3=user/project
bsno (call, integer) main bsdevice is 0
bsname (return, long array 1:2) name of called device
entries (return, integer) no. of entries of key=keyno on called
device
segm (return, integer) no. of segm. of key=keyno on called
device
slicelength (return, integer) slicelength on called device
*>
\f
begin
own boolean init;
own integer bsdevices,firstbs,ownadr,monrel;
integer i;
long array field name;
integer array core(1:18);
if -,init then
begin
init:=true;
system(5,64,core);
monrel:=core(1) shift (-12); <*monitor release*>
system(5,92,core);
bsdevices:=(core(3)-core(1))//2;
firstbs:=core(1);
ownadr:=system(6,i,bsname);
end;
if bsno<0 or bsno>=bsdevices
or keyno<>0 and keyno<>2 and keyno<>3 then
begin
claimproc:=false;
goto exitclaim
end;
claimproc:=true;
begin integer array nametable(1:bsdevices);
name:=18;
system(5,firstbs,nametable);
system(5,nametable(bsno+1)-36,core);
if core(10)=0 then goto exitclaim;
bsname(1):=core.name(1); bsname(2):=core.name(2);
slicelength:=core(15);
system(5,ownadr+core(1),core);
if monrel<=8 then
begin
entries:=core(keyno+1) shift (-12);
segm:=core(keyno+1) extract 12 * slicelength;
end else
begin
entries:=core(2*keyno +1);
segm:=core(2*keyno + 2) * slicelength;
end;
end;
if false then
begin
exitclaim:
entries:=segm:=slicelength:=0;
bsname(1):=bsname(2):=0;
end;
end claimproc;
▶EOF◀