$E9F2/59890: Accept byte with EOI
Jump from $E9E7:
E9F2: 20 A5 E9 JSR $E9A5 ; DATA OUT bit '0' hi
E9F5: A2 0A LDX #$0A ; 10
Jump from $E9F8:
E9F7: CA DEX ; delay loop, approx 50 micro sec.
E9F8: D0 FD BNE $E9F7
E9FA: 20 9C E9 JSR $E99C ; DATA OUT, bit '1', lo
Jump from $EA05:
E9FD: 20 59 EA JSR $EA59 ; check EOI
EA00: 20 C0 E9 JSR $E9C0 ; read IEEE
EA03: 29 04 AND #$04 ; CLOCK IN?
EA05: F0 F6 BEQ $E9FD ; no, wait
EA07: A9 00 LDA #$00
EA09: 85 F8 STA $F8 ; set EOI flag
Jump from $EA13, $EA26, $E9F0:
EA0B: AD 00 18 LDA $1800 ; IEEE port
EA0E: 49 01 EOR #$01 ; invert data byte
EA10: 4A LSR
EA11: 29 02 AND #$02
EA13: D0 F6 BNE $EA0B ; CLOCK IN?
EA15: EA NOP
EA16: EA NOP
EA17: EA NOP
EA18: 66 85 ROR $85 ; prepare next bit
Jump from $EA22:
EA1A: 20 59 EA JSR $EA59 ; check EOI
EA1D: 20 C0 E9 JSR $E9C0 ; read IEEE port
EA20: 29 04 AND #$04 ; CLOCK IN?
EA22: F0 F6 BEQ $EA1A ; no
EA24: C6 98 DEC $98 ; decrement bit counter
EA26: D0 E3 BNE $EA0B ; all bits output?
EA28: 20 A5 E9 JSR $E9A5 ; DATA OUT, bit '0', hi
EA2B: A5 85 LDA $85 ; load data byte again
EA2D: 60 RTS
Previous Page / Next Page