summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/mc68901.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/mc68901.cpp')
-rw-r--r--src/devices/machine/mc68901.cpp16
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();
}