diff options
Diffstat (limited to 'src/mame/drivers/h8.cpp')
-rw-r--r-- | src/mame/drivers/h8.cpp | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/src/mame/drivers/h8.cpp b/src/mame/drivers/h8.cpp index e89cdeb7988..fcd13e92d1f 100644 --- a/src/mame/drivers/h8.cpp +++ b/src/mame/drivers/h8.cpp @@ -177,25 +177,27 @@ WRITE8_MEMBER( h8_state::portf1_w ) if (m_digit) output().set_digit_value(m_digit, m_segment); } -ADDRESS_MAP_START(h8_state::h8_mem) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x0000, 0x0fff) AM_ROM // main rom - AM_RANGE(0x1400, 0x17ff) AM_RAM // fdc ram - AM_RANGE(0x1800, 0x1fff) AM_ROM // fdc rom - AM_RANGE(0x2000, 0x9fff) AM_RAM // main ram -ADDRESS_MAP_END - -ADDRESS_MAP_START(h8_state::h8_io) - ADDRESS_MAP_UNMAP_HIGH - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0xf0, 0xf0) AM_READWRITE(portf0_r,portf0_w) - AM_RANGE(0xf1, 0xf1) AM_WRITE(portf1_w) - AM_RANGE(0xf8, 0xf8) AM_DEVREADWRITE("uart", i8251_device, data_r, data_w) - AM_RANGE(0xf9, 0xf9) AM_DEVREADWRITE("uart", i8251_device, status_r, control_w) +void h8_state::h8_mem(address_map &map) +{ + map.unmap_value_high(); + map(0x0000, 0x0fff).rom(); // main rom + map(0x1400, 0x17ff).ram(); // fdc ram + map(0x1800, 0x1fff).rom(); // fdc rom + map(0x2000, 0x9fff).ram(); // main ram +} + +void h8_state::h8_io(address_map &map) +{ + map.unmap_value_high(); + map.global_mask(0xff); + map(0xf0, 0xf0).rw(this, FUNC(h8_state::portf0_r), FUNC(h8_state::portf0_w)); + map(0xf1, 0xf1).w(this, FUNC(h8_state::portf1_w)); + map(0xf8, 0xf8).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w)); + map(0xf9, 0xf9).rw(m_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w)); // optional connection to a serial terminal @ 600 baud //AM_RANGE(0xfa, 0xfa) AM_DEVREADWRITE("uart1", i8251_device, data_r, data_w) //AM_RANGE(0xfb, 0xfb) AM_DEVREADWRITE("uart1", i8251_device, status_r, control_w) -ADDRESS_MAP_END +} /* Input ports */ static INPUT_PORTS_START( h8 ) |