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