diff options
Diffstat (limited to 'src/devices/bus/spectrum/lprint.cpp')
-rw-r--r-- | src/devices/bus/spectrum/lprint.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/devices/bus/spectrum/lprint.cpp b/src/devices/bus/spectrum/lprint.cpp index 43bc0f60348..912c26d6c74 100644 --- a/src/devices/bus/spectrum/lprint.cpp +++ b/src/devices/bus/spectrum/lprint.cpp @@ -98,6 +98,7 @@ void spectrum_lprint3_device::device_add_mconfig(machine_config &config) SPECTRUM_EXPANSION_SLOT(config, m_exp, spectrum_expansion_devices, nullptr); m_exp->irq_handler().set(DEVICE_SELF_OWNER, FUNC(spectrum_expansion_slot_device::irq_w)); m_exp->nmi_handler().set(DEVICE_SELF_OWNER, FUNC(spectrum_expansion_slot_device::nmi_w)); + m_exp->fb_r_handler().set(DEVICE_SELF_OWNER, FUNC(spectrum_expansion_slot_device::fb_r)); } void spectrum_kempcentrs_device::device_add_mconfig(machine_config &config) @@ -279,7 +280,7 @@ uint8_t spectrum_lprint_device::mreq_r(offs_t offset) uint8_t spectrum_lprint_device::iorq_r(offs_t offset) { - uint8_t data = 0xff; + uint8_t data = offset & 1 ? m_slot->fb_r() : 0xff; if (!BIT(offset, 2)) { @@ -374,7 +375,7 @@ uint8_t spectrum_lprint3_device::mreq_r(offs_t offset) uint8_t spectrum_kempcentrs_device::iorq_r(offs_t offset) { - uint8_t data = 0xff; + uint8_t data = offset & 1 ? m_slot->fb_r() : 0xff; switch (offset) { @@ -432,7 +433,7 @@ void spectrum_kempcentre_device::pre_data_fetch(offs_t offset) uint8_t spectrum_kempcentre_device::iorq_r(offs_t offset) { - uint8_t data = 0xff; + uint8_t data = offset & 1 ? m_slot->fb_r() : 0xff; if (!BIT(offset, 2)) // earlier version ? uses same paging as Lprint III { @@ -506,7 +507,7 @@ void spectrum_kempcentreu_device::pre_opcode_fetch(offs_t offset) uint8_t spectrum_kempcentreu_device::iorq_r(offs_t offset) { - uint8_t data = 0xff; + uint8_t data = offset & 1 ? m_slot->fb_r() : 0xff; if ((offset & 0xf0) == 0xb0) // BB or BF, actual address decode is not known { |