summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/deniam.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/deniam.cpp')
-rw-r--r--src/mame/drivers/deniam.cpp98
1 files changed, 51 insertions, 47 deletions
diff --git a/src/mame/drivers/deniam.cpp b/src/mame/drivers/deniam.cpp
index 3e2d152cd8c..1179d5ac987 100644
--- a/src/mame/drivers/deniam.cpp
+++ b/src/mame/drivers/deniam.cpp
@@ -73,55 +73,59 @@ WRITE16_MEMBER(deniam_state::deniam_irq_ack_w)
m_maincpu->set_input_line(4, CLEAR_LINE);
}
-ADDRESS_MAP_START(deniam_state::deniam16b_map)
- AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(deniam_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE(deniam_textram_w) AM_SHARE("textram")
- AM_RANGE(0x440000, 0x4407ff) AM_WRITEONLY AM_SHARE("spriteram")
- AM_RANGE(0x840000, 0x840fff) AM_WRITE(deniam_palette_w) AM_SHARE("paletteram")
- AM_RANGE(0xc40000, 0xc40001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0xff00)
- AM_RANGE(0xc40002, 0xc40003) AM_READWRITE(deniam_coinctrl_r, deniam_coinctrl_w)
- AM_RANGE(0xc40004, 0xc40005) AM_WRITE(deniam_irq_ack_w)
- AM_RANGE(0xc44000, 0xc44001) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xc44002, 0xc44003) AM_READ_PORT("P1")
- AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2") AM_WRITENOP
- AM_RANGE(0xc44006, 0xc44007) AM_READNOP /* unused? */
- AM_RANGE(0xc4400a, 0xc4400b) AM_READ_PORT("DSW")
- AM_RANGE(0xff0000, 0xffffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(deniam_state::sound_map)
- AM_RANGE(0x0000, 0xf7ff) AM_ROM
- AM_RANGE(0xf800, 0xffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(deniam_state::sound_io_map)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x01, 0x01) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0x02, 0x03) AM_DEVWRITE("ymsnd", ym3812_device, write)
- AM_RANGE(0x05, 0x05) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x07, 0x07) AM_WRITE(deniam16b_oki_rom_bank_w)
-ADDRESS_MAP_END
+void deniam_state::deniam16b_map(address_map &map)
+{
+ map(0x000000, 0x0fffff).rom();
+ map(0x400000, 0x40ffff).ram().w(this, FUNC(deniam_state::deniam_videoram_w)).share("videoram");
+ map(0x410000, 0x410fff).ram().w(this, FUNC(deniam_state::deniam_textram_w)).share("textram");
+ map(0x440000, 0x4407ff).writeonly().share("spriteram");
+ map(0x840000, 0x840fff).w(this, FUNC(deniam_state::deniam_palette_w)).share("paletteram");
+ map(0xc40000, 0xc40000).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0xc40002, 0xc40003).rw(this, FUNC(deniam_state::deniam_coinctrl_r), FUNC(deniam_state::deniam_coinctrl_w));
+ map(0xc40004, 0xc40005).w(this, FUNC(deniam_state::deniam_irq_ack_w));
+ map(0xc44000, 0xc44001).portr("SYSTEM");
+ map(0xc44002, 0xc44003).portr("P1");
+ map(0xc44004, 0xc44005).portr("P2").nopw();
+ map(0xc44006, 0xc44007).nopr(); /* unused? */
+ map(0xc4400a, 0xc4400b).portr("DSW");
+ map(0xff0000, 0xffffff).ram();
+}
+
+void deniam_state::sound_map(address_map &map)
+{
+ map(0x0000, 0xf7ff).rom();
+ map(0xf800, 0xffff).ram();
+}
+
+void deniam_state::sound_io_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+ map(0x02, 0x03).w("ymsnd", FUNC(ym3812_device::write));
+ map(0x05, 0x05).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x07, 0x07).w(this, FUNC(deniam_state::deniam16b_oki_rom_bank_w));
+}
/* identical to 16b, but handles sound directly */
-ADDRESS_MAP_START(deniam_state::deniam16c_map)
- AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(deniam_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE(deniam_textram_w) AM_SHARE("textram")
- AM_RANGE(0x440000, 0x4407ff) AM_WRITEONLY AM_SHARE("spriteram")
- AM_RANGE(0x840000, 0x840fff) AM_WRITE(deniam_palette_w) AM_SHARE("paletteram")
- AM_RANGE(0xc40000, 0xc40001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0xc40002, 0xc40003) AM_READWRITE(deniam_coinctrl_r, deniam_coinctrl_w)
- AM_RANGE(0xc40004, 0xc40005) AM_WRITE(deniam_irq_ack_w)
- AM_RANGE(0xc40006, 0xc40007) AM_WRITE(deniam16c_oki_rom_bank_w)
- AM_RANGE(0xc44000, 0xc44001) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xc44002, 0xc44003) AM_READ_PORT("P1")
- AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2")
- AM_RANGE(0xc44006, 0xc44007) AM_READNOP /* read unused? extra input port/dipswitches? */
- AM_RANGE(0xc40008, 0xc4000b) AM_DEVWRITE8("ymsnd", ym3812_device, write, 0xff00)
- AM_RANGE(0xc4400a, 0xc4400b) AM_READ_PORT("DSW") /* probably YM3812 input port */
- AM_RANGE(0xff0000, 0xffffff) AM_RAM
-ADDRESS_MAP_END
+void deniam_state::deniam16c_map(address_map &map)
+{
+ map(0x000000, 0x0fffff).rom();
+ map(0x400000, 0x40ffff).ram().w(this, FUNC(deniam_state::deniam_videoram_w)).share("videoram");
+ map(0x410000, 0x410fff).ram().w(this, FUNC(deniam_state::deniam_textram_w)).share("textram");
+ map(0x440000, 0x4407ff).writeonly().share("spriteram");
+ map(0x840000, 0x840fff).w(this, FUNC(deniam_state::deniam_palette_w)).share("paletteram");
+ map(0xc40001, 0xc40001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xc40002, 0xc40003).rw(this, FUNC(deniam_state::deniam_coinctrl_r), FUNC(deniam_state::deniam_coinctrl_w));
+ map(0xc40004, 0xc40005).w(this, FUNC(deniam_state::deniam_irq_ack_w));
+ map(0xc40006, 0xc40007).w(this, FUNC(deniam_state::deniam16c_oki_rom_bank_w));
+ map(0xc44000, 0xc44001).portr("SYSTEM");
+ map(0xc44002, 0xc44003).portr("P1");
+ map(0xc44004, 0xc44005).portr("P2");
+ map(0xc44006, 0xc44007).nopr(); /* read unused? extra input port/dipswitches? */
+ map(0xc40008, 0xc4000b).w("ymsnd", FUNC(ym3812_device::write)).umask16(0xff00);
+ map(0xc4400a, 0xc4400b).portr("DSW"); /* probably YM3812 input port */
+ map(0xff0000, 0xffffff).ram();
+}