Prev: FE66 Up: Map Next: FEC2
FE72: RS232 NMI routine
Used by the routine at FE47.
FE72 98 TYA
FE73 2D A1 02 AND $02A1 AND with the RS-232 interrupt enable byte
FE76 AA TAX
FE77 29 01 AND #$01
FE79 F0 28 BEQ $FEA3
FE7B AD 00 DD LDA $DD00 read VIA 2 DRA, serial port and video address
FE7E 29 FB AND #%11111011 mask xxxx x0xx, clear RS232 Tx DATA
FE80 05 B5 ORA $B5 OR in the RS232 transmit data bit
FE82 8D 00 DD STA $DD00 save VIA 2 DRA, serial port and video address
FE85 AD A1 02 LDA $02A1 get the RS-232 interrupt enable byte
FE88 8D 0D DD STA $DD0D save VIA 2 ICR
FE8B 8A TXA
FE8C 29 12 AND #$12
FE8E F0 0D BEQ $FE9D
FE90 29 02 AND #$02
FE92 F0 06 BEQ $FE9A
FE94 20 D6 FE JSR $FED6
FE97 4C 9D FE JMP $FE9D
FE9A 20 07 FF JSR $FF07
FE9D 20 BB EE JSR $EEBB
FEA0 4C B6 FE JMP $FEB6
FEA3 8A TXA get active interrupts back
FEA4 29 02 AND #%00000010 mask ?? interrupt
FEA6 F0 06 BEQ $FEAE branch if not ?? interrupt
was ?? interrupt
FEA8 20 D6 FE JSR $FED6
FEAB 4C B6 FE JMP $FEB6
FEAE 8A TXA get active interrupts back
FEAF 29 10 AND #%00010000 mask CB1 interrupt, Rx data bit transition
FEB1 F0 03 BEQ $FEB6 if no bit restore registers and exit interrupt
FEB3 20 07 FF JSR $FF07
FEB6 AD A1 02 LDA $02A1 get the RS-232 interrupt enable byte
FEB9 8D 0D DD STA $DD0D save VIA 2 ICR
This entry point is used by the routines at F92C, FA60 and FBCD.
FEBC 68 PLA pull Y
FEBD A8 TAY restore Y
FEBE 68 PLA pull X
FEBF AA TAX restore X
FEC0 68 PLA restore A
FEC1 40 RTI
Prev: FE66 Up: Map Next: FEC2