summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/devices/nld_9310.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/devices/nld_9310.cpp')
-rw-r--r--src/lib/netlist/devices/nld_9310.cpp42
1 files changed, 23 insertions, 19 deletions
diff --git a/src/lib/netlist/devices/nld_9310.cpp b/src/lib/netlist/devices/nld_9310.cpp
index ad752adb605..b416015df24 100644
--- a/src/lib/netlist/devices/nld_9310.cpp
+++ b/src/lib/netlist/devices/nld_9310.cpp
@@ -6,7 +6,7 @@
*/
#include "nld_9310.h"
-#include "../nl_base.h"
+#include "netlist/nl_base.h"
#define MAXCNT 9
@@ -14,6 +14,7 @@ namespace netlist
{
namespace devices
{
+ //FIXME: Convert sub devices into NETDEV_DELEGATE logic
NETLIB_OBJECT(9310_subABCD)
{
NETLIB_CONSTRUCTOR(9310_subABCD)
@@ -139,8 +140,8 @@ namespace netlist
NETLIB_RESET(9310)
{
- sub.do_reset();
- subABCD.do_reset();
+ sub.reset();
+ subABCD.reset();
}
NETLIB_RESET(9310_subABCD)
@@ -157,32 +158,35 @@ namespace netlist
NETLIB_UPDATE(9310_sub)
{
+ auto cnt(m_cnt);
+
if (m_loadq)
{
- if (m_cnt < MAXCNT - 1)
+ if (cnt < MAXCNT - 1)
{
- ++m_cnt;
- update_outputs(m_cnt);
+ ++cnt;
+ update_outputs(cnt);
}
- else if (m_cnt == MAXCNT - 1)
+ else if (cnt == MAXCNT - 1)
{
- m_cnt = MAXCNT;
+ cnt = MAXCNT;
m_RC.push(m_ent, NLTIME_FROM_NS(20));
m_QA.push(1, NLTIME_FROM_NS(20));
}
else // MAXCNT
{
m_RC.push(0, NLTIME_FROM_NS(20));
- m_cnt = 0;
- update_outputs_all(m_cnt, NLTIME_FROM_NS(20));
+ cnt = 0;
+ update_outputs_all(cnt, NLTIME_FROM_NS(20));
}
}
else
{
- m_cnt = m_ABCD->read_ABCD();
- m_RC.push(m_ent & (m_cnt == MAXCNT), NLTIME_FROM_NS(27));
- update_outputs_all(m_cnt, NLTIME_FROM_NS(22));
+ cnt = m_ABCD->read_ABCD();
+ m_RC.push(m_ent & (cnt == MAXCNT), NLTIME_FROM_NS(27));
+ update_outputs_all(cnt, NLTIME_FROM_NS(22));
}
+ m_cnt = cnt;
}
NETLIB_UPDATE(9310)
@@ -223,10 +227,10 @@ namespace netlist
#if 0
// for (int i=0; i<4; i++)
// m_Q[i], (cnt >> i) & 1, delay[i]);
- m_QA, (cnt >> 0) & 1, out_delay);
- m_QB, (cnt >> 1) & 1, out_delay);
- m_QC, (cnt >> 2) & 1, out_delay);
- m_QD, (cnt >> 3) & 1, out_delay);
+ m_QA.push((cnt >> 0) & 1, out_delay);
+ m_QB.push((cnt >> 1) & 1, out_delay);
+ m_QC.push((cnt >> 2) & 1, out_delay);
+ m_QD.push((cnt >> 3) & 1, out_delay);
#else
if ((cnt & 1) == 1)
m_QA.push(1, out_delay);
@@ -262,8 +266,8 @@ namespace netlist
#endif
}
- NETLIB_DEVICE_IMPL(9310)
- NETLIB_DEVICE_IMPL(9310_dip)
+ NETLIB_DEVICE_IMPL(9310, "TTL_9310", "")
+ NETLIB_DEVICE_IMPL(9310_dip, "TTL_9310_DIP", "")
} //namespace devices
} // namespace netlist