summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/sun4.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/sun4.cpp')
-rw-r--r--src/mame/drivers/sun4.cpp63
1 files changed, 34 insertions, 29 deletions
diff --git a/src/mame/drivers/sun4.cpp b/src/mame/drivers/sun4.cpp
index 837af9187cd..71e8fb492c5 100644
--- a/src/mame/drivers/sun4.cpp
+++ b/src/mame/drivers/sun4.cpp
@@ -1331,13 +1331,15 @@ void sun4_state::fcodes_command(int ref, const std::vector<std::string> &params)
#endif
}
-ADDRESS_MAP_START(sun4_state::sun4_mem)
- AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE( sun4_mmu_r, sun4_mmu_w )
-ADDRESS_MAP_END
+void sun4_state::sun4_mem(address_map &map)
+{
+ map(0x00000000, 0xffffffff).rw(this, FUNC(sun4_state::sun4_mmu_r), FUNC(sun4_state::sun4_mmu_w));
+}
-ADDRESS_MAP_START(sun4_state::sun4c_mem)
- AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE( sun4c_mmu_r, sun4c_mmu_w )
-ADDRESS_MAP_END
+void sun4_state::sun4c_mem(address_map &map)
+{
+ map(0x00000000, 0xffffffff).rw(this, FUNC(sun4_state::sun4c_mmu_r), FUNC(sun4_state::sun4c_mmu_w));
+}
/* Input ports */
static INPUT_PORTS_START( sun4 )
@@ -1460,29 +1462,32 @@ WRITE32_MEMBER( sun4_state::ram_w )
}
}
-ADDRESS_MAP_START(sun4_state::type0space_map)
- AM_RANGE(0x00000000, 0x03ffffff) AM_READWRITE(ram_r, ram_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(sun4_state::type1space_map)
- AM_RANGE(0x00000000, 0x0000000f) AM_DEVREADWRITE8(SCC1_TAG, z80scc_device, ba_cd_inv_r, ba_cd_inv_w, 0xff00ff00)
- AM_RANGE(0x01000000, 0x0100000f) AM_DEVREADWRITE8(SCC2_TAG, z80scc_device, ba_cd_inv_r, ba_cd_inv_w, 0xff00ff00)
- AM_RANGE(0x02000000, 0x020007ff) AM_DEVREADWRITE8(TIMEKEEPER_TAG, timekeeper_device, read, write, 0xffffffff)
- AM_RANGE(0x03000000, 0x0300000f) AM_READWRITE(timer_r, timer_w) AM_MIRROR(0xfffff0)
- AM_RANGE(0x05000000, 0x05000003) AM_READWRITE8(irq_r, irq_w, 0xffffffff)
- AM_RANGE(0x06000000, 0x0607ffff) AM_ROM AM_REGION("user1", 0)
- AM_RANGE(0x07200000, 0x07200003) AM_READWRITE8(fdc_r, fdc_w, 0xffffffff)
- AM_RANGE(0x08000000, 0x08000003) AM_READ(ss1_sl0_id) // slot 0 contains SCSI/DMA/Ethernet
- AM_RANGE(0x08400000, 0x0840000f) AM_READWRITE(dma_r, dma_w)
- AM_RANGE(0x08800000, 0x0880001f) AM_DEVICE8("scsibus:7:ncr5390", ncr5390_device, map, 0xff000000)
- AM_RANGE(0x0e000000, 0x0e000003) AM_READ(ss1_sl3_id) // slot 3 contains video board
- AM_RANGE(0x0e800000, 0x0e8fffff) AM_RAM AM_SHARE("bw2_vram")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(sun4_state::type1space_s4_map)
- AM_RANGE(0x00000000, 0x0000000f) AM_DEVREADWRITE8(SCC1_TAG, z80scc_device, ba_cd_inv_r, ba_cd_inv_w, 0xff00ff00)
- AM_RANGE(0x01000000, 0x0100000f) AM_DEVREADWRITE8(SCC2_TAG, z80scc_device, ba_cd_inv_r, ba_cd_inv_w, 0xff00ff00)
-ADDRESS_MAP_END
+void sun4_state::type0space_map(address_map &map)
+{
+ map(0x00000000, 0x03ffffff).rw(this, FUNC(sun4_state::ram_r), FUNC(sun4_state::ram_w));
+}
+
+void sun4_state::type1space_map(address_map &map)
+{
+ map(0x00000000, 0x0000000f).rw(m_scc1, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00);
+ map(0x01000000, 0x0100000f).rw(m_scc2, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00);
+ map(0x02000000, 0x020007ff).rw(m_timekpr, FUNC(timekeeper_device::read), FUNC(timekeeper_device::write));
+ map(0x03000000, 0x0300000f).rw(this, FUNC(sun4_state::timer_r), FUNC(sun4_state::timer_w)).mirror(0xfffff0);
+ map(0x05000000, 0x05000003).rw(this, FUNC(sun4_state::irq_r), FUNC(sun4_state::irq_w));
+ map(0x06000000, 0x0607ffff).rom().region("user1", 0);
+ map(0x07200000, 0x07200003).rw(this, FUNC(sun4_state::fdc_r), FUNC(sun4_state::fdc_w));
+ map(0x08000000, 0x08000003).r(this, FUNC(sun4_state::ss1_sl0_id)); // slot 0 contains SCSI/DMA/Ethernet
+ map(0x08400000, 0x0840000f).rw(this, FUNC(sun4_state::dma_r), FUNC(sun4_state::dma_w));
+ map(0x08800000, 0x0880001f).m(m_scsi, FUNC(ncr5390_device::map)).umask32(0xff000000);
+ map(0x0e000000, 0x0e000003).r(this, FUNC(sun4_state::ss1_sl3_id)); // slot 3 contains video board
+ map(0x0e800000, 0x0e8fffff).ram().share("bw2_vram");
+}
+
+void sun4_state::type1space_s4_map(address_map &map)
+{
+ map(0x00000000, 0x0000000f).rw(m_scc1, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00);
+ map(0x01000000, 0x0100000f).rw(m_scc2, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00);
+}
READ8_MEMBER( sun4_state::fdc_r )
{