|
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: 6144 (0x1800) Types: TextFile Names: »cltx «
└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code └─⟦75ff9bef3⟧ └─⟦this⟧ »cltx «
\f ; fgs 1985.03.07 fileprocessor connect output, page ...7... ; segment 1 ; procedure get claims (key, filedescriptor); ; ; call: return: ; ; w0 key claim ; w1 link link ; w2 - unchanged ; w3 - unchanged ; ; filedescriptor.docname entry.docname or docname of disc ; 0 for drum, with claims ; 1 for disc ; ; The procedure finds the disc with the largest claims for the ; given key and returns the claims in w0 and the docname of the ; disc in filedescriptor.docname. ; If docname given in filedescriptor.docname is 0, the search ; starts among the drums, if it is 1 it starts among the discs. ; If, however, the docname given is a document name for a disc ; included in the bs system, the procedure returns the claims ; for the given key for that disc. ; a8: ds. w3 h10.+4 ; get claims: (fp exception routine dump area used) rs. w1 h10.+0 ; save (w2, w3); save return; zl w2 64 ; sl w2 9 ; if monitor release > 8 then am 1 ; key := key * 4 else ls w0 1 ; key := key * 2 ; hs. w0 b2. ; rl w0 92 ; w0 := first drum; rl w1 96 ; last device := al w1 x1-2 ; top discs - 2; rs. w0 b1. ; first device := first drum; rl. w2 h54.+2 ; w2 := first word of docname; sh w2 1 ; if docname (1) <> (0, 1) then jl. a12. ; begin <*docname specified*> al. w3 h54.+2 ; jd 1<11 + 4 ; w0 := proc descr addr (docname); sn w0 0 ; if process exists then jl. a12. ; begin am (0) ; w0 := rl w0 24 ; chaintable addr (docname); a25: rl w2 x1 ; loop: w2 := device.chaintable address; sn w2 (0) ; if device.chaintable address <> jl. a39. ; doc .chaintable address then ; begin al w1 x1-2 ; device := device -2; jl. a25. ; goto loop; ; end; a39: rs. w1 b1. ; first device := last device := device found; ; end process exists; ; end docname specified; a12: al w0 0 ; rs. w0 h10.+8 ; max slices := 0; a9: rl w2 x1 ; next device: rl. w3 h16. ; w2 := device.chaintable address; wa w3 x2-36 ; w3 := device.key zero claims; rs. w3 h10.+12 ; save device.key zero claims; al w0 2047 ; min slices := rs. w0 h10.+10 ; +infinity; b2 = k + 1 ; key * (if mon rel < 9 then 2 else 4); al w3 x3+0 ; w3 := device.slice claims.key \f ; fgs 1983.07.28 fileprocessor connect output, page ...7a... ; segment 1 a10: zl w0 64 ; next key: sl w0 9 ; if monitor release <= 8 then jl. a36. ; begin <*halfwords*> zl w0 x3+1 ; sliceclaim := halfword; sh. w0 (h10.+10) ; if slice claim <= min slices then rs. w0 h10.+10 ; min slices := slice claim; al w3 x3-2 ; decrease sliceclaim key address by two; jl. a37. ; end else a36: rl w0 x3+2 ; begin <*words*> sh. w0 (h10.+10) ; slize claim := word; rs. w0 h10.+10 ; if slice claim <= min slices then al w3 x3-4 ; min slices := slice claim; a37: sl. w3 (h10.+12) ; decrease sliceclaim key address by four; jl. a10. ; end; ; if claim key addr >= claim key 0 address then ; goto next key; rl. w0 h10.+10 ; sl. w0 (h10.+8) ; if min slices >= max slices then jl. a11. ; jl. a38. ; begin a11: rs. w0 h10.+8 ; max slices := min slices; rl w0 x2-8 ; slice length := slice length (device); rs. w0 h10.+6 ; end; a38: al w1 x1-2 ; device := device - 2; sl. w1 (b1.) ; if device <> first device then jl. a9. ; goto next device; rl. w0 h10.+8 ; w0 := max slices; dl. w3 h10.+4 ; restore (w2, w3); jl. (h10.) ; return; \f ; fgs 1983.07.28 fileprocessor connect output, page ...7b... ; segment 1 ; procedure convert to slices (w3, slicelength); ; ; call : return : ; ; w0 : - unchanged ; w1 : - destroyed ; w2 : link destroyed ; w3 : value (value - sign)//slicelength + sign ; h10.+6 : slicelength slicelength ; a4: rs. w2 h10.+0 ; entry: save return; sh w3 0 ; i := am +2 ; sign (value); al w1 -1 ; sn w3 0 ; al w1 0 ; wa w3 2 ; extend sign (w3); el w2 6 ; value := ((value + i)// el w2 4 ; slicelength - i) * wd. w3 h10.+6 ; slicelength ; ws w3 2 ; jl. (h10.) ; return; \f ; fgs 1982.12.03 file processor connect output, page ...7c... ; segment 1 ▶EOF◀