summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/vidbrain/exp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/vidbrain/exp.cpp')
-rw-r--r--src/devices/bus/vidbrain/exp.cpp79
1 files changed, 20 insertions, 59 deletions
diff --git a/src/devices/bus/vidbrain/exp.cpp b/src/devices/bus/vidbrain/exp.cpp
index 808907678cc..4423ae3a385 100644
--- a/src/devices/bus/vidbrain/exp.cpp
+++ b/src/devices/bus/vidbrain/exp.cpp
@@ -12,14 +12,6 @@
//**************************************************************************
-// MACROS/CONSTANTS
-//**************************************************************************
-
-#define LOG 0
-
-
-
-//**************************************************************************
// DEVICE DEFINITIONS
//**************************************************************************
@@ -36,7 +28,7 @@ DEFINE_DEVICE_TYPE(VIDEOBRAIN_EXPANSION_SLOT, videobrain_expansion_slot_device,
//-------------------------------------------------
device_videobrain_expansion_card_interface::device_videobrain_expansion_card_interface(const machine_config &mconfig, device_t &device) :
- device_slot_card_interface(mconfig, device),
+ device_interface(device, "vidbrainexp"),
m_rom_mask(0),
m_ram_mask(0)
{
@@ -45,7 +37,7 @@ device_videobrain_expansion_card_interface::device_videobrain_expansion_card_int
//-------------------------------------------------
-// videobrain_roml_pointer - get low ROM pointer
+// videobrain_rom_pointer - get ROM pointer
//-------------------------------------------------
uint8_t* device_videobrain_expansion_card_interface::videobrain_rom_pointer(running_machine &machine, size_t size)
@@ -53,7 +45,6 @@ uint8_t* device_videobrain_expansion_card_interface::videobrain_rom_pointer(runn
if (m_rom.empty())
{
m_rom.resize(size);
-
m_rom_mask = size - 1;
}
@@ -70,7 +61,6 @@ uint8_t* device_videobrain_expansion_card_interface::videobrain_ram_pointer(runn
if (m_ram.empty())
{
m_ram.resize(size);
-
m_ram_mask = size - 1;
}
@@ -89,8 +79,8 @@ uint8_t* device_videobrain_expansion_card_interface::videobrain_ram_pointer(runn
videobrain_expansion_slot_device::videobrain_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, VIDEOBRAIN_EXPANSION_SLOT, tag, owner, clock),
- device_slot_interface(mconfig, *this),
- device_image_interface(mconfig, *this),
+ device_single_card_slot_interface<device_videobrain_expansion_card_interface>(mconfig, *this),
+ device_cartrom_image_interface(mconfig, *this),
m_write_extres(*this), m_cart(nullptr)
{
}
@@ -102,10 +92,7 @@ videobrain_expansion_slot_device::videobrain_expansion_slot_device(const machine
void videobrain_expansion_slot_device::device_start()
{
- m_cart = dynamic_cast<device_videobrain_expansion_card_interface *>(get_card_device());
-
- // resolve callbacks
- m_write_extres.resolve_safe();
+ m_cart = get_card_device();
}
@@ -113,29 +100,29 @@ void videobrain_expansion_slot_device::device_start()
// call_load -
//-------------------------------------------------
-image_init_result videobrain_expansion_slot_device::call_load()
+std::pair<std::error_condition, std::string> videobrain_expansion_slot_device::call_load()
{
if (m_cart)
{
- size_t size;
-
if (!loaded_through_softlist())
{
- size = length();
+ size_t const romsize = length();
- fread(m_cart->videobrain_rom_pointer(machine(), size), size);
+ fread(m_cart->videobrain_rom_pointer(machine(), romsize), romsize);
}
else
{
- size = get_software_region_length("rom");
- if (size) memcpy(m_cart->videobrain_rom_pointer(machine(), size), get_software_region("rom"), size);
+ size_t const romsize = get_software_region_length("rom");
+ if (romsize)
+ memcpy(m_cart->videobrain_rom_pointer(machine(), romsize), get_software_region("rom"), romsize);
- size = get_software_region_length("ram");
- if (size) memset(m_cart->videobrain_ram_pointer(machine(), size), 0, size);
+ size_t const ramsize = get_software_region_length("ram");
+ if (ramsize)
+ memset(m_cart->videobrain_ram_pointer(machine(), ramsize), 0, ramsize);
}
}
- return image_init_result::PASS;
+ return std::make_pair(std::error_condition(), std::string());
}
@@ -150,47 +137,21 @@ std::string videobrain_expansion_slot_device::get_default_card_software(get_defa
//-------------------------------------------------
-// bo_r - cartridge data read
-//-------------------------------------------------
-
-uint8_t videobrain_expansion_slot_device::bo_r(offs_t offset, int cs1, int cs2)
-{
- uint8_t data = 0;
-
- if (m_cart != nullptr)
- {
- data = m_cart->videobrain_bo_r(offset, cs1, cs2);
- }
-
- return data;
-}
-
-
-//-------------------------------------------------
-// bo_w - cartridge data write
-//-------------------------------------------------
-
-void videobrain_expansion_slot_device::bo_w(offs_t offset, uint8_t data, int cs1, int cs2)
-{
- if (m_cart != nullptr)
- {
- m_cart->videobrain_bo_w(offset, data, cs1, cs2);
- }
-}
-
-
-//-------------------------------------------------
// SLOT_INTERFACE_START( vidbrain_expansion_cards )
//-------------------------------------------------
// slot devices
#include "std.h"
+#include "comp_language.h"
+#include "info_manager.h"
#include "money_minder.h"
#include "timeshare.h"
void vidbrain_expansion_cards(device_slot_interface &device)
{
device.option_add_internal("standard", VB_STD);
- device.option_add_internal("moneyminder", VB_MONEY_MINDER);
+ device.option_add_internal("comp_language", VB_COMP_LANGUAGE);
+ device.option_add_internal("info_manager", VB_INFO_MANAGER);
+ device.option_add_internal("money_minder", VB_MONEY_MINDER);
device.option_add_internal("timeshare", VB_TIMESHARE);
}