summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/twinkle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/twinkle.cpp')
-rw-r--r--src/mame/drivers/twinkle.cpp77
1 files changed, 40 insertions, 37 deletions
diff --git a/src/mame/drivers/twinkle.cpp b/src/mame/drivers/twinkle.cpp
index cb5fa5c04d1..71815fbe78e 100644
--- a/src/mame/drivers/twinkle.cpp
+++ b/src/mame/drivers/twinkle.cpp
@@ -814,24 +814,25 @@ READ8_MEMBER(twinkle_state::shared_psx_r)
return result;
}
-ADDRESS_MAP_START(twinkle_state::main_map)
- AM_RANGE(0x1f000000, 0x1f0007ff) AM_READWRITE8(shared_psx_r, shared_psx_w, 0x00ff00ff)
- AM_RANGE(0x1f200000, 0x1f20001f) AM_DEVREADWRITE8("am53cf96", am53cf96_device, read, write, 0x00ff00ff)
- AM_RANGE(0x1f20a01c, 0x1f20a01f) AM_WRITENOP /* scsi? */
- AM_RANGE(0x1f210000, 0x1f2107ff) AM_DEVREADWRITE8("fdc37c665gt", fdc37c665gt_device, read, write, 0x00ff00ff)
- AM_RANGE(0x1f218000, 0x1f218003) AM_DEVWRITE8("watchdog", watchdog_timer_device, reset_w, 0x000000ff) /* LTC1232 */
- AM_RANGE(0x1f220000, 0x1f220003) AM_WRITE8(twinkle_io_w, 0x00ff00ff)
- AM_RANGE(0x1f220004, 0x1f220007) AM_READ8(twinkle_io_r, 0x00ff00ff)
- AM_RANGE(0x1f230000, 0x1f230003) AM_WRITE16(led_w, 0x0000ffff)
- AM_RANGE(0x1f240000, 0x1f240003) AM_READ_PORT("IN6")
- AM_RANGE(0x1f250000, 0x1f250003) AM_WRITE16(key_led_w, 0x0000ffff)
- AM_RANGE(0x1f260000, 0x1f260003) AM_WRITE16(serial_w, 0x0000ffff)
- AM_RANGE(0x1f270000, 0x1f270003) AM_WRITE_PORT("OUTSEC")
- AM_RANGE(0x1f280000, 0x1f280003) AM_READ_PORT("INSEC")
- AM_RANGE(0x1f290000, 0x1f29007f) AM_DEVREADWRITE8("rtc", rtc65271_device, rtc_r, rtc_w, 0x00ff00ff)
- AM_RANGE(0x1f2a0000, 0x1f2a007f) AM_DEVREADWRITE8("rtc", rtc65271_device, xram_r, xram_w, 0x00ff00ff)
- AM_RANGE(0x1f2b0000, 0x1f2b00ff) AM_WRITE16(twinkle_output_w, 0xffffffff)
-ADDRESS_MAP_END
+void twinkle_state::main_map(address_map &map)
+{
+ map(0x1f000000, 0x1f0007ff).rw(this, FUNC(twinkle_state::shared_psx_r), FUNC(twinkle_state::shared_psx_w)).umask32(0x00ff00ff);
+ map(0x1f200000, 0x1f20001f).rw(m_am53cf96, FUNC(am53cf96_device::read), FUNC(am53cf96_device::write)).umask32(0x00ff00ff);
+ map(0x1f20a01c, 0x1f20a01f).nopw(); /* scsi? */
+ map(0x1f210000, 0x1f2107ff).rw("fdc37c665gt", FUNC(fdc37c665gt_device::read), FUNC(fdc37c665gt_device::write)).umask32(0x00ff00ff);
+ map(0x1f218000, 0x1f218000).w("watchdog", FUNC(watchdog_timer_device::reset_w)); /* LTC1232 */
+ map(0x1f220000, 0x1f220003).w(this, FUNC(twinkle_state::twinkle_io_w)).umask32(0x00ff00ff);
+ map(0x1f220004, 0x1f220007).r(this, FUNC(twinkle_state::twinkle_io_r)).umask32(0x00ff00ff);
+ map(0x1f230000, 0x1f230001).w(this, FUNC(twinkle_state::led_w));
+ map(0x1f240000, 0x1f240003).portr("IN6");
+ map(0x1f250000, 0x1f250001).w(this, FUNC(twinkle_state::key_led_w));
+ map(0x1f260000, 0x1f260001).w(this, FUNC(twinkle_state::serial_w));
+ map(0x1f270000, 0x1f270003).portw("OUTSEC");
+ map(0x1f280000, 0x1f280003).portr("INSEC");
+ map(0x1f290000, 0x1f29007f).rw("rtc", FUNC(rtc65271_device::rtc_r), FUNC(rtc65271_device::rtc_w)).umask32(0x00ff00ff);
+ map(0x1f2a0000, 0x1f2a007f).rw("rtc", FUNC(rtc65271_device::xram_r), FUNC(rtc65271_device::xram_w)).umask32(0x00ff00ff);
+ map(0x1f2b0000, 0x1f2b00ff).w(this, FUNC(twinkle_state::twinkle_output_w));
+}
/* SPU board */
@@ -963,26 +964,28 @@ WRITE16_MEMBER(twinkle_state::spu_led_w)
m_spu_leds[7] = BIT(~data, 7);
}
-ADDRESS_MAP_START(twinkle_state::sound_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x100000, 0x13ffff) AM_RAM
- AM_RANGE(0x200000, 0x200001) AM_READ_PORT("SPU_DSW")
- AM_RANGE(0x220000, 0x220001) AM_WRITE(spu_led_w)
- AM_RANGE(0x230000, 0x230003) AM_WRITE(twinkle_spu_ctrl_w)
- AM_RANGE(0x240000, 0x240003) AM_WRITE(spu_ata_dma_low_w) AM_READNOP
- AM_RANGE(0x250000, 0x250003) AM_WRITE(spu_ata_dma_high_w) AM_READNOP
- AM_RANGE(0x260000, 0x260001) AM_WRITE(spu_wavebank_w) AM_READNOP
- AM_RANGE(0x280000, 0x280fff) AM_READWRITE(shared_68k_r, shared_68k_w)
- AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("ata", ata_interface_device, read_cs0, write_cs0)
+void twinkle_state::sound_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0x100000, 0x13ffff).ram();
+ map(0x200000, 0x200001).portr("SPU_DSW");
+ map(0x220000, 0x220001).w(this, FUNC(twinkle_state::spu_led_w));
+ map(0x230000, 0x230003).w(this, FUNC(twinkle_state::twinkle_spu_ctrl_w));
+ map(0x240000, 0x240003).w(this, FUNC(twinkle_state::spu_ata_dma_low_w)).nopr();
+ map(0x250000, 0x250003).w(this, FUNC(twinkle_state::spu_ata_dma_high_w)).nopr();
+ map(0x260000, 0x260001).w(this, FUNC(twinkle_state::spu_wavebank_w)).nopr();
+ map(0x280000, 0x280fff).rw(this, FUNC(twinkle_state::shared_68k_r), FUNC(twinkle_state::shared_68k_w));
+ map(0x300000, 0x30000f).rw(m_ata, FUNC(ata_interface_device::read_cs0), FUNC(ata_interface_device::write_cs0));
// 34000E = ???
- AM_RANGE(0x34000e, 0x34000f) AM_WRITENOP
- AM_RANGE(0x400000, 0x400fff) AM_DEVREADWRITE("rfsnd", rf5c400_device, rf5c400_r, rf5c400_w)
- AM_RANGE(0x800000, 0xffffff) AM_READWRITE(twinkle_waveram_r, twinkle_waveram_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(twinkle_state::rf5c400_map)
- AM_RANGE(0x0000000, 0x1ffffff) AM_RAM AM_SHARE("rfsnd")
-ADDRESS_MAP_END
+ map(0x34000e, 0x34000f).nopw();
+ map(0x400000, 0x400fff).rw("rfsnd", FUNC(rf5c400_device::rf5c400_r), FUNC(rf5c400_device::rf5c400_w));
+ map(0x800000, 0xffffff).rw(this, FUNC(twinkle_state::twinkle_waveram_r), FUNC(twinkle_state::twinkle_waveram_w));
+}
+
+void twinkle_state::rf5c400_map(address_map &map)
+{
+ map(0x0000000, 0x1ffffff).ram().share("rfsnd");
+}
/* SCSI */