summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/tigeroad.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2017-01-17 03:52:08 +1100
committer Vas Crabb <vas@vastheman.com>2017-01-17 03:52:08 +1100
commita3e60b3f3d85fe10f52ae21d865e96079bd323c0 (patch)
treeffaddd309c7690147a50ba65d4d62053b4d9f9d1 /src/mame/drivers/tigeroad.cpp
parent408a8fceb44684f221214e74ab7c86983405a7b5 (diff)
pushman: better understanding of how CPU reads MCU data/status
bballs: simplify protection MCU simulation using pushman hookup as a guide (nw) bballs appears to use a simpler single-word arrangement for messages from CPU to MCU, perhaps so it can use a 28-pin MCU (pushman MCU receives the command byte on port D, which the 28-pin parts lack)
Diffstat (limited to 'src/mame/drivers/tigeroad.cpp')
-rw-r--r--src/mame/drivers/tigeroad.cpp20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/mame/drivers/tigeroad.cpp b/src/mame/drivers/tigeroad.cpp
index 54b7c1973f9..f9f0a1bc04d 100644
--- a/src/mame/drivers/tigeroad.cpp
+++ b/src/mame/drivers/tigeroad.cpp
@@ -87,15 +87,15 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pushman_map, AS_PROGRAM, 16, pushman_state )
AM_IMPORT_FROM(main_map)
- AM_RANGE(0x060000, 0x060001) AM_READWRITE(mcu_data_r, mcu_data_w)
- AM_RANGE(0x060002, 0x600003) AM_WRITE(mcu_cmd_w)
- AM_RANGE(0x060006, 0x060007) AM_READ(mcu_ack_r)
+ AM_RANGE(0x060000, 0x060007) AM_READ(mcu_comm_r)
+ AM_RANGE(0x060000, 0x060003) AM_WRITE(mcu_comm_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( bballs_map, AS_PROGRAM, 16, bballs_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x00000, 0x3ffff) AM_ROM
- AM_RANGE(0x60000, 0x60007) AM_READWRITE(bballs_68705_r, bballs_68705_w)
+ AM_RANGE(0x60000, 0x60007) AM_READ(bballs_68705_r)
+ AM_RANGE(0x60000, 0x60003) AM_WRITE(bballs_68705_w)
// are these mirror addresses or does this PCB have a different addressing?
AM_RANGE(0xe0800, 0xe17ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe4000, 0xe4001) AM_READ_PORT("P1_P2") AM_WRITE(tigeroad_videoctrl_w)
@@ -685,6 +685,7 @@ MACHINE_CONFIG_END
void pushman_state::machine_start()
{
+ save_item(NAME(m_host_semaphore));
save_item(NAME(m_mcu_semaphore));
save_item(NAME(m_host_latch));
save_item(NAME(m_mcu_latch));
@@ -705,17 +706,14 @@ MACHINE_CONFIG_END
MACHINE_RESET_MEMBER(bballs_state, bballs)
{
- m_new_latch = 0;
- m_latch = 0x400;
-
- std::fill(std::begin(m_shared_ram), std::end(m_shared_ram), 0);
+ m_mcu_semaphore = false;
+ m_mcu_latch = 0x0400;
}
void bballs_state::machine_start()
{
- save_item(NAME(m_shared_ram));
- save_item(NAME(m_latch));
- save_item(NAME(m_new_latch));
+ save_item(NAME(m_mcu_semaphore));
+ save_item(NAME(m_mcu_latch));
}
static MACHINE_CONFIG_DERIVED_CLASS(bballs, f1dream_comad, bballs_state)