summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/isbc8010.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/isbc8010.cpp')
-rw-r--r--src/mame/drivers/isbc8010.cpp56
1 files changed, 30 insertions, 26 deletions
diff --git a/src/mame/drivers/isbc8010.cpp b/src/mame/drivers/isbc8010.cpp
index 42359545d11..6391f15f898 100644
--- a/src/mame/drivers/isbc8010.cpp
+++ b/src/mame/drivers/isbc8010.cpp
@@ -77,34 +77,38 @@ private:
uint8_t m_usart_clock_state;
};
-ADDRESS_MAP_START(isbc8010_state::isbc8010_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x0fff) AM_ROM
- AM_RANGE(0x3c00, 0x3fff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(isbc8010_state::isbc8010a_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x1fff) AM_ROM
- AM_RANGE(0x3c00, 0x3fff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(isbc8010_state::isbc8010b_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x3bff) AM_ROM
- AM_RANGE(0x3c00, 0x3fff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(isbc8010_state::isbc8010_io)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0xe4, 0xe7) AM_DEVREADWRITE(I8255A_1_TAG, i8255_device, read, write)
- AM_RANGE(0xe8, 0xeb) AM_DEVREADWRITE(I8255A_2_TAG, i8255_device, read, write)
- AM_RANGE(0xec, 0xec) AM_MIRROR(0x02) AM_DEVREADWRITE(I8251A_TAG, i8251_device, data_r, data_w)
- AM_RANGE(0xed, 0xed) AM_MIRROR(0x02) AM_DEVREADWRITE(I8251A_TAG, i8251_device, status_r, control_w)
+void isbc8010_state::isbc8010_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x0fff).rom();
+ map(0x3c00, 0x3fff).ram();
+}
+
+void isbc8010_state::isbc8010a_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x1fff).rom();
+ map(0x3c00, 0x3fff).ram();
+}
+
+void isbc8010_state::isbc8010b_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x3bff).rom();
+ map(0x3c00, 0x3fff).ram();
+}
+
+void isbc8010_state::isbc8010_io(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0xff);
+ map(0xe4, 0xe7).rw(m_ppi_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xe8, 0xeb).rw(m_ppi_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xec, 0xec).mirror(0x02).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
+ map(0xed, 0xed).mirror(0x02).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
//AM_RANGE(0xf0, 0xf7) MCS0 - iSBX Multimodule
//AM_RANGE(0xf8, 0xff) MCS1 - iSBX Multimodule
-ADDRESS_MAP_END
+}
static INPUT_PORTS_START( isbc8010 )
PORT_START(I8251A_BAUD_TAG)