summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/bbc/rom/slot.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/bbc/rom/slot.cpp')
-rw-r--r--src/devices/bus/bbc/rom/slot.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/devices/bus/bbc/rom/slot.cpp b/src/devices/bus/bbc/rom/slot.cpp
index 65acb920bca..6ef0dddf180 100644
--- a/src/devices/bus/bbc/rom/slot.cpp
+++ b/src/devices/bus/bbc/rom/slot.cpp
@@ -50,7 +50,7 @@ void device_bbc_rom_interface::rom_alloc(uint32_t size, const char *tag)
{
if (m_rom == nullptr)
{
- m_rom = device().machine().memory().region_alloc(std::string(tag).append(BBC_ROM_REGION_TAG).c_str(), size, 1, ENDIANNESS_LITTLE)->base();
+ m_rom = device().machine().memory().region_alloc(std::string(tag).append(BBC_ROM_REGION_TAG), size, 1, ENDIANNESS_LITTLE)->base();
m_rom_size = size;
}
}
@@ -84,7 +84,7 @@ void device_bbc_rom_interface::nvram_alloc(uint32_t size)
//-------------------------------------------------
bbc_romslot_device::bbc_romslot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t 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_bbc_rom_interface>(mconfig, *this)
, m_cart(nullptr)
{
@@ -114,17 +114,14 @@ void bbc_romslot_device::device_start()
// call load
//-------------------------------------------------
-image_init_result bbc_romslot_device::call_load()
+std::pair<std::error_condition, std::string> bbc_romslot_device::call_load()
{
if (m_cart)
{
- uint32_t size = !loaded_through_softlist() ? length() : get_software_region_length("rom");
+ uint32_t const size = !loaded_through_softlist() ? length() : get_software_region_length("rom");
if (size % 0x2000)
- {
- seterror(image_error::INVALIDIMAGE, "Invalid ROM size");
- return image_init_result::FAIL;
- }
+ return std::make_pair(image_error::INVALIDLENGTH, "Invalid ROM size (must be a multiple of 8K)");
m_cart->rom_alloc(size, tag());
@@ -142,7 +139,7 @@ image_init_result bbc_romslot_device::call_load()
m_cart->nvram_alloc(get_software_region_length("nvram"));
}
- return image_init_result::PASS;
+ return std::make_pair(std::error_condition(), std::string());
}
//-------------------------------------------------
@@ -213,6 +210,7 @@ void bbc_romslot_device::write(offs_t offset, uint8_t data)
#include "datagem.h"
#include "dfs.h"
#include "genie.h"
+//#include "gommc.h"
#include "pal.h"
//#include "ramagic.h"
#include "rtc.h"
@@ -234,8 +232,10 @@ void bbc_rom_devices(device_slot_interface &device)
device.option_add_internal("palmo2", BBC_PALMO2);
device.option_add_internal("datagem", BBC_DATAGEM);
device.option_add_internal("genie", BBC_PMSGENIE);
+ //device.option_add_internal("gommc", BBC_GOMMC);
device.option_add_internal("dfse00", BBC_DFSE00);
//device.option_add_internal("ramagic", BBC_RAMAGIC);
device.option_add_internal("stlrtc", BBC_STLRTC);
device.option_add_internal("pmsrtc", BBC_PMSRTC);
+ device.option_add_internal("trilogy", BBC_TRILOGY);
}