diff options
-rw-r--r-- | scripts/src/netlist.lua | 2 | ||||
-rw-r--r-- | src/lib/netlist/devices/nld_4013.cpp | 33 | ||||
-rw-r--r-- | src/lib/netlist/devices/nld_4013.h | 11 |
3 files changed, 20 insertions, 26 deletions
diff --git a/scripts/src/netlist.lua b/scripts/src/netlist.lua index a71bcfe1df5..3a1929055ee 100644 --- a/scripts/src/netlist.lua +++ b/scripts/src/netlist.lua @@ -122,6 +122,8 @@ project "netlist" MAME_DIR .. "src/lib/netlist/devices/nld_tms4800.h", MAME_DIR .. "src/lib/netlist/devices/nld_4006.cpp", MAME_DIR .. "src/lib/netlist/devices/nld_4006.h", + MAME_DIR .. "src/lib/netlist/devices/nld_4013.cpp", + MAME_DIR .. "src/lib/netlist/devices/nld_4013.h", MAME_DIR .. "src/lib/netlist/devices/nld_4020.cpp", MAME_DIR .. "src/lib/netlist/devices/nld_4020.h", MAME_DIR .. "src/lib/netlist/devices/nld_4066.cpp", diff --git a/src/lib/netlist/devices/nld_4013.cpp b/src/lib/netlist/devices/nld_4013.cpp index 18aba4687e0..7d290df87ae 100644 --- a/src/lib/netlist/devices/nld_4013.cpp +++ b/src/lib/netlist/devices/nld_4013.cpp @@ -8,22 +8,20 @@ #include "nld_4013.h" #include "netlist/nl_base.h" -#include "nlid_system.h" - -#include <array> +#include "netlist/nl_setup.h" namespace netlist { namespace devices { - NETLIB_OBJECT(4013) + NETLIB_OBJECT(CD4013) { - NETLIB_CONSTRUCTOR(4013) + NETLIB_CONSTRUCTOR_MODEL(CD4013, "CD4XXX") , m_D(*this, "DATA") , m_RESET(*this, "RESET") , m_SET(*this, "SET") - , m_CLK(*this, "CLOCK", NETLIB_DELEGATE(4013, clk)) + , m_CLK(*this, "CLOCK", NETLIB_DELEGATE(CD4013, clk)) , m_Q(*this, "Q") , m_QQ(*this, "QQ") , m_nextD(*this, "m_nextD", 0) @@ -49,7 +47,7 @@ namespace netlist void newstate_clk(const netlist_sig_t stateQ) { - static constexpr delay = NLTIME_FROM_NS(150); + static constexpr auto delay = NLTIME_FROM_NS(150); m_Q.push(stateQ, delay); m_QQ.push(!stateQ, delay); } @@ -63,10 +61,9 @@ namespace netlist } }; - NETLIB_OBJECT(4013_dip) + NETLIB_OBJECT(CD4013_dip) { - NETLIB_CONSTRUCTOR(4013_dip) - NETLIB_FAMILY("CD4XXX") + NETLIB_CONSTRUCTOR(CD4013_dip) , m_A(*this, "A") , m_B(*this, "B") { @@ -93,17 +90,17 @@ namespace netlist NETLIB_RESETI(); private: - NETLIB_SUB(4013) m_A; - NETLIB_SUB(4013) m_B; + NETLIB_SUB(CD4013) m_A; + NETLIB_SUB(CD4013) m_B; }; - NETLIB_HANDLER(4013, clk) + NETLIB_HANDLER(CD4013, clk) { newstate_clk(m_nextD); m_CLK.inactivate(); } - NETLIB_UPDATE(4013) + NETLIB_UPDATE(CD4013) { const auto set(m_SET()); const auto reset(m_RESET()); @@ -121,23 +118,23 @@ namespace netlist } } - NETLIB_RESET(4013) + NETLIB_RESET(CD4013) { m_CLK.set_state(logic_t::STATE_INP_LH); m_D.set_state(logic_t::STATE_INP_ACTIVE); m_nextD = 0; } - NETLIB_RESET(4013_dip) + NETLIB_RESET(CD4013_dip) { } - NETLIB_UPDATE(4013_dip) + NETLIB_UPDATE(CD4013_dip) { } NETLIB_DEVICE_IMPL(CD4013, "CD4013", "+CLOCK,+DATA,+RESET,+SET,@VDD,@VSS") - NETLIB_DEVICE_IMPL(CD4013_DIP, "CD4013_DIP", "") + NETLIB_DEVICE_IMPL(CD4013_dip, "CD4013_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_4013.h b/src/lib/netlist/devices/nld_4013.h index 053a43f0ed5..3d77a45b70b 100644 --- a/src/lib/netlist/devices/nld_4013.h +++ b/src/lib/netlist/devices/nld_4013.h @@ -44,14 +44,9 @@ #include "netlist/nl_setup.h" -#define CD4013(name, cCLOCK, cDATA, cRESET, cSET) \ - NET_REGISTER_DEV(CD4013, name) \ - NET_CONNECT(name, VSS, VSS) \ - NET_CONNECT(name, VDD, VDD) \ - NET_CONNECT(name, CLK, cCLK) \ - NET_CONNECT(name, DATA, cDATA) \ - NET_CONNECT(name, SET, cSET) \ - NET_CONNECT(name, RESET, cRESET) +// usage: CD4013(name, cCLOCK, cDATA, cRESET, cSET) +#define CD4013(...) \ + NET_REGISTER_DEVEXT(CD4013, __VA_ARGS__) #define CD4013_DIP(name) \ NET_REGISTER_DEV(CD4013_DIP, name) |