summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/mb87030.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/mb87030.cpp')
-rw-r--r--src/devices/machine/mb87030.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/devices/machine/mb87030.cpp b/src/devices/machine/mb87030.cpp
index 8cafde3ba11..41b08682e81 100644
--- a/src/devices/machine/mb87030.cpp
+++ b/src/devices/machine/mb87030.cpp
@@ -408,6 +408,9 @@ void mb87030_device::step(bool timeout)
case State::TransferSendAck:
+ if (!(ctrl & S_INP))
+ m_temp = data;
+
scsi_set_ctrl(S_ACK, S_ACK);
scsi_bus->ctrl_wait(scsi_refid, 0, S_REQ);
@@ -582,7 +585,7 @@ WRITE8_MEMBER(mb87030_device::scmd_w)
case SCMD_CMD_SET_ACK_REQ:
LOG("%s: Set ACK/REQ\n", __FUNCTION__);
if (m_ssts & SSTS_INIT_CONNECTED) {
- if (m_pctl & 1) {
+ if (scsi_bus->ctrl_r() & S_INP) {
m_temp = scsi_bus->data_r();
} else {
scsi_bus->data_w(scsi_refid, m_temp);
@@ -701,7 +704,7 @@ WRITE8_MEMBER(mb87030_device::dreg_w)
READ8_MEMBER(mb87030_device::temp_r)
{
- m_temp = scsi_bus->data_r();
+ step(false);
LOG("%s: %02X\n", __FUNCTION__, m_temp);
return m_temp;