diff options
Diffstat (limited to 'src/devices/machine/mc68901.cpp')
-rw-r--r-- | src/devices/machine/mc68901.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/devices/machine/mc68901.cpp b/src/devices/machine/mc68901.cpp index c3ba2a7bfaa..3a178089dfc 100644 --- a/src/devices/machine/mc68901.cpp +++ b/src/devices/machine/mc68901.cpp @@ -530,8 +530,22 @@ void mc68901_device::rcv_complete() m_receive_buffer = get_received_char(); m_rsr |= RSR_BUFFER_FULL; LOG("Received Character: %02x\n", m_receive_buffer); + + if (is_receive_framing_error()) + m_rsr |= RSR_FRAME_ERROR; + else + m_rsr &= ~RSR_FRAME_ERROR; + + if (is_receive_parity_error()) + m_rsr |= RSR_PARITY_ERROR; + else + m_rsr &= ~RSR_PARITY_ERROR; + + if ((m_rsr & (RSR_FRAME_ERROR | RSR_PARITY_ERROR)) && (m_ier & IR_RCV_ERROR)) + rx_error(); + else + rx_buffer_full(); } - rx_buffer_full(); } |