summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/fidelz80.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/fidelz80.cpp')
-rw-r--r--src/mame/drivers/fidelz80.cpp140
1 files changed, 76 insertions, 64 deletions
diff --git a/src/mame/drivers/fidelz80.cpp b/src/mame/drivers/fidelz80.cpp
index 63bbf17ab6d..f067ae5d43a 100644
--- a/src/mame/drivers/fidelz80.cpp
+++ b/src/mame/drivers/fidelz80.cpp
@@ -1126,62 +1126,70 @@ READ8_MEMBER(fidelz80_state::dsc_input_r)
// CC10 and VCC/UVC
-ADDRESS_MAP_START(fidelz80_state::cc10_map)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0x3fff)
- AM_RANGE(0x0000, 0x0fff) AM_ROM
- AM_RANGE(0x1000, 0x10ff) AM_MIRROR(0x0f00) AM_RAM
- AM_RANGE(0x3000, 0x30ff) AM_MIRROR(0x0f00) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(fidelz80_state::vcc_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x2fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x1c00) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(fidelz80_state::vcc_io)
- ADDRESS_MAP_GLOBAL_MASK(0x03)
- AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
-ADDRESS_MAP_END
+void fidelz80_state::cc10_map(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0x3fff);
+ map(0x0000, 0x0fff).rom();
+ map(0x1000, 0x10ff).mirror(0x0f00).ram();
+ map(0x3000, 0x30ff).mirror(0x0f00).ram();
+}
+
+void fidelz80_state::vcc_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x2fff).rom();
+ map(0x4000, 0x43ff).mirror(0x1c00).ram();
+}
+
+void fidelz80_state::vcc_io(address_map &map)
+{
+ map.global_mask(0x03);
+ map(0x00, 0x03).rw(m_ppi8255, FUNC(i8255_device::read), FUNC(i8255_device::write));
+}
// BCC
-ADDRESS_MAP_START(fidelz80_state::bcc_map)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0x3fff)
- AM_RANGE(0x0000, 0x0fff) AM_ROM
- AM_RANGE(0x3000, 0x30ff) AM_MIRROR(0x0f00) AM_RAM
-ADDRESS_MAP_END
+void fidelz80_state::bcc_map(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0x3fff);
+ map(0x0000, 0x0fff).rom();
+ map(0x3000, 0x30ff).mirror(0x0f00).ram();
+}
-ADDRESS_MAP_START(fidelz80_state::bcc_io)
- ADDRESS_MAP_GLOBAL_MASK(0x07)
- AM_RANGE(0x00, 0x07) AM_READWRITE(bcc_input_r, bcc_control_w)
-ADDRESS_MAP_END
+void fidelz80_state::bcc_io(address_map &map)
+{
+ map.global_mask(0x07);
+ map(0x00, 0x07).rw(this, FUNC(fidelz80_state::bcc_input_r), FUNC(fidelz80_state::bcc_control_w));
+}
// SCC
-ADDRESS_MAP_START(fidelz80_state::scc_map)
- AM_RANGE(0x0000, 0x0fff) AM_ROM
- AM_RANGE(0x5000, 0x50ff) AM_RAM
-ADDRESS_MAP_END
+void fidelz80_state::scc_map(address_map &map)
+{
+ map(0x0000, 0x0fff).rom();
+ map(0x5000, 0x50ff).ram();
+}
-ADDRESS_MAP_START(fidelz80_state::scc_io)
- ADDRESS_MAP_GLOBAL_MASK(0x07)
- AM_RANGE(0x00, 0x07) AM_READWRITE(scc_input_r, scc_control_w)
-ADDRESS_MAP_END
+void fidelz80_state::scc_io(address_map &map)
+{
+ map.global_mask(0x07);
+ map(0x00, 0x07).rw(this, FUNC(fidelz80_state::scc_input_r), FUNC(fidelz80_state::scc_control_w));
+}
// VSC
-ADDRESS_MAP_START(fidelz80_state::vsc_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x4fff) AM_MIRROR(0x1000) AM_ROM
- AM_RANGE(0x6000, 0x63ff) AM_MIRROR(0x1c00) AM_RAM
-ADDRESS_MAP_END
+void fidelz80_state::vsc_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x4fff).mirror(0x1000).rom();
+ map(0x6000, 0x63ff).mirror(0x1c00).ram();
+}
// VSC io: A2 is 8255 _CE, A3 is Z80 PIO _CE - in theory, both chips can be accessed simultaneously
READ8_MEMBER(fidelz80_state::vsc_io_trampoline_r)
@@ -1203,37 +1211,41 @@ WRITE8_MEMBER(fidelz80_state::vsc_io_trampoline_w)
m_z80pio->write(space, offset & 3, data);
}
-ADDRESS_MAP_START(fidelz80_state::vsc_io)
- ADDRESS_MAP_GLOBAL_MASK(0x0f)
- AM_RANGE(0x00, 0x0f) AM_READWRITE(vsc_io_trampoline_r, vsc_io_trampoline_w)
-ADDRESS_MAP_END
+void fidelz80_state::vsc_io(address_map &map)
+{
+ map.global_mask(0x0f);
+ map(0x00, 0x0f).rw(this, FUNC(fidelz80_state::vsc_io_trampoline_r), FUNC(fidelz80_state::vsc_io_trampoline_w));
+}
// VBRC
-ADDRESS_MAP_START(fidelz80_state::vbrc_main_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x5fff) AM_ROM
- AM_RANGE(0x6000, 0x63ff) AM_MIRROR(0x1c00) AM_RAM
- AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1fff) AM_WRITE(vbrc_speech_w)
-ADDRESS_MAP_END
+void fidelz80_state::vbrc_main_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x5fff).rom();
+ map(0x6000, 0x63ff).mirror(0x1c00).ram();
+ map(0xe000, 0xe000).mirror(0x1fff).w(this, FUNC(fidelz80_state::vbrc_speech_w));
+}
-ADDRESS_MAP_START(fidelz80_state::vbrc_main_io)
- ADDRESS_MAP_GLOBAL_MASK(0x01)
- AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("mcu", i8041_device, upi41_master_r, upi41_master_w)
-ADDRESS_MAP_END
+void fidelz80_state::vbrc_main_io(address_map &map)
+{
+ map.global_mask(0x01);
+ map(0x00, 0x01).rw(m_mcu, FUNC(i8041_device::upi41_master_r), FUNC(i8041_device::upi41_master_w));
+}
// DSC
-ADDRESS_MAP_START(fidelz80_state::dsc_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x1fff) AM_ROM
- AM_RANGE(0x4000, 0x4000) AM_MIRROR(0x1fff) AM_WRITE(dsc_control_w)
- AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_WRITE(dsc_select_w)
- AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1fff) AM_READ(dsc_input_r)
- AM_RANGE(0xa000, 0xa3ff) AM_MIRROR(0x1c00) AM_RAM
-ADDRESS_MAP_END
+void fidelz80_state::dsc_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x1fff).rom();
+ map(0x4000, 0x4000).mirror(0x1fff).w(this, FUNC(fidelz80_state::dsc_control_w));
+ map(0x6000, 0x6000).mirror(0x1fff).w(this, FUNC(fidelz80_state::dsc_select_w));
+ map(0x8000, 0x8000).mirror(0x1fff).r(this, FUNC(fidelz80_state::dsc_input_r));
+ map(0xa000, 0xa3ff).mirror(0x1c00).ram();
+}