|
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: 6912 (0x1b00) Types: TextFile Names: »bsusetx «
└─⟦110021343⟧ Bits:30007476 RC8000 Backup tape fra HT's bus-radio system └─⟦a957ba283⟧ └─⟦this⟧ »bsusetx «
bsuse=set 1 disc1 scope user bsuse bsuse=algol connect.no begin message bsuse 920115/cl side 1; <* Program bsuse skriver en liste over interne processer med bs-claim på en udvalgt disc. Kald: ===== 1 1 (<udfil>=) bsuse (<doknavn>) 0 0 Parameter <doknavn> udeladt giver udskrift for 'første' disc. Kaldte procedurer: ================== claimproc, slices, fpparguppe, closefp, openfp. Ændringshistorie: ================= 920115 cl: Original version. *> \f message bsuse 920115/cl side 2; integer bsant,bsmax; integer array ia(1:20); system(5,92,ia); bsant:= (ia(3)-ia(1))//2; bsmax:=bsant-1; begin integer int_ant, første_int, adr, int_størrelse, noofrecs, result, explanation, reclgd, ant, nr, sadr, maxadr, prevtop, tilstand, i, j, k; integer field parent, faddr, taddr, pdesc, buf, area, status, prio, internals, slicelgd, reladr; integer array bs(1:6),typ(0:0), keydescr(1:2<*noofkeys*>,1:2), param(1:7), proc(-2:62+(8*bsant)), wrkstore(1:10), tekst,ia(1:20); integer array field bsclaim, chain, iaf; long array docnavn(1:2), hostnavn(1:2), filnavn(1:2), rec(1:15), procs(1:15*24); long field starttid, cpu; long ll; long array field laf, doc, navn; real r, t, eof; real array names(1:6); real array field raf; zone zu, zp, z1, z2(128,1,stderror); \f message bsuse 920115/cl side 3; parent:=2; faddr:=4; taddr:=6; pdesc:=8; navn:=8; buf:=18; area:=20; cpu:=24; starttid:=28; status:=30; prio:=32; internals:= 34; bsclaim:= 34; reclgd:= bsclaim+16; doc:=0; slicelgd:=10; reladr:=12; hostnavn(1):=hostnavn(2):=long<::>; iaf:=2; open(z1,0,<:jobhost:>,0); close(z1,true); if monitor(42,z1,0,ia)=0 then tofrom(hostnavn,ia.iaf,8); ll:=0; iaf:=laf:=raf:=0; i:=fppargruppe(1,typ,docnavn.iaf); if i<>1 then docnavn(1):=docnavn(2):=0; i:=-1; repeat i:=i+1; claimproc(0,i,bs.doc,0,0,bs.slicelgd); slices(bs,0,ia,tekst); bs.reladr:=tekst(1); until i=bsmax or docnavn(1)=0 or (docnavn(1)=bs.doc(1) and docnavn(2)=bs.doc(2)); if docnavn(1)<>0 and (docnavn(1)<>bs.doc(1) or docnavn(2)<>bs.doc(2)) then system(9,0*write(out,"nl",1,<:*** bsuse: ukendt dokument :>,docnavn), <:<'nl'>:>); chain:= bs.reladr-2; system(5,78,ia); intant:=(ia(2)-ia(1))//2; første_int:=ia(1); wrkstore(1):=28; wrkstore(2):=1; open(zp,4,<::>,0); i:=monitor(40)create entry:(zp,0,wrkstore); if i>0 then system(9,i+0*write(out,"nl",1,<:*** bsuse: create entry :>, case i of (<::>,<:catalog fejl:>,<::>,<:ingen bs-ressourcer:>,<::>,<::>, <:intet maincatalog:>)),<:monitor40:>); openfp(zu,0); \f message bsuse 920115/cl side 4; begin integer array intprocref(1:intant); system(5,første_int,intprocref); int_størrelse:=(intprocref(2)-intprocref(1)); ant:=0; for i:=1 step 1 until intant do begin adr:=intprocref(1)-4+intstørrelse*(i-1); iaf:=-6; system(5,adr,proc.iaf); if testbit(2) then begin write(zu,"nl",2,<:PROCESBESKRIVELSE:>,i,"nl",2); skrivhele(zu,proc.iaf.raf,intstørrelse,0); end; iaf:=0; rec.parent:=proc(25); <*parent descr addr*> if proc(50)<proc(11) then begin rec.faddr:=proc(11); <*første addr*> rec.taddr:=proc(12); <*top addr*> end else begin rec.faddr:=proc(50); <*første addr*> rec.taddr:=proc(51); <*top addr*> end; rec.pdesc:=adr+4; <*proc descr addr *> rec.buf:=proc(13)shift (-12); rec.area:=proc(13) extract 12; rec.cpu:=proc.laf(14); rec.starttid:=proc.laf(15); rec.status:=proc(5); rec.prio:=proc(15); rec.internals:= proc(14) shift (-12); tofrom(rec.bsclaim,proc.chain,16); raf:=0; laf:=0; tofrom(rec.navn,proc.laf,8); if rec.iaf(5)<> 0 and rec.iaf(2)>8 then begin if testbit(1) then begin write(zu,"nl",2,<:PROC-REC:>,i,"nl",2); skrivhele(zu,rec.raf,reclgd,0); end; open(z2,0,rec.navn,0); close(z2,true); j:=monitor(4,z2,0,ia); if j=0 and rec.faddr>8 then rec.status:=0; if rec.navn.iaf(1)=0 then rec.navn.iaf(1):='.' shift 8 add '.' shift 8 add '.'; outrec6(zp,reclgd); tofrom(zp,rec,reclgd); ant:=ant+1; end; end; end; setposition(zp,0,0); \f message bsuse 920115/cl side 5; param(1):=1;<*blocklength*> param(2):=1;<*clear input*> param(3):=0; param(4):=1;<*fixedlength*> param(5):=reclgd;<*rec.length*> param(6):=2;<*nooofkeys*> param(7):=1;<*runtime alarm*> keydescr(1,1):= +2;<*integer*> keydescr(1,2):=faddr; keydescr(2,1):= +2; keydescr(2,2):=taddr; for i:=1 step 1 until 6 do names(i):=real<::>; raf:=2; getzone6(zp,ia); tofrom(names,ia.raf,8); noofrecs:=ant; eof:=real<::>; mdsortproc(param,keydescr,names,eof,noofrecs,result,explanation); \f message bsuse 920115/cl side 6; raf:=8; tofrom(filnavn,names.raf,8); open(z1,4,filnavn,0); <* 123456789012345678901234567890123456789012345678901234567890123456789012345678 xxxxxxxxxxx T E M P L O G I N P E R M PROCES SLICES SEGMTS ENTR SLICES SEGMTS ENTR SLICES SEGMTS ENTR *> write(zu,"sp",11, <: T E M P L O G I N P E R M:>, "nl",1); write(zu,<:PROCES_____:>, <:SLICES SEGMENTS ENTR SLICES SEGMENTS ENTR SLICES SEGMENTS ENTR:>, "nl",1); write(zu,"-",79,"nl",1); prevtop:=8; sadr:=maxadr:=0; for i:=1 step 1 until ant do begin inrec6(z1,reclgd); tofrom(rec,z1,reclgd); if rec.navn(1) = long <:s:> then <*s*> begin sadr:=rec.pdesc; maxadr:=rec.taddr; end; if i=2 then prevtop:=rec.faddr; if rec.status<>0 then begin j:=write(zu,rec.navn); write(zu,"sp",12-j); for k:= 0,2,3 do write(zu,<< dddd>,rec.bsclaim(k*2+2), << dddddddd>,rec.bsclaim(k*2+2)*bs.slicelgd, << ddddd>,rec.bsclaim(k*2+1),if k<3 then <: :> else <::>); write(zu,"nl",1); prevtop:=rec.taddr; end; end;<* for i:=1 step 1 until ant *> monitor(48)remove entry:(zp,0,ia); monitor(48)remove entry:(z1,0,ia); write(zu,"-",79,"nl",1); write(zu,"sp",12-write(zu,hostnavn),<:d.:>,<<zddddd>,systime(5,0,r), ".",1,r,"sp",4,bs.doc,<: slicelength=:>,<<d>,bs.slicelgd,"nl",1); closefp(zu,true); trapmode:=1 shift 10; message bsuse 920115/cl slut; end; end ▶EOF◀