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.cpp16
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)
{