C64 ROM | Routines |
Prev: EFDB | Up: Map | Next: F014 |
Used by the routine at F250.
|
||||
EFE1 | 85 9A | STA $9A | save the output device number | |
EFE3 | AD 94 02 | LDA $0294 | read the pseudo 6551 command register | |
EFE6 | 4A | LSR A | shift handshake bit to carry | |
EFE7 | 90 29 | BCC $F012 | if 3 line interface go ?? | |
EFE9 | A9 02 | LDA #%00000010 | mask 0000 00x0, RTS out | |
EFEB | 2C 01 DD | BIT $DD01 | test VIA 2 DRB, RS232 port | |
EFEE | 10 1D | BPL $F00D | if DSR = 0 set DSR not present and exit | |
EFF0 | D0 20 | BNE $F012 | if RTS = 1 just exit | |
EFF2 | AD A1 02 | LDA $02A1 | get the RS-232 interrupt enable byte | |
EFF5 | 29 02 | AND #$02 | mask 0000 00x0, timer B interrupt | |
EFF7 | D0 F9 | BNE $EFF2 | loop while the timer B interrupt is enebled | |
EFF9 | 2C 01 DD | BIT $DD01 | test VIA 2 DRB, RS232 port | |
EFFC | 70 FB | BVS $EFF9 | loop while CTS high | |
EFFE | AD 01 DD | LDA $DD01 | read VIA 2 DRB, RS232 port | |
F001 | 09 02 | ORA #%00000010 | mask xxxx xx1x, set RTS high | |
F003 | 8D 01 DD | STA $DD01 | save VIA 2 DRB, RS232 port | |
F006 | 2C 01 DD | BIT $DD01 | test VIA 2 DRB, RS232 port | |
F009 | 70 07 | BVS $F012 | exit if CTS high | |
F00B | 30 F9 | BMI $F006 | loop while DSR high | |
This entry point is used by the routines at F04D and F409.
set no DSR and exit
|
||||
F00D | A9 40 | LDA #$40 | set DSR signal not present | |
F00F | 8D 97 02 | STA $0297 | save the RS232 status register | |
F012 | 18 | CLC | flag ok | |
F013 | 60 | RTS |
Prev: EFDB | Up: Map | Next: F014 |