|
|
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: 3072 (0xc00)
Types: TextFile
Names: »kkhcload«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦this⟧ »kkhcload«
; loader for HC8000
;
;
s. a50,i25,c10 w.
;
; 0
; 2
; 4
; 6
0,r.256
k=8
a0 ; 8: start addr
a0: al w3 a20 ; system table addr
gp w3 c10 ; to inf reg
ri c6 ; start
a1: rl w3 c0 ;
do w3 (c1) ; send autoload request
al w3 a3 ; start addr after interrupt
jl. 0 ; wait for interrupt
a2: ; interrupt addr
al w1 a30 ;
rl w0 x1+6 ; load saved w3 as new ic
rs w0 x1+10 ;
ri c6 ; start
a3: al w3 i20 ; level 20 location
al w1 a0 ;
rs w1 x3+2 ;
di w1 (c1) ; send input start signal
al w3 a4 ; new ic after interrupt
jl. 0 ; wait for external interrupt
;
a4: rl w1 a0+2 ;
sh w1 0 ; if no more to copy then
jl a5 ; goto start monitor
al w1 x1-1 ; decrease number of shares
rs w1 a0+2 ;
al w2 i21 ; w2:=addr(levellocation(21))
rl w0 x2+2 ; count
wa w0 x2+0 ; new input addr
rs w0 x2+2 ;
di w2 (c4) ; start input
al w3 a4 ;
jl. 0 ; wait for external interrupt
;
a5: al w3 a50 ;
jl x3+6 ; goto monitor
;
;
c0: 1<23 ; 1<23 + autoload message
c2= 20<3
c1: 1<23+c2+2.001 ; interrupt addr for RH8000
c3= c2+1<3
c4: 1<23 + c3 + 2.001 ;
c5 =c2>3+4 ; interrupt limit
c6=16
c10= 8.15<1
;
;
;1 system table: monitor mode
0 ; -5 monitor call service addr
a2 ; -3 interrupt service addr
1<23+c5 ; -1 status interrupt limit
a20=k-13
a30 ; +1 register dump addr
0 ; +3 exception service addr
0 ; +5 escape service addr
;1 system table: user mode
0 ; -5 monitor call service addr
0 ; -3 interrupt - -
1<23 + c5 ; -1 status < 12 + interrupt limit
0 ; +1 register dump addr
0 ; +3 exception service addr
0 ; +5 escape service addr
;1 monitor register dump addr
a30: 0 ; w0
0 ; w1
0 ; w2
0 ; w3
1<23 + c5 ; status interrupt limit
a1 ; ic start cpu1 process
0 ; cause
0 ; sb
0 ; cpa
0 ; base
8 ; lower write limit
8.3777 7777 ; upper write limit
0<12 + c5 ; interrupt limits
;
0,r.(:c2 + a0 - k:)>1
i20: 2,i20, 0, 26
i21: 0,a50, 0, 27
i22: 0, 0, 0, 28
i23: 0, 0, 0, 29
a50: ; start input addr for monitor
0,r.(:1024-k:)>1
e.
▶EOF◀