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

⟦b69dc3c15⟧ TextFile

    Length: 9984 (0x2700)
    Types: TextFile
    Names: »kkrht1«

Derivation

└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦this⟧ »kkrht1« 

TextFile

kkrh1=slang list.no xref.no
)
\f


s.   a50,b20,c60 w.    ;
p.   <:fpnames:>       ;
     k=h55             ;
     0                 ;
a16: a14               ;
     al  w3  x1        ;
     wa. w3     a16.   ;
     jl  w2  x3        ;  start init
     jl.        b0.    ;
a50: 0,r.20            ;
                       ; start exekvering
b0:  jl. w3     h25.-2 ; input next command
     se  w2     114    ; if not r(eset) then
     jl.        b1.    ; goto b1
     jl. w3     a22.   ; else reset cpu1
     jl.        b0.    ; goto input next command
b1:  se  w2     97     ; if not (st)a(rt)
     jl.        b2.    ; goto b
     jl. w3     a24.   ; else start cpu1
     jl.        b0.    ; goto input next command
b2:  se  w2     111    ; if not (st)o(p) then
     jl.        b3.    ; goto b3
     jl. w3     a23.   ; else stop cpu1
     jl.        b0.    ; goto input next command
b3:  se  w2     105    ; if interrupt then
     jl.        b4.    ; goto b4
     jl. w3     a21.   ; else interrupt
     jl.        b0.    ; goto input next command
b4:  se  w2     102    ; if not f(inis) then
     jl.        b0.    ; goto input next command
     al  w0     0      ;
     rs  w0     100    ;
     jl. w3     a20.   ;
     al  w2     0      ;
     jl. w3     h7.    ;
b.   j1 w.             ;
                       ;
                       ;
                       ;
a20:                   ; venteprocedure
     rs. w3     j0.    ;
     al. w3     a6.    ;
     al. w1     a7.    ;
     jd         1<11+16;
     al. w1     a8.    ;
     jd         1<11+18;
     al. w2     a50.   ;
j1:  rl  w0  x2        ;
     jl. w3     h32.-2 ;
     1<23+32<12 +8     ;
     al  w2  x2+2      ;
     sh. w2     a50.+12;
     jl.        j1.    ;
     al  w2     10     ;
     jl. w3     h33.-2 ;
     jl.        (j0.)  ;
j0:  0                 ;
e.                     ;
b.   j0 w.             ;
a24: am         1<1    ; start
a23: am         1<1    ; stop
a22: am         1<1    ; reset
a21: al  w0     a0     ; interrupt
     wa. w0     a5.    ;
     rs. w3     j0.    ;
     al  w3     8      ;
     do  w3     (0)    ;
     jl. w3     a20.   ; goto vent
     jl.        (j0.)  ;
j0:  0                 ;
e.                     ;


     c0=+1             ; c0>0 for test af ri-ordren
     a0=20<3           ;
a5:  1<23              ;
a6:  <:clock:>,0,0,0,0 ;
a7:  0,1,0,0,0,0       ;
a8:  0,r.10            ;
                       ;
a11:                   ;  start test
c.   -c0               ;
     al  w2     0      ;
     al  w3     20     ;
     al  w0     0      ;
     al  w1     19     ;
     ds  w3     1194   ;
     ds  w1     1190   ;
     ss  w1     1194   ;
     ds  w1     1186   ;
     rl. w1     -4     ;
     jl.        a12.   ;
m.   wait cpu1         ;
a12: ls  w1     -18    ;
     rs  w1     1198   ;
     rl  w1     1196   ;
     al  w1  x1+1      ;
     rs  w1     1196   ;
     gg  w3     66     ;
     jl.        a11.   ;
                       ;
                       ;
c27:                   ;
b.   h20,i11 w.        ;
z.                     ;
c.   c0                ;
     jl.        c26.   ;
c27:                   ;
     rl. w1     a50.   ;
     al  w1  x1+1      ;
     rs. w1     a50.   ;
     ri         16     ;


b.   h20,i11  w.       ;
c26: al. w3     h0.    ;#1   init cpu1
     gp  w3     26     ;#1   set inf register addr;
     rl  w3     8      ;#1   base of controller descr addr
     al. w1     c27.   ;#1
     rs  w1  x3+a0+0   ;#1    set start addr


     ri         16     ;#1    return interrupt;
;;
; testoutput
;  ant. ri - i type - antal int - int level - di - di - tæller
;
;  interrupt 16:  input finis
;            18:  input request
;            20:  output finis
;

;#1 system table: monitor mode
h.;

     0                 ;
h0:                    ;
     0,r.6             ;
w.                     ;
     0                 ; -5  monitor call service addr
i0:  h6                ; -3  interrupt service addr
     1<23+0            ; -1  status  interrupt limit
i1:  h3                ; +1  register dump addr
     0                 ; +3  exception service addr
     0                 ; +5  escape service addr

                       ;#1 system table: user mode
i2:  h4                ; -5  monitor call service addr
i3:  h5                ; -3  interrupt       -      -
     1<23 + 6          ; -1  status < 12 + interrupt limit
i5:  h7                ; +1  register dump addr
     0                 ; +3  exception service addr
     0                 ; +5  escape service addr

                       ;#1  monitor register dump addr
h3:  0                 ;  w0
     0                 ;  w1
     0                 ;  w2
     0                 ;  w3
     1<23              ;  status       monitor mode
i4:  c27               ;  ic           start cpu1 process
     0                 ;  cause
     0                 ;  sb

     8                 ;  cpa
     0                 ;  base
     8                 ;  lower write limit
     8.3777 7777       ;  upper write limit
     0<12 + 6          ;  interrupt limits


                       ;#1 interrupt service cpu1
h4:  am         1      ;#1  monitor call service addr
h5:  am         1      ;#1  interrupt service addr (level 1)
h6:  al  w3     1      ;#1  interrupt service addr (level 2)
     rs. w3     a50.+2 ;
     rl. w1     a50.+4 ;
     al  w1  x1+1      ;
     rs. w1     a50.+4 ;
     sh  w2     14     ;
     jl.        c27.   ;
     rs. w2     a50.+6 ;
     rs. w2     i10.   ;
     jl.        c27.   ;
h7:  0                 ; w0
     0                 ; w1
     0                 ; w2
     0                 ; w3
     1<23              ; status
i6:  h8                ; ic
     0                 ; cause
     0                 ; sb
     8                 ; cpa
     0                 ; base
     8                 ;
     8.3777 7777       ; upper write limit
     0<12+13           ;
h8:                    ;
c.-1
     rl. w2     i10.   ;
     se  w2     18     ; wait for ready signal from hc8000
     jl.        h9.    ;
     al  w0     0      ;
     rs. w0     i10.   ;
     rl  w1     8      ;
     al  w0     4      ;
     al. w3     i11.   ; input addr
     ds  w3  x1+a0+1<3+2;
     al  w3     -4     ;
     di. w2     (a9.)  ; reset
     di. w3     (a2.)  ; send input request to hc8000
     rs. w3     a50.+8 ;
     se  w3     160    ;
     jl.        0      ;
     al. w3     a49.   ;
     am         -16    ;
h10: al  w0     20     ;
     ds  w3  x1+a0+1<3+2;
     al  w2     0      ;
     rs. w2     i10.   ;
     do. w2     (a9.)  ; reset
     do. w0     (a2.)  ; send data transfer request
h11: rl. w2     i10.   ;
     sn  w2     0      ; wait for data tranfer completed
     jl.        h11.   ;
     jl.        0      ;
     al  w3     0      ;
     rx. w3     i10.   ;
     se  w3  x2        ; if a new interrupt already is arrieved then
     jl.        h13.   ; goto h13
h12: rl. w2     i10.   ;
     sn  w2     0      ; wait for ready signal from hc
     jl.        h12.   ;
h13: al  w3     0      ;
     di. w3     (a9.)  ; reset
     di. w3     (a2.)  ;
     rs. w3     a50.+10;
     dl  w3  x1+a0+1<3+2;
     sn  w0     4      ;
     jl.        h10.   ;
     se. w3     a49.   ;
     jl.        h9.    ;
     al  w3  x3+20     ;
     jl.        h10.   ;
z.
h9:                    ;
     rl. w1     a50.+12;
     al  w1  x1+1      ;
     rs. w1     a50.+12;
     jl.        h8.    ;
i10: 0                 ;
m.   input buffer      ;
i11: 0,r.20            ;
z.                     ;

a1:  0                 ;
a2:  1<23+21<3+2.001   ;
a3:  26                ;
a4:  0                 ;
a9:  1<23+21<3+ 2.010   ; reset
a14:                   ;  start init
     rs. w2     a4.    ; save return
     rs. w1     a14.   ;  save fp base
     rl  w3     8      ; base of controller tabel
     al  w3  x3+a0     ;
     rs. w3     a1.    ; addr of contr. table for cpu1
     al. w1     a11.   ;
     al  w0  x1        ;
     ds  w1  x3+2      ;
     dl. w1     a3.    ;
     ds  w1  x3+6      ;
     jd         1<11+28;
c.   c0                ;
     rl. w1     i0.    ;
     wa. w1     a14.   ;
     rs. w1     i0.    ;
     rl. w1     i1.    ;
     wa. w1     a14.   ;
     rs. w1     i1.    ;
     rl. w1     i2.    ;
     wa. w1     a14.   ;
     rs. w1     i2.    ;
     rl. w1     i3.    ;
     wa. w1     a14.   ;
     rs. w1     i3.    ;
     rl. w1     i4.    ;
     wa. w1     a14.   ;
     rs. w1     i4.    ;
     rl. w1     i5.    ;
     wa. w1     a14.   ;
     rs. w1     i5.    ;

     rl. w1     i6.    ;
     wa. w1     a14.   ;
     rs. w1     i6.    ;
                       ;
                       ;
                       ;     rl. w1  i7.
                       ;     wa. w1  a14.
                       ;     rs. w1  i7.
z.                     ;
     jl.        (a4.)  ; return
a49:                   ;
     2                 ;
     2                 ;
     0                 ;
     rl  w1     32     ;
     rl  w1     34     ;
     rl  w1     36     ;
     rl  w1     38     ;
     rl  w1     40     ;
     rl  w1     42     ;
     rl  w1     44     ;
     rl  w1     46     ;
     rl  w1     48     ;
     al  w1     1      ;
     ls  w1     23     ;
     al  w1  x1+24<3+2.001;
     al. w3     a48.   ;
     al  w0     0      ;
     do  w2  x1        ;
a48: jl.        0      ;
e.                     ;
e.                     ;
e.                     ;
▶EOF◀