diff options
Diffstat (limited to 'src/devices/bus/spectrum/intf2.cpp')
-rw-r--r-- | src/devices/bus/spectrum/intf2.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/devices/bus/spectrum/intf2.cpp b/src/devices/bus/spectrum/intf2.cpp index ab9caf68f8c..514a7e42151 100644 --- a/src/devices/bus/spectrum/intf2.cpp +++ b/src/devices/bus/spectrum/intf2.cpp @@ -12,6 +12,7 @@ #include "emu.h" #include "intf2.h" +#include "softlist_dev.h" //************************************************************************** @@ -58,7 +59,7 @@ void spectrum_intf2_device::device_add_mconfig(machine_config &config) { /* cartridge */ GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "spectrum_cart", "bin,rom"); - m_cart->set_device_load(FUNC(spectrum_intf2_device::cart_load), this); + m_cart->set_device_load(FUNC(spectrum_intf2_device::cart_load)); SOFTWARE_LIST(config, "cart_list").set_original("spectrum_cart"); } @@ -95,21 +96,18 @@ void spectrum_intf2_device::device_start() DEVICE_IMAGE_LOAD_MEMBER(spectrum_intf2_device::cart_load) { - uint32_t size = m_cart->common_get_size("rom"); + uint32_t const size = m_cart->common_get_size("rom"); if (size != 0x4000) - { - image.seterror(IMAGE_ERROR_UNSPECIFIED, "Unsupported cartridge size"); - return image_init_result::FAIL; - } + return std::make_pair(image_error::INVALIDLENGTH, "Unsupported cartridge size (only 16K supported)"); m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE); m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); - return image_init_result::PASS; + return std::make_pair(std::error_condition(), std::string()); } -READ_LINE_MEMBER(spectrum_intf2_device::romcs) +bool spectrum_intf2_device::romcs() { if (m_cart && m_cart->exists()) return 1; @@ -127,7 +125,7 @@ uint8_t spectrum_intf2_device::mreq_r(offs_t offset) uint8_t spectrum_intf2_device::iorq_r(offs_t offset) { - uint8_t data = 0xff; + uint8_t data = offset & 1 ? m_slot->fb_r() : 0xff; switch (offset & 0xff) { |