summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/generic/slot.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/generic/slot.cpp')
-rw-r--r--src/devices/bus/generic/slot.cpp40
1 files changed, 24 insertions, 16 deletions
diff --git a/src/devices/bus/generic/slot.cpp b/src/devices/bus/generic/slot.cpp
index 532e3aad7b6..f2e86809a66 100644
--- a/src/devices/bus/generic/slot.cpp
+++ b/src/devices/bus/generic/slot.cpp
@@ -95,7 +95,7 @@ void device_generic_cart_interface::rom_alloc(u32 size, int width, endianness_t
std::string fulltag(tag);
fulltag.append(GENERIC_ROM_REGION_TAG);
device().logerror("Allocating %u byte ROM region with tag '%s' (width %d)\n", size, fulltag, width);
- m_rom = device().machine().memory().region_alloc(fulltag.c_str(), size, width, endian)->base();
+ m_rom = device().machine().memory().region_alloc(fulltag, size, width, endian)->base();
m_rom_size = size;
}
@@ -121,12 +121,11 @@ void device_generic_cart_interface::ram_alloc(u32 size)
generic_slot_device::generic_slot_device(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, u32 clock) :
device_t(mconfig, type, tag, owner, clock),
- device_image_interface(mconfig, *this),
+ device_rom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_generic_cart_interface>(mconfig, *this),
m_interface(nullptr),
m_default_card("rom"),
m_extensions("bin"),
- m_must_be_loaded(false),
m_width(GENERIC_ROM8_WIDTH),
m_endianness(ENDIANNESS_LITTLE),
m_cart(nullptr),
@@ -149,6 +148,14 @@ generic_slot_device::~generic_slot_device()
{
}
+generic_socket_device::~generic_socket_device()
+{
+}
+
+generic_cartslot_device::~generic_cartslot_device()
+{
+}
+
void generic_slot_device::device_start()
{
m_cart = get_card_device();
@@ -161,24 +168,25 @@ void generic_slot_device::device_start()
call load
-------------------------------------------------*/
-image_init_result generic_slot_device::call_load()
+std::pair<std::error_condition, std::string> generic_slot_device::call_load()
{
- if (m_cart)
+ if (!m_cart)
{
- if (!m_device_image_load.isnull())
- return m_device_image_load(*this);
- else
- {
- u32 len = common_get_size("rom");
+ return std::make_pair(std::error_condition(), std::string());
+ }
+ else if (!m_device_image_load.isnull())
+ {
+ return m_device_image_load(*this);
+ }
+ else
+ {
+ u32 const len = common_get_size("rom");
- rom_alloc(len, m_width, m_endianness);
- common_load_rom(get_rom_base(), len, "rom");
+ rom_alloc(len, m_width, m_endianness);
+ common_load_rom(get_rom_base(), len, "rom");
- return image_init_result::PASS;
- }
+ return std::make_pair(std::error_condition(), std::string());
}
-
- return image_init_result::PASS;
}