diff options
Diffstat (limited to 'src/mame/drivers/dmndrby.cpp')
-rw-r--r-- | src/mame/drivers/dmndrby.cpp | 52 |
1 files changed, 27 insertions, 25 deletions
diff --git a/src/mame/drivers/dmndrby.cpp b/src/mame/drivers/dmndrby.cpp index 5d06938d1a8..b0289b3c597 100644 --- a/src/mame/drivers/dmndrby.cpp +++ b/src/mame/drivers/dmndrby.cpp @@ -145,31 +145,33 @@ WRITE8_MEMBER(dmndrby_state::output_w) // popmessage("%02x|%02x|%02x|%02x|%02x|%02x|%02x|%02x|",m_io_port[0],m_io_port[1],m_io_port[2],m_io_port[3],m_io_port[4],m_io_port[5],m_io_port[6],m_io_port[7]); } -ADDRESS_MAP_START(dmndrby_state::memmap) - AM_RANGE(0x0000, 0x5fff) AM_ROM - AM_RANGE(0x8000, 0x8fff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0xc000, 0xc007) AM_READ(input_r) - AM_RANGE(0xc000, 0xc007) AM_WRITE(output_w) - AM_RANGE(0xc802, 0xc802) AM_READ_PORT("DSW1") - AM_RANGE(0xc803, 0xc803) AM_READ_PORT("DSW2") - AM_RANGE(0xca00, 0xca00) AM_WRITENOP//(vblank_irq_w) //??? - AM_RANGE(0xca01, 0xca01) AM_WRITENOP //watchdog - AM_RANGE(0xca02, 0xca02) AM_RAM_WRITE(dderby_sound_w) - AM_RANGE(0xca03, 0xca03) AM_WRITENOP//(timer_irq_w) //??? - AM_RANGE(0xcc00, 0xcc05) AM_RAM AM_SHARE("scroll_ram") - AM_RANGE(0xce08, 0xce1f) AM_RAM AM_SHARE("sprite_ram") // horse sprites - AM_RANGE(0xd000, 0xd3ff) AM_RAM AM_SHARE("vidchars") // char ram - AM_RANGE(0xd400, 0xd7ff) AM_RAM AM_SHARE("vidattribs") // colours/ attrib ram -ADDRESS_MAP_END - -ADDRESS_MAP_START(dmndrby_state::dderby_sound_map) - AM_RANGE(0x0000, 0x0fff) AM_ROM - AM_RANGE(0x1000, 0x1000) AM_RAM //??? - AM_RANGE(0x4000, 0x4001) AM_DEVWRITE("ay1", ay8910_device, address_data_w) - AM_RANGE(0x4000, 0x4000) AM_DEVREAD("soundlatch", generic_latch_8_device, read) - AM_RANGE(0x4001, 0x4001) AM_DEVREAD("ay1", ay8910_device, data_r) - AM_RANGE(0x6000, 0x67ff) AM_RAM -ADDRESS_MAP_END +void dmndrby_state::memmap(address_map &map) +{ + map(0x0000, 0x5fff).rom(); + map(0x8000, 0x8fff).ram().share("nvram"); + map(0xc000, 0xc007).r(this, FUNC(dmndrby_state::input_r)); + map(0xc000, 0xc007).w(this, FUNC(dmndrby_state::output_w)); + map(0xc802, 0xc802).portr("DSW1"); + map(0xc803, 0xc803).portr("DSW2"); + map(0xca00, 0xca00).nopw();//(vblank_irq_w) //??? + map(0xca01, 0xca01).nopw(); //watchdog + map(0xca02, 0xca02).ram().w(this, FUNC(dmndrby_state::dderby_sound_w)); + map(0xca03, 0xca03).nopw();//(timer_irq_w) //??? + map(0xcc00, 0xcc05).ram().share("scroll_ram"); + map(0xce08, 0xce1f).ram().share("sprite_ram"); // horse sprites + map(0xd000, 0xd3ff).ram().share("vidchars"); // char ram + map(0xd400, 0xd7ff).ram().share("vidattribs"); // colours/ attrib ram +} + +void dmndrby_state::dderby_sound_map(address_map &map) +{ + map(0x0000, 0x0fff).rom(); + map(0x1000, 0x1000).ram(); //??? + map(0x4000, 0x4001).w("ay1", FUNC(ay8910_device::address_data_w)); + map(0x4000, 0x4000).r(m_soundlatch, FUNC(generic_latch_8_device::read)); + map(0x4001, 0x4001).r("ay1", FUNC(ay8910_device::data_r)); + map(0x6000, 0x67ff).ram(); +} static INPUT_PORTS_START( dderby ) PORT_START("IN0") |