summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/spectrum/intf2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/spectrum/intf2.cpp')
-rw-r--r--src/devices/bus/spectrum/intf2.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/devices/bus/spectrum/intf2.cpp b/src/devices/bus/spectrum/intf2.cpp
index afce2005a99..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"
//**************************************************************************
@@ -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::INVALIDIMAGE, "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)
{