summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2016-07-23 21:56:44 -0400
committer AJR <ajrhacker@users.noreply.github.com>2016-07-23 21:56:44 -0400
commitd7df2df4a732388ae27878b55d3800cd941d0077 (patch)
tree97a139378685b29bb068352afa6d0010ba9eb770
parent6a338ae9129121f44c16e448534e5cb9046bf09b (diff)
Cleanups for device_image_interface (nw)
- Remove the loaded_through_softlist virtual method and add a boolean getter with the same name, replacing a few variables that provided similar but redundant flags. - Remove call_softlist_load, which the previous change reduces to a simple, unnecessary wrapper.
-rw-r--r--src/devices/bus/hp_optroms/hp_optrom.cpp2
-rw-r--r--src/devices/bus/ti99x/gromport.cpp24
-rw-r--r--src/devices/bus/ti99x/gromport.h2
-rw-r--r--src/emu/diimage.cpp28
-rw-r--r--src/emu/diimage.h6
5 files changed, 16 insertions, 46 deletions
diff --git a/src/devices/bus/hp_optroms/hp_optrom.cpp b/src/devices/bus/hp_optroms/hp_optrom.cpp
index 2ff68288910..8ab9f71ccb7 100644
--- a/src/devices/bus/hp_optroms/hp_optrom.cpp
+++ b/src/devices/bus/hp_optroms/hp_optrom.cpp
@@ -60,7 +60,7 @@ void hp_optrom_slot_device::device_config_complete()
bool hp_optrom_slot_device::call_load()
{
logerror("hp_optrom: call_load\n");
- if (m_cart == nullptr || !m_from_swlist) {
+ if (m_cart == nullptr || !loaded_through_softlist()) {
logerror("hp_optrom: must be loaded from sw list\n");
return IMAGE_INIT_FAIL;
}
diff --git a/src/devices/bus/ti99x/gromport.cpp b/src/devices/bus/ti99x/gromport.cpp
index 6cea8083119..3438e250f50 100644
--- a/src/devices/bus/ti99x/gromport.cpp
+++ b/src/devices/bus/ti99x/gromport.cpp
@@ -1173,7 +1173,6 @@ static const pcb_type sw_pcbdefs[] =
ti99_cartridge_device::ti99_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: bus8z_device(mconfig, TI99CART, "TI-99 cartridge", tag, owner, clock, "cartridge", __FILE__),
device_image_interface(mconfig, *this),
- m_softlist(false),
m_pcbtype(0),
m_slot(0),
m_pcb(nullptr),
@@ -1201,13 +1200,13 @@ void ti99_cartridge_device::prepare_cartridge()
for (int i=0; i < 5; i++) m_pcb->m_grom[i] = nullptr;
- m_pcb->m_grom_size = m_softlist? get_software_region_length("grom") : m_rpk->get_resource_length("grom_socket");
+ m_pcb->m_grom_size = loaded_through_softlist() ? get_software_region_length("grom") : m_rpk->get_resource_length("grom_socket");
if (TRACE_CONFIG) logerror("grom_socket.size=0x%04x\n", m_pcb->m_grom_size);
if (m_pcb->m_grom_size > 0)
{
regg = memregion(CARTGROM_TAG);
- grom_ptr = m_softlist? get_software_region("grom") : m_rpk->get_contents_of_socket("grom_socket");
+ grom_ptr = loaded_through_softlist() ? get_software_region("grom") : m_rpk->get_contents_of_socket("grom_socket");
memcpy(regg->base(), grom_ptr, m_pcb->m_grom_size);
m_pcb->m_grom_ptr = regg->base(); // for gromemu
m_pcb->m_grom_address = 0; // for gromemu
@@ -1220,19 +1219,19 @@ void ti99_cartridge_device::prepare_cartridge()
if (m_pcb->m_grom_size > 0x8000) m_pcb->set_grom_pointer(4, subdevice(GROM7_TAG));
}
- m_pcb->m_rom_size = m_softlist? get_software_region_length("rom") : m_rpk->get_resource_length("rom_socket");
+ m_pcb->m_rom_size = loaded_through_softlist() ? get_software_region_length("rom") : m_rpk->get_resource_length("rom_socket");
if (m_pcb->m_rom_size > 0)
{
if (TRACE_CONFIG) logerror("rom size=0x%04x\n", m_pcb->m_rom_size);
regr = memregion(CARTROM_TAG);
- rom_ptr = m_softlist? get_software_region("rom") : m_rpk->get_contents_of_socket("rom_socket");
+ rom_ptr = loaded_through_softlist() ? get_software_region("rom") : m_rpk->get_contents_of_socket("rom_socket");
memcpy(regr->base(), rom_ptr, m_pcb->m_rom_size);
// Set both pointers to the same region for now
m_pcb->m_rom_ptr = regr->base();
}
// Softlist uses only one ROM area, no second socket
- if (!m_softlist)
+ if (!loaded_through_softlist())
{
rom2_length = m_rpk->get_resource_length("rom2_socket");
if (rom2_length > 0)
@@ -1246,7 +1245,7 @@ void ti99_cartridge_device::prepare_cartridge()
}
// (NV)RAM cartridges
- if (m_softlist)
+ if (loaded_through_softlist())
{
// Do we have NVRAM?
if (get_software_region("nvram")!=nullptr)
@@ -1300,7 +1299,7 @@ bool ti99_cartridge_device::call_load()
// return true = error
if (TRACE_CHANGE) logerror("Loading %s in slot %s\n", m_basename.c_str());
- if (m_softlist)
+ if (loaded_through_softlist())
{
if (TRACE_CONFIG) logerror("Using softlists\n");
int i = 0;
@@ -1315,6 +1314,7 @@ bool ti99_cartridge_device::call_load()
i++;
} while (sw_pcbdefs[i].id != 0);
if (TRACE_CONFIG) logerror("Cartridge type is %s (%d)\n", pcb, m_pcbtype);
+ m_rpk = nullptr;
}
else
{
@@ -1417,13 +1417,6 @@ void ti99_cartridge_device::set_slot(int i)
m_slot = i;
}
-void ti99_cartridge_device::loaded_through_softlist()
-{
- // TI99 cartridge seems to be the only reason we need loaded_through_softlist()... why?
- m_softlist = true;
- m_rpk = nullptr;
-}
-
READ8Z_MEMBER(ti99_cartridge_device::readz)
{
if (m_pcb != nullptr)
@@ -1476,7 +1469,6 @@ WRITE_LINE_MEMBER(ti99_cartridge_device::gclock_in)
void ti99_cartridge_device::device_config_complete()
{
update_names();
- m_softlist = false;
m_connector = static_cast<ti99_cartridge_connector_device*>(owner());
}
diff --git a/src/devices/bus/ti99x/gromport.h b/src/devices/bus/ti99x/gromport.h
index 7afd9ab336b..8080e00d894 100644
--- a/src/devices/bus/ti99x/gromport.h
+++ b/src/devices/bus/ti99x/gromport.h
@@ -109,7 +109,6 @@ protected:
bool call_load() override;
void call_unload() override;
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
- virtual void loaded_through_softlist() override;
void prepare_cartridge();
@@ -125,7 +124,6 @@ protected:
private:
bool m_readrom;
- bool m_softlist;
int m_pcbtype;
int m_slot;
int get_index_from_tagname();
diff --git a/src/emu/diimage.cpp b/src/emu/diimage.cpp
index 8b4f11ee3db..72f40e9f758 100644
--- a/src/emu/diimage.cpp
+++ b/src/emu/diimage.cpp
@@ -94,7 +94,6 @@ device_image_interface::device_image_interface(const machine_config &mconfig, de
m_readonly(false),
m_created(false),
m_init_phase(false),
- m_from_swlist(false),
m_create_format(0),
m_create_args(nullptr),
m_user_loadable(TRUE),
@@ -940,7 +939,6 @@ bool device_image_interface::load_internal(const char *path, bool is_create, int
UINT32 open_plan[4];
int i;
bool softload = FALSE;
- m_from_swlist = FALSE;
// if the path contains no period, we are using softlists, so we won't create an image
std::string pathstr(path);
@@ -983,8 +981,6 @@ bool device_image_interface::load_internal(const char *path, bool is_create, int
if (read_only && !strcmp(read_only, "true")) {
make_readonly();
}
-
- m_from_swlist = TRUE;
}
}
@@ -1327,23 +1323,6 @@ const software_part *device_image_interface::find_software_item(const char *path
//-------------------------------------------------
-// call_softlist_load
-//-------------------------------------------------
-
-bool device_image_interface::call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry)
-{
- const software_list_loader &loader = get_software_list_loader();
- bool result = loader.load_software(*this, swlist, swname, start_entry);
-
- // this is a hook that seems to only be used by TI99
- if (result)
- loaded_through_softlist();
-
- return result;
-}
-
-
-//-------------------------------------------------
// load_software_part
//
// Load a software part for a device. The part to
@@ -1368,10 +1347,15 @@ bool device_image_interface::load_software_part(const char *path, const software
// Load the software part
software_list_device &swlist = swpart->info().list();
- bool result = call_softlist_load(swlist, swpart->info().shortname().c_str(), swpart->romdata());
+ const char *swname = swpart->info().shortname().c_str();
+ const rom_entry *start_entry = swpart->romdata();
+ const software_list_loader &loader = get_software_list_loader();
+ bool result = loader.load_software(*this, swlist, swname, start_entry);
+#ifdef UNUSED_VARIABLE
// Tell the world which part we actually loaded
std::string full_sw_name = string_format("%s:%s:%s", swlist.list_name(), swpart->info().shortname(), swpart->name());
+#endif
// check compatibility
switch (swpart->is_compatible(swlist))
diff --git a/src/emu/diimage.h b/src/emu/diimage.h
index 75db14229e6..34d6532eedc 100644
--- a/src/emu/diimage.h
+++ b/src/emu/diimage.h
@@ -205,6 +205,7 @@ public:
const software_info *software_entry() const { return m_software_info_ptr; }
const software_part *part_entry() const { return m_software_part_ptr; }
const char *software_list_name() const { return m_software_list_name.c_str(); }
+ bool loaded_through_softlist() const { return m_software_info_ptr != nullptr; }
void set_working_directory(const char *working_directory) { m_working_directory = working_directory; }
const char * working_directory();
@@ -249,7 +250,6 @@ public:
protected:
virtual const software_list_loader &get_software_list_loader() const { return false_software_list_loader::instance(); }
- virtual void loaded_through_softlist() { }
bool load_internal(const char *path, bool is_create, int create_format, util::option_resolution *create_args, bool just_load);
void determine_open_plan(int is_create, UINT32 *open_plan);
@@ -311,7 +311,6 @@ protected:
bool m_readonly;
bool m_created;
bool m_init_phase;
- bool m_from_swlist;
/* special - used when creating */
int m_create_format;
@@ -330,9 +329,6 @@ protected:
bool m_user_loadable;
bool m_is_loading;
-
-private:
- bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry);
};
// iterator