|
|
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: 6912 (0x1b00)
Types: TextFile
Names: »kkrhtst2t«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦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: <:terminal2:>,0,0 ;
a12: 0 ;
a13: 100000 ;
a16: 0 ;
<:cpu = 0<32>:> ;
a17: 0,r.46 ;
a15: 7,r.100 ;
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 w3 66 ; w3:=cur
bz w0 x3+26 ; w0:=buf
rs. w0 a12. ;
al w1 x1+a18 ; next in buff
al w2 x1+a19 ; last buff addr
jl. w3 b0. ; convert
rl w3 66 ;
rl w0 x3+52 ; time quantum
al w1 x1+a18 ;
al w2 x1+a19 ;
jl. w3 b0. ;
rl w3 66 ;
rl w0 x3+56 ;
al w1 x1+a18 ;
al w2 x1+a19 ;
jl. w3 b0. ;
rl w3 66 ;
bz w0 x3-6 ; cpu mask
al w1 x1+a18 ;
al w2 x1+a19 ;
jl. w3 b0. ;
rl w3 66 ;
bz w0 x3-5 ;
al w1 x1+a18 ;
al w2 x1+a19
jl. w3 b0.
jl. w3 b4. ;
jl. a30. ;
;
;
b. i15,h5 w. ;
b4: rs. w3 i3. ;
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. ;
al. w3 a11. ;
ds. w3 i7.
ds. w1 i5.
jd 1<11+16; write
al. w1 a10. ;
ds. w1 i9.
ds. w3 i11.
jd 1<11+18;
al w0 2 ;
jl. w3 b1. ; wait
al. w1 a17. ;
al. w2 a15.-2 ;
al w0 0 ;
h1: rs w0 x1 ;
al w1 x1+2 ;
sh w1 x2 ;
jl. h1. ;
al. w2 a30.-2 ;
al w0 7 ;
h2: rs w0 x1 ;
al w1 x1+2 ;
sh w1 x2 ;
jl. h2. ;
jl. (i3.) ;
i3: 0 ;
i4: 0
i5: 0
i6: 0
i7: 0
i8: 0
i9: 0
i10: 0
i11: 0
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. i10,h5 w. ;
b2: ;
0,r.8 ;
al. w1 i1. ;
al. w2 i5. ;
al. w3 i6. ;
ds w3 x1+4 ;
al. w3 a11. ;
jd 1<11+16;
al. w1 i7. ;
jd 1<11+18;
jl. 0 ;
;
;
i1: 5<12,0,r.7
i5: <:<10>interrupt ****************************************** <10>:>
i6: 0 ;
i7: 0,r.8
e. ;
;
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◀