summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/m24_z8000.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/m24_z8000.cpp')
-rw-r--r--src/mame/machine/m24_z8000.cpp51
1 files changed, 27 insertions, 24 deletions
diff --git a/src/mame/machine/m24_z8000.cpp b/src/mame/machine/m24_z8000.cpp
index 51d9311c3b4..01034661a71 100644
--- a/src/mame/machine/m24_z8000.cpp
+++ b/src/mame/machine/m24_z8000.cpp
@@ -40,30 +40,33 @@ const tiny_rom_entry *m24_z8000_device::device_rom_region() const
return ROM_NAME( m24_z8000 );
}
-ADDRESS_MAP_START(m24_z8000_device::z8000_prog)
- AM_RANGE(0x00000, 0xfffff) AM_READWRITE(pmem_r, pmem_w)
-
- AM_RANGE(0x40000, 0x43fff) AM_ROM AM_REGION("z8000", 0)
- AM_RANGE(0x50000, 0x53fff) AM_ROM AM_REGION("z8000", 0)
- AM_RANGE(0x70000, 0x73fff) AM_ROM AM_REGION("z8000", 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(m24_z8000_device::z8000_data)
- AM_RANGE(0x00000, 0xfffff) AM_READWRITE(dmem_r, dmem_w)
-
- AM_RANGE(0x40000, 0x43fff) AM_ROM AM_REGION("z8000", 0)
- AM_RANGE(0x70000, 0x73fff) AM_ROM AM_REGION("z8000", 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(m24_z8000_device::z8000_io)
- AM_RANGE(0x0080, 0x0081) AM_WRITE8(irqctl_w, 0x00ff)
- AM_RANGE(0x00a0, 0x00a1) AM_WRITE8(serctl_w, 0x00ff)
- AM_RANGE(0x00c0, 0x00c1) AM_DEVREADWRITE8("i8251", i8251_device, data_r, data_w, 0x00ff)
- AM_RANGE(0x00c2, 0x00c3) AM_DEVREADWRITE8("i8251", i8251_device, status_r, control_w, 0x00ff)
- AM_RANGE(0x0120, 0x0127) AM_DEVREADWRITE8("pit8253", pit8253_device, read, write, 0x00ff)
- AM_RANGE(0x8000, 0x83ff) AM_READWRITE(i86_io_r, i86_io_w)
- AM_RANGE(0x80c0, 0x80c1) AM_READWRITE8(handshake_r, handshake_w, 0x00ff)
-ADDRESS_MAP_END
+void m24_z8000_device::z8000_prog(address_map &map)
+{
+ map(0x00000, 0xfffff).rw(this, FUNC(m24_z8000_device::pmem_r), FUNC(m24_z8000_device::pmem_w));
+
+ map(0x40000, 0x43fff).rom().region("z8000", 0);
+ map(0x50000, 0x53fff).rom().region("z8000", 0);
+ map(0x70000, 0x73fff).rom().region("z8000", 0);
+}
+
+void m24_z8000_device::z8000_data(address_map &map)
+{
+ map(0x00000, 0xfffff).rw(this, FUNC(m24_z8000_device::dmem_r), FUNC(m24_z8000_device::dmem_w));
+
+ map(0x40000, 0x43fff).rom().region("z8000", 0);
+ map(0x70000, 0x73fff).rom().region("z8000", 0);
+}
+
+void m24_z8000_device::z8000_io(address_map &map)
+{
+ map(0x0081, 0x0081).w(this, FUNC(m24_z8000_device::irqctl_w));
+ map(0x00a1, 0x00a1).w(this, FUNC(m24_z8000_device::serctl_w));
+ map(0x00c1, 0x00c1).rw("i8251", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
+ map(0x00c3, 0x00c3).rw("i8251", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x0120, 0x0127).rw("pit8253", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
+ map(0x8000, 0x83ff).rw(this, FUNC(m24_z8000_device::i86_io_r), FUNC(m24_z8000_device::i86_io_w));
+ map(0x80c1, 0x80c1).rw(this, FUNC(m24_z8000_device::handshake_r), FUNC(m24_z8000_device::handshake_w));
+}
MACHINE_CONFIG_START(m24_z8000_device::device_add_mconfig)
MCFG_CPU_ADD("z8000", Z8001, XTAL(8'000'000)/2)