Prev: F028 Up: Map Next: F086
F04D: input from RS232 buffer
Used by the routine at F20E.
F04D 85 99 STA $99 save the input device number
F04F AD 94 02 LDA $0294 get pseudo 6551 command register
F052 4A LSR A shift the handshake bit to Cb
F053 90 28 BCC $F07D if 3 line interface go ??
F055 29 08 AND #%00001000 mask the duplex bit, pseudo 6551 command is >> 1
F057 F0 24 BEQ $F07D if full duplex go ??
F059 A9 02 LDA #$02 mask 0000 00x0, RTS out
F05B 2C 01 DD BIT $DD01 test VIA 2 DRB, RS232 port
F05E 10 AD BPL $F00D if DSR = 0 set no DSR and exit
F060 F0 22 BEQ $F084 if RTS = 0 just exit
F062 AD A1 02 LDA $02A1 get the RS-232 interrupt enable byte
F065 4A LSR A shift the timer A interrupt enable bit to Cb
F066 B0 FA BCS $F062 loop while the timer A interrupt is enabled
F068 AD 01 DD LDA $DD01 read VIA 2 DRB, RS232 port
F06B 29 FD AND #%11111101 mask xxxx xx0x, clear RTS out
F06D 8D 01 DD STA $DD01 save VIA 2 DRB, RS232 port
F070 AD 01 DD LDA $DD01 read VIA 2 DRB, RS232 port
F073 29 04 AND #%00000100 mask xxxx x1xx, DTR in
F075 F0 F9 BEQ $F070 loop while DTR low
F077 A9 90 LDA #$90 enable the FLAG interrupt
F079 18 CLC flag ok
F07A 4C 3B EF JMP $EF3B set VIA 2 ICR from A and return
F07D AD A1 02 LDA $02A1 get the RS-232 interrupt enable byte
F080 29 12 AND #%00010010 mask 000x 00x0
F082 F0 F3 BEQ $F077 if FLAG or timer B bits set go enable the FLAG interrupt
F084 18 CLC flag ok
F085 60 RTS
Prev: F028 Up: Map Next: F086