mirror of
https://github.com/holub/mame
synced 2025-10-07 17:27:06 +03:00
bus/interpro/sr: Replace CPU finder with required_address_space (nw)
This commit is contained in:
parent
d48297261d
commit
430dccc5e8
@ -267,9 +267,6 @@ DEFINE_DEVICE_TYPE(SRX_SLOT, srx_slot_device, "srx_slot", "InterPro SRX slot")
|
|||||||
|
|
||||||
void interpro_bus_device::device_resolve_objects()
|
void interpro_bus_device::device_resolve_objects()
|
||||||
{
|
{
|
||||||
m_main_space = &m_maincpu->space(0);
|
|
||||||
m_io_space = &m_maincpu->space(1);
|
|
||||||
|
|
||||||
// resolve callbacks
|
// resolve callbacks
|
||||||
m_out_irq0_cb.resolve_safe();
|
m_out_irq0_cb.resolve_safe();
|
||||||
m_out_irq1_cb.resolve_safe();
|
m_out_irq1_cb.resolve_safe();
|
||||||
|
@ -9,6 +9,10 @@
|
|||||||
class interpro_bus_device : public device_t
|
class interpro_bus_device : public device_t
|
||||||
{
|
{
|
||||||
public:
|
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
|
// callback configuration
|
||||||
auto out_irq0_cb() { return m_out_irq0_cb.bind(); }
|
auto out_irq0_cb() { return m_out_irq0_cb.bind(); }
|
||||||
auto out_irq1_cb() { return m_out_irq1_cb.bind(); }
|
auto out_irq1_cb() { return m_out_irq1_cb.bind(); }
|
||||||
@ -24,9 +28,8 @@ protected:
|
|||||||
// construction/destruction
|
// construction/destruction
|
||||||
interpro_bus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
|
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)
|
: device_t(mconfig, type, tag, owner, clock)
|
||||||
, m_maincpu(*this, finder_base::DUMMY_TAG)
|
, m_main_space(*this, finder_base::DUMMY_TAG, -1)
|
||||||
, m_main_space(nullptr)
|
, m_io_space(*this, finder_base::DUMMY_TAG, -1)
|
||||||
, m_io_space(nullptr)
|
|
||||||
, m_out_irq0_cb(*this)
|
, m_out_irq0_cb(*this)
|
||||||
, m_out_irq1_cb(*this)
|
, m_out_irq1_cb(*this)
|
||||||
, m_out_irq2_cb(*this)
|
, m_out_irq2_cb(*this)
|
||||||
@ -38,9 +41,8 @@ protected:
|
|||||||
virtual void device_resolve_objects() override;
|
virtual void device_resolve_objects() override;
|
||||||
|
|
||||||
// internal state
|
// internal state
|
||||||
required_device<cpu_device> m_maincpu;
|
required_address_space m_main_space;
|
||||||
address_space *m_main_space;
|
required_address_space m_io_space;
|
||||||
address_space *m_io_space;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
devcb_write_line m_out_irq0_cb;
|
devcb_write_line m_out_irq0_cb;
|
||||||
@ -55,12 +57,6 @@ class cbus_bus_device : public interpro_bus_device
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// construction/destruction
|
// 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);
|
cbus_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||||
|
|
||||||
static const u32 CBUS_BASE = 0x87000000;
|
static const u32 CBUS_BASE = 0x87000000;
|
||||||
@ -158,12 +154,6 @@ class srx_bus_device : public interpro_bus_device
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// construction/destruction
|
// 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);
|
srx_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||||
|
|
||||||
static const u32 SRX_BASE = 0x8f000000;
|
static const u32 SRX_BASE = 0x8f000000;
|
||||||
|
@ -900,7 +900,9 @@ void emerald_state::emerald(machine_config &config)
|
|||||||
ioga(config);
|
ioga(config);
|
||||||
|
|
||||||
// srx bus
|
// srx bus
|
||||||
SRX_BUS(config, m_bus, 0, m_maincpu);
|
SRX_BUS(config, m_bus, 0);
|
||||||
|
m_bus->set_main_space(m_maincpu, 0);
|
||||||
|
m_bus->set_io_space(m_maincpu, 1);
|
||||||
|
|
||||||
m_bus->out_irq0_cb().set(m_ioga, FUNC(interpro_ioga_device::ir3_w));
|
m_bus->out_irq0_cb().set(m_ioga, FUNC(interpro_ioga_device::ir3_w));
|
||||||
m_bus->out_irq1_cb().set(m_ioga, FUNC(interpro_ioga_device::ir4_w));
|
m_bus->out_irq1_cb().set(m_ioga, FUNC(interpro_ioga_device::ir4_w));
|
||||||
@ -972,7 +974,9 @@ void turquoise_state::turquoise(machine_config &config)
|
|||||||
ioga(config);
|
ioga(config);
|
||||||
|
|
||||||
// cbus bus
|
// cbus bus
|
||||||
CBUS_BUS(config, m_bus, 0, m_maincpu);
|
CBUS_BUS(config, m_bus, 0);
|
||||||
|
m_bus->set_main_space(m_maincpu, 0);
|
||||||
|
m_bus->set_io_space(m_maincpu, 0);
|
||||||
|
|
||||||
m_bus->out_irq0_cb().set(m_ioga, FUNC(interpro_ioga_device::ir3_w));
|
m_bus->out_irq0_cb().set(m_ioga, FUNC(interpro_ioga_device::ir3_w));
|
||||||
m_bus->out_irq1_cb().set(m_ioga, FUNC(interpro_ioga_device::ir4_w));
|
m_bus->out_irq1_cb().set(m_ioga, FUNC(interpro_ioga_device::ir4_w));
|
||||||
@ -1064,7 +1068,9 @@ void cbus_sapphire_state::cbus_sapphire(machine_config &config)
|
|||||||
m_mse_port->state_func().set(m_ioga, FUNC(interpro_ioga_device::mouse_status_w));
|
m_mse_port->state_func().set(m_ioga, FUNC(interpro_ioga_device::mouse_status_w));
|
||||||
|
|
||||||
// cbus bus
|
// cbus bus
|
||||||
CBUS_BUS(config, m_bus, 0, m_maincpu);
|
CBUS_BUS(config, m_bus, 0);
|
||||||
|
m_bus->set_main_space(m_maincpu, 0);
|
||||||
|
m_bus->set_io_space(m_maincpu, 0);
|
||||||
|
|
||||||
m_bus->out_irq0_cb().set(m_ioga, FUNC(interpro_ioga_device::ir3_w));
|
m_bus->out_irq0_cb().set(m_ioga, FUNC(interpro_ioga_device::ir3_w));
|
||||||
m_bus->out_irq1_cb().set(m_ioga, FUNC(interpro_ioga_device::ir4_w));
|
m_bus->out_irq1_cb().set(m_ioga, FUNC(interpro_ioga_device::ir4_w));
|
||||||
@ -1077,7 +1083,9 @@ void srx_sapphire_state::srx_sapphire(machine_config &config)
|
|||||||
sapphire(config);
|
sapphire(config);
|
||||||
|
|
||||||
// srx bus
|
// srx bus
|
||||||
SRX_BUS(config, m_bus, 0, m_maincpu);
|
SRX_BUS(config, m_bus, 0);
|
||||||
|
m_bus->set_main_space(m_maincpu, 0);
|
||||||
|
m_bus->set_io_space(m_maincpu, 1);
|
||||||
|
|
||||||
m_bus->out_irq0_cb().set(m_ioga, FUNC(interpro_ioga_device::ir3_w));
|
m_bus->out_irq0_cb().set(m_ioga, FUNC(interpro_ioga_device::ir3_w));
|
||||||
m_bus->out_irq1_cb().set(m_ioga, FUNC(interpro_ioga_device::ir4_w));
|
m_bus->out_irq1_cb().set(m_ioga, FUNC(interpro_ioga_device::ir4_w));
|
||||||
|
Loading…
Reference in New Issue
Block a user