summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/interpro/sr
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/interpro/sr')
-rw-r--r--src/devices/bus/interpro/sr/edge.cpp4
-rw-r--r--src/devices/bus/interpro/sr/sr.cpp3
-rw-r--r--src/devices/bus/interpro/sr/sr.h26
3 files changed, 23 insertions, 10 deletions
diff --git a/src/devices/bus/interpro/sr/edge.cpp b/src/devices/bus/interpro/sr/edge.cpp
index 390b3459079..eb680532d3b 100644
--- a/src/devices/bus/interpro/sr/edge.cpp
+++ b/src/devices/bus/interpro/sr/edge.cpp
@@ -475,7 +475,7 @@ void mpcb828_device::device_add_mconfig(machine_config &config)
TMS32030(config, m_dsp, 30_MHz_XTAL);
m_dsp->holda().set(FUNC(mpcb828_device::holda));
m_dsp->set_disable();
- //m_dsp->set_addrmap(0, map_dynamic<2>);
+ //MCFG_DEVICE_ADDRESS_MAP(0, map_dynamic<2>)
BT458(config, "ramdac", 83'020'800);
@@ -484,7 +484,7 @@ void mpcb828_device::device_add_mconfig(machine_config &config)
m_scc->out_txda_callback().set("kbd", FUNC(interpro_keyboard_port_device::write_txd));
INTERPRO_KEYBOARD_PORT(config, "kbd", interpro_keyboard_devices, "hle_en_us").rxd_handler_cb().set(m_scc, FUNC(z80scc_device::rxa_w));
-}
+MACHINE_CONFIG_END
/*
* MPCB849: EDGE-1 graphics, 2 megapixels, single screen, 60Hz refresh.
diff --git a/src/devices/bus/interpro/sr/sr.cpp b/src/devices/bus/interpro/sr/sr.cpp
index 82071af86d2..6d6d76bee42 100644
--- a/src/devices/bus/interpro/sr/sr.cpp
+++ b/src/devices/bus/interpro/sr/sr.cpp
@@ -267,6 +267,9 @@ DEFINE_DEVICE_TYPE(SRX_SLOT, srx_slot_device, "srx_slot", "InterPro SRX slot")
void interpro_bus_device::device_resolve_objects()
{
+ m_main_space = &m_maincpu->space(0);
+ m_io_space = &m_maincpu->space(1);
+
// resolve callbacks
m_out_irq0_cb.resolve_safe();
m_out_irq1_cb.resolve_safe();
diff --git a/src/devices/bus/interpro/sr/sr.h b/src/devices/bus/interpro/sr/sr.h
index 858590f5075..0fcecc086f8 100644
--- a/src/devices/bus/interpro/sr/sr.h
+++ b/src/devices/bus/interpro/sr/sr.h
@@ -9,10 +9,6 @@
class interpro_bus_device : public device_t
{
public:
- // space configuration
- template <typename T> void set_main_space(T &&tag, int spacenum) { m_main_space.set_tag(std::forward<T>(tag), spacenum); }
- template <typename T> void set_io_space(T &&tag, int spacenum) { m_io_space.set_tag(std::forward<T>(tag), spacenum); }
-
// callback configuration
auto out_irq0_cb() { return m_out_irq0_cb.bind(); }
auto out_irq1_cb() { return m_out_irq1_cb.bind(); }
@@ -28,8 +24,9 @@ protected:
// construction/destruction
interpro_bus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
: device_t(mconfig, type, tag, owner, clock)
- , m_main_space(*this, finder_base::DUMMY_TAG, -1)
- , m_io_space(*this, finder_base::DUMMY_TAG, -1)
+ , m_maincpu(*this, finder_base::DUMMY_TAG)
+ , m_main_space(nullptr)
+ , m_io_space(nullptr)
, m_out_irq0_cb(*this)
, m_out_irq1_cb(*this)
, m_out_irq2_cb(*this)
@@ -41,8 +38,9 @@ protected:
virtual void device_resolve_objects() override;
// internal state
- required_address_space m_main_space;
- required_address_space m_io_space;
+ required_device<cpu_device> m_maincpu;
+ address_space *m_main_space;
+ address_space *m_io_space;
private:
devcb_write_line m_out_irq0_cb;
@@ -57,6 +55,12 @@ class cbus_bus_device : public interpro_bus_device
{
public:
// construction/destruction
+ template <typename T>
+ cbus_bus_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock, T &&cpu_device)
+ : cbus_bus_device(mconfig, tag, owner, clock)
+ {
+ m_maincpu.set_tag(std::forward<T>(cpu_device));
+ }
cbus_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
static const u32 CBUS_BASE = 0x87000000;
@@ -154,6 +158,12 @@ class srx_bus_device : public interpro_bus_device
{
public:
// construction/destruction
+ template <typename T>
+ srx_bus_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock, T &&cpu_device)
+ : srx_bus_device(mconfig, tag, owner, clock)
+ {
+ m_maincpu.set_tag(std::forward<T>(cpu_device));
+ }
srx_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
static const u32 SRX_BASE = 0x8f000000;