summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/smc91c9x.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/smc91c9x.cpp')
-rw-r--r--src/devices/machine/smc91c9x.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/devices/machine/smc91c9x.cpp b/src/devices/machine/smc91c9x.cpp
index 201c8c6fc22..ee5214d2323 100644
--- a/src/devices/machine/smc91c9x.cpp
+++ b/src/devices/machine/smc91c9x.cpp
@@ -387,7 +387,8 @@ void smc91c9x_device::process_command(uint16_t data)
logerror(" RESET TX FIFOS\n");
break;
}
- m_reg[EREG_MMU_COMMAND] &= ~0x0001;
+ // Set Busy (clear on next read)
+ m_reg[EREG_MMU_COMMAND] |= 0x0001;
}
@@ -412,6 +413,11 @@ READ16_MEMBER( smc91c9x_device::read )
switch (offset)
{
+ case EREG_MMU_COMMAND:
+ // Clear busy
+ m_reg[EREG_MMU_COMMAND] &= ~0x0001;
+ break;
+
case EREG_PNR_ARR:
if (ACCESSING_BITS_8_15)
{
@@ -556,6 +562,9 @@ WRITE16_MEMBER( smc91c9x_device::write )
case EREG_INTERRUPT:
m_reg[EREG_INTERRUPT] &= ~(data & 0x56);
+ // Need to clear tx int here for vegas cartfury
+ if (m_reg[EREG_FIFO_PORTS] & 0x0080)
+ m_reg[EREG_INTERRUPT] &= ~EINT_TX;
update_ethernet_irq();
break;
}