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

⟦e428171fa⟧ TextFile

    Length: 5376 (0x1500)
    Types: TextFile
    Names: »kkrhtst1t«

Derivation

└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
    └─⟦b2ec5d50f⟧ 
        └─⟦this⟧ »kkrhtst1t« 

TextFile

; time 2.0
(kkrhtst1=slang list.no xref.no;
kkrhtst1) ;
                    ;
                    ;
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   :>
7<16+7<8+7
    0
a17: 0
a15:48<16+48<8+10
    a18=16          ;
    a19=14          ;
                    ;
a30:                ;
c. -1
    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.     ;
z.
    jl.     b4.     ;
                    ;
                    ;
b.  i5,h5 w.        ;
b4:                 ;
c. -1
    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.     ;
z.
    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    ;
    al. w2  a17.-1
    ds. w2  a2.     ;
    al. w1  a0.     ;
    al. w3  a11.    ;
    jd      1<11+16 ; write
    al. w1  a10.    ;
    jd      1<11+18 ;
    al  w0  5      ;
    jl. w3  b1.     ; wait
    rl. w3  a15.    ;
    rs. w3  a17.-2  ;
    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 ;
    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           ;
    rl. w1  b2.+12  ; w1:=cause
    al  w0  0
    al  w3  10
    wd  w1  6       ; change cause to ascivalues
    al  w1  x1+48
    ls  w1  8
    wa  w1  0
    al  w1  x1+48
    ls  w1  48
    al  w1  x1+10
    rs. w1  a17.-2
    jl.     a30.    ; continue
e.                  ;
                    ;
                    ;
b.  i5,h5 w.        ;
b3:                 ;
    ds. w3  i0.     ;
    al  w1  x1+a18  ;
    al  w2  x1+a19  ;
    jl. w3  b0.     ;
    dl. w3  i0.     ;
    jl      x3      ;
    0               ;
i0: 0               ;
e.                  ;

e.                  ;

    g2=k            ;
g1:                 ;
g0: 2               ; size
    0,r.4           ; name
    s2              ; clock
    0               ; file
    0               ; block
    3<12+0          ; contents
    g2              ; size

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