summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/vixen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/vixen.cpp')
-rw-r--r--src/mame/drivers/vixen.cpp53
1 files changed, 28 insertions, 25 deletions
diff --git a/src/mame/drivers/vixen.cpp b/src/mame/drivers/vixen.cpp
index 01b1e74ba02..8e8ee570d74 100644
--- a/src/mame/drivers/vixen.cpp
+++ b/src/mame/drivers/vixen.cpp
@@ -260,40 +260,43 @@ READ8_MEMBER( vixen_state::port3_r )
//-------------------------------------------------
// when M1 is inactive: read and write of data
-ADDRESS_MAP_START(vixen_state::vixen_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0xefff) AM_RAM
- AM_RANGE(0xf000, 0xffff) AM_READ_BANK("bank3") AM_WRITE_BANK("bank4") AM_SHARE("video_ram")
-ADDRESS_MAP_END
+void vixen_state::vixen_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0xefff).ram();
+ map(0xf000, 0xffff).bankr("bank3").bankw("bank4").share("video_ram");
+}
// when M1 is active: read opcodes
-ADDRESS_MAP_START(vixen_state::bios_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0xefff) AM_READ(opram_r)
- AM_RANGE(0xf000, 0xffff) AM_READ(oprom_r)
-ADDRESS_MAP_END
+void vixen_state::bios_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0xefff).r(this, FUNC(vixen_state::opram_r));
+ map(0xf000, 0xffff).r(this, FUNC(vixen_state::oprom_r));
+}
//-------------------------------------------------
// ADDRESS_MAP( vixen_io )
//-------------------------------------------------
-ADDRESS_MAP_START(vixen_state::vixen_io)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x03) AM_DEVREADWRITE(FDC1797_TAG, fd1797_device, read, write)
- AM_RANGE(0x04, 0x04) AM_MIRROR(0x03) AM_READWRITE(status_r, cmd_w)
- AM_RANGE(0x08, 0x08) AM_MIRROR(0x01) AM_DEVREADWRITE(P8155H_TAG, i8155_device, read, write)
- AM_RANGE(0x0c, 0x0d) AM_DEVWRITE(P8155H_TAG, i8155_device, ale_w)
- AM_RANGE(0x10, 0x10) AM_MIRROR(0x07) AM_DEVREAD(IEEE488_TAG, ieee488_device, dio_r)
- AM_RANGE(0x18, 0x18) AM_MIRROR(0x07) AM_READ(ieee488_r)
- AM_RANGE(0x20, 0x21) AM_MIRROR(0x04) AM_DEVWRITE(P8155H_IO_TAG, i8155_device, ale_w)
- AM_RANGE(0x28, 0x28) AM_MIRROR(0x05) AM_DEVREADWRITE(P8155H_IO_TAG, i8155_device, read, write)
- AM_RANGE(0x30, 0x30) AM_MIRROR(0x06) AM_DEVREADWRITE(P8251A_TAG, i8251_device, data_r, data_w)
- AM_RANGE(0x31, 0x31) AM_MIRROR(0x06) AM_DEVREADWRITE(P8251A_TAG, i8251_device, status_r, control_w)
- AM_RANGE(0x38, 0x38) AM_MIRROR(0x07) AM_READ(port3_r)
+void vixen_state::vixen_io(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0xff);
+ map(0x00, 0x03).rw(m_fdc, FUNC(fd1797_device::read), FUNC(fd1797_device::write));
+ map(0x04, 0x04).mirror(0x03).rw(this, FUNC(vixen_state::status_r), FUNC(vixen_state::cmd_w));
+ map(0x08, 0x08).mirror(0x01).rw(P8155H_TAG, FUNC(i8155_device::read), FUNC(i8155_device::write));
+ map(0x0c, 0x0d).w(P8155H_TAG, FUNC(i8155_device::ale_w));
+ map(0x10, 0x10).mirror(0x07).r(m_ieee488, FUNC(ieee488_device::dio_r));
+ map(0x18, 0x18).mirror(0x07).r(this, FUNC(vixen_state::ieee488_r));
+ map(0x20, 0x21).mirror(0x04).w(m_io_i8155, FUNC(i8155_device::ale_w));
+ map(0x28, 0x28).mirror(0x05).rw(m_io_i8155, FUNC(i8155_device::read), FUNC(i8155_device::write));
+ map(0x30, 0x30).mirror(0x06).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
+ map(0x31, 0x31).mirror(0x06).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x38, 0x38).mirror(0x07).r(this, FUNC(vixen_state::port3_r));
// AM_RANGE(0xf0, 0xff) Hard Disk?
-ADDRESS_MAP_END
+}