diff options
Diffstat (limited to 'src/devices/bus/spectrum/mikroplus.cpp')
-rw-r--r-- | src/devices/bus/spectrum/mikroplus.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/devices/bus/spectrum/mikroplus.cpp b/src/devices/bus/spectrum/mikroplus.cpp index 87552f79bf3..b0f0676aaee 100644 --- a/src/devices/bus/spectrum/mikroplus.cpp +++ b/src/devices/bus/spectrum/mikroplus.cpp @@ -85,19 +85,23 @@ void spectrum_mikroplus_device::device_start() } +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void spectrum_mikroplus_device::device_reset() +{ + io_space().install_read_handler(0xdf, 0xdf, 0, 0xff00, 0, read8_delegate(FUNC(spectrum_mikroplus_device::joystick_r), this)); +} + + //************************************************************************** // IMPLEMENTATION //************************************************************************** -uint8_t spectrum_mikroplus_device::iorq_r(offs_t offset) +READ8_MEMBER(spectrum_mikroplus_device::joystick_r) { - uint8_t data = 0xff; - - if (offset == 0xdf) - { - data = m_joy->read() | (0xff ^ 0x1f); - } - return data; + return m_joy->read() | (0xff ^ 0x1f); } READ_LINE_MEMBER(spectrum_mikroplus_device::romcs) @@ -105,7 +109,7 @@ READ_LINE_MEMBER(spectrum_mikroplus_device::romcs) return 1; } -uint8_t spectrum_mikroplus_device::mreq_r(offs_t offset) +READ8_MEMBER(spectrum_mikroplus_device::mreq_r) { return m_rom->base()[offset & 0x3fff]; } |