summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/eprom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/eprom.cpp')
-rw-r--r--src/mame/drivers/eprom.cpp123
1 files changed, 63 insertions, 60 deletions
diff --git a/src/mame/drivers/eprom.cpp b/src/mame/drivers/eprom.cpp
index 60ff51ba64d..17297286809 100644
--- a/src/mame/drivers/eprom.cpp
+++ b/src/mame/drivers/eprom.cpp
@@ -145,54 +145,56 @@ template<bool maincpu> WRITE16_MEMBER(eprom_state::sync_w)
*
*************************************/
-ADDRESS_MAP_START(eprom_state::main_map)
- AM_RANGE(0x000000, 0x09ffff) AM_ROM
- AM_RANGE(0x0e0000, 0x0e0fff) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0x00ff)
- AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x16cc00, 0x16cc01) AM_READWRITE(sync_r, sync_w<true>)
- AM_RANGE(0x1f0000, 0x1fffff) AM_DEVWRITE("eeprom", eeprom_parallel_28xx_device, unlock_write16)
- AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
- AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
- AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
- AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("jsa", atari_jsa_base_device, main_response_r, 0x00ff)
- AM_RANGE(0x2e0000, 0x2e0001) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
- AM_RANGE(0x360000, 0x360001) AM_WRITE(video_int_ack_w)
- AM_RANGE(0x360010, 0x360011) AM_WRITE(eprom_latch_w)
- AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("jsa", atari_jsa_base_device, sound_reset_w)
- AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("jsa", atari_jsa_base_device, main_command_w, 0x00ff)
- AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM AM_SHARE("paletteram")
- AM_RANGE(0x3f0000, 0x3f9fff) AM_RAM
- AM_RANGE(0x3f0000, 0x3f1fff) AM_DEVWRITE("playfield", tilemap_device, write16) AM_SHARE("playfield")
- AM_RANGE(0x3f2000, 0x3f3fff) AM_RAM AM_SHARE("mob")
- AM_RANGE(0x3f4000, 0x3f4f7f) AM_DEVWRITE("alpha", tilemap_device, write16) AM_SHARE("alpha")
- AM_RANGE(0x3f4f80, 0x3f4fff) AM_RAM AM_SHARE("mob:slip")
- AM_RANGE(0x3f8000, 0x3f9fff) AM_DEVWRITE("playfield", tilemap_device, write16_ext) AM_SHARE("playfield_ext")
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(eprom_state::guts_map)
- AM_RANGE(0x000000, 0x09ffff) AM_ROM
- AM_RANGE(0x0e0000, 0x0e0fff) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0x00ff)
- AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x16cc00, 0x16cc01) AM_READWRITE(sync_r, sync_w<true>)
- AM_RANGE(0x1f0000, 0x1fffff) AM_DEVWRITE("eeprom", eeprom_parallel_28xx_device, unlock_write16)
- AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
- AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
- AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
- AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("jsa", atari_jsa_ii_device, main_response_r, 0x00ff)
- AM_RANGE(0x2e0000, 0x2e0001) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
- AM_RANGE(0x360000, 0x360001) AM_WRITE(video_int_ack_w)
+void eprom_state::main_map(address_map &map)
+{
+ map(0x000000, 0x09ffff).rom();
+ map(0x0e0000, 0x0e0fff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask16(0x00ff);
+ map(0x160000, 0x16ffff).ram().share("share1");
+ map(0x16cc00, 0x16cc01).rw(this, FUNC(eprom_state::sync_r), FUNC(eprom_state::sync_w<true>));
+ map(0x1f0000, 0x1fffff).w("eeprom", FUNC(eeprom_parallel_28xx_device::unlock_write16));
+ map(0x260000, 0x26000f).portr("260000");
+ map(0x260010, 0x26001f).r(this, FUNC(eprom_state::special_port1_r));
+ map(0x260020, 0x26002f).r(this, FUNC(eprom_state::adc_r));
+ map(0x260031, 0x260031).r(m_jsa, FUNC(atari_jsa_base_device::main_response_r));
+ map(0x2e0000, 0x2e0001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
+ map(0x360000, 0x360001).w(this, FUNC(eprom_state::video_int_ack_w));
+ map(0x360010, 0x360011).w(this, FUNC(eprom_state::eprom_latch_w));
+ map(0x360020, 0x360021).w(m_jsa, FUNC(atari_jsa_base_device::sound_reset_w));
+ map(0x360031, 0x360031).w(m_jsa, FUNC(atari_jsa_base_device::main_command_w));
+ map(0x3e0000, 0x3e0fff).ram().share("paletteram");
+ map(0x3f0000, 0x3f9fff).ram();
+ map(0x3f0000, 0x3f1fff).w(m_playfield_tilemap, FUNC(tilemap_device::write16)).share("playfield");
+ map(0x3f2000, 0x3f3fff).ram().share("mob");
+ map(0x3f4000, 0x3f4f7f).w(m_alpha_tilemap, FUNC(tilemap_device::write16)).share("alpha");
+ map(0x3f4f80, 0x3f4fff).ram().share("mob:slip");
+ map(0x3f8000, 0x3f9fff).w(m_playfield_tilemap, FUNC(tilemap_device::write16_ext)).share("playfield_ext");
+}
+
+
+void eprom_state::guts_map(address_map &map)
+{
+ map(0x000000, 0x09ffff).rom();
+ map(0x0e0000, 0x0e0fff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask16(0x00ff);
+ map(0x160000, 0x16ffff).ram().share("share1");
+ map(0x16cc00, 0x16cc01).rw(this, FUNC(eprom_state::sync_r), FUNC(eprom_state::sync_w<true>));
+ map(0x1f0000, 0x1fffff).w("eeprom", FUNC(eeprom_parallel_28xx_device::unlock_write16));
+ map(0x260000, 0x26000f).portr("260000");
+ map(0x260010, 0x26001f).r(this, FUNC(eprom_state::special_port1_r));
+ map(0x260020, 0x26002f).r(this, FUNC(eprom_state::adc_r));
+ map(0x260031, 0x260031).r(m_jsa, FUNC(atari_jsa_ii_device::main_response_r));
+ map(0x2e0000, 0x2e0001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
+ map(0x360000, 0x360001).w(this, FUNC(eprom_state::video_int_ack_w));
// AM_RANGE(0x360010, 0x360011) AM_WRITE(eprom_latch_w)
- AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("jsa", atari_jsa_ii_device, sound_reset_w)
- AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("jsa", atari_jsa_ii_device, main_command_w, 0x00ff)
- AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM AM_SHARE("paletteram")
- AM_RANGE(0xff0000, 0xff1fff) AM_RAM AM_DEVWRITE("playfield", tilemap_device, write16_ext) AM_SHARE("playfield_ext")
- AM_RANGE(0xff8000, 0xff9fff) AM_RAM AM_DEVWRITE("playfield", tilemap_device, write16) AM_SHARE("playfield")
- AM_RANGE(0xffa000, 0xffbfff) AM_RAM AM_SHARE("mob")
- AM_RANGE(0xffc000, 0xffcf7f) AM_RAM AM_DEVWRITE("alpha", tilemap_device, write16) AM_SHARE("alpha")
- AM_RANGE(0xffcf80, 0xffcfff) AM_RAM AM_SHARE("mob:slip")
- AM_RANGE(0xffd000, 0xffffff) AM_RAM
-ADDRESS_MAP_END
+ map(0x360020, 0x360021).w(m_jsa, FUNC(atari_jsa_ii_device::sound_reset_w));
+ map(0x360031, 0x360031).w(m_jsa, FUNC(atari_jsa_ii_device::main_command_w));
+ map(0x3e0000, 0x3e0fff).ram().share("paletteram");
+ map(0xff0000, 0xff1fff).ram().w(m_playfield_tilemap, FUNC(tilemap_device::write16_ext)).share("playfield_ext");
+ map(0xff8000, 0xff9fff).ram().w(m_playfield_tilemap, FUNC(tilemap_device::write16)).share("playfield");
+ map(0xffa000, 0xffbfff).ram().share("mob");
+ map(0xffc000, 0xffcf7f).ram().w(m_alpha_tilemap, FUNC(tilemap_device::write16)).share("alpha");
+ map(0xffcf80, 0xffcfff).ram().share("mob:slip");
+ map(0xffd000, 0xffffff).ram();
+}
@@ -202,19 +204,20 @@ ADDRESS_MAP_END
*
*************************************/
-ADDRESS_MAP_START(eprom_state::extra_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x16cc00, 0x16cc01) AM_READWRITE(sync_r, sync_w<false>) AM_SHARE("sync_data")
- AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
- AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
- AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
- AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("jsa", atari_jsa_base_device, main_response_r, 0x00ff)
- AM_RANGE(0x360000, 0x360001) AM_WRITE(video_int_ack_w)
- AM_RANGE(0x360010, 0x360011) AM_WRITE(eprom_latch_w)
- AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("jsa", atari_jsa_base_device, sound_reset_w)
- AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("jsa", atari_jsa_base_device, main_command_w, 0x00ff)
-ADDRESS_MAP_END
+void eprom_state::extra_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0x160000, 0x16ffff).ram().share("share1");
+ map(0x16cc00, 0x16cc01).rw(this, FUNC(eprom_state::sync_r), FUNC(eprom_state::sync_w<false>)).share("sync_data");
+ map(0x260000, 0x26000f).portr("260000");
+ map(0x260010, 0x26001f).r(this, FUNC(eprom_state::special_port1_r));
+ map(0x260020, 0x26002f).r(this, FUNC(eprom_state::adc_r));
+ map(0x260031, 0x260031).r(m_jsa, FUNC(atari_jsa_base_device::main_response_r));
+ map(0x360000, 0x360001).w(this, FUNC(eprom_state::video_int_ack_w));
+ map(0x360010, 0x360011).w(this, FUNC(eprom_state::eprom_latch_w));
+ map(0x360020, 0x360021).w(m_jsa, FUNC(atari_jsa_base_device::sound_reset_w));
+ map(0x360031, 0x360031).w(m_jsa, FUNC(atari_jsa_base_device::main_command_w));
+}