summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/snk6502.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/snk6502.cpp')
-rw-r--r--src/mame/drivers/snk6502.cpp203
1 files changed, 104 insertions, 99 deletions
diff --git a/src/mame/drivers/snk6502.cpp b/src/mame/drivers/snk6502.cpp
index 56070575241..f8a552f0ba2 100644
--- a/src/mame/drivers/snk6502.cpp
+++ b/src/mame/drivers/snk6502.cpp
@@ -347,105 +347,110 @@ CUSTOM_INPUT_MEMBER(snk6502_state::sasuke_count_r)
*
*************************************/
-ADDRESS_MAP_START(snk6502_state::sasuke_map)
- AM_RANGE(0x0000, 0x03ff) AM_RAM
- AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
- AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
- AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(charram_w) AM_SHARE("charram")
- AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("crtc", mc6845_device, address_w)
- AM_RANGE(0x3001, 0x3001) AM_DEVWRITE("crtc", mc6845_device, register_w)
- AM_RANGE(0x4000, 0x8fff) AM_ROM
- AM_RANGE(0xb000, 0xb001) AM_DEVWRITE("snk6502", snk6502_sound_device, sasuke_sound_w)
- AM_RANGE(0xb002, 0xb002) AM_WRITE(satansat_b002_w) /* flip screen & irq enable */
- AM_RANGE(0xb003, 0xb003) AM_WRITE(satansat_backcolor_w)
- AM_RANGE(0xb004, 0xb004) AM_READ_PORT("IN0")
- AM_RANGE(0xb005, 0xb005) AM_READ_PORT("IN1")
- AM_RANGE(0xb006, 0xb006) AM_READ_PORT("DSW")
- AM_RANGE(0xb007, 0xb007) AM_READ_PORT("IN2")
- AM_RANGE(0xf800, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(snk6502_state::satansat_map)
- AM_RANGE(0x0000, 0x03ff) AM_RAM
- AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
- AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
- AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(charram_w) AM_SHARE("charram")
- AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("crtc", mc6845_device, address_w)
- AM_RANGE(0x3001, 0x3001) AM_DEVWRITE("crtc", mc6845_device, register_w)
- AM_RANGE(0x4000, 0x9fff) AM_ROM
- AM_RANGE(0xb000, 0xb001) AM_DEVWRITE("snk6502", snk6502_sound_device, satansat_sound_w)
- AM_RANGE(0xb002, 0xb002) AM_WRITE(satansat_b002_w) /* flip screen & irq enable */
- AM_RANGE(0xb003, 0xb003) AM_WRITE(satansat_backcolor_w)
- AM_RANGE(0xb004, 0xb004) AM_READ_PORT("IN0")
- AM_RANGE(0xb005, 0xb005) AM_READ_PORT("IN1")
- AM_RANGE(0xb006, 0xb006) AM_READ_PORT("DSW")
- AM_RANGE(0xb007, 0xb007) AM_READ_PORT("IN2")
- AM_RANGE(0xf800, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(snk6502_state::vanguard_map)
- AM_RANGE(0x0000, 0x03ff) AM_RAM
- AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
- AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
- AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(charram_w) AM_SHARE("charram")
- AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("crtc", mc6845_device, address_w)
- AM_RANGE(0x3001, 0x3001) AM_DEVWRITE("crtc", mc6845_device, register_w)
- AM_RANGE(0x3100, 0x3102) AM_DEVWRITE("snk6502", snk6502_sound_device, vanguard_sound_w)
- AM_RANGE(0x3103, 0x3103) AM_WRITE(flipscreen_w)
- AM_RANGE(0x3104, 0x3104) AM_READ_PORT("IN0")
- AM_RANGE(0x3105, 0x3105) AM_READ_PORT("IN1")
- AM_RANGE(0x3106, 0x3106) AM_READ_PORT("DSW")
- AM_RANGE(0x3107, 0x3107) AM_READ_PORT("IN2")
- AM_RANGE(0x3200, 0x3200) AM_WRITE(scrollx_w)
- AM_RANGE(0x3300, 0x3300) AM_WRITE(scrolly_w)
- AM_RANGE(0x3400, 0x3400) AM_DEVWRITE("snk6502", snk6502_sound_device, vanguard_speech_w) // speech
- AM_RANGE(0x4000, 0xbfff) AM_ROM
- AM_RANGE(0xf000, 0xffff) AM_ROM /* for the reset / interrupt vectors */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(snk6502_state::fantasy_map)
- AM_RANGE(0x0000, 0x03ff) AM_RAM
- AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
- AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
- AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(charram_w) AM_SHARE("charram")
- AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("crtc", mc6845_device, address_w)
- AM_RANGE(0x2001, 0x2001) AM_DEVWRITE("crtc", mc6845_device, register_w)
- AM_RANGE(0x2100, 0x2102) AM_DEVWRITE("snk6502", snk6502_sound_device, fantasy_sound_w)
- AM_RANGE(0x2103, 0x2103) AM_WRITE(fantasy_flipscreen_w) // affects both video and sound
- AM_RANGE(0x2104, 0x2104) AM_READ_PORT("IN0")
- AM_RANGE(0x2105, 0x2105) AM_READ_PORT("IN1")
- AM_RANGE(0x2106, 0x2106) AM_READ_PORT("DSW")
- AM_RANGE(0x2107, 0x2107) AM_READ_PORT("IN2")
- AM_RANGE(0x2200, 0x2200) AM_WRITE(scrollx_w)
- AM_RANGE(0x2300, 0x2300) AM_WRITE(scrolly_w)
- AM_RANGE(0x2400, 0x2400) AM_DEVWRITE("snk6502", snk6502_sound_device, fantasy_speech_w) // speech
- AM_RANGE(0x3000, 0xbfff) AM_ROM
- AM_RANGE(0xf000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(snk6502_state::pballoon_map)
- AM_RANGE(0x0000, 0x03ff) AM_RAM
- AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
- AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
- AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(charram_w) AM_SHARE("charram")
- AM_RANGE(0x3000, 0x9fff) AM_ROM
- AM_RANGE(0xb000, 0xb000) AM_DEVWRITE("crtc", mc6845_device, address_w)
- AM_RANGE(0xb001, 0xb001) AM_DEVWRITE("crtc", mc6845_device, register_w)
- AM_RANGE(0xb100, 0xb102) AM_DEVWRITE("snk6502", snk6502_sound_device, fantasy_sound_w)
- AM_RANGE(0xb103, 0xb103) AM_WRITE(fantasy_flipscreen_w) // affects both video and sound
- AM_RANGE(0xb104, 0xb104) AM_READ_PORT("IN0")
- AM_RANGE(0xb105, 0xb105) AM_READ_PORT("IN1")
- AM_RANGE(0xb106, 0xb106) AM_READ_PORT("DSW")
- AM_RANGE(0xb107, 0xb107) AM_READ_PORT("IN2")
- AM_RANGE(0xb200, 0xb200) AM_WRITE(scrollx_w)
- AM_RANGE(0xb300, 0xb300) AM_WRITE(scrolly_w)
- AM_RANGE(0xf000, 0xffff) AM_ROM
-ADDRESS_MAP_END
+void snk6502_state::sasuke_map(address_map &map)
+{
+ map(0x0000, 0x03ff).ram();
+ map(0x0400, 0x07ff).ram().w(this, FUNC(snk6502_state::videoram2_w)).share("videoram2");
+ map(0x0800, 0x0bff).ram().w(this, FUNC(snk6502_state::videoram_w)).share("videoram");
+ map(0x0c00, 0x0fff).ram().w(this, FUNC(snk6502_state::colorram_w)).share("colorram");
+ map(0x1000, 0x1fff).ram().w(this, FUNC(snk6502_state::charram_w)).share("charram");
+ map(0x3000, 0x3000).w("crtc", FUNC(mc6845_device::address_w));
+ map(0x3001, 0x3001).w("crtc", FUNC(mc6845_device::register_w));
+ map(0x4000, 0x8fff).rom();
+ map(0xb000, 0xb001).w(m_sound, FUNC(snk6502_sound_device::sasuke_sound_w));
+ map(0xb002, 0xb002).w(this, FUNC(snk6502_state::satansat_b002_w)); /* flip screen & irq enable */
+ map(0xb003, 0xb003).w(this, FUNC(snk6502_state::satansat_backcolor_w));
+ map(0xb004, 0xb004).portr("IN0");
+ map(0xb005, 0xb005).portr("IN1");
+ map(0xb006, 0xb006).portr("DSW");
+ map(0xb007, 0xb007).portr("IN2");
+ map(0xf800, 0xffff).rom();
+}
+
+void snk6502_state::satansat_map(address_map &map)
+{
+ map(0x0000, 0x03ff).ram();
+ map(0x0400, 0x07ff).ram().w(this, FUNC(snk6502_state::videoram2_w)).share("videoram2");
+ map(0x0800, 0x0bff).ram().w(this, FUNC(snk6502_state::videoram_w)).share("videoram");
+ map(0x0c00, 0x0fff).ram().w(this, FUNC(snk6502_state::colorram_w)).share("colorram");
+ map(0x1000, 0x1fff).ram().w(this, FUNC(snk6502_state::charram_w)).share("charram");
+ map(0x3000, 0x3000).w("crtc", FUNC(mc6845_device::address_w));
+ map(0x3001, 0x3001).w("crtc", FUNC(mc6845_device::register_w));
+ map(0x4000, 0x9fff).rom();
+ map(0xb000, 0xb001).w(m_sound, FUNC(snk6502_sound_device::satansat_sound_w));
+ map(0xb002, 0xb002).w(this, FUNC(snk6502_state::satansat_b002_w)); /* flip screen & irq enable */
+ map(0xb003, 0xb003).w(this, FUNC(snk6502_state::satansat_backcolor_w));
+ map(0xb004, 0xb004).portr("IN0");
+ map(0xb005, 0xb005).portr("IN1");
+ map(0xb006, 0xb006).portr("DSW");
+ map(0xb007, 0xb007).portr("IN2");
+ map(0xf800, 0xffff).rom();
+}
+
+void snk6502_state::vanguard_map(address_map &map)
+{
+ map(0x0000, 0x03ff).ram();
+ map(0x0400, 0x07ff).ram().w(this, FUNC(snk6502_state::videoram2_w)).share("videoram2");
+ map(0x0800, 0x0bff).ram().w(this, FUNC(snk6502_state::videoram_w)).share("videoram");
+ map(0x0c00, 0x0fff).ram().w(this, FUNC(snk6502_state::colorram_w)).share("colorram");
+ map(0x1000, 0x1fff).ram().w(this, FUNC(snk6502_state::charram_w)).share("charram");
+ map(0x3000, 0x3000).w("crtc", FUNC(mc6845_device::address_w));
+ map(0x3001, 0x3001).w("crtc", FUNC(mc6845_device::register_w));
+ map(0x3100, 0x3102).w(m_sound, FUNC(snk6502_sound_device::vanguard_sound_w));
+ map(0x3103, 0x3103).w(this, FUNC(snk6502_state::flipscreen_w));
+ map(0x3104, 0x3104).portr("IN0");
+ map(0x3105, 0x3105).portr("IN1");
+ map(0x3106, 0x3106).portr("DSW");
+ map(0x3107, 0x3107).portr("IN2");
+ map(0x3200, 0x3200).w(this, FUNC(snk6502_state::scrollx_w));
+ map(0x3300, 0x3300).w(this, FUNC(snk6502_state::scrolly_w));
+ map(0x3400, 0x3400).w(m_sound, FUNC(snk6502_sound_device::vanguard_speech_w)); // speech
+ map(0x4000, 0xbfff).rom();
+ map(0xf000, 0xffff).rom(); /* for the reset / interrupt vectors */
+}
+
+void snk6502_state::fantasy_map(address_map &map)
+{
+ map(0x0000, 0x03ff).ram();
+ map(0x0400, 0x07ff).ram().w(this, FUNC(snk6502_state::videoram2_w)).share("videoram2");
+ map(0x0800, 0x0bff).ram().w(this, FUNC(snk6502_state::videoram_w)).share("videoram");
+ map(0x0c00, 0x0fff).ram().w(this, FUNC(snk6502_state::colorram_w)).share("colorram");
+ map(0x1000, 0x1fff).ram().w(this, FUNC(snk6502_state::charram_w)).share("charram");
+ map(0x2000, 0x2000).w("crtc", FUNC(mc6845_device::address_w));
+ map(0x2001, 0x2001).w("crtc", FUNC(mc6845_device::register_w));
+ map(0x2100, 0x2102).w(m_sound, FUNC(snk6502_sound_device::fantasy_sound_w));
+ map(0x2103, 0x2103).w(this, FUNC(snk6502_state::fantasy_flipscreen_w)); // affects both video and sound
+ map(0x2104, 0x2104).portr("IN0");
+ map(0x2105, 0x2105).portr("IN1");
+ map(0x2106, 0x2106).portr("DSW");
+ map(0x2107, 0x2107).portr("IN2");
+ map(0x2200, 0x2200).w(this, FUNC(snk6502_state::scrollx_w));
+ map(0x2300, 0x2300).w(this, FUNC(snk6502_state::scrolly_w));
+ map(0x2400, 0x2400).w(m_sound, FUNC(snk6502_sound_device::fantasy_speech_w)); // speech
+ map(0x3000, 0xbfff).rom();
+ map(0xf000, 0xffff).rom();
+}
+
+void snk6502_state::pballoon_map(address_map &map)
+{
+ map(0x0000, 0x03ff).ram();
+ map(0x0400, 0x07ff).ram().w(this, FUNC(snk6502_state::videoram2_w)).share("videoram2");
+ map(0x0800, 0x0bff).ram().w(this, FUNC(snk6502_state::videoram_w)).share("videoram");
+ map(0x0c00, 0x0fff).ram().w(this, FUNC(snk6502_state::colorram_w)).share("colorram");
+ map(0x1000, 0x1fff).ram().w(this, FUNC(snk6502_state::charram_w)).share("charram");
+ map(0x3000, 0x9fff).rom();
+ map(0xb000, 0xb000).w("crtc", FUNC(mc6845_device::address_w));
+ map(0xb001, 0xb001).w("crtc", FUNC(mc6845_device::register_w));
+ map(0xb100, 0xb102).w(m_sound, FUNC(snk6502_sound_device::fantasy_sound_w));
+ map(0xb103, 0xb103).w(this, FUNC(snk6502_state::fantasy_flipscreen_w)); // affects both video and sound
+ map(0xb104, 0xb104).portr("IN0");
+ map(0xb105, 0xb105).portr("IN1");
+ map(0xb106, 0xb106).portr("DSW");
+ map(0xb107, 0xb107).portr("IN2");
+ map(0xb200, 0xb200).w(this, FUNC(snk6502_state::scrollx_w));
+ map(0xb300, 0xb300).w(this, FUNC(snk6502_state::scrolly_w));
+ map(0xf000, 0xffff).rom();
+}
/*************************************