mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
netlist: Change use of NETLIB_DELEGATE macro. (nw)
The macro now has only one parameter, the local name of the delegate.
This commit is contained in:
parent
c00dc87830
commit
215aa82cec
@ -19,7 +19,7 @@ namespace netlist
|
||||
, m_D(*this, "DATA")
|
||||
, m_RESET(*this, "RESET")
|
||||
, m_SET(*this, "SET")
|
||||
, m_CLK(*this, "CLOCK", NETLIB_DELEGATE(CD4013, clk))
|
||||
, m_CLK(*this, "CLOCK", NETLIB_DELEGATE(clk))
|
||||
, m_Q(*this, "Q")
|
||||
, m_QQ(*this, "QQ")
|
||||
, m_nextD(*this, "m_nextD", 0)
|
||||
|
@ -19,7 +19,7 @@ namespace netlist
|
||||
NETLIB_OBJECT(74107A)
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(74107A)
|
||||
, m_clk(*this, "CLK", NETLIB_DELEGATE(74107A, clk))
|
||||
, m_clk(*this, "CLK", NETLIB_DELEGATE(clk))
|
||||
, m_Q(*this, "Q")
|
||||
, m_QQ(*this, "QQ")
|
||||
, m_J(*this, "J")
|
||||
|
@ -36,8 +36,8 @@ namespace netlist
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(74125_base)
|
||||
, m_TE(*this, "FORCE_TRISTATE_LOGIC", 0)
|
||||
, m_A(*this, "A", NETLIB_DELEGATE(74125_base, A))
|
||||
, m_G(*this, pstring(D::invert_g::value ? "GQ" : "G"), NETLIB_DELEGATE(74125_base, G))
|
||||
, m_A(*this, "A", NETLIB_DELEGATE(A))
|
||||
, m_G(*this, pstring(D::invert_g::value ? "GQ" : "G"), NETLIB_DELEGATE(G))
|
||||
, m_Y(*this, "Y", m_TE())
|
||||
//, m_Y(*this, "Y")
|
||||
, m_power_pins(*this)
|
||||
|
@ -21,8 +21,8 @@ namespace devices
|
||||
NETLIB_OBJECT(74153)
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(74153)
|
||||
, m_C(*this, {"C0", "C1", "C2", "C3"}, NETLIB_DELEGATE(74153, sub))
|
||||
, m_G(*this, "G", NETLIB_DELEGATE(74153, sub))
|
||||
, m_C(*this, {"C0", "C1", "C2", "C3"}, NETLIB_DELEGATE(sub))
|
||||
, m_G(*this, "G", NETLIB_DELEGATE(sub))
|
||||
, m_Y(*this, "AY") //FIXME: Change netlists
|
||||
, m_chan(*this, "m_chan", 0)
|
||||
, m_A(*this, "A")
|
||||
|
@ -15,7 +15,7 @@ namespace devices
|
||||
NETLIB_OBJECT(74174)
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(74174)
|
||||
, m_CLK(*this, "CLK", NETLIB_DELEGATE(74174, sub))
|
||||
, m_CLK(*this, "CLK", NETLIB_DELEGATE(sub))
|
||||
, m_Q(*this, {"Q1", "Q2", "Q3", "Q4", "Q5", "Q6"})
|
||||
, m_clrq(*this, "m_clr", 0)
|
||||
, m_data(*this, "m_data", 0)
|
||||
|
@ -18,7 +18,7 @@ namespace netlist
|
||||
NETLIB_CONSTRUCTOR(74175)
|
||||
, m_D(*this, {"D1", "D2", "D3", "D4"})
|
||||
, m_CLRQ(*this, "CLRQ")
|
||||
, m_CLK(*this, "CLK", NETLIB_DELEGATE(74175, clk))
|
||||
, m_CLK(*this, "CLK", NETLIB_DELEGATE(clk))
|
||||
, m_Q(*this, {"Q1", "Q2", "Q3", "Q4"})
|
||||
, m_QQ(*this, {"Q1Q", "Q2Q", "Q3Q", "Q4Q"})
|
||||
, m_data(*this, "m_data", 0)
|
||||
|
@ -28,10 +28,10 @@ namespace netlist
|
||||
, m_Q(*this, {"QA", "QB", "QC", "QD"})
|
||||
, m_BORROWQ(*this, "BORROWQ")
|
||||
, m_CARRYQ(*this, "CARRYQ")
|
||||
, m_A(*this, "A", NETLIB_DELEGATE(74192, sub))
|
||||
, m_B(*this, "B", NETLIB_DELEGATE(74192, sub))
|
||||
, m_C(*this, "C", NETLIB_DELEGATE(74192, sub))
|
||||
, m_D(*this, "D", NETLIB_DELEGATE(74192, sub))
|
||||
, m_A(*this, "A", NETLIB_DELEGATE(sub))
|
||||
, m_B(*this, "B", NETLIB_DELEGATE(sub))
|
||||
, m_C(*this, "C", NETLIB_DELEGATE(sub))
|
||||
, m_D(*this, "D", NETLIB_DELEGATE(sub))
|
||||
, m_power_pins(*this)
|
||||
{
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ namespace netlist
|
||||
, m_D(*this, "D")
|
||||
, m_CLRQ(*this, "CLRQ")
|
||||
, m_PREQ(*this, "PREQ")
|
||||
, m_CLK(*this, "CLK", NETLIB_DELEGATE(7474, clk))
|
||||
, m_CLK(*this, "CLK", NETLIB_DELEGATE(clk))
|
||||
, m_Q(*this, "Q")
|
||||
, m_QQ(*this, "QQ")
|
||||
, m_nextD(*this, "m_nextD", 0)
|
||||
|
@ -16,14 +16,14 @@ namespace netlist
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(7483)
|
||||
, m_C0(*this, "C0")
|
||||
, m_A1(*this, "A1", NETLIB_DELEGATE(7483, upd_a))
|
||||
, m_A2(*this, "A2", NETLIB_DELEGATE(7483, upd_a))
|
||||
, m_A3(*this, "A3", NETLIB_DELEGATE(7483, upd_a))
|
||||
, m_A4(*this, "A4", NETLIB_DELEGATE(7483, upd_a))
|
||||
, m_B1(*this, "B1", NETLIB_DELEGATE(7483, upd_b))
|
||||
, m_B2(*this, "B2", NETLIB_DELEGATE(7483, upd_b))
|
||||
, m_B3(*this, "B3", NETLIB_DELEGATE(7483, upd_b))
|
||||
, m_B4(*this, "B4", NETLIB_DELEGATE(7483, upd_b))
|
||||
, m_A1(*this, "A1", NETLIB_DELEGATE(upd_a))
|
||||
, m_A2(*this, "A2", NETLIB_DELEGATE(upd_a))
|
||||
, m_A3(*this, "A3", NETLIB_DELEGATE(upd_a))
|
||||
, m_A4(*this, "A4", NETLIB_DELEGATE(upd_a))
|
||||
, m_B1(*this, "B1", NETLIB_DELEGATE(upd_b))
|
||||
, m_B2(*this, "B2", NETLIB_DELEGATE(upd_b))
|
||||
, m_B3(*this, "B3", NETLIB_DELEGATE(upd_b))
|
||||
, m_B4(*this, "B4", NETLIB_DELEGATE(upd_b))
|
||||
, m_a(*this, "m_a", 0)
|
||||
, m_b(*this, "m_b", 0)
|
||||
, m_lastr(*this, "m_lastr", 0)
|
||||
|
@ -86,8 +86,8 @@ namespace netlist
|
||||
, m_a(*this, "_m_a", 0)
|
||||
, m_bcd(*this, "_m_b", 0)
|
||||
, m_r(*this, "_m_r", 0)
|
||||
, m_CLKA(*this, "CLKA", NETLIB_DELEGATE(7493, updA))
|
||||
, m_CLKB(*this, "CLKB", NETLIB_DELEGATE(7493, updB))
|
||||
, m_CLKA(*this, "CLKA", NETLIB_DELEGATE(updA))
|
||||
, m_CLKB(*this, "CLKB", NETLIB_DELEGATE(updB))
|
||||
, m_QA(*this, "QA")
|
||||
, m_QB(*this, {"QB", "QC", "QD"})
|
||||
, m_power_pins(*this)
|
||||
|
@ -24,11 +24,11 @@ namespace netlist
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(7497)
|
||||
, m_B(*this, {"B5", "B4", "B3", "B2", "B1", "B0"})
|
||||
, m_CLK(*this, "CLK", NETLIB_DELEGATE(7497, clk_strb))
|
||||
, m_STRBQ(*this, "STRBQ", NETLIB_DELEGATE(7497, clk_strb))
|
||||
, m_CLK(*this, "CLK", NETLIB_DELEGATE(clk_strb))
|
||||
, m_STRBQ(*this, "STRBQ", NETLIB_DELEGATE(clk_strb))
|
||||
, m_ENQ(*this, "ENQ")
|
||||
, m_UNITYQ(*this, "UNITYQ", NETLIB_DELEGATE(7497, unity))
|
||||
, m_CLR(*this, "CLR", NETLIB_DELEGATE(7497, clr))
|
||||
, m_UNITYQ(*this, "UNITYQ", NETLIB_DELEGATE(unity))
|
||||
, m_CLR(*this, "CLR", NETLIB_DELEGATE(clr))
|
||||
, m_Y(*this, "Y")
|
||||
, m_ZQ(*this, "ZQ")
|
||||
, m_ENOUTQ(*this, "ENOUTQ")
|
||||
|
@ -15,10 +15,10 @@ namespace netlist
|
||||
NETLIB_OBJECT(82S16)
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(82S16)
|
||||
, m_A(*this, {"A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7"}, NETLIB_DELEGATE(82S16, addr))
|
||||
, m_CE1Q(*this, "CE1Q", NETLIB_DELEGATE(82S16, enq))
|
||||
, m_CE2Q(*this, "CE2Q", NETLIB_DELEGATE(82S16, enq))
|
||||
, m_CE3Q(*this, "CE3Q", NETLIB_DELEGATE(82S16, enq))
|
||||
, m_A(*this, {"A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7"}, NETLIB_DELEGATE(addr))
|
||||
, m_CE1Q(*this, "CE1Q", NETLIB_DELEGATE(enq))
|
||||
, m_CE2Q(*this, "CE2Q", NETLIB_DELEGATE(enq))
|
||||
, m_CE3Q(*this, "CE3Q", NETLIB_DELEGATE(enq))
|
||||
, m_WEQ(*this, "WEQ")
|
||||
, m_DIN(*this, "DIN")
|
||||
, m_DOUTQ(*this, "DOUTQ")
|
||||
|
@ -23,13 +23,13 @@ namespace netlist
|
||||
NETLIB_OBJECT(9316_base)
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(9316_base)
|
||||
, m_CLK(*this, "CLK", NETLIB_DELEGATE(9316_base, clk))
|
||||
, m_CLK(*this, "CLK", NETLIB_DELEGATE(clk))
|
||||
, m_ENT(*this, "ENT")
|
||||
, m_RC(*this, "RC")
|
||||
, m_LOADQ(*this, "LOADQ")
|
||||
, m_ENP(*this, "ENP")
|
||||
, m_CLRQ(*this, "CLRQ")
|
||||
, m_ABCD(*this, {"A", "B", "C", "D"}, NETLIB_DELEGATE(9316_base, abcd))
|
||||
, m_ABCD(*this, {"A", "B", "C", "D"}, NETLIB_DELEGATE(abcd))
|
||||
, m_Q(*this, { "QA", "QB", "QC", "QD" })
|
||||
, m_cnt(*this, "m_cnt", 0)
|
||||
, m_abcd(*this, "m_abcd", 0)
|
||||
|
@ -31,12 +31,12 @@ namespace netlist
|
||||
NETLIB_CONSTRUCTOR(generic_prom)
|
||||
, m_enabled(*this, "m_enabled", true)
|
||||
, m_TE(*this, "FORCE_TRISTATE_LOGIC", 0)
|
||||
, m_A(*this, 0, "A{}", NETLIB_DELEGATE(generic_prom, addr))
|
||||
, m_A(*this, 0, "A{}", NETLIB_DELEGATE(addr))
|
||||
, m_CEQ(*this, 1,
|
||||
D::chip_enable_mask::value ^ static_cast<size_t>(0xffff), pstring("CE{}"),
|
||||
std::array<nldelegate, 3>{ NETLIB_DELEGATE(generic_prom, ce<0>),
|
||||
NETLIB_DELEGATE(generic_prom, ce<1>),
|
||||
NETLIB_DELEGATE(generic_prom, ce<2>)})
|
||||
std::array<nldelegate, 3>{ NETLIB_DELEGATE(ce<0>),
|
||||
NETLIB_DELEGATE(ce<1>),
|
||||
NETLIB_DELEGATE(ce<2>)})
|
||||
, m_O(*this, D::data_name_offset::value, "O{}", m_TE())
|
||||
, m_ROM(*this, "ROM")
|
||||
, m_power_pins(*this)
|
||||
|
@ -26,10 +26,7 @@ namespace devices
|
||||
{
|
||||
m_cnt = 0;
|
||||
m_off = netlist_time::from_fp<decltype(m_offset())>(m_offset());
|
||||
m_feedback.set_delegate(NETLIB_DELEGATE(extclock, update));
|
||||
|
||||
//m_feedback.m_delegate .set(&NETLIB_NAME(extclock)::update, this);
|
||||
//m_Q.initial(0);
|
||||
m_feedback.set_delegate(NETLIB_DELEGATE(update));
|
||||
}
|
||||
|
||||
NETLIB_HANDLER(extclock, clk2)
|
||||
|
@ -79,7 +79,8 @@ class NETLIB_NAME(name) : public delegator_t<NETLIB_NAME(pclass)>
|
||||
#define NETLIB_BASE_OBJECT(name) \
|
||||
class NETLIB_NAME(name) : public delegator_t<base_device_t>
|
||||
|
||||
#define NETLIB_CONSTRUCTOR_PASS(cname, ...) \
|
||||
#define NETLIB_CONSTRUCTOR_PASS(cname, ...) \
|
||||
using this_type = NETLIB_NAME(cname); \
|
||||
public: template <class CLASS> NETLIB_NAME(cname)(CLASS &owner, const pstring &name) \
|
||||
: base_type(owner, name, __VA_ARGS__)
|
||||
|
||||
@ -88,6 +89,7 @@ class NETLIB_NAME(name) : public delegator_t<base_device_t>
|
||||
/// Use this to define the constructor of a netlist device. Please refer to
|
||||
/// #NETLIB_OBJECT for an example.
|
||||
#define NETLIB_CONSTRUCTOR(cname) \
|
||||
using this_type = NETLIB_NAME(cname); \
|
||||
public: template <class CLASS> NETLIB_NAME(cname)(CLASS &owner, const pstring &name) \
|
||||
: base_type(owner, name)
|
||||
|
||||
@ -101,6 +103,7 @@ class NETLIB_NAME(name) : public delegator_t<base_device_t>
|
||||
/// };
|
||||
///
|
||||
#define NETLIB_CONSTRUCTOR_MODEL(cname, cmodel) \
|
||||
using this_type = NETLIB_NAME(cname); \
|
||||
public: template <class CLASS> NETLIB_NAME(cname)(CLASS &owner, const pstring &name) \
|
||||
: base_type(owner, name, cmodel)
|
||||
|
||||
@ -108,6 +111,7 @@ class NETLIB_NAME(name) : public delegator_t<base_device_t>
|
||||
/// The macro allows to add further parameters to a device constructor. This is
|
||||
/// normally used for sub-devices and system devices only.
|
||||
#define NETLIB_CONSTRUCTOR_EX(cname, ...) \
|
||||
using this_type = NETLIB_NAME(cname); \
|
||||
public: template <class CLASS> NETLIB_NAME(cname)(CLASS &owner, const pstring &name, __VA_ARGS__) \
|
||||
: base_type(owner, name)
|
||||
|
||||
@ -173,7 +177,7 @@ class NETLIB_NAME(name) : public delegator_t<base_device_t>
|
||||
#define NETLIB_TIMESTEP(cname) \
|
||||
void NETLIB_NAME(cname) :: timestep(nl_fptype step) noexcept
|
||||
|
||||
#define NETLIB_DELEGATE(chip, name) nldelegate(&NETLIB_NAME(chip) :: name, this)
|
||||
#define NETLIB_DELEGATE(name) nldelegate(&this_type :: name, this)
|
||||
|
||||
#define NETLIB_UPDATE_TERMINALSI() virtual void update_terminals() noexcept override
|
||||
#define NETLIB_HANDLERI(name) void name() noexcept
|
||||
@ -2169,10 +2173,12 @@ namespace netlist
|
||||
class nld_power_pins
|
||||
{
|
||||
public:
|
||||
using this_type = nld_power_pins;
|
||||
|
||||
explicit nld_power_pins(device_t &owner, const pstring &sVCC = sPowerVCC,
|
||||
const pstring &sGND = sPowerGND)
|
||||
: m_VCC(owner, sVCC, NETLIB_DELEGATE(power_pins, noop))
|
||||
, m_GND(owner, sGND, NETLIB_DELEGATE(power_pins, noop))
|
||||
: m_VCC(owner, sVCC, NETLIB_DELEGATE(noop))
|
||||
, m_GND(owner, sGND, NETLIB_DELEGATE(noop))
|
||||
{
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user