diff --git a/src/mame/sinclair/sprinter.cpp b/src/mame/sinclair/sprinter.cpp index 4b8a8959479..b90c0230dcb 100644 --- a/src/mame/sinclair/sprinter.cpp +++ b/src/mame/sinclair/sprinter.cpp @@ -80,6 +80,7 @@ public: : spectrum_128_state(mconfig, type, tag) , m_maincpu(*this, "maincpu") , m_isa(*this, "isa%u", 0U) + , m_isa_io_view(*this, "isa_io_view") , m_rtc(*this, "rtc") , m_ata(*this, "ata%u", 1U) , m_beta(*this, BETA_DISK_TAG) @@ -113,6 +114,7 @@ protected: void map_io(address_map &map) ATTR_COLD; void map_mem(address_map &map) ATTR_COLD; void map_fetch(address_map &map) ATTR_COLD; + void map_isa_io(address_map &map) ATTR_COLD; u8 m1_r(offs_t offset); void cio_dtrb_w(int state); u8 joy_ctrl_r(int num); @@ -139,6 +141,7 @@ protected: required_device m_maincpu; required_device_array m_isa; + memory_view m_isa_io_view; private: enum accel_state : u8 @@ -1396,8 +1399,19 @@ void sprinter_state::init_taps() }); } +void sprinter_state::map_isa_io(address_map &map) +{ + map.unmap_value_high(); + map(0x0000, 0xffff).view(m_isa_io_view); + subdevice("zxbus")->set_io_space(m_isa_io_view[0], m_isa_io_view[0]); + m_isa_io_view.select(0); +} + void sprinter_state::machine_start() { + address_space &m_isa_io = m_isa[0]->space(isa8_device::AS_ISA_IO); + m_isa_io.install_device(0x0000, 0xffff, *this, &sprinter_state::map_isa_io); + m_isa[0]->space(isa8_device::AS_ISA_IO).unmap_value_high(); m_isa[1]->space(isa8_device::AS_ISA_IO).unmap_value_high(); @@ -1894,7 +1908,6 @@ void sprinter_state::sprinter(machine_config &config) ISA8(config, m_isa[0], X_SP / 5); m_isa[0]->set_custom_spaces(); zxbus_device &zxbus(ZXBUS(config, "zxbus", 0)); - //zxbus.set_iospace(m_isa[0], isa8_device::AS_ISA_IO); ZXBUS_SLOT(config, "zxbus2isa", 0, zxbus, zxbus_cards, nullptr); ISA8(config, m_isa[1], X_SP / 5);