|
|
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: 11520 (0x2d00)
Types: TextFile
Names: »kkrh1t«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦this⟧ »kkrh1t«
(kkrh1=slang list.no xref.no;
) ;
\f
s. a60,b20,c60 w. ;
p. <:fpnames:> ;
k=h55 ;
0 ;
a16: a14 ;
al w3 x1 ;
wa. w3 a16. ;
jl w2 x3 ; start init
jl. b0. ;
a50: 0,r.20 ;
; start exekvering
b0: jl. w3 h25.-2 ; input next command
se w2 114 ; if not r(eset) then
jl. b1. ; goto b1
jl. w3 a22. ; else reset cpu1
jl. b0. ; goto input next command
b1: se w2 97 ; if not (st)a(rt)
jl. b2. ; goto b
jl. w3 a24. ; else start cpu1
jl. b0. ; goto input next command
b2: se w2 111 ; if not (st)o(p) then
jl. b3. ; goto b3
jl. w3 a23. ; else stop cpu1
jl. b0. ; goto input next command
b3: se w2 105 ; if interrupt then
jl. b4. ; goto b4
jl. w3 a21. ; else interrupt
jl. b0. ; goto input next command
b4: se w2 102 ; if not f(inis) then
jl. b0. ; goto input next command
al w0 0 ;
rs w0 100 ;
jl. w3 a20. ;
al w2 0 ;
jl. w3 h7. ;
b. j1 w. ;
;
;
;
a20: ; venteprocedure
rs. w3 j0. ;
al. w3 a6. ;
al. w1 a7. ;
jd 1<11+16;
al. w1 a8. ;
jd 1<11+18;
al. w2 a50. ;
j1: rl w0 x2 ;
jl. w3 h32.-2 ;
1<23+32<12 +8 ;
al w2 x2+2 ;
sh. w2 a50.+14;
jl. j1. ;
al w2 10 ;
jl. w3 h33.-2 ;
jl. ( j0.) ;
j0: 0 ;
e. ;
b. j0 w. ;
a24: am 1<1 ; start
a23: am 1<1 ; stop
a22: am 1<1 ; reset
a21: al w0 a0 ; interrupt
wa. w0 a5. ;
rs. w3 j0. ;
al w3 8 ;
do w3 ( 0) ;
jl. w3 a20. ; goto vent
jl. ( j0.) ;
j0: 0 ;
e. ;
c0=+1 ; c0>0 for test af ri-ordren
a0=20<3 ;
a5: 1<23 ;
a6: <:clock:>,0,0,0,0 ;
a7: 0,1,0,0,0,0 ;
a8: 0,r.10 ;
;
a11: ; start test
c. -c0 ;
al w2 1 ;
as w2 22 ;
al w3 0 ;
ds. w3 a50.+2 ;
as w2 -20 ;
ds. w3 a50.+10;
jl. a12. ;
m. wait cpu1 ;
a12: ls w1 -18 ;
gg w3 66 ;
jl. a11. ;
;
;
c27: ;
b. h20,i12 w. ;
z. ;
c. c0 ;
jl. c26. ;
c27: ;
rl. w1 a50. ;
al w1 x1+1 ;
rs. w1 a50. ;
ri 16 ;
b. h20,i12 w. ;
c26: al. w3 h0. ;#1 init cpu1
gp w3 26 ;#1 set inf register addr;
rl w3 8 ;#1 base of controller descr addr
al. w1 c27. ;#1
rs w1 x3+a0+0 ;#1 set start addr
ri 16 ;#1 return interrupt;
;;
; testoutput
; antal ri - i type - antal int - int level - di - tl - tl - tl
;
; interrupt 16: input finis
; 18: input request
; 20: output finis
;
;#1 system table: monitor mode
h. ;
0 ;
h0: ;
0,r.6 ;
w. ;
0 ; -5 monitor call service addr
i0: h6 ; -3 interrupt service addr
1<23+0 ; -1 status interrupt limit
i1: h3 ; +1 register dump addr
0 ; +3 exception service addr
0 ; +5 escape service addr
;#1 system table: user mode
i2: h4 ; -5 monitor call service addr
i3: h5 ; -3 interrupt - -
1<23 + 6 ; -1 status < 12 + interrupt limit
i5: h7 ; +1 register dump addr
0 ; +3 exception service addr
0 ; +5 escape service addr
;#1 monitor register dump addr
h3: 0 ; w0
0 ; w1
0 ; w2
0 ; w3
1<23 ; status monitor mode
i4: c27 ; ic start cpu1 process
0 ; cause
0 ; sb
8 ; cpa
0 ; base
8 ; lower write limit
8.3777 7777 ; upper write limit
0<12 + 6 ; interrupt limits
;#1 interrupt service cpu1
h4: am 1 ;#1 monitor call service addr
h5: am 1 ;#1 interrupt service addr (level 1)
h6: al w3 1 ;#1 interrupt service addr (level 2)
rs. w3 a50.+2 ;
rl. w1 a50.+4 ;
al w1 x1+1 ;
rs. w1 a50.+4 ;
sh w2 14 ;
jl. c27. ;
rs. w2 a50.+6 ;
rs. w2 i10. ;
jl. c27. ;
h7: 0 ; w0
0 ; w1
0 ; w2
0 ; w3
1<23 ; status
i6: h8 ; ic
0 ; cause
0 ; sb
8 ; cpa
0 ; base
8 ;
8.3777 7777 ; upper write limit
0<12+20 ;
h8: ;
al w2 0 ;
do. w2 ( a2.) ; start HC8000
al. w3 a49. ; output addr
ws. w3 a40. ;
rl w1 8 ; w1:= base of controller table
rs w3 x1+a0+1<3+2;
jl. h12. ; goto wait
h14: rl. w2 a41. ; w2:=share count
rl. w0 x2+a40. ; w0:=length of next share
wa w3 0 ;
al w2 x2+2 ;
rs. w2 a41. ;
rl. w0 x2+a40. ;
sh w0 0 ; if no more to output then
jl. h9. ; goto wait
ds w3 x1+a0+1<3+2; buff:= length,addr
al w2 0 ;
rs. w2 i10. ;
do. w0 ( a2.) ; send data transfer request
al w2 0 ;
rs. w2 a50.+10;
h15: rl. w2 a50.+10;
al w2 x2+1 ;
rs. w2 a50.+10;
rl. w2 i10. ;
se w2 20 ; wait for data tranfer completed
jl. h15. ;
al w3 0 ;
rx. w3 i10. ;
se w3 x2 ; if a new interrupt already is arrieved then
jl. h13. ; goto h13
h12: al w2 0 ;
rs. w2 a50.+12;
h11: rl. w2 a50.+12;
al w2 x2+1 ;
rs. w2 a50.+12;
sl. w2 ( a3.) ; if time out then
jl. h8. ; goto restart on HC8000
rl. w2 i10. ;
se w2 18 ; wait for ready signal from hc
jl. h11. ;
al w2 0 ;
rs. w2 i10. ; clear interrupt signal
h13: al w3 40 ;
di. w3 ( a2.) ;
rs. w3 a50.+8 ;
se w3 -35 ;
jl. h17. ;
al w1 0 ;
rs. w1 i10. ;
al w1 100 ;
h16: ;
al w2 -6 ;
do. w2 ( a2.) ;
rl. w3 i10. ;
se w3 0 ;
jl. h17. ;
al w1 x1-1 ;
sl w1 1 ;
jl. h16. ;
rs. w1 a50.+12;
h17: ;
rl w3 x1+a0+1<3+2;
jl. h14. ;
h9: ;
rl. w2 i10. ;
sn w2 0 ;
jl. -4 ;
al w2 0 ;
rs. w2 i10. ;
al w3 30 ;
di. w3 ( a2.) ;
rl. w2 i10. ;
sn w2 0 ;
jl. -4 ;
al w2 0 ;
rs. w2 i10. ;
rl. w2 i10. ;
sn w2 0 ;
jl. -4 ;
di. w3 ( a2.) ;
rs. w3 a50.+2 ;
rl. w2 a50.+14;
al w2 x2+1 ;
rs. w2 a50.+14;
jl. h9. ;
i10: 0 ;
z. ;
a1: 0 ;
a2: 1<23+21<3+2.001 ;
a3: 100000 ;
a4: 0 ;
a9: 1<23+21<3+ 2.010 ; reset
a14: ; start init
rs. w2 a4. ; save return
rs. w1 a14. ; save fp base
rl w3 8 ; base of controller tabel
al w3 x3+a0 ;
rs. w3 a1. ; addr of contr. table for cpu1
al. w1 a11. ;
al w0 x1 ;
ds w1 x3+2 ;
ds w1 x3+10 ;
ds w1 x3+18 ;
ds w1 x3+26 ;
jd 1<11+28;
c. c0 ;
rl. w1 i0. ;
wa. w1 a14. ;
rs. w1 i0. ;
rl. w1 i1. ;
wa. w1 a14. ;
rs. w1 i1. ;
rl. w1 i2. ;
wa. w1 a14. ;
rs. w1 i2. ;
rl. w1 i3. ;
wa. w1 a14. ;
rs. w1 i3. ;
rl. w1 i4. ;
wa. w1 a14. ;
rs. w1 i4. ;
rl. w1 i5. ;
wa. w1 a14. ;
rs. w1 i5. ;
rl. w1 i6. ;
wa. w1 a14. ;
rs. w1 i6. ;
;
;
; rl. w1 i7.
; wa. w1 a14.
; rs. w1 i7.
z. ;
jl. ( a4.) ; return
a40: 4,4,20,a46,0 ;
a41: 0 ;
a49: ;
2 ;
2 ;
a47: 1<23+0<3+2.001 ;
am -1,r.20;
al w2 -17 ;
do. w2 ( a47.) ;
al w2 18 ;
rs w2 108 ; !!!!!
al w2 10 ;
hs w2 43 ;
am 1,r.800;
al w2 0 ;
ac w2 x2 ;
rs. w2 a55. ;
al w2 6
hs w2 43
al. w1 a60. ; halfwords
al w2 8 ; output addr
al. w3 a53. ;
ds w2 x3+2 ;
al w0 2.111 ;
la w0 6 ; w0:=output addr mod 8
rs w0 8 ; contr. table base
ls w3 -3 ;
ls w3 3 ;
wa. w3 a51. ;
al w2 20 ; exp. int level
rs w2 108 ; !!!!!!!!!
al w2 x3 ; device addr
al. w3 a52. ; return addr
do w1 x2 ;
jl. 0 ; wait interrupt
a52: al. w3 a48. ;
rl. w2 a55. ;
do. w2 ( a47.) ;
a48: jl. 0 ;
a53: 0,0,0,0 ;
a51: 1<23 + 0<3 + 2.001;
a55: 22<12 ;
0 ;
a56: 0 ;
a60: ;
a46=k-a49-24 ;
e. ;
e. ;
e. ;
▶EOF◀