Files
open-roms/c64/kernal/rs232/up9600_irq.s
T
2019-11-22 17:35:17 +01:00

41 lines
632 B
ArmAsm

//
// RS-232 IRQ handler part
//
// Based on UP9600 code by Daniel Dallman with Bo Zimmerman adaptations
#if CONFIG_RS232_UP9600
up9600_irq:
lda CIA1_ICR // $DC0D
lsr
lsr // move bit 1 (timer B flag) into Carry
and #$02 // test SDR (shift register) status
beq up9600_irq_continue
ldx RINONE
beq !+ // skip if not waiting for empty SDR
dex
stx RINONE
!:
bcc up9600_irq_end
up9600_irq_continue:
rts
up9600_irq_end:
pla
pla
jmp return_from_interrupt
#endif // CONFIG_RS232_UP9600