|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 5376 (0x1500)
Types: TextFile
Names: »kkrhtst1t«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦this⟧ »kkrhtst1t«
; 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◀