|
|
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: »hcloadbl4«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦this⟧ »hcloadbl4«
b100:
d0 = 85 ;X 88 ; control octet for end transmission.
d1 = 170 ;C 67 ; control octet for transmission of word ok.
d2 = 60 ;E 69 ; control octet for repeat tranbsmission of
; last 3 octets.
d3 = 240 ; control octet for repeat complete transmission.
d4 = 255 ;S 83 ; control octet for transmission start.
d10:
c1: rl. w0 b118. ; get char.
sn w0 d4 ; if charakter read = 255 ( load command)
jl. c3. ; then goto c3
gp w0 64 ; else show load command
jd 1<11+2 ; swop process.
jl. c1. ; goto start.
c3:
al. w1 f9. ; address of end of program.
rs. w1 f1. ; store last address.
al. w1 f10. ; get address first of program.
rs. w1 f5. ; save in current address.
c4: rl. w0 ( f5. ; get current word.
al w3 0 ; load word status.
rs.w3 f7. ; save word status ok.
ls w0 -16 ; get first octet.
jl. w3 c5. ; call send wait and control octet.
rl. w0 ( f5. ; get current word.
ls w0 8 ; get middle octet.
ls w0 -16 ;
jl. w3 c5. ; call send wait and control octet.
rl. w0 ( f5. ; get current address.
ls w0 16 ; get last octet.
ls w0 -16 ;
jl. w3 c5. ; call send wait and control octet.
al w0 0 ; load control word for word control.
sn. w0 (f7. ; skip next if word control is ok.
jl. c7. ; goto word transmitted ok.
al w0 d2 ; load control octet for retransmit octet.
jl. w3 c5. ; call send wait and control.
jl. c4. ; goto send same word.
c7: ;; next word.
rl. w1 f5. ; get last current.
al w1 x1+2 ; next current.
rs. w1 f5. ; save address of next current.
sl. w1 ( f1. ; if current word <= address of last of program
jl. c6. ; then goto send control word last byte.
al w0 d1 ; load control octet for word transmitted ok.
jl. w3 c5. ; call send control octet.
jl. c4. ; goto send next word.
c6: ;; send last control byte.
al w0 d0 ; load second control octet.
jl. w3 c5. ; call send wait and conmtrol.
jd 1<11+2 ; swop process and wait for char to be recieved.
jl. c1. ; goto start.
c5: ;; procedure write octet and wait control.
b. c10 w.
rs. w3 c0. ; save return address.
rs. w0 c1. ; save octet to be send.
al w3 -1 ; reset recive control.
rs. w3 b118. ;
rl. w3 f0. ; get device address.
jd 1<11+14; call send octet.
; return when octet is received.
rl. w0 b118. ; get octet received.
sn. w0 ( c1. ; skip if not equal with octet send.
jl. ( c0. ; return from subroutine.
sn w0 d4 ; if octet received is start transmission then
jl. d10. ; got start transmission.
ls w0 8 ; shift octet received 8
lo. w0 c1. ; mask octet send in.
gp w0 64 ; show wrong octets.
rs. w3 f7. ; save wong word in word status.
jl. ( c0. ; return fromn subroutine.
c0: 0 ; return address.
c1: 0 ; octet send.
e. ;; end of procedure send octet wait and check.
b110:
b. c20 w.
;; block second process.
rl. w3 f0. ; load device address.
jd 1<11+20; call init of terminal driver.
al w1 32
c0: ; get loop counter.
al w1 x1+1
al w2 x1 ; get timer interupt counter.
ls w2 -4
ls w2 16
gp w2 64
rl. w2 b118.
ls w2 8
gp w2 64
rl. w2 b117.
gp w2 64
jl. c0. ; goto repeat.
e. ;; end block second process.
b112:0
b116:0
b117:0
b118:80 ; char to be output.
b119:0
f0: 64 ; device address.
f7: 0 ; status of word send.
f4: 0 ;
f5: 0 ; current storage address.
f1: 0 ; program length.
f2: 0 ; start address relative to f1.
f10:p.<:hclocalprog:>
;;<:aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrr:>
f9: <:@@@:> ; last program address.
b101:
b111:jl. 0 ; end of 2. and first user program.
e.
; end of 2. user program.
▶EOF◀