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

⟦403dd2672⟧ TextFile

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

Derivation

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

TextFile

; time 2.0
(kkrhtst2=slang list.no xref.no;
kkrhtst2) ;
                    ;
                    ;
b.  g2 w.           ;
s.  a50,b20     w.  ;
a50:al  w0  0       ;  interrupt ask
    al. w3  b2.     ;  interrupt address
    jd      1<11+0  ;  set interrupt
    al  w0  2       ;
    jd      1<11+30 ; set cpu1 user bit
                    ;
                    ;
    jl.     a30.    ;
a0: 5<12+0          ; output mesage
a1: 0               ; first and
a2: 0               ; last word
a3: 0,r.6           ;
                    ;
a5: 3<12+0          ; input message
a6: 0               ; first and
a7: 0               ; last word
a8: 0,r.6           ;
a10:0,r.8           ; answer
a11:<:terminal3:>,0,0;
a16: 0
<:cpu =   0<10>:>
a17:0,r.70
a15:7,r.200        ;
    a18=16          ;
    a19=14          ;
                    ;
a30:                ;
    al. w1  a15.-a18;
    rl  w0  66      ;
    al  w1  x1+a18  ; next in buff
    al  w2  x1+a19  ; last buff addr
    jl. w3  b0.     ; convert
    rl  w0  68      ;
    al  w1  x1+a18  ; next in buff
    al  w2  x1+a19  ; last buff addr
    jl. w3  b0.     ; convert
    rl  w0  70      ;
    al  w1  x1+a18  ; next in buff
    al  w2  x1+a19  ; last buff addr
    jl. w3  b0.     ; convert
    rl  w0  132     ;
    al  w1  x1+a18  ; next in buff
    al  w2  x1+a19  ; last buff addr
    jl. w3  b0.     ; convert
    am      (66)    ;
    bz  w0   -5     ;  cpu mask
    al  w1  x1+a18  ;
    al  w2  x1+a19  ;
    jl. w3  b0.     ;
    jl.     b4.     ;
                    ;
                    ;
b.  i5,h5 w.        ;
b4:                 ;
    al. w1  a15.    ;
    al  w2  x2+2    ;
    al  w0  10      ;
    rs  w0  x2      ;
    rs. w2  a16.    ;
    al. w2  a17.    ;
h0: rl  w0  x1      ; next digit
    ls  w0  8       ;
    wa  w0  x1+2    ;
    ls  w0  8       ;
    wa  w0  x1+4    ;
    rs  w0  x2      ;
    al  w1  x1+6    ;
    al  w2  x2+2    ;
    sh. w1  (a16.)  ;
    jl.     h0.     ;
    al. w1  a16.+2  ;
    rl  w3  x1+4    ;
    ls  w3  -8      ;
    ls  w3  8       ;
    rl  w0  66      ;
    se  w0  (132)   ;
    am      -1      ;
    al  w3   x3+49  ;
    rs  w3  x1+4    ;
    ds. w2  a2.     ;
    al. w1  a0.     ;
jl. w3 b6.
    al. w3  a11.    ;
    jd      1<11+16 ; write
jl. w3 b5.
    al. w1  a10.    ;
    jd      1<11+18 ;
    al  w0  5      ;
    jl. w3  b1.     ; wait
    jl.     a30.    ;
e.                  ;
                    ;
                    ;
                    ;

    ;;  convert and integer to digits
    ; call:
    ; w0= integer
    ; w1= first pos in buff
    ; w2= last pos
    ; w3= return
    ; return: w0,w3  undef.    w1,w2 unchanged
    ;
b.  h10,i10 w.      ;
b0: rs. w3  i3.     ; save return
    ds. w2  i2.     ;
    al  w3  32      ;
h0: sh  w2  x1      ;
    jl.     h1.     ;
    al  w2  x2-2    ;  count
    rs  w3  x2      ; store <sp>
    jl.     h0.     ;
h1: sh  w0  -1      ; if integer<0 then
    al  w3  45      ; set sign
    rs. w3  i1.     ;
    rl. w2  i2.     ;
    sh  w0  -1      ;
    ac  w0  (0)     ;
    rl  w1  0       ; w1:=integer
h2: al  w3  x1      ;
    al  w1  0       ;
h3: sh  w3  9       ;
    jl.     h4.     ;
    al  w1  x1+1    ;
    al  w3  x3-10   ;
    jl.     h3.     ;
h4:                 ;
    al  w3  x3+48   ;
    rs  w3  x2      ;
    al  w2  x2-2    ;
    sl  w1  1       ; if more digits then
    jl.     h2.     ; get next
    rl. w3  i1.     ; else get sign
    rs  w3  x2      ;
    dl. w2  i2.     ;
    jl.     (i3.)   ;
i0: 10              ;
i1: 0               ;
    0               ;
i2: 0               ;
i3: 0               ;
e.                  ;
    ;; wait procedure
    ; call: w0=delay, w3=return
    ; return all reg unchanged
b.  i6,h5 w.        ;
b1:                 ;
    ds. w1  i1.     ;
    ds. w3  i3.     ;
    rs. w0  i5.     ; delay
    al. w1  i4.     ;
    al. w3  i6.     ;
    jd      1<11+16 ;
alw12000
ls w1 3
al  w1 x1-1
sl w1 0
jl. -4
    al. w1  a10.    ;
    jd      1<11+18 ;
    dl. w1  i1.     ;
    dl. w3  i3.     ;
    jl      x3      ;
i0: 0               ;
i1: 0               ;
i2: 0               ;
i3: 0               ;
i4: 0               ;
i5: 0,r.7           ;
i6: <:clock:>,0,0,0 ;
e.                  ;
                    ;
                    ;
b.  i5,h5 w.        ;
b2:                 ;
    0,r.8           ;
    al. w1  a15.-a18;
    al  w2  0       ;
h0: rl. w0  x2+b2.  ;
    jl. w3  b3.     ; goto convert
    al  w2  x2+2    ;
    sh  w2  13      ;
    jl.     h0.     ;
    rl. w2  i2.     ;
    jl. w3  b4.     ;
    jl.     a30.    ; continue
                    ;
                    ;
b3:                 ;
    ds. w3  i1.     ;
    al  w1  x1+a18  ;
    al  w2  x1+a19  ;
    jl. w3  b0.     ;
    rs. w2   i2.
    dl. w3  i1.     ;
    jl      x3      ;
i0: 0               ;
i1: 0               ;
i2: 0
e.                  ;
a44=1045
a45=4900
b. i10,h5 w.
b6:  ds. w1  i1.
     ds. w3  i3.
     dl. w3  i5.
h0:  dl  w1  x2+2
     ds. w1  x3+a40.
     al  w2  x2+4
     al  w3  x3+4
     sh  w3  a44
     jl.     h0.
     dl. w1  i1.
     dl. w3  i3.
     jl      x3
i0:0
i1:0
i2:0
i3:0
i4:a45
i5:2

e.
;
;
b. i10,h5 w.
b5:  ds. w1  i1.
     ds. w3  i3.
     dl. w3  i5.
h0:  dl  w1  x2+2
     ds. w1  x3+a42.
     al  w2  x2+4
     al  w3  x3+4
     sh  w3  a44
     jl.     h0.
     dl. w1  i1.
     dl. w3  i3.
     jl      x3
i0:0
i1:0
i2:0
i3:0
i4:a45
i5:2

e.
;
a40: 0,r.(:a44>1+10:)
a41:0
a42:0,r.(:a44>1+10:)
a43:0
;


e.                  ;

    g2=k            ;
g1:                 ;
g0: (:g2+531:)>9    ; size
    0,r.4           ; name
    s2              ; clock
    0               ; file
    0               ; block
    3<12+0          ; contents
    g2              ; size

d.                  ;
p.  <:fpnames:>     ;
p.  <:insertproc:>  ;
▶EOF◀