summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author cracyc <cracyc@users.noreply.github.com>2021-09-04 20:19:56 -0500
committer cracyc <cracyc@users.noreply.github.com>2021-09-04 20:19:56 -0500
commitea3185af900624148012b9fda596f7b5f9414d6d (patch)
treeb9c5bf18ee1ec1b5281b6a7fccef0607c35cb31d
parent9b4d52c6e7de52ac4881b2d4bb203f99a0ac026a (diff)
i8257: fix it so tc can work with multiple devices
-rw-r--r--src/devices/machine/i8257.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/devices/machine/i8257.cpp b/src/devices/machine/i8257.cpp
index 663c5851abf..c2fb87d203b 100644
--- a/src/devices/machine/i8257.cpp
+++ b/src/devices/machine/i8257.cpp
@@ -428,7 +428,7 @@ void i8257_device::execute_run()
if (m_ready)
{
m_state = STATE_S4;
- if (m_channel[m_current_channel].m_count == 0)
+ if ((m_channel[m_current_channel].m_count == 0) && (MODE_TRANSFER_MASK != MODE_TRANSFER_READ))
set_tc(1);
}
else
@@ -439,7 +439,7 @@ void i8257_device::execute_run()
if (m_ready)
{
m_state = STATE_S4;
- if (m_channel[m_current_channel].m_count == 0)
+ if ((m_channel[m_current_channel].m_count == 0) && (MODE_TRANSFER_MASK != MODE_TRANSFER_READ))
set_tc(1);
}
break;
@@ -449,6 +449,8 @@ void i8257_device::execute_run()
{
dma_write();
}
+ if ((m_channel[m_current_channel].m_count == 0) && (MODE_TRANSFER_MASK == MODE_TRANSFER_READ))
+ set_tc(1);
advance();
if(m_hack && next_channel())