C64 ROM | Routines |
Prev: FE66 | Up: Map | Next: FEC2 |
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 | |
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 |