summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/netlist/devices/nld_legacy.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/netlist/devices/nld_legacy.c')
-rw-r--r--src/emu/netlist/devices/nld_legacy.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/emu/netlist/devices/nld_legacy.c b/src/emu/netlist/devices/nld_legacy.c
index e73aff6530b..554476c52c3 100644
--- a/src/emu/netlist/devices/nld_legacy.c
+++ b/src/emu/netlist/devices/nld_legacy.c
@@ -33,3 +33,38 @@ NETLIB_UPDATE(nicRSFF)
OUTLOGIC(m_QQ, 1, NLTIME_FROM_NS(20));
}
}
+
+NETLIB_START(nicDelay)
+{
+ register_input("1", m_I);
+ register_output("2", m_Q);
+
+ register_param("L_TO_H", m_L_to_H, 10);
+ register_param("H_TO_L", m_H_to_L, 10);
+
+ save(NLNAME(m_last));
+
+}
+
+NETLIB_RESET(nicDelay)
+{
+ m_Q.initial(0);
+}
+
+NETLIB_UPDATE_PARAM(nicDelay)
+{
+}
+
+NETLIB_UPDATE(nicDelay)
+{
+ if (INPLOGIC(m_I) && !m_last)
+ {
+ // L_to_H
+ OUTLOGIC(m_Q, 1, NLTIME_FROM_NS(m_L_to_H.Value()));
+ }
+ else if (!INPLOGIC(m_I) && m_last)
+ {
+ OUTLOGIC(m_Q, 0, NLTIME_FROM_NS(m_H_to_L.Value()));
+ }
+ m_last = INPLOGIC(m_I);
+}