summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-01-22 13:46:30 -0500
committer AJR <ajrhacker@users.noreply.github.com>2019-01-22 13:46:30 -0500
commitd90d06b3a8894af90b78ddf7130fb871aaf02ad0 (patch)
treefeaa76987f6dc5757a74b52bc40aabdadfc4cf4d
parent3de63dc88426f44098df5798459593b2d7f9d601 (diff)
bus/intellec4: Simplify implementation by using required_address_space (nw)
-rw-r--r--src/devices/bus/intellec4/intellec4.cpp29
-rw-r--r--src/devices/bus/intellec4/intellec4.h27
2 files changed, 17 insertions, 39 deletions
diff --git a/src/devices/bus/intellec4/intellec4.cpp b/src/devices/bus/intellec4/intellec4.cpp
index 82cf6702144..c3742062454 100644
--- a/src/devices/bus/intellec4/intellec4.cpp
+++ b/src/devices/bus/intellec4/intellec4.cpp
@@ -58,16 +58,11 @@ void univ_slot_device::device_start()
univ_bus_device::univ_bus_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, INTELLEC4_UNIV_BUS, tag, owner, clock)
- , m_rom_device(*this, finder_base::DUMMY_TAG)
- , m_rom_ports_device(*this, finder_base::DUMMY_TAG)
- , m_memory_device(*this, finder_base::DUMMY_TAG)
- , m_status_device(*this, finder_base::DUMMY_TAG)
- , m_ram_ports_device(*this, finder_base::DUMMY_TAG)
- , m_rom_space(-1)
- , m_rom_ports_space(-1)
- , m_memory_space(-1)
- , m_status_space(-1)
- , m_ram_ports_space(-1)
+ , m_rom_space(*this, finder_base::DUMMY_TAG, -1)
+ , m_rom_ports_space(*this, finder_base::DUMMY_TAG, -1)
+ , m_memory_space(*this, finder_base::DUMMY_TAG, -1)
+ , m_status_space(*this, finder_base::DUMMY_TAG, -1)
+ , m_ram_ports_space(*this, finder_base::DUMMY_TAG, -1)
, m_test_out_cb(*this)
, m_stop_out_cb(*this)
, m_reset_4002_out_cb(*this)
@@ -123,20 +118,6 @@ WRITE_LINE_MEMBER(univ_bus_device::cpu_reset_in)
device_t implementation
----------------------------------*/
-void univ_bus_device::device_validity_check(validity_checker &valid) const
-{
- if (m_rom_device && !m_rom_device->space_config(m_rom_space))
- osd_printf_error("ROM space device %s (%s) lacks address space %d config\n", m_rom_device->device().tag(), m_rom_device->device().name(), m_rom_space);
- if (m_rom_ports_device && !m_rom_ports_device->space_config(m_rom_ports_space))
- osd_printf_error("ROM ports space device %s (%s) lacks address space %d config\n", m_rom_ports_device->device().tag(), m_rom_ports_device->device().name(), m_rom_ports_space);
- if (m_memory_device && !m_memory_device->space_config(m_memory_space))
- osd_printf_error("Memory space device %s (%s) lacks address space %d config\n", m_memory_device->device().tag(), m_memory_device->device().name(), m_memory_space);
- if (m_status_device && !m_status_device->space_config(m_status_space))
- osd_printf_error("Status space device %s (%s) lacks address space %d config\n", m_status_device->device().tag(), m_status_device->device().name(), m_status_space);
- if (m_ram_ports_device && !m_ram_ports_device->space_config(m_ram_ports_space))
- osd_printf_error("RAM ports space device %s (%s) lacks address space %d config\n", m_ram_ports_device->device().tag(), m_ram_ports_device->device().name(), m_ram_ports_space);
-}
-
void univ_bus_device::device_start()
{
m_test_out_cb.resolve_safe();
diff --git a/src/devices/bus/intellec4/intellec4.h b/src/devices/bus/intellec4/intellec4.h
index 55cc06a263a..68fa8a8080a 100644
--- a/src/devices/bus/intellec4/intellec4.h
+++ b/src/devices/bus/intellec4/intellec4.h
@@ -153,11 +153,11 @@ public:
friend class device_univ_card_interface;
// address space configuration
- template <typename T> void set_rom_space(T &&tag, int space) { m_rom_device.set_tag(std::forward<T>(tag)); m_rom_space = space; }
- template <typename T> void set_rom_ports_space(T &&tag, int space) { m_rom_ports_device.set_tag(std::forward<T>(tag)); m_rom_ports_space = space; }
- template <typename T> void set_memory_space(T &&tag, int space) { m_memory_device.set_tag(std::forward<T>(tag)); m_memory_space = space; }
- template <typename T> void set_status_space(T &&tag, int space) { m_status_device.set_tag(std::forward<T>(tag)); m_status_space = space; }
- template <typename T> void set_ram_ports_space(T &&tag, int space) { m_ram_ports_device.set_tag(std::forward<T>(tag)); m_ram_ports_space = space; }
+ template <typename T> void set_rom_space(T &&tag, int space) { m_rom_space.set_tag(std::forward<T>(tag), space); }
+ template <typename T> void set_rom_ports_space(T &&tag, int space) { m_rom_ports_space.set_tag(std::forward<T>(tag), space); }
+ template <typename T> void set_memory_space(T &&tag, int space) { m_memory_space.set_tag(std::forward<T>(tag), space); }
+ template <typename T> void set_status_space(T &&tag, int space) { m_status_space.set_tag(std::forward<T>(tag), space); }
+ template <typename T> void set_ram_ports_space(T &&tag, int space) { m_ram_ports_space.set_tag(std::forward<T>(tag), space); }
// callback configuration
auto stop_out_cb() { return m_stop_out_cb.bind(); }
@@ -183,7 +183,6 @@ public:
protected:
// device_t implementation
- virtual void device_validity_check(validity_checker &valid) const override ATTR_COLD;
virtual void device_start() override;
private:
@@ -195,10 +194,8 @@ private:
void set_user_reset(unsigned index, int state);
// finding address spaces
- required_device<device_memory_interface> m_rom_device, m_rom_ports_device;
- required_device<device_memory_interface> m_memory_device, m_status_device, m_ram_ports_device;
- int m_rom_space, m_rom_ports_space;
- int m_memory_space, m_status_space, m_ram_ports_space;
+ required_address_space m_rom_space, m_rom_ports_space;
+ required_address_space m_memory_space, m_status_space, m_ram_ports_space;
// output line callbacks
devcb_write_line m_test_out_cb;
@@ -225,11 +222,11 @@ protected:
// device_interface implementation
void interface_pre_start() override;
- address_space &rom_space() { return m_bus->m_rom_device->space(m_bus->m_rom_space); }
- address_space &rom_ports_space() { return m_bus->m_rom_ports_device->space(m_bus->m_rom_ports_space); }
- address_space &memory_space() { return m_bus->m_memory_device->space(m_bus->m_memory_space); }
- address_space &status_space() { return m_bus->m_status_device->space(m_bus->m_status_space); }
- address_space &ram_ports_space() { return m_bus->m_ram_ports_device->space(m_bus->m_ram_ports_space); }
+ address_space &rom_space() { return *m_bus->m_rom_space; }
+ address_space &rom_ports_space() { return *m_bus->m_rom_ports_space; }
+ address_space &memory_space() { return *m_bus->m_memory_space; }
+ address_space &status_space() { return *m_bus->m_status_space; }
+ address_space &ram_ports_space() { return *m_bus->m_ram_ports_space; }
DECLARE_WRITE_LINE_MEMBER(test_out) { m_bus->set_test(m_index, state); }
DECLARE_WRITE_LINE_MEMBER(stop_out) { m_bus->set_stop(m_index, state); }