summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/btime.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/btime.cpp')
-rw-r--r--src/mame/drivers/btime.cpp318
1 files changed, 164 insertions, 154 deletions
diff --git a/src/mame/drivers/btime.cpp b/src/mame/drivers/btime.cpp
index f96ca4a9c26..f572ebf19d6 100644
--- a/src/mame/drivers/btime.cpp
+++ b/src/mame/drivers/btime.cpp
@@ -184,161 +184,171 @@ TIMER_DEVICE_CALLBACK_MEMBER(btime_state::audio_nmi_gen)
m_audionmi->in_w<1>((scanline & 8) >> 3);
}
-ADDRESS_MAP_START(btime_state::btime_map)
- AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("rambase")
- AM_RANGE(0x0c00, 0x0c0f) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
- AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("videoram")
- AM_RANGE(0x1400, 0x17ff) AM_RAM AM_SHARE("colorram")
- AM_RANGE(0x1800, 0x1bff) AM_READWRITE(btime_mirrorvideoram_r, btime_mirrorvideoram_w)
- AM_RANGE(0x1c00, 0x1fff) AM_READWRITE(btime_mirrorcolorram_r, btime_mirrorcolorram_w)
- AM_RANGE(0x4000, 0x4000) AM_READ_PORT("P1") AM_WRITENOP
- AM_RANGE(0x4001, 0x4001) AM_READ_PORT("P2")
- AM_RANGE(0x4002, 0x4002) AM_READ_PORT("SYSTEM") AM_WRITE(btime_video_control_w)
- AM_RANGE(0x4003, 0x4003) AM_READ_PORT("DSW1") AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0x4004, 0x4004) AM_READ_PORT("DSW2") AM_WRITE(bnj_scroll1_w)
- AM_RANGE(0xb000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(btime_state::cookrace_map)
- AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE("rambase")
- AM_RANGE(0x0500, 0x3fff) AM_ROM
- AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_SHARE("videoram")
- AM_RANGE(0xc400, 0xc7ff) AM_RAM AM_SHARE("colorram")
- AM_RANGE(0xc800, 0xcbff) AM_READWRITE(btime_mirrorvideoram_r, btime_mirrorvideoram_w)
- AM_RANGE(0xcc00, 0xcfff) AM_READWRITE(btime_mirrorcolorram_r, btime_mirrorcolorram_w)
- AM_RANGE(0xd000, 0xd0ff) AM_RAM /* background? */
- AM_RANGE(0xd100, 0xd3ff) AM_RAM /* ? */
- AM_RANGE(0xd400, 0xd7ff) AM_RAM AM_SHARE("bnj_bgram")
- AM_RANGE(0xe000, 0xe000) AM_READ_PORT("DSW1") AM_WRITE(bnj_video_control_w)
- AM_RANGE(0xe300, 0xe300) AM_READ_PORT("DSW1") /* mirror address used on high score name entry */
+void btime_state::btime_map(address_map &map)
+{
+ map(0x0000, 0x07ff).ram().share("rambase");
+ map(0x0c00, 0x0c0f).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
+ map(0x1000, 0x13ff).ram().share("videoram");
+ map(0x1400, 0x17ff).ram().share("colorram");
+ map(0x1800, 0x1bff).rw(this, FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::btime_mirrorvideoram_w));
+ map(0x1c00, 0x1fff).rw(this, FUNC(btime_state::btime_mirrorcolorram_r), FUNC(btime_state::btime_mirrorcolorram_w));
+ map(0x4000, 0x4000).portr("P1").nopw();
+ map(0x4001, 0x4001).portr("P2");
+ map(0x4002, 0x4002).portr("SYSTEM").w(this, FUNC(btime_state::btime_video_control_w));
+ map(0x4003, 0x4003).portr("DSW1").w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x4004, 0x4004).portr("DSW2").w(this, FUNC(btime_state::bnj_scroll1_w));
+ map(0xb000, 0xffff).rom();
+}
+
+void btime_state::cookrace_map(address_map &map)
+{
+ map(0x0000, 0x03ff).ram().share("rambase");
+ map(0x0500, 0x3fff).rom();
+ map(0xc000, 0xc3ff).ram().share("videoram");
+ map(0xc400, 0xc7ff).ram().share("colorram");
+ map(0xc800, 0xcbff).rw(this, FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::btime_mirrorvideoram_w));
+ map(0xcc00, 0xcfff).rw(this, FUNC(btime_state::btime_mirrorcolorram_r), FUNC(btime_state::btime_mirrorcolorram_w));
+ map(0xd000, 0xd0ff).ram(); /* background? */
+ map(0xd100, 0xd3ff).ram(); /* ? */
+ map(0xd400, 0xd7ff).ram().share("bnj_bgram");
+ map(0xe000, 0xe000).portr("DSW1").w(this, FUNC(btime_state::bnj_video_control_w));
+ map(0xe300, 0xe300).portr("DSW1"); /* mirror address used on high score name entry */
/* screen */
- AM_RANGE(0xe001, 0xe001) AM_READ_PORT("DSW2") AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0xe002, 0xe002) AM_READ_PORT("P1")
- AM_RANGE(0xe003, 0xe003) AM_READ_PORT("P2")
- AM_RANGE(0xe004, 0xe004) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xfff9, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(btime_state::tisland_map)
- AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("rambase")
- AM_RANGE(0x0c00, 0x0c0f) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
- AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("videoram")
- AM_RANGE(0x1400, 0x17ff) AM_RAM AM_SHARE("colorram")
- AM_RANGE(0x1800, 0x1bff) AM_READWRITE(btime_mirrorvideoram_r, btime_mirrorvideoram_w)
- AM_RANGE(0x1c00, 0x1fff) AM_READWRITE(btime_mirrorcolorram_r, btime_mirrorcolorram_w)
- AM_RANGE(0x4000, 0x4000) AM_READ_PORT("P1") AM_WRITENOP
- AM_RANGE(0x4001, 0x4001) AM_READ_PORT("P2")
- AM_RANGE(0x4002, 0x4002) AM_READ_PORT("SYSTEM") AM_WRITE(btime_video_control_w)
- AM_RANGE(0x4003, 0x4003) AM_READ_PORT("DSW1") AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0x4004, 0x4004) AM_READ_PORT("DSW2") AM_WRITE(bnj_scroll1_w)
- AM_RANGE(0x4005, 0x4005) AM_WRITE(bnj_scroll2_w)
- AM_RANGE(0x9000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(btime_state::zoar_map)
- AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("rambase")
- AM_RANGE(0x8000, 0x83ff) AM_WRITEONLY AM_SHARE("videoram")
- AM_RANGE(0x8400, 0x87ff) AM_WRITEONLY AM_SHARE("colorram")
- AM_RANGE(0x8800, 0x8bff) AM_WRITE(btime_mirrorvideoram_w)
- AM_RANGE(0x8c00, 0x8fff) AM_WRITE(btime_mirrorcolorram_w)
- AM_RANGE(0x9000, 0x9000) AM_WRITE(zoar_video_control_w)
- AM_RANGE(0x9800, 0x9800) AM_READ(zoar_dsw1_read)
- AM_RANGE(0x9801, 0x9801) AM_READ_PORT("DSW2")
- AM_RANGE(0x9802, 0x9802) AM_READ_PORT("P1")
- AM_RANGE(0x9803, 0x9803) AM_READ_PORT("P2")
- AM_RANGE(0x9800, 0x9803) AM_WRITEONLY AM_SHARE("zoar_scrollram")
- AM_RANGE(0x9804, 0x9804) AM_READ_PORT("SYSTEM") AM_WRITE(bnj_scroll2_w)
- AM_RANGE(0x9805, 0x9805) AM_WRITE(bnj_scroll1_w)
- AM_RANGE(0x9806, 0x9806) AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0xd000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(btime_state::lnc_map)
- AM_RANGE(0x0000, 0x3bff) AM_RAM AM_SHARE("rambase")
- AM_RANGE(0x3c00, 0x3fff) AM_RAM_WRITE(lnc_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x7800, 0x7bff) AM_WRITEONLY AM_SHARE("colorram") /* this is just here to initialize the pointer */
- AM_RANGE(0x7c00, 0x7fff) AM_READWRITE(btime_mirrorvideoram_r, lnc_mirrorvideoram_w)
- AM_RANGE(0x8000, 0x8000) AM_READ_PORT("DSW1") AM_WRITENOP /* ??? */
- AM_RANGE(0x8001, 0x8001) AM_READ_PORT("DSW2") AM_WRITE(bnj_video_control_w)
- AM_RANGE(0x8003, 0x8003) AM_WRITEONLY AM_SHARE("lnc_charbank")
- AM_RANGE(0x9000, 0x9000) AM_READ_PORT("P1") AM_WRITENOP /* IRQ ack??? */
- AM_RANGE(0x9001, 0x9001) AM_READ_PORT("P2")
- AM_RANGE(0x9002, 0x9002) AM_READ_PORT("SYSTEM") AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0xb000, 0xb1ff) AM_RAM
- AM_RANGE(0xc000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(btime_state::mmonkey_map)
- AM_RANGE(0x0000, 0x3bff) AM_RAM AM_SHARE("rambase")
- AM_RANGE(0x3c00, 0x3fff) AM_RAM_WRITE(lnc_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x7800, 0x7bff) AM_WRITEONLY AM_SHARE("colorram") /* this is just here to initialize the pointer */
- AM_RANGE(0x7c00, 0x7fff) AM_READWRITE(btime_mirrorvideoram_r, lnc_mirrorvideoram_w)
- AM_RANGE(0x8000, 0x8000) AM_READ_PORT("DSW1")
- AM_RANGE(0x8001, 0x8001) AM_READ_PORT("DSW2") AM_WRITE(bnj_video_control_w)
- AM_RANGE(0x8003, 0x8003) AM_WRITEONLY AM_SHARE("lnc_charbank")
- AM_RANGE(0x9000, 0x9000) AM_READ_PORT("P1") AM_WRITENOP /* IRQ ack??? */
- AM_RANGE(0x9001, 0x9001) AM_READ_PORT("P2")
- AM_RANGE(0x9002, 0x9002) AM_READ_PORT("SYSTEM") AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0xb000, 0xbfff) AM_READWRITE(mmonkey_protection_r, mmonkey_protection_w)
- AM_RANGE(0xc000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(btime_state::bnj_map)
- AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("rambase")
- AM_RANGE(0x1000, 0x1000) AM_READ_PORT("DSW1")
- AM_RANGE(0x1001, 0x1001) AM_READ_PORT("DSW2") AM_WRITE(bnj_video_control_w)
- AM_RANGE(0x1002, 0x1002) AM_READ_PORT("P1") AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0x1003, 0x1003) AM_READ_PORT("P2")
- AM_RANGE(0x1004, 0x1004) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("videoram")
- AM_RANGE(0x4400, 0x47ff) AM_RAM AM_SHARE("colorram")
- AM_RANGE(0x4800, 0x4bff) AM_READWRITE(btime_mirrorvideoram_r, btime_mirrorvideoram_w)
- AM_RANGE(0x4c00, 0x4fff) AM_READWRITE(btime_mirrorcolorram_r, btime_mirrorcolorram_w)
- AM_RANGE(0x5000, 0x51ff) AM_RAM_WRITE(bnj_background_w) AM_SHARE("bnj_bgram")
- AM_RANGE(0x5200, 0x53ff) AM_RAM
- AM_RANGE(0x5400, 0x5400) AM_WRITE(bnj_scroll1_w)
- AM_RANGE(0x5800, 0x5800) AM_WRITE(bnj_scroll2_w)
- AM_RANGE(0x5c00, 0x5c0f) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
- AM_RANGE(0xa000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(btime_state::disco_map)
- AM_RANGE(0x0000, 0x04ff) AM_RAM AM_SHARE("rambase")
- AM_RANGE(0x2000, 0x7fff) AM_RAM_WRITE(deco_charram_w) AM_SHARE("deco_charram")
- AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE("videoram")
- AM_RANGE(0x8400, 0x87ff) AM_RAM AM_SHARE("colorram")
- AM_RANGE(0x8800, 0x881f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x9000, 0x9000) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x9200, 0x9200) AM_READ_PORT("P1")
- AM_RANGE(0x9400, 0x9400) AM_READ_PORT("P2")
- AM_RANGE(0x9800, 0x9800) AM_READ_PORT("DSW1")
- AM_RANGE(0x9a00, 0x9a00) AM_READ_PORT("DSW2") AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0x9c00, 0x9c00) AM_READ_PORT("VBLANK") AM_WRITE(disco_video_control_w)
- AM_RANGE(0xa000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-
-
-ADDRESS_MAP_START(btime_state::audio_map)
- AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM AM_SHARE("audio_rambase")
- AM_RANGE(0x2000, 0x3fff) AM_DEVWRITE("ay1", ay8910_device, data_w)
- AM_RANGE(0x4000, 0x5fff) AM_DEVWRITE("ay1", ay8910_device, address_w)
- AM_RANGE(0x6000, 0x7fff) AM_DEVWRITE("ay2", ay8910_device, data_w)
- AM_RANGE(0x8000, 0x9fff) AM_DEVWRITE("ay2", ay8910_device, address_w)
- AM_RANGE(0xa000, 0xbfff) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0xc000, 0xdfff) AM_WRITE(audio_nmi_enable_w)
- AM_RANGE(0xe000, 0xefff) AM_MIRROR(0x1000) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(btime_state::disco_audio_map)
- AM_RANGE(0x0000, 0x03ff) AM_RAM
- AM_RANGE(0x4000, 0x4fff) AM_DEVWRITE("ay1", ay8910_device, data_w)
- AM_RANGE(0x5000, 0x5fff) AM_DEVWRITE("ay1", ay8910_device, address_w)
- AM_RANGE(0x6000, 0x6fff) AM_DEVWRITE("ay2", ay8910_device, data_w)
- AM_RANGE(0x7000, 0x7fff) AM_DEVWRITE("ay2", ay8910_device, address_w)
- AM_RANGE(0x8000, 0x8fff) AM_DEVREADWRITE("soundlatch", generic_latch_8_device, read, acknowledge_w)
- AM_RANGE(0xf000, 0xffff) AM_ROM
-ADDRESS_MAP_END
+ map(0xe001, 0xe001).portr("DSW2").w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0xe002, 0xe002).portr("P1");
+ map(0xe003, 0xe003).portr("P2");
+ map(0xe004, 0xe004).portr("SYSTEM");
+ map(0xfff9, 0xffff).rom();
+}
+
+void btime_state::tisland_map(address_map &map)
+{
+ map(0x0000, 0x07ff).ram().share("rambase");
+ map(0x0c00, 0x0c0f).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
+ map(0x1000, 0x13ff).ram().share("videoram");
+ map(0x1400, 0x17ff).ram().share("colorram");
+ map(0x1800, 0x1bff).rw(this, FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::btime_mirrorvideoram_w));
+ map(0x1c00, 0x1fff).rw(this, FUNC(btime_state::btime_mirrorcolorram_r), FUNC(btime_state::btime_mirrorcolorram_w));
+ map(0x4000, 0x4000).portr("P1").nopw();
+ map(0x4001, 0x4001).portr("P2");
+ map(0x4002, 0x4002).portr("SYSTEM").w(this, FUNC(btime_state::btime_video_control_w));
+ map(0x4003, 0x4003).portr("DSW1").w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x4004, 0x4004).portr("DSW2").w(this, FUNC(btime_state::bnj_scroll1_w));
+ map(0x4005, 0x4005).w(this, FUNC(btime_state::bnj_scroll2_w));
+ map(0x9000, 0xffff).rom();
+}
+
+void btime_state::zoar_map(address_map &map)
+{
+ map(0x0000, 0x07ff).ram().share("rambase");
+ map(0x8000, 0x83ff).writeonly().share("videoram");
+ map(0x8400, 0x87ff).writeonly().share("colorram");
+ map(0x8800, 0x8bff).w(this, FUNC(btime_state::btime_mirrorvideoram_w));
+ map(0x8c00, 0x8fff).w(this, FUNC(btime_state::btime_mirrorcolorram_w));
+ map(0x9000, 0x9000).w(this, FUNC(btime_state::zoar_video_control_w));
+ map(0x9800, 0x9800).r(this, FUNC(btime_state::zoar_dsw1_read));
+ map(0x9801, 0x9801).portr("DSW2");
+ map(0x9802, 0x9802).portr("P1");
+ map(0x9803, 0x9803).portr("P2");
+ map(0x9800, 0x9803).writeonly().share("zoar_scrollram");
+ map(0x9804, 0x9804).portr("SYSTEM").w(this, FUNC(btime_state::bnj_scroll2_w));
+ map(0x9805, 0x9805).w(this, FUNC(btime_state::bnj_scroll1_w));
+ map(0x9806, 0x9806).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0xd000, 0xffff).rom();
+}
+
+void btime_state::lnc_map(address_map &map)
+{
+ map(0x0000, 0x3bff).ram().share("rambase");
+ map(0x3c00, 0x3fff).ram().w(this, FUNC(btime_state::lnc_videoram_w)).share("videoram");
+ map(0x7800, 0x7bff).writeonly().share("colorram"); /* this is just here to initialize the pointer */
+ map(0x7c00, 0x7fff).rw(this, FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::lnc_mirrorvideoram_w));
+ map(0x8000, 0x8000).portr("DSW1").nopw(); /* ??? */
+ map(0x8001, 0x8001).portr("DSW2").w(this, FUNC(btime_state::bnj_video_control_w));
+ map(0x8003, 0x8003).writeonly().share("lnc_charbank");
+ map(0x9000, 0x9000).portr("P1").nopw(); /* IRQ ack??? */
+ map(0x9001, 0x9001).portr("P2");
+ map(0x9002, 0x9002).portr("SYSTEM").w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0xb000, 0xb1ff).ram();
+ map(0xc000, 0xffff).rom();
+}
+
+void btime_state::mmonkey_map(address_map &map)
+{
+ map(0x0000, 0x3bff).ram().share("rambase");
+ map(0x3c00, 0x3fff).ram().w(this, FUNC(btime_state::lnc_videoram_w)).share("videoram");
+ map(0x7800, 0x7bff).writeonly().share("colorram"); /* this is just here to initialize the pointer */
+ map(0x7c00, 0x7fff).rw(this, FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::lnc_mirrorvideoram_w));
+ map(0x8000, 0x8000).portr("DSW1");
+ map(0x8001, 0x8001).portr("DSW2").w(this, FUNC(btime_state::bnj_video_control_w));
+ map(0x8003, 0x8003).writeonly().share("lnc_charbank");
+ map(0x9000, 0x9000).portr("P1").nopw(); /* IRQ ack??? */
+ map(0x9001, 0x9001).portr("P2");
+ map(0x9002, 0x9002).portr("SYSTEM").w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0xb000, 0xbfff).rw(this, FUNC(btime_state::mmonkey_protection_r), FUNC(btime_state::mmonkey_protection_w));
+ map(0xc000, 0xffff).rom();
+}
+
+void btime_state::bnj_map(address_map &map)
+{
+ map(0x0000, 0x07ff).ram().share("rambase");
+ map(0x1000, 0x1000).portr("DSW1");
+ map(0x1001, 0x1001).portr("DSW2").w(this, FUNC(btime_state::bnj_video_control_w));
+ map(0x1002, 0x1002).portr("P1").w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x1003, 0x1003).portr("P2");
+ map(0x1004, 0x1004).portr("SYSTEM");
+ map(0x4000, 0x43ff).ram().share("videoram");
+ map(0x4400, 0x47ff).ram().share("colorram");
+ map(0x4800, 0x4bff).rw(this, FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::btime_mirrorvideoram_w));
+ map(0x4c00, 0x4fff).rw(this, FUNC(btime_state::btime_mirrorcolorram_r), FUNC(btime_state::btime_mirrorcolorram_w));
+ map(0x5000, 0x51ff).ram().w(this, FUNC(btime_state::bnj_background_w)).share("bnj_bgram");
+ map(0x5200, 0x53ff).ram();
+ map(0x5400, 0x5400).w(this, FUNC(btime_state::bnj_scroll1_w));
+ map(0x5800, 0x5800).w(this, FUNC(btime_state::bnj_scroll2_w));
+ map(0x5c00, 0x5c0f).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
+ map(0xa000, 0xffff).rom();
+}
+
+void btime_state::disco_map(address_map &map)
+{
+ map(0x0000, 0x04ff).ram().share("rambase");
+ map(0x2000, 0x7fff).ram().w(this, FUNC(btime_state::deco_charram_w)).share("deco_charram");
+ map(0x8000, 0x83ff).ram().share("videoram");
+ map(0x8400, 0x87ff).ram().share("colorram");
+ map(0x8800, 0x881f).ram().share("spriteram");
+ map(0x9000, 0x9000).portr("SYSTEM");
+ map(0x9200, 0x9200).portr("P1");
+ map(0x9400, 0x9400).portr("P2");
+ map(0x9800, 0x9800).portr("DSW1");
+ map(0x9a00, 0x9a00).portr("DSW2").w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x9c00, 0x9c00).portr("VBLANK").w(this, FUNC(btime_state::disco_video_control_w));
+ map(0xa000, 0xffff).rom();
+}
+
+
+
+void btime_state::audio_map(address_map &map)
+{
+ map(0x0000, 0x03ff).mirror(0x1c00).ram().share("audio_rambase");
+ map(0x2000, 0x3fff).w("ay1", FUNC(ay8910_device::data_w));
+ map(0x4000, 0x5fff).w("ay1", FUNC(ay8910_device::address_w));
+ map(0x6000, 0x7fff).w("ay2", FUNC(ay8910_device::data_w));
+ map(0x8000, 0x9fff).w("ay2", FUNC(ay8910_device::address_w));
+ map(0xa000, 0xbfff).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+ map(0xc000, 0xdfff).w(this, FUNC(btime_state::audio_nmi_enable_w));
+ map(0xe000, 0xefff).mirror(0x1000).rom();
+}
+
+void btime_state::disco_audio_map(address_map &map)
+{
+ map(0x0000, 0x03ff).ram();
+ map(0x4000, 0x4fff).w("ay1", FUNC(ay8910_device::data_w));
+ map(0x5000, 0x5fff).w("ay1", FUNC(ay8910_device::address_w));
+ map(0x6000, 0x6fff).w("ay2", FUNC(ay8910_device::data_w));
+ map(0x7000, 0x7fff).w("ay2", FUNC(ay8910_device::address_w));
+ map(0x8000, 0x8fff).rw(m_soundlatch, FUNC(generic_latch_8_device::read), FUNC(generic_latch_8_device::acknowledge_w));
+ map(0xf000, 0xffff).rom();
+}
INPUT_CHANGED_MEMBER(btime_state::coin_inserted_irq_hi)