summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/namcona1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/namcona1.cpp')
-rw-r--r--src/mame/drivers/namcona1.cpp24
1 files changed, 3 insertions, 21 deletions
diff --git a/src/mame/drivers/namcona1.cpp b/src/mame/drivers/namcona1.cpp
index 676acf39850..32086e989ee 100644
--- a/src/mame/drivers/namcona1.cpp
+++ b/src/mame/drivers/namcona1.cpp
@@ -622,30 +622,12 @@ WRITE16_MEMBER(namcona1_state::na1mcu_shared_w)
COMBINE_DATA(&m_workram[offset]);
}
-READ16_MEMBER(namcona1_state::snd_r)
-{
- /* can't use DEVREADWRITE8 for this because it is opposite endianness to the CPU for some reason */
- return m_c140->c140_r(space,offset*2+1) | m_c140->c140_r(space,offset*2)<<8;
-}
-
-WRITE16_MEMBER(namcona1_state::snd_w)
-{
- /* can't use DEVREADWRITE8 for this because it is opposite endianness to the CPU for some reason */
- if (ACCESSING_BITS_0_7)
- {
- m_c140->c140_w(space,(offset*2)+1, data);
- }
-
- if (ACCESSING_BITS_8_15)
- {
- m_c140->c140_w(space,(offset*2), data>>8);
- }
-}
-
void namcona1_state::namcona1_mcu_map(address_map &map)
{
map(0x000800, 0x000fff).rw(FUNC(namcona1_state::mcu_mailbox_r), FUNC(namcona1_state::mcu_mailbox_w_mcu)); // "Mailslot" communications ports
- map(0x001000, 0x001fff).rw(FUNC(namcona1_state::snd_r), FUNC(namcona1_state::snd_w)); // C140-alike sound chip
+ map(0x001000, 0x001fff).lrw8("c219_rw",
+ [this](offs_t offset) { return m_c140->c140_r(offset ^ 1)/* need ^ 1 because endian issue */; },
+ [this](offs_t offset, u8 data) { m_c140->c140_w(offset ^ 1, data); }); // C140-alike sound chip
map(0x002000, 0x002fff).rw(FUNC(namcona1_state::na1mcu_shared_r), FUNC(namcona1_state::na1mcu_shared_w)); // mirror of first page of shared work RAM
map(0x003000, 0x00afff).ram(); // there is a 32k RAM chip according to CGFM
map(0x200000, 0x27ffff).rw(FUNC(namcona1_state::na1mcu_shared_r), FUNC(namcona1_state::na1mcu_shared_w)); // shared work RAM