diff options
Diffstat (limited to 'src/mame/drivers/tp84.cpp')
-rw-r--r-- | src/mame/drivers/tp84.cpp | 124 |
1 files changed, 64 insertions, 60 deletions
diff --git a/src/mame/drivers/tp84.cpp b/src/mame/drivers/tp84.cpp index 6ec33348cf2..3df862b27dd 100644 --- a/src/mame/drivers/tp84.cpp +++ b/src/mame/drivers/tp84.cpp @@ -170,45 +170,47 @@ WRITE8_MEMBER(tp84_state::tp84_sh_irqtrigger_w) -ADDRESS_MAP_START(tp84_state::tp84_cpu1_map) - AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) - AM_RANGE(0x2800, 0x2800) AM_READ_PORT("SYSTEM") AM_WRITEONLY AM_SHARE("palette_bank") - AM_RANGE(0x2820, 0x2820) AM_READ_PORT("P1") - AM_RANGE(0x2840, 0x2840) AM_READ_PORT("P2") - AM_RANGE(0x2860, 0x2860) AM_READ_PORT("DSW1") - AM_RANGE(0x3000, 0x3000) AM_READ_PORT("DSW2") - AM_RANGE(0x3000, 0x3007) AM_DEVWRITE("mainlatch", ls259_device, write_d0) - AM_RANGE(0x3800, 0x3800) AM_WRITE(tp84_sh_irqtrigger_w) - AM_RANGE(0x3a00, 0x3a00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0x3c00, 0x3c00) AM_WRITEONLY AM_SHARE("scroll_x") - AM_RANGE(0x3e00, 0x3e00) AM_WRITEONLY AM_SHARE("scroll_y") - AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("bg_videoram") - AM_RANGE(0x4400, 0x47ff) AM_RAM AM_SHARE("fg_videoram") - AM_RANGE(0x4800, 0x4bff) AM_RAM AM_SHARE("bg_colorram") - AM_RANGE(0x4c00, 0x4fff) AM_RAM AM_SHARE("fg_colorram") - AM_RANGE(0x5000, 0x57ff) AM_RAM AM_SHARE("share1") - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END - -ADDRESS_MAP_START(tp84_state::tp84b_cpu1_map) - AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE("bg_videoram") - AM_RANGE(0x0400, 0x07ff) AM_RAM AM_SHARE("fg_videoram") - AM_RANGE(0x0800, 0x0bff) AM_RAM AM_SHARE("bg_colorram") - AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_SHARE("fg_colorram") - AM_RANGE(0x1000, 0x17ff) AM_RAM AM_SHARE("share1") - AM_RANGE(0x1800, 0x1800) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) - AM_RANGE(0x1a00, 0x1a00) AM_READ_PORT("SYSTEM") AM_WRITEONLY AM_SHARE("palette_bank") - AM_RANGE(0x1a20, 0x1a20) AM_READ_PORT("P1") - AM_RANGE(0x1a40, 0x1a40) AM_READ_PORT("P2") - AM_RANGE(0x1a60, 0x1a60) AM_READ_PORT("DSW1") - AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW2") - AM_RANGE(0x1c00, 0x1c07) AM_DEVWRITE("mainlatch", ls259_device, write_d0) - AM_RANGE(0x1e00, 0x1e00) AM_WRITE(tp84_sh_irqtrigger_w) - AM_RANGE(0x1e80, 0x1e80) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0x1f00, 0x1f00) AM_WRITEONLY AM_SHARE("scroll_x") - AM_RANGE(0x1f80, 0x1f80) AM_WRITEONLY AM_SHARE("scroll_y") - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END +void tp84_state::tp84_cpu1_map(address_map &map) +{ + map(0x2000, 0x2000).w("watchdog", FUNC(watchdog_timer_device::reset_w)); + map(0x2800, 0x2800).portr("SYSTEM").writeonly().share("palette_bank"); + map(0x2820, 0x2820).portr("P1"); + map(0x2840, 0x2840).portr("P2"); + map(0x2860, 0x2860).portr("DSW1"); + map(0x3000, 0x3000).portr("DSW2"); + map(0x3000, 0x3007).w("mainlatch", FUNC(ls259_device::write_d0)); + map(0x3800, 0x3800).w(this, FUNC(tp84_state::tp84_sh_irqtrigger_w)); + map(0x3a00, 0x3a00).w("soundlatch", FUNC(generic_latch_8_device::write)); + map(0x3c00, 0x3c00).writeonly().share("scroll_x"); + map(0x3e00, 0x3e00).writeonly().share("scroll_y"); + map(0x4000, 0x43ff).ram().share("bg_videoram"); + map(0x4400, 0x47ff).ram().share("fg_videoram"); + map(0x4800, 0x4bff).ram().share("bg_colorram"); + map(0x4c00, 0x4fff).ram().share("fg_colorram"); + map(0x5000, 0x57ff).ram().share("share1"); + map(0x8000, 0xffff).rom(); +} + +void tp84_state::tp84b_cpu1_map(address_map &map) +{ + map(0x0000, 0x03ff).ram().share("bg_videoram"); + map(0x0400, 0x07ff).ram().share("fg_videoram"); + map(0x0800, 0x0bff).ram().share("bg_colorram"); + map(0x0c00, 0x0fff).ram().share("fg_colorram"); + map(0x1000, 0x17ff).ram().share("share1"); + map(0x1800, 0x1800).w("watchdog", FUNC(watchdog_timer_device::reset_w)); + map(0x1a00, 0x1a00).portr("SYSTEM").writeonly().share("palette_bank"); + map(0x1a20, 0x1a20).portr("P1"); + map(0x1a40, 0x1a40).portr("P2"); + map(0x1a60, 0x1a60).portr("DSW1"); + map(0x1c00, 0x1c00).portr("DSW2"); + map(0x1c00, 0x1c07).w("mainlatch", FUNC(ls259_device::write_d0)); + map(0x1e00, 0x1e00).w(this, FUNC(tp84_state::tp84_sh_irqtrigger_w)); + map(0x1e80, 0x1e80).w("soundlatch", FUNC(generic_latch_8_device::write)); + map(0x1f00, 0x1f00).writeonly().share("scroll_x"); + map(0x1f80, 0x1f80).writeonly().share("scroll_y"); + map(0x8000, 0xffff).rom(); +} WRITE8_MEMBER(tp84_state::sub_irq_mask_w) @@ -217,28 +219,30 @@ WRITE8_MEMBER(tp84_state::sub_irq_mask_w) } -ADDRESS_MAP_START(tp84_state::cpu2_map) +void tp84_state::cpu2_map(address_map &map) +{ // AM_RANGE(0x0000, 0x0000) AM_RAM /* Watch dog ?*/ - AM_RANGE(0x2000, 0x2000) AM_READ(tp84_scanline_r) /* beam position */ - AM_RANGE(0x4000, 0x4000) AM_WRITE(sub_irq_mask_w) - AM_RANGE(0x6000, 0x679f) AM_RAM - AM_RANGE(0x67a0, 0x67ff) AM_RAM_WRITE(tp84_spriteram_w) AM_SHARE("spriteram") - AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("share1") - AM_RANGE(0xe000, 0xffff) AM_ROM -ADDRESS_MAP_END - - -ADDRESS_MAP_START(tp84_state::audio_map) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x43ff) AM_RAM - AM_RANGE(0x6000, 0x6000) AM_DEVREAD("soundlatch", generic_latch_8_device, read) - AM_RANGE(0x8000, 0x8000) AM_READ(tp84_sh_timer_r) - AM_RANGE(0xa000, 0xa1ff) AM_WRITE(tp84_filter_w) - AM_RANGE(0xc000, 0xc000) AM_WRITENOP - AM_RANGE(0xc001, 0xc001) AM_DEVWRITE("y2404_1", y2404_device, write) - AM_RANGE(0xc003, 0xc003) AM_DEVWRITE("y2404_2", y2404_device, write) - AM_RANGE(0xc004, 0xc004) AM_DEVWRITE("y2404_3", y2404_device, write) -ADDRESS_MAP_END + map(0x2000, 0x2000).r(this, FUNC(tp84_state::tp84_scanline_r)); /* beam position */ + map(0x4000, 0x4000).w(this, FUNC(tp84_state::sub_irq_mask_w)); + map(0x6000, 0x679f).ram(); + map(0x67a0, 0x67ff).ram().w(this, FUNC(tp84_state::tp84_spriteram_w)).share("spriteram"); + map(0x8000, 0x87ff).ram().share("share1"); + map(0xe000, 0xffff).rom(); +} + + +void tp84_state::audio_map(address_map &map) +{ + map(0x0000, 0x3fff).rom(); + map(0x4000, 0x43ff).ram(); + map(0x6000, 0x6000).r("soundlatch", FUNC(generic_latch_8_device::read)); + map(0x8000, 0x8000).r(this, FUNC(tp84_state::tp84_sh_timer_r)); + map(0xa000, 0xa1ff).w(this, FUNC(tp84_state::tp84_filter_w)); + map(0xc000, 0xc000).nopw(); + map(0xc001, 0xc001).w("y2404_1", FUNC(y2404_device::write)); + map(0xc003, 0xc003).w("y2404_2", FUNC(y2404_device::write)); + map(0xc004, 0xc004).w("y2404_3", FUNC(y2404_device::write)); +} |