summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/lkage.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2017-01-15 12:00:10 +1100
committer Vas Crabb <vas@vastheman.com>2017-01-15 14:56:56 +1100
commitb36d61fbf2c7be123cd5d924b03bb55321a3f3b7 (patch)
treeb4edd6aa9af2c910891c57f727db81465a855b53 /src/mame/drivers/lkage.cpp
parentd57170d5a5c0a34385cd604f9a91da2c2a14aeeb (diff)
taito68705interface improvements:
* remove non-obvious mcu_status_r and semaphore_r members and move to drivers (varies by system) * slap fight functionality can be safely folded into base class so do so * remove leftover crud from driver state classes qix.cpp, bub68705, changela: use new MC68705P3 core
Diffstat (limited to 'src/mame/drivers/lkage.cpp')
-rw-r--r--src/mame/drivers/lkage.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/mame/drivers/lkage.cpp b/src/mame/drivers/lkage.cpp
index 02086b95297..91c84e8ee92 100644
--- a/src/mame/drivers/lkage.cpp
+++ b/src/mame/drivers/lkage.cpp
@@ -157,12 +157,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( lkage_map_mcu, AS_PROGRAM, 8, lkage_state )
AM_IMPORT_FROM(lkage_map)
AM_RANGE(0xf062, 0xf062) AM_DEVREADWRITE("bmcu", taito68705_mcu_device, data_r, data_w)
- AM_RANGE(0xf087, 0xf087) AM_DEVREAD("bmcu", taito68705_mcu_device, mcu_status_r)
+ AM_RANGE(0xf087, 0xf087) AM_READ(mcu_status_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( lkage_map_boot, AS_PROGRAM, 8, lkage_state )
AM_IMPORT_FROM(lkage_map)
- AM_RANGE(0xf062, 0xf062) AM_READWRITE(fake_mcu_r,fake_mcu_w)
+ AM_RANGE(0xf062, 0xf062) AM_READWRITE(fake_mcu_r, fake_mcu_w)
AM_RANGE(0xf087, 0xf087) AM_READ(fake_status_r)
ADDRESS_MAP_END
@@ -864,7 +864,16 @@ ROM_START( bygone )
ROM_END
-/*Note: This probably uses another MCU dump,which is undumped.*/
+READ8_MEMBER(lkage_state::mcu_status_r)
+{
+ // bit 0 = when 1, MCU is ready to receive data from main CPU
+ // bit 1 = when 1, MCU has sent data to the main CPU
+ return
+ ((CLEAR_LINE == m_bmcu->host_semaphore_r()) ? 0x01 : 0x00) |
+ ((CLEAR_LINE != m_bmcu->mcu_semaphore_r()) ? 0x02 : 0x00);
+}
+
+// Note: This probably uses another MCU program, which is undumped.
READ8_MEMBER(lkage_state::fake_mcu_r)
{