|
|
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: 15360 (0x3c00)
Types: TextFile
Names: »kkmonret«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦this⟧ »kkmonret«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦this⟧ »kkmonret«
(
message monchange date
skip 36.1
c=copy mess.no 1
mdef=edit mondef
skip 36.1
c=copy mess.no 1
mcentral=edit moncentral
skip 36.1
c=copy mess.no 1
mprocs=edit monprocs
skip 36.1
c=copy mess.no 1
mdisc=edit mondisc
skip 36.1
c=copy mess.no 1
mfpaline=edit monfpaline
skip 36.1
c=copy mess.no 1
mhost=edit monhost
skip 36.1
c=copy mess.no 1
mfpasub=edit monfpasub
skip 36.1
c=copy mess.no 1
mtabinit=edit montabinit
skip 36.1
c=copy mess.no 1
mprocfnc1=edit monprocfnc1
skip 36.1
c=copy mess.no 1
mprocfnc2=edit monprocfnc2
skip 36.1
c=copy mess.no 1
ms1=edit mons1
skip 36.1
c=copy mess.no 1
ms2=edit mons2
skip 36.1
c=copy mess.no 1
mcatinit=edit moncatinit
head cpu
end)
;$
;************mondef************
l./j0=j0+(:a110/
i/
c.(:a400>18a.1:)-1 ;kk
j0=j0+(:a110<2+4:)*a112
z.
c. -(:a400>18a.1:) ;kk
/
l./j0/,l1,i/
z.
/
f
;$
;************moncentral************
f
;$
;************monprocs************
l./b16:/,l./c29;118/
i/
c.(:a400>18.1:)-1 ;kk
e59 ; 118 : lookup bs claims
z.
c. -(:a400>18.1:) ;kk
/
l2,i/
z.
/
l./e39:/,l1
i/
c. (:a400>18.1:)-1 ;kk
e59: ;kk lookup bs claims
z.
/
f
;$
;************mondisc************
f
;$
;************monfpaline************
f
;$
;************monhost************
f
;$
;************monfpasub************
f
;$
;************montabit************
l./a110*2+2/
i/
c.(:a400>18a.1:)-1 ;kk
al w1 x1+a110*4+4;kk bs_claims rel addr:=bs_claims rel addr +(max key+1)*4
z.
c. -(:a400>18a.1:) ;kk
/
l2,i/
z.
/
l./a110*2+2/
i/
c.(:a400>18a.1:)-1 ;kk
al w1 x1+a110*4+4;kk bs_claims rel addr:=bs_claims rel addr +(max key+1)*4
z.
c. -(:a400>18a.1:) ;kk
/
l2,i/
z.
/
f
;$
;************monprocfnc1************
l./e80:/,l1
i/
c.(:a400>18.1:)-1 ;kk
e83: ;kk bs-claims.cur.proc to sender area
z.
/
f
;$
;************monprocfnc2************
l./m25:/,l-3,l./h4:/
i/
c.(:a400>18a.1:)-1 ;kk
h4: 0, r.a109*2 ;kk pseudo main cat bs_claims
z.
c. -(:a400>18a.1:) ;kk
/,l2,i/
z.
/
l./g0:/,l./a109/,l-1
i/
c.(:a400>18a.1:)-1 ;kk
rs. w1 h4. ;kk save entries
r. a109*2 ;kk
z.
c. -(:a400>18a.1:) ;kk
/
l3,i/
z.
/
l./g10:/,l./sow22/
i/
c.(:a400>18a.1:)-1 ;kk
ls w1 1 ;kk half word addr changed to integer addr
z.
/
l./bzw0x1+2/
i/
c.(:a400>18a.1:)-1 ;kk
rl w0 x1+4 ;kk w0:=current claim(claim addr);
z.
c. -(:a400>18a.1:) ;kk
/
l2,i/
z.
/
l./hsw0x1+2/
i/
c.(:a400>18a.1:)-1 ;kk
rs w0 x1+4 ;kk current claim(claim addr):=rest
z.
c. -(:a400>18a.1:) ;kk
/
l2,i/
z.
/
l./m32:/,l./g8:/,l2
i/
c.(:a400>18a.1:)-1 ;kk
rl w0 x1 ;kk remainder:= claim(key).sender
z.
c. -(:a400>18a.1:) ;kk
/
l2,i/
z.
/
l./hsw0/
i/
c.(:a400>18a.1:)-1 ;kk
rs w0 x1 ;kk claim(key).sender:= remainder
z.
c. -(:a400>18a.1:) ;kk
/
l2,i/
z.
/
l./bz/
i/
c.(:a400>18a.1:)-1 ;kk
rl w0 x2 ;kk newclaim:= claim(key).child
z.
c. -(:a400>18a.1:) ;kk
/
l2,i/
z.
/
l./hsw0/
i/
c.(:a400>18a.1:)-1 ;kk
rs w0 x2 ;kk claim(key).child:=newclaim
z.
c. -(:a400>18a.1:) ;kk
/
l2,i/
z.
/
l./x1+1/
i/
c.(:a400>18a.1:)-1 ;kk
al w1 x1+2 ;kk increase (sender claimaddr);
al w2 x2+2 ;kk increase (child claimaddr);
z.
c. -(:a400>18a.1:) ;kk
/
l3,i/
z.
/
l./m35:/,l./bzw1x1+1/
i/
c.(:a400>18a.1:)-1 ;kk
rl w1 x1+2 ;kk w1:= slice claim (key 0)
z.
c. -(:a400>18a.1:) ;kk
/,l2,i/
z.
/
l./m39:/,l./wmw0/
l1,i/
c. -(:a400>18a.1:) ;kk
/
l./bz/
i/
z.
/
l./alw3/
i/
c.(:a400>18a.1:)-1 ;kk
al w1 x3+1 ;kk
z.
c. -(:a400>18a.1:) ;kk
/
l3,i/
z.
/
l./rs.w0/
i/
c.(:a400>18a.1:)-1 ;kk
;kk w3=max entry claims
;kk w0=max slice claims
ds. w1 h3. ;kk
z.
c. -(:a400>18a.1:) ;kk
/
l2,i/
z.
/
l./g10:/
i/
c.(:a400>18a.1:)-1 ;kk
jl. g13. ;kk test more internals
g10:
rl w2 x2 ;kk proc:=nametable(entry)
ld w0 -100 ;kk clear w3-w0
sn. w2 (d2.) ;kk claim:= if
dl. w0 h3. ;kk proc= sender then maxclaim else 0
rl. w1 d4. ;kk w1 := curdoc
wa w2 x1+f60 ;kk claim addr:=proc +claimrel.curdoc
z.
c. -(:a400>18a.1:) ;kk
/
l./(h1.)/
i/
z.
/
l./g11:/,l-1
i/
c.(:a400>18a.1:)-1 ;kk
al w1 x2 ;kk
g11: ;kk w3 = entry claim
;kk w0 = slice claim
rs w0 x2+2 ;kk init slice claim from slice
sl w2 x1+a109*4 ;kk if key >=min aux key then
rs w3 x2 ;kk init entry claim
al w2 x2+4 ;kk increase(key)
sh w2 x1+a110*4 ;kk if key <= max cat key then
jl. g11. ;kk goto init next key
g12: ;kk test more internal
rl. w2 h4. ;kk load nametable entry
al w2 x2+2 ;kk increase(entry)
g13: rs. w2 h4. ;kk store next entry
z.
c. -(:a400>18a.1:) ;kk
/
l./(b7)/
i/
z.
/
l./g15:/,l1
i/
c.(:a400>18a.1:)-1 ;kk
al w1 x2 ;kk
g16: rs w3 x2 ;kk init entry claim(key)
al w2 x2+4 ;kk increase(key)
sh w2 x1+a109*4-1;kk if key < min aux key then
z.
c. -(:a400>18a.1:) ;kk
/
l./jl.g16./
i/
z.
/
l./h2:/,l1,i/
c.(:a400>18a.1:)-1 ;kk h2=entry claim
h3: 0 ;kk slice claim
h4: 0 ;kk name table entry
z.
/
l./m50:/,l./e. /,l./;find/
i/
c.(:a400>18.1:)-1 ;kk
;kk find process and move bs-claims from process to sender area
; call : m51
b. g10 w.
m51: jl. w3 e47. ;kk find best process
b6 ;kk first internal in name table
b7 ;kk last in name table
jl. j3. ;kk process non exist: result 3
am. (d4.) ;kk
wa w2 f60 ;kk w2:= bs-claim address in curr proc
al w1 x2 ;kk
al w0 a110*4+4;kk bs-claims length
jl. w3 e83. ;kk move
jl. w2 e60. ;kk w2:=addr(w1.sender);
al w1 x2+a110*4 ;kk w1:=last key;
g0: rl w0 x2+2 ;kk w0:=slice;
am. (d4.) ;kk
wm w0 f64 ;kk w0:=segments;
rs w0 x2+2 ;kk :=segment;
al w2 x2+4 ;kk w2:=next key;
sh w2 x1 ;kk if w2<=last key then
jl. g0. ;kk goto next key;
jl. j0. ;kk goto result ok
e.
z.
/
l./m91:/,l./h0:/
i/
c. -(:a400>18a.1:) ;kk
/
l2,i/
z.
c.(:a400>18a.1:)-1 ;kk
h0: (:a110+1:)<1 ;kk number of keys * 2 (=max cat key +1 *2)
z.
/
l./m154:/,l./al.w2v6./
i/
c.(:a400>18a.1:)-1 ;kk
am -2046 ;kk
al. w2 v6.+2046;kk
z.
c. -(:a400>18a.1:) ;kk
/
l2,i/
z.
/
l./m50=m50-n50/
r/, /, m51 = m51-n50/
l./p60:/,l-1,i/
c.(:a400>18.1:)-1 ;kk
;kk lookup bs claims
;kk call:
;kk w1.sender : claim list address
;kk w2.sender : document name address
;kk w3.sender : name address
;kk return:
;kk w0.sender : result = 0 : bs claims looked up
;kk result = 2 : document not found
;kk result = 3 : process does not exist
;kk result = 6 : name format illegal
p59: ;kk lookup bs claims
m104 ;kk move docname.sender to docname.work
m84 ;kk size.work:=0
m36,t22 ;kk search chain, state = allowed for normal use
m65 ;kk move catbase,name to work;
m51 ;kk find best internal process and move bs claims
z.
/
l./n49:/,l./p57./
r/r7.,r7./r7.,p59./
f
;$
;************mons1************
l./d35:/
l./i12./,l-1,i/
c. -(:a400>18a.1:) ;kk
/,l3,i/
z.
/
l./i6:/,l-4,i/
c.(:a400>18a.1:)-1 ;kk
al. w2 e20. ;kk w2:=addr(device);
jl. w1 d79. ;kk lookup bs claims
rs. w1 i0. ;kk := base of bs claims store;
al. w2 e51. ;kk
i6: dl w0 x1+2 ;kk w0:=segments; w3:=entries;
ds w0 x2+2 ;kk :=entries,segments;
al w2 x2+4 ;
al w1 x1+4 ;kk w1:=next key;
am. (i0.) ;kk
sh w1 a110*4 ;kk if key<= max key then
jl. i6. ;kk goto next key;
z.
c. -(:a400>18a.1:) ;kk
/,l./a110*2/,l2,i/
z.
/
l./i12:/,l-1,i/
c. -(:a400>18a.1:) ;kk
/,l2,i/
z.
/
l./i2:/,i/
c.(:a400>18a.1:)-1 ;kk
i0: e86 ;kk addr of bs claims store
z.
/
l./d78:/,l./e.z./,l1,i/
c.(:a400>18a.1:)-1 ;kk
; procedure lookup bs claims(device,process);
; comment the bs-claims for the process is looked up on the given device;
; call: return:
;w0 - result
;w1 return addr. of bs-claims
;w2 device unchanged
;w3 process -
b. i2 w.
d79: al. w3 i2. ;kk entry0: w3:=addr('s');
d80: rs. w1 i0. ;kk entry2: store(w1);
rl. w1 i1. ;kk w1:= addr(bs claim store);
jd 1<11+118 ;kk lookup bs-claims
jl. (i0.) ;kk return;
i0: 0 ;kk
i1: e86 ;kk addr of bs claims
i2: <:s:>,0,0,0 ;kk current process
e.
z.
/
f
;$
;************mons2************
l./g76:;max:/,l./jl.g2./,l1,i/
g2=k-2
/
l2,i/
g35=k-2
/
l./d16=k-2/,l-1,i/
c.(:a400>18a.1:)-1 ;kk
jl. d2. ;kk
d2=k-2
jl. d19. ;kk
d19=k-2
jl. d20. ;kk
d20=k-2
jl. d21. ;kk
d21=k-2
jl. d23. ;kk
d23=k-2
z.
/,l./b./,i/
c.(:a400>18a.1:)-1 ;kk
jl. d70. ;kk
d70=k-2
jl. d71. ;kk
d71=k-2
jl. d79. ;kk
d79=k-2
jl. d80. ;kk
d80=k-2
jl. g9. ;kk
g9=k-2
z.
/
l./jl.g16./,l1
i/
g16=k-2
/
l./d76:/,l./e20./,l1,i/
c.(:a400>18a.1:)-1 ;kk
rs. w3 i13. ;kk :=addr(curr. process);
z.
/
l./jl.g9./,r/+2046/ /,r/jl./jl. /,l-1,d,l-2,r/;/; if error then/
l./a88-2/,i/
c.(:a400>18a.1:)-1 ;kk
rl. w2 i4. ;kk w2:=addr(curr device);
rl. w3 i13. ;kk w3:= addr(curr process);
jl. w1 d80. ;kk lookup bs claims(device,process);
rl. w2 i3. ;kk addr(perm claim.curr process);
dl w0 x1+14 ;kk w0:=segments; w3:=entries;
ds w0 x2+2 ;kk
z.
c. -(:a400>18a.1:) ;kk
/,l./j2:/,i/
z.
/,l./i11:/,l1,i/
c.(:a400>18a.1:)-1 ;kk
i12: 0 ;kk slice length;
i13: 0 ;kk addr of current process;
z.
/
l./;char/,i/
c.(:a400>18a.1:)-1 ;kk
; s command lookup bs claims
; name: lookbs
; call: lookbs <process> !
; lookbs <process><sp><device><sp>...<sp><device>
; print the bs claims for the given process and device,
; in the first case it is printed for all devices
b. i10,j11
w.
g47: jl. w3 d2. ;kk next param
se w0 1 ;kk if type<>name then
jl. g2. ;kk goto end line;
rs. w0 i0. ;kk i0:=1;
rl. w3 i1. ;kk w3:=addr(name);
al. w2 i2. ;kk
dl w1 x3+2 ;kk
ds w1 x2+2 ;kk
dl w1 x3+6 ;kk
ds w1 x2+6 ;kk move name;
rl w2 92 ;kk print all devices:
jl. j3. ;kk w2:=addr(first in device list);
j1: rl. w3 i0. ;kk
se w3 1 ;kk if not first time then
jl. j4. ;kk goto next device else
rs. w1 i0. ;kk i1:=addr(bs claim store);
al. w1 i2. ;kk w1:=addr(process);
jl. w3 d19. ;kk init write;
jl. w3 d21. ;kk write(process name);
jl. w3 j9. ;kk print space;
al. w1 i4. ;kk
jl. w3 d21. ;kk write(head);
al w0 10 ;kk
jl. w3 d20. ;kk print new line;
jl. w3 d23. ;kk outline;
jl. w3 d42. ;kk save(work.buff);
jl. g2. ;kk return-2 else
j4: rl. w1 i1. ;kk w1:=addr(device);
jl. w3 d19. ;kk init write;
jl. w3 d21. ;kk write(device name);
jl. w3 j9. ;kk print fill;
rl. w2 i0. ;kk w2:=addr(bs claim store);
j2: rl w1 x2 ;kk w1:=next entry-claim;
al w0 4 ;kk
jl. w3 d71. ;kk write(entry-claim);
al w0 44 ;kk
jl. w3 d20. ;kk write(<:,:>);
al w0 6 ;kk
rl w1 x2+2 ;kk w1:=next segments claim;
jl. w3 d71. ;kk write(segments claim);
al w2 x2+4 ;kk w2:=addr(next claim);
am. (i0.) ;kk
sh w2 a110*4+2 ;kk if claim addr<= last claim then
jl. j2. ;kk goto j2;
al w0 10 ;kk
jl. w3 d20. ;kk print new line;
jl. w3 d23. ;kk outline;
jl. w3 d42. ;kk save(work.buff);
jl. g2. ;kk return-2 else
rl. w2 i3. ;kk w2:=param type or next addr in device list;
j5: al w2 x2+2 ;kk next device;
sl w2 101 ;kk if addr in device list then
jl. j6. ;kk goto test next device;
j3: jl. w3 d2. ;kk else next param;
rs. w0 i3. ;kk set param type;
sn w0 1 ;kk if type=name then
jl. j0. ;kk goto next device else
se w0 0 ;kk else if type<>empty then
jl. g2. ;kk goto end line else
sh w2 100 ;kk if param list then
jl. g35. ;kk goto next command else
j6: rs. w2 i3. ;kk :=next addr in device list
sn w2 (96) ;kk if w2=last in name table then
jl. g35. ;kk goto next command else
rl w3 x2 ;kk w3:=addr(next device table head);
rl w0 x3-18 ;kk w0:=first word in name;
sn w0 0 ;kk if device=idle then
jl. j5. ;kk goto next device
rl. w2 i1. ;kk w2:=addr(name store);
dl w1 x3-16 ;kk
ds w1 x2+2 ;kk
dl w1 x3-12 ;kk
ds w1 x2+6 ;kk move device name;
j0: al. w3 i2. ;kk w3:=addr(process);
rl. w2 i1. ;kk w2:=addr(device name);
jl. w1 d80. ;kk lookupbsclaims(device,process);
sn w0 0 ;kk if result=ok then
jl. j1. ;kk goto print else
sn w0 2 ;kk if result=2 then
jl. g16. ;kk goto write(device not exist);
sn w0 3 ;kk if result=3 then
jl. g9. ;kk goto write(process not exist);
jl. g2. ;kk else goto end line;
j9: al w1 x1-11 ;kk procedure write 12-w1 space
ac w1 x1 ;kk
jl. d70. ;kk return via d70
i0: 0 ;kk addr(bs claim store);
i1: e20 ;kk addr(name parameter);
i2: 0,r.4 ;kk process name;
i3: 0 ;kk param type or next addr in device list
i4: <: temp perm-key1 login user<0>:>;kk head;
e.
e86: 0,r.(:a110+1:)*2 ;kk bs claim store;
z.
/
l./g81-g45/,i/
c.(:a400>18a.1:)-1
<:lookbs:> ,1<17+g47-g45
z.
/
f
;$
************moncatinit************
f
;$
scope user mdef mcentral mprocs mdisc mfpaline mhost mfpasub,
mtabinit mprocfnc1 mprocfnc2 ms1 ms2 mcatinit
head 1
▶EOF◀