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

⟦3a463fed4⟧ TextFile

    Length: 6144 (0x1800)
    Types: TextFile
    Names: »kksltstt«

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦this⟧ »kksltstt« 

TextFile

(kksltst=slang list.no xref.no;
);
s.   a3,b30,d1,i9,j100 w.;
p.   <:fpnames:>       ;
     k=h55             ;
;. program til afvikling af slangprogrammer
; 1 ordre af gangen
; jd og je fungerer dog kun som jl
     0,0               ;
     al  w0     2.10   ;
     jd         1<11+30; set cpu1
     al. w2     h31.-2 ;
     al. w3     h7.    ;
     jl.        2,r.1536; make room for end program
     jl.        b0.    ; goto start
d0:  0                 ; displayment
d1:  0                 ; address
a0:  0                 ; w0
a1:  0                 ; w1
a2:  0                 ; w2
a3:  0                 ; w3
i0:  0                 ; ic
i1:  0                 ; indexing (x1,x2 or x3)
i2:  0                 ; modify (relative or and indirect)
i3:  0                 ; wreg (w0,w1,w2,w3)
i4:  0                 ; instruction
i5:  0                 ; am result
i6:  2.1111 1111 1111 1000 0000 0000; mask for mon call check
i7:  0                 ; instruction+wreg
i8:  2.000000 00 11 00 ; mask for modify+indexing
i9:  0                 ; current instruction
j12: 0                 ; first of proc
j31:0
j7:0
                       ;
                       ;
b0:
     ds. w3     j7.
     al. w3     b29.   ;
     rs. w3     i0.    ; start address
     rs. w1     j12.   ;
     al. w1     b6.    ;
     rs. w1     b6.    ;
     rs. w1     b7.    ;
     wa. w1     b5.    ;
     rs. w1     b5.    ; proc id
b10: rl. w0     i0.    ;next instruction
     ws. w0     j12.   ;ic:=relative ic
     rl. w3     b6.    ;
     al  w3  x3+10     ;
     sl. w3  (  b5.)   ;
     rl. w3     b7.    ;
     rs. w3     b6.    ;
     rs  w0  x3+4      ;
     dl. w1     a1.    ;
     ds  w1  x3+8      ;
     dl. w1     a3.    ;
     ds  w1  x3+12     ; save current reg val
     rl. w1  (  i0.)   ; w1:=next instruction
     rs. w1     i9.    ;
     bl  w2     3      ; w2:=displayment
     rs. w2     d0.    ;
     ld  w2     -14    ;
     ls  w2     -22    ;w2:=indexing
     rs. w2     i1.    ;
     ld  w2     -2     ;
     ls  w2     -22    ; w2:=modifying
     rs. w2     i2.    ;
     al  w0  x1        ;
                       ;
     ld  w2     -2     ;
     ls  w2     -22    ; w2:=wreg
     rs. w2     i3.    ;
     rs. w1     i4.    ; save instruction number
     ls  w0     4      ;
     rs. w0     i7.    ; save instruction+wreg
                       ; address calculation
     rl. w1     d0.    ;w1:=dispayment
     wa. w1     i5.    ; + am-result
     rl. w2     i1.    ;
     ls  w2     1      ;
     se  w2     0      ;
     wa. w1  x2+a0.    ; + indexing
     rl. w2     i2.    ;
     sz  w2     2.10   ;
     wa. w1     i0.    ; +ic   (if relative)
     so  w2     2.01   ; if not indirect then
     jl.        b12.   ; goto b12;
     sh  w1     6      ; else if address=wreg then
     am.        a0.    ; add saved register value else
     rl  w1  x1        ; else address:=(address)
b12: rs. w1     d1.    ;
     rl. w2     i0.    ;
     al  w2  x2+2      ;ic:=ic+2
     rs. w2     i0.    ;
     al  w2     0      ;
     rs. w2     i5.    ;clear am result
     rl. w2     i4.    ;w2:=instruction
     se  w2     9      ; if not am then
     jl.        b15.   ;goto b15
     rs. w1     i5.    ;else am result:=address
     jl.        b10.   ; and goto next instruction
b15: se  w2     14     ; if not jd then
     jl.        b17.   ; goto b17 else
     so. w1  (  i6.)   ; if not monitor call then
     jl.        b18.   ; goto b18 else
     al  w0     2.0111 1111 1111;
     la  w0     2      ; w0:=mon call number
     sl  w0     150    ; if not mon call then
     jl.        b18.   ; goto b18
     rl. w2     i9.    ; else perform the monitor call here
     rs. w2     b16.   ;
     dl. w1     a1.    ;
     dl. w3     a3.    ;load registers
b16: jd         1<11+0 ; call monitor
     ds. w1     a1.    ;
     ds. w3     a3.    ; save registers
     jl.        b10.   ; and goto next instruction
b17: se  w2     13     ; if je or
     sn  w2     15     ; jl then
     jl.        b18.   ; goto b18 else
     jl.        b20.   ; else goto b20;
b18: rx. w1     i0.    ; jd,je or jl:  ic:=address
     rl. w2     i3.    ;
     ls  w2     1      ;
     se  w2     0      ; if wreg<>w0 then
     rs. w1  x2+a0.    ; link:=ic+2
     jl.        b10.   ; goto next instruction
b20: sn  w2     21     ; if sp then
     jl.        b21.   ; goto b21 else
     sl  w2     40     ; if not
     sl  w2     47     ; sh, sl, se, sn, so, sz, or sx then
     jl.        b25.   ; goto b25
b21: rl. w2     i7.    ;else
     lo. w2     i8.    ;
     hs. w2     b22.   ;
     dl. w1     a1.    ;
     dl. w3     a3.    ;
b22: sh. w2  (  d1.)   ; skip instruction
     am         -2     ; no skip
     al  w0     2      ; skip ic:=ic+2
     wa. w0     i0.    ;
     rs. w0     i0.    ;
     rs. w1     a1.    ;
     ds. w3     a3.    ;
     jl.        b10.   ; goto next instruction
b25: rl. w2     i7.    ;
     lo. w2     i8.    ;
     hs. w2     b27.   ;
     dl. w1     a1.    ;
     dl. w3     a3.    ;
b27: al. w0  (  d1.)   ; instruction
     ds. w1     a1.    ;
     ds. w3     a3.    ;
     jl.        b10.   ; goto next instruction
;
b29: al. w0     b30.   ;
     jl. w3     (j31.) ;
     al  w2     0
     jl.        (j7.)  ;
b30:<:rhtest<10>:>
b5:  b8                ;
b6:  0                 ;
b7:  0                 ;
     0,r.2000          ;
b8:                    ;
e.                     ;
e.                     ;
▶EOF◀