summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/hyprduel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/hyprduel.cpp')
-rw-r--r--src/mame/drivers/hyprduel.cpp104
1 files changed, 54 insertions, 50 deletions
diff --git a/src/mame/drivers/hyprduel.cpp b/src/mame/drivers/hyprduel.cpp
index bdb5c5c49a2..2222dfc1d05 100644
--- a/src/mame/drivers/hyprduel.cpp
+++ b/src/mame/drivers/hyprduel.cpp
@@ -257,60 +257,64 @@ WRITE_LINE_MEMBER(hyprduel_state::vdp_blit_end_w)
Memory Maps
***************************************************************************/
-ADDRESS_MAP_START(hyprduel_state::hyprduel_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x400000, 0x47ffff) AM_DEVICE("vdp", imagetek_i4220_device, v2_map)
- AM_RANGE(0x4788a2, 0x4788a3) AM_READWRITE(irq_cause_r, irq_cause_w) /* IRQ Cause,Acknowledge */
- AM_RANGE(0x4788a4, 0x4788a5) AM_RAM AM_SHARE("irq_enable") /* IRQ Enable */
- AM_RANGE(0x800000, 0x800001) AM_WRITE(subcpu_control_w)
- AM_RANGE(0xc00000, 0xc07fff) AM_RAM AM_SHARE("sharedram1")
- AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("SERVICE") AM_WRITENOP
- AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("DSW")
- AM_RANGE(0xe00004, 0xe00005) AM_READ_PORT("P1_P2")
- AM_RANGE(0xe00006, 0xe00007) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xfe0000, 0xfe3fff) AM_RAM AM_SHARE("sharedram2")
- AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE("sharedram3")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(hyprduel_state::hyprduel_map2)
- AM_RANGE(0x000000, 0x003fff) AM_RAM AM_SHARE("sharedram1") /* shadow ($c00000 - $c03fff : vector) */
- AM_RANGE(0x004000, 0x007fff) AM_READONLY AM_WRITENOP AM_SHARE("sharedram3") /* shadow ($fe4000 - $fe7fff : read only) */
- AM_RANGE(0x400000, 0x400003) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x00ff)
- AM_RANGE(0x400004, 0x400005) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x800000, 0x800001) AM_NOP
- AM_RANGE(0xc00000, 0xc07fff) AM_RAM AM_SHARE("sharedram1")
- AM_RANGE(0xfe0000, 0xfe3fff) AM_RAM AM_SHARE("sharedram2")
- AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE("sharedram3")
-ADDRESS_MAP_END
+void hyprduel_state::hyprduel_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0x400000, 0x47ffff).m(m_vdp, FUNC(imagetek_i4220_device::v2_map));
+ map(0x4788a2, 0x4788a3).rw(this, FUNC(hyprduel_state::irq_cause_r), FUNC(hyprduel_state::irq_cause_w)); /* IRQ Cause,Acknowledge */
+ map(0x4788a4, 0x4788a5).ram().share("irq_enable"); /* IRQ Enable */
+ map(0x800000, 0x800001).w(this, FUNC(hyprduel_state::subcpu_control_w));
+ map(0xc00000, 0xc07fff).ram().share("sharedram1");
+ map(0xe00000, 0xe00001).portr("SERVICE").nopw();
+ map(0xe00002, 0xe00003).portr("DSW");
+ map(0xe00004, 0xe00005).portr("P1_P2");
+ map(0xe00006, 0xe00007).portr("SYSTEM");
+ map(0xfe0000, 0xfe3fff).ram().share("sharedram2");
+ map(0xfe4000, 0xffffff).ram().share("sharedram3");
+}
+
+void hyprduel_state::hyprduel_map2(address_map &map)
+{
+ map(0x000000, 0x003fff).ram().share("sharedram1"); /* shadow ($c00000 - $c03fff : vector) */
+ map(0x004000, 0x007fff).readonly().nopw().share("sharedram3"); /* shadow ($fe4000 - $fe7fff : read only) */
+ map(0x400000, 0x400003).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)).umask16(0x00ff);
+ map(0x400005, 0x400005).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x800000, 0x800001).noprw();
+ map(0xc00000, 0xc07fff).ram().share("sharedram1");
+ map(0xfe0000, 0xfe3fff).ram().share("sharedram2");
+ map(0xfe4000, 0xffffff).ram().share("sharedram3");
+}
/* Magical Error - video is at 8x now */
-ADDRESS_MAP_START(hyprduel_state::magerror_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x400000, 0x400001) AM_WRITE(subcpu_control_w)
- AM_RANGE(0x800000, 0x87ffff) AM_DEVICE("vdp", imagetek_i4220_device, v2_map)
- AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(irq_cause_r, irq_cause_w) /* IRQ Cause, Acknowledge */
- AM_RANGE(0x8788a4, 0x8788a5) AM_RAM AM_SHARE("irq_enable") /* IRQ Enable */
- AM_RANGE(0xc00000, 0xc1ffff) AM_RAM AM_SHARE("sharedram1")
- AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("SERVICE") AM_WRITENOP
- AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("DSW")
- AM_RANGE(0xe00004, 0xe00005) AM_READ_PORT("P1_P2")
- AM_RANGE(0xe00006, 0xe00007) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xfe0000, 0xfe3fff) AM_RAM AM_SHARE("sharedram2")
- AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE("sharedram3")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(hyprduel_state::magerror_map2)
- AM_RANGE(0x000000, 0x003fff) AM_RAM AM_SHARE("sharedram1") /* shadow ($c00000 - $c03fff : vector) */
- AM_RANGE(0x004000, 0x007fff) AM_READONLY AM_WRITENOP AM_SHARE("sharedram3") /* shadow ($fe4000 - $fe7fff : read only) */
- AM_RANGE(0x400000, 0x400003) AM_NOP
- AM_RANGE(0x800000, 0x800003) AM_READNOP AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
- AM_RANGE(0x800004, 0x800005) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0xc00000, 0xc1ffff) AM_RAM AM_SHARE("sharedram1")
- AM_RANGE(0xfe0000, 0xfe3fff) AM_RAM AM_SHARE("sharedram2")
- AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE("sharedram3")
-ADDRESS_MAP_END
+void hyprduel_state::magerror_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0x400000, 0x400001).w(this, FUNC(hyprduel_state::subcpu_control_w));
+ map(0x800000, 0x87ffff).m(m_vdp, FUNC(imagetek_i4220_device::v2_map));
+ map(0x8788a2, 0x8788a3).rw(this, FUNC(hyprduel_state::irq_cause_r), FUNC(hyprduel_state::irq_cause_w)); /* IRQ Cause, Acknowledge */
+ map(0x8788a4, 0x8788a5).ram().share("irq_enable"); /* IRQ Enable */
+ map(0xc00000, 0xc1ffff).ram().share("sharedram1");
+ map(0xe00000, 0xe00001).portr("SERVICE").nopw();
+ map(0xe00002, 0xe00003).portr("DSW");
+ map(0xe00004, 0xe00005).portr("P1_P2");
+ map(0xe00006, 0xe00007).portr("SYSTEM");
+ map(0xfe0000, 0xfe3fff).ram().share("sharedram2");
+ map(0xfe4000, 0xffffff).ram().share("sharedram3");
+}
+
+void hyprduel_state::magerror_map2(address_map &map)
+{
+ map(0x000000, 0x003fff).ram().share("sharedram1"); /* shadow ($c00000 - $c03fff : vector) */
+ map(0x004000, 0x007fff).readonly().nopw().share("sharedram3"); /* shadow ($fe4000 - $fe7fff : read only) */
+ map(0x400000, 0x400003).noprw();
+ map(0x800000, 0x800003).nopr().w("ymsnd", FUNC(ym2413_device::write)).umask16(0x00ff);
+ map(0x800005, 0x800005).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xc00000, 0xc1ffff).ram().share("sharedram1");
+ map(0xfe0000, 0xfe3fff).ram().share("sharedram2");
+ map(0xfe4000, 0xffffff).ram().share("sharedram3");
+}
/***************************************************************************
Input Ports