DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦02aeded25⟧ TextFile

    Length: 3072 (0xc00)
    Types: TextFile
    Names: »kkfpret0«

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦20407c65c⟧ »kkmon0filer« 
            └─⟦this⟧ 
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦f781f2336⟧ »kkmon0filer« 
            └─⟦this⟧ 

TextFile

kkfptxt1=edit fptext1
f
kkfptxt2=edit fptext2
l./beginsegment:connectoutput/,r/a40/a42/,l2
l2,r/    /a36:/,l1,r/    /a37:/
r/;/;     a36 used as variable,
                        ;      a37 ... a37+(max key+1)*4-2 used
                        ;      as store to lookup-bs-claims
/
l./a40./,r/a40.  /h10.+6/
l./a40./,r/a40.  /h10.+6/
l./b8:/,d6,i/

                        ; procedure move name(from,to);
b8:                     ; from addr=w1, to addr=w2
      al. w2  b0.       ;   w2:=saved file descriptor
      rl. w1  c9.       ;
a41:  rs. w3  b1.       ; store(w3);
      dl  w0  x1+2      ;
      ds  w0  x2+4      ;
      dl  w0  x1+6      ;
      ds  w0  x2+8      ;
/
l./a8:/,l2,i/
      ls  w0  2         ; key:=key*4;
/
l./a9:/,r/a9:/   /,l-2,r/alw00   /ld  w0  -100/,l1,i/
      jl.     a9.       ;
a11:  rl. w0  h10.+10   ;
      rl  w3  x2-8      ; w3:=slice length.curr device
      sl. w0  (h10.+8)  ; if min slice>max segm then
/,l1,r/rs/ds/,r/   /a9:/,r/0;/min slice;/
l./x2-36/,l-1,i/
      ds. w2  a36.      ; store(w1,w2);
/,l1,r/w3/w1/
r/;/;
/
d
d4,i/
      al  w1  x1+2      ; w1:=addr(own process name);
      al. w2  a0.-2     ; w2:=addr(own process name area);
      jl. w3  a41.      ; move name(from monitor,to own process);
      rl. w1  a36.      ; w1:=addr(slice table head.curr device);
      al  w1  x1-18     ; w1:=addr(device name);
      al. w2  a0.+8     ; w2:=addr(device name store);
      jl. w3  a41.      ; move name(from monitor,to own process);
      al  w2  x2+2      ;
      al. w3  a0.       ; w3:=addr(own process);
      al. w1  a37.      ; w1:=addr(bs-claim-store);
      jd      1<11+118  ; lookup bs claims;
/,l2,r/x3;/x1;+key*4 ;/,l1,d5,i/
      sn  w0  0         ; if device exist then
      jl.     a38.      ; start search
      al  w0  0         ; else
      jl.     a42.      ; goto next device
a10:  sl  w0 (x3+2)     ; if min slice>=curr.slice then
a38:  rl  w0  x3+2      ; min slice:=curr.slice;
      al  w3  x3-4      ; key:=key-1;
      sl  w3  x1        ; if key>0 then
      jl.     a10.      ; goto a10;
/
l./h10.+10/,d,i/
a42:  dl. w2  a36.      ; restore(w1,w2);
/,l1,d,r/;m/;   :=m/,r/ *slicelength//
l./rlw0x2-8/,l1,r/a40.  /h10.+6/,l3,d8
l./a15:/,r/bl.w0/al  w0/,r/+e15./     /,r/callconnect2:/w0:=kind>1;/
l./a18:/,l1,r/    /a39:/
l./h.;ac/,d12
l./e0:/,l2,i/
      bl. w3  x3+e15.   ; w3:=action address;
/
l./b4:/,i/

h. ; action teable

e15: ; action    ; kind   action
         e26     ; ip     check and init
         e34     ; clock  convention error
         e25     ; bs     check and reserve
         e35     ; drum   not allowed
         e26     ; tw     check and init
         e34     ; tr     convention error
         e25     ; tp     check and reserve
         e25     ; lp     check and reserve
         e34     ; cr     convention error
         e43     ; mt     reserve tape
         e25     ; pl     check and reserve
w.
/
f
kkfptxt3=edit fptext3
f
(kkfp0=slang kkfptxt1 kkfptxt2 kkfptxt3 insertproc
kkfp0)
scope user kkfp0
lookup kkfp0
▶EOF◀