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:
couriersud 2020-06-01 19:57:25 +02:00
parent c00dc87830
commit 215aa82cec
16 changed files with 48 additions and 45 deletions

View File

@ -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)

View File

@ -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")

View File

@ -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)

View File

@ -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")

View File

@ -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)

View File

@ -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)

View File

@ -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)
{
}

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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")

View File

@ -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")

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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))
{
}