|
|
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: 6144 (0x1800)
Types: TextFile
Names: »kkrhtst2t«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
└─⟦4334b4c0b⟧
└─⟦this⟧ »kkrhtst2t«
; 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◀