bus/ep64: Use required_address_space instead of specific device finder (nw)

This commit is contained in:
AJR 2019-02-26 00:06:10 -05:00
parent e5b288a158
commit d48297261d
3 changed files with 11 additions and 15 deletions

View File

@ -49,7 +49,8 @@ ep64_expansion_bus_slot_device::ep64_expansion_bus_slot_device(const machine_con
, m_write_irq(*this)
, m_write_nmi(*this)
, m_write_wait(*this)
, m_dave(*this, finder_base::DUMMY_TAG)
, m_program_space(*this, finder_base::DUMMY_TAG, -1)
, m_io_space(*this, finder_base::DUMMY_TAG, -1)
, m_card(nullptr)
{
}

View File

@ -47,18 +47,9 @@
#pragma once
#include "sound/dave.h"
void ep64_expansion_bus_cards(device_slot_interface &device);
//**************************************************************************
// MACROS / CONSTANTS
//**************************************************************************
#define EP64_EXPANSION_BUS_TAG "exp"
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -84,7 +75,8 @@ public:
}
ep64_expansion_bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T> void set_dave_tag(T &&dave_tag) { m_dave.set_tag(std::forward<T>(dave_tag)); }
template <typename T> void set_program_space(T &&tag, int spacenum) { m_program_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); }
auto irq_wr() { return m_write_irq.bind(); }
auto nmi_wr() { return m_write_nmi.bind(); }
auto wait_wr() { return m_write_wait.bind(); }
@ -93,8 +85,8 @@ public:
DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_write_nmi(state); }
DECLARE_WRITE_LINE_MEMBER( wait_w ) { m_write_wait(state); }
address_space& program() { return m_dave->space(AS_PROGRAM); }
address_space& io() { return m_dave->space(AS_IO); }
address_space &program() { return *m_program_space; }
address_space &io() { return *m_io_space; }
protected:
// device-level overrides
@ -107,7 +99,8 @@ private:
devcb_write_line m_write_nmi;
devcb_write_line m_write_wait;
required_device<dave_device> m_dave;
required_address_space m_program_space;
required_address_space m_io_space;
device_ep64_expansion_bus_card_interface *m_card;
};

View File

@ -174,6 +174,7 @@ Notes: (All IC's shown)
#define CASSETTE1_TAG "cassette1"
#define CASSETTE2_TAG "cassette2"
#define SCREEN_TAG "screen"
#define EP64_EXPANSION_BUS_TAG "exp"
class ep64_state : public driver_device
{
@ -602,7 +603,8 @@ void ep64_state::ep64(machine_config &config)
// devices
EP64_EXPANSION_BUS_SLOT(config, m_exp, nullptr);
m_exp->set_dave_tag(m_dave);
m_exp->set_program_space(m_dave, AS_PROGRAM);
m_exp->set_io_space(m_dave, AS_IO);
m_exp->irq_wr().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
m_exp->nmi_wr().set_inputline(m_maincpu, INPUT_LINE_NMI);
m_exp->wait_wr().set_inputline(m_maincpu, Z80_INPUT_LINE_BOGUSWAIT);