diff options
Diffstat (limited to 'src/mame/drivers/limenko.cpp')
-rw-r--r-- | src/mame/drivers/limenko.cpp | 92 |
1 files changed, 48 insertions, 44 deletions
diff --git a/src/mame/drivers/limenko.cpp b/src/mame/drivers/limenko.cpp index 81780586c7c..f0433fd6f39 100644 --- a/src/mame/drivers/limenko.cpp +++ b/src/mame/drivers/limenko.cpp @@ -198,54 +198,58 @@ WRITE8_MEMBER(limenko_state::qs1000_p3_w) MEMORY MAPS *****************************************************************************************************/ -ADDRESS_MAP_START(limenko_state::limenko_map) - AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("mainram") - AM_RANGE(0x40000000, 0x403fffff) AM_ROM AM_REGION("maindata",0) - AM_RANGE(0x80000000, 0x80007fff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fg_videoram") - AM_RANGE(0x80008000, 0x8000ffff) AM_RAM_WRITE(md_videoram_w) AM_SHARE("md_videoram") - AM_RANGE(0x80010000, 0x80017fff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bg_videoram") - AM_RANGE(0x80018000, 0x80019fff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x8001c000, 0x8001dfff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette") - AM_RANGE(0x8001e000, 0x8001ebff) AM_RAM // ? not used - AM_RANGE(0x8001ffec, 0x8001ffff) AM_RAM AM_SHARE("videoreg") - AM_RANGE(0x8003e000, 0x8003e003) AM_WRITE(spriteram_buffer_w) - AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("maincpu",0) -ADDRESS_MAP_END - -ADDRESS_MAP_START(limenko_state::limenko_io_map) - AM_RANGE(0x0000, 0x0003) AM_READ_PORT("IN0") - AM_RANGE(0x0800, 0x0803) AM_READ_PORT("IN1") - AM_RANGE(0x1000, 0x1003) AM_READ_PORT("IN2") - AM_RANGE(0x4000, 0x4003) AM_WRITE(limenko_coincounter_w) - AM_RANGE(0x4800, 0x4803) AM_WRITE_PORT("EEPROMOUT") - AM_RANGE(0x5000, 0x5003) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff0000).cswidth(32) -ADDRESS_MAP_END +void limenko_state::limenko_map(address_map &map) +{ + map(0x00000000, 0x001fffff).ram().share("mainram"); + map(0x40000000, 0x403fffff).rom().region("maindata", 0); + map(0x80000000, 0x80007fff).ram().w(this, FUNC(limenko_state::fg_videoram_w)).share("fg_videoram"); + map(0x80008000, 0x8000ffff).ram().w(this, FUNC(limenko_state::md_videoram_w)).share("md_videoram"); + map(0x80010000, 0x80017fff).ram().w(this, FUNC(limenko_state::bg_videoram_w)).share("bg_videoram"); + map(0x80018000, 0x80019fff).ram().share("spriteram"); + map(0x8001c000, 0x8001dfff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette"); + map(0x8001e000, 0x8001ebff).ram(); // ? not used + map(0x8001ffec, 0x8001ffff).ram().share("videoreg"); + map(0x8003e000, 0x8003e003).w(this, FUNC(limenko_state::spriteram_buffer_w)); + map(0xffe00000, 0xffffffff).rom().region("maincpu", 0); +} + +void limenko_state::limenko_io_map(address_map &map) +{ + map(0x0000, 0x0003).portr("IN0"); + map(0x0800, 0x0803).portr("IN1"); + map(0x1000, 0x1003).portr("IN2"); + map(0x4000, 0x4003).w(this, FUNC(limenko_state::limenko_coincounter_w)); + map(0x4800, 0x4803).portw("EEPROMOUT"); + map(0x5000, 0x5003).w(m_soundlatch, FUNC(generic_latch_8_device::write)).umask32(0x00ff0000).cswidth(32); +} /* Spotty memory map */ -ADDRESS_MAP_START(limenko_state::spotty_map) - AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("mainram") - AM_RANGE(0x40002000, 0x400024d3) AM_RAM //? - AM_RANGE(0x80000000, 0x80007fff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fg_videoram") - AM_RANGE(0x80008000, 0x8000ffff) AM_RAM_WRITE(md_videoram_w) AM_SHARE("md_videoram") - AM_RANGE(0x80010000, 0x80017fff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bg_videoram") - AM_RANGE(0x80018000, 0x80019fff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x8001c000, 0x8001dfff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette") - AM_RANGE(0x8001e000, 0x8001ebff) AM_RAM // ? not used - AM_RANGE(0x8001ffec, 0x8001ffff) AM_RAM AM_SHARE("videoreg") - AM_RANGE(0x8003e000, 0x8003e003) AM_WRITE(spriteram_buffer_w) - AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("maincpu",0) -ADDRESS_MAP_END - -ADDRESS_MAP_START(limenko_state::spotty_io_map) - AM_RANGE(0x0000, 0x0003) AM_READ_PORT("IN0") - AM_RANGE(0x0800, 0x0803) AM_READ_PORT("IN1") - AM_RANGE(0x0800, 0x0803) AM_WRITENOP // hopper related - AM_RANGE(0x1000, 0x1003) AM_READ_PORT("IN2") - AM_RANGE(0x4800, 0x4803) AM_WRITE_PORT("EEPROMOUT") - AM_RANGE(0x5000, 0x5003) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff0000).cswidth(32) -ADDRESS_MAP_END +void limenko_state::spotty_map(address_map &map) +{ + map(0x00000000, 0x001fffff).ram().share("mainram"); + map(0x40002000, 0x400024d3).ram(); //? + map(0x80000000, 0x80007fff).ram().w(this, FUNC(limenko_state::fg_videoram_w)).share("fg_videoram"); + map(0x80008000, 0x8000ffff).ram().w(this, FUNC(limenko_state::md_videoram_w)).share("md_videoram"); + map(0x80010000, 0x80017fff).ram().w(this, FUNC(limenko_state::bg_videoram_w)).share("bg_videoram"); + map(0x80018000, 0x80019fff).ram().share("spriteram"); + map(0x8001c000, 0x8001dfff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette"); + map(0x8001e000, 0x8001ebff).ram(); // ? not used + map(0x8001ffec, 0x8001ffff).ram().share("videoreg"); + map(0x8003e000, 0x8003e003).w(this, FUNC(limenko_state::spriteram_buffer_w)); + map(0xfff00000, 0xffffffff).rom().region("maincpu", 0); +} + +void limenko_state::spotty_io_map(address_map &map) +{ + map(0x0000, 0x0003).portr("IN0"); + map(0x0800, 0x0803).portr("IN1"); + map(0x0800, 0x0803).nopw(); // hopper related + map(0x1000, 0x1003).portr("IN2"); + map(0x4800, 0x4803).portw("EEPROMOUT"); + map(0x5000, 0x5003).w(m_soundlatch, FUNC(generic_latch_8_device::write)).umask32(0x00ff0000).cswidth(32); +} WRITE8_MEMBER(limenko_state::spotty_sound_cmd_w) { |