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.c246
1 files changed, 123 insertions, 123 deletions
diff --git a/src/emu/netlist/devices/nld_legacy.c b/src/emu/netlist/devices/nld_legacy.c
index 4afe74a45d8..e23c7287ea0 100644
--- a/src/emu/netlist/devices/nld_legacy.c
+++ b/src/emu/netlist/devices/nld_legacy.c
@@ -7,141 +7,141 @@
NETLIB_START(nicMultiSwitch)
{
- static const char *sIN[8] = { "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8" };
- int i;
+ static const char *sIN[8] = { "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8" };
+ int i;
- m_position = 0;
- m_low.initial(0);
+ m_position = 0;
+ m_low.initial(0);
- for (i=0; i<8; i++)
- {
- register_input(sIN[i], m_I[i]);
- m_low.net().register_con(m_I[i]);
- //m_I[i].set_net(m_low.m_net);
- }
- register_param("POS", m_POS, 0);
- register_output("Q", m_Q);
+ for (i=0; i<8; i++)
+ {
+ register_input(sIN[i], m_I[i]);
+ m_low.net().register_con(m_I[i]);
+ //m_I[i].set_net(m_low.m_net);
+ }
+ register_param("POS", m_POS, 0);
+ register_output("Q", m_Q);
- save(NAME(m_position));
+ save(NAME(m_position));
}
NETLIB_UPDATE(nicMultiSwitch)
{
- assert(m_position<8);
- OUTANALOG(m_Q, INPANALOG(m_I[m_position]), NLTIME_FROM_NS(1));
+ assert(m_position<8);
+ OUTANALOG(m_Q, INPANALOG(m_I[m_position]), NLTIME_FROM_NS(1));
}
NETLIB_UPDATE_PARAM(nicMultiSwitch)
{
- m_position = m_POS.Value();
- //update();
+ m_position = m_POS.Value();
+ //update();
}
NETLIB_START(nicMixer8)
{
- static const char *sI[8] = { "I1", "I2", "I3", "I4", "I5", "I6", "I7", "I8" };
- static const char *sR[8] = { "R1", "R2", "R3", "R4", "R5", "R6", "R7", "R8" };
- int i;
-
- m_low.initial(0);
-
- for (i=0; i<8; i++)
- {
- register_input(sI[i], m_I[i]);
- m_low.net().register_con(m_I[i]);
- //m_I[i].set_output(m_low);
- register_param(sR[i], m_R[i], 1e12);
- }
- register_output("Q", m_Q);
+ static const char *sI[8] = { "I1", "I2", "I3", "I4", "I5", "I6", "I7", "I8" };
+ static const char *sR[8] = { "R1", "R2", "R3", "R4", "R5", "R6", "R7", "R8" };
+ int i;
+
+ m_low.initial(0);
+
+ for (i=0; i<8; i++)
+ {
+ register_input(sI[i], m_I[i]);
+ m_low.net().register_con(m_I[i]);
+ //m_I[i].set_output(m_low);
+ register_param(sR[i], m_R[i], 1e12);
+ }
+ register_output("Q", m_Q);
}
NETLIB_UPDATE(nicMixer8)
{
- int i;
- double r = 0;
-
- for (i=0; i<8; i++)
- {
- r += m_w[i] * INPANALOG(m_I[i]);
- }
- OUTANALOG(m_Q, r, NLTIME_IMMEDIATE);
+ int i;
+ double r = 0;
+
+ for (i=0; i<8; i++)
+ {
+ r += m_w[i] * INPANALOG(m_I[i]);
+ }
+ OUTANALOG(m_Q, r, NLTIME_IMMEDIATE);
}
NETLIB_UPDATE_PARAM(nicMixer8)
{
- double t = 0;
- int i;
+ double t = 0;
+ int i;
- for (i=0; i<8; i++)
- t += 1.0 / m_R[i].Value();
- t = 1.0 / t;
+ for (i=0; i<8; i++)
+ t += 1.0 / m_R[i].Value();
+ t = 1.0 / t;
- for (i=0; i<8; i++)
- m_w[i] = t / m_R[i].Value();
+ for (i=0; i<8; i++)
+ m_w[i] = t / m_R[i].Value();
}
NETLIB_START(nicRSFF)
{
- register_input("S", m_S);
- register_input("R", m_R);
- register_output("Q", m_Q);
- register_output("QQ", m_QQ);
- m_Q.initial(0);
- m_QQ.initial(1);
+ register_input("S", m_S);
+ register_input("R", m_R);
+ register_output("Q", m_Q);
+ register_output("QQ", m_QQ);
+ m_Q.initial(0);
+ m_QQ.initial(1);
}
NETLIB_UPDATE(nicRSFF)
{
- if (INPLOGIC(m_S))
- {
- OUTLOGIC(m_Q, 1, NLTIME_FROM_NS(10));
- OUTLOGIC(m_QQ, 0, NLTIME_FROM_NS(10));
- }
- else if (INPLOGIC(m_R))
- {
- OUTLOGIC(m_Q, 0, NLTIME_FROM_NS(10));
- OUTLOGIC(m_QQ, 1, NLTIME_FROM_NS(10));
- }
+ if (INPLOGIC(m_S))
+ {
+ OUTLOGIC(m_Q, 1, NLTIME_FROM_NS(10));
+ OUTLOGIC(m_QQ, 0, NLTIME_FROM_NS(10));
+ }
+ else if (INPLOGIC(m_R))
+ {
+ OUTLOGIC(m_Q, 0, NLTIME_FROM_NS(10));
+ OUTLOGIC(m_QQ, 1, NLTIME_FROM_NS(10));
+ }
}
NETLIB_START(nicNE555N_MSTABLE)
{
- register_input("TRIG", m_trigger);
- register_input("CV", m_CV);
+ register_input("TRIG", m_trigger);
+ register_input("CV", m_CV);
- register_output("Q", m_Q);
- register_param("R", m_R, 0.0);
- register_param("C", m_C, 0.0);
- register_param("VS", m_VS, 5.0);
- register_param("VL", m_VL, 0.0 *5.0);
+ register_output("Q", m_Q);
+ register_param("R", m_R, 0.0);
+ register_param("C", m_C, 0.0);
+ register_param("VS", m_VS, 5.0);
+ register_param("VL", m_VL, 0.0 *5.0);
- m_THRESHOLD_OUT.init_object(*this, name() + "THRESHOLD");
- register_link_internal(m_THRESHOLD, m_THRESHOLD_OUT, netlist_input_t::STATE_INP_ACTIVE);
+ m_THRESHOLD_OUT.init_object(*this, name() + "THRESHOLD");
+ register_link_internal(m_THRESHOLD, m_THRESHOLD_OUT, netlist_input_t::STATE_INP_ACTIVE);
- m_Q.initial(5.0 * 0.4);
- m_last = false;
+ m_Q.initial(5.0 * 0.4);
+ m_last = false;
- save(NAME(m_last));
+ save(NAME(m_last));
}
inline double NETLIB_NAME(nicNE555N_MSTABLE)::nicNE555N_cv()
{
- return (m_CV.is_highz() ? 0.67 * m_VS.Value() : INPANALOG(m_CV));
+ return (m_CV.is_highz() ? 0.67 * m_VS.Value() : INPANALOG(m_CV));
}
inline double NETLIB_NAME(nicNE555N_MSTABLE)::nicNE555N_clamp(const double v, const double a, const double b)
{
- double ret = v;
- if (ret > m_VS.Value() - a)
- ret = m_VS.Value() - a;
- if (ret < b)
- ret = b;
- return ret;
+ double ret = v;
+ if (ret > m_VS.Value() - a)
+ ret = m_VS.Value() - a;
+ if (ret < b)
+ ret = b;
+ return ret;
}
NETLIB_UPDATE_PARAM(nicNE555N_MSTABLE)
@@ -150,46 +150,46 @@ NETLIB_UPDATE_PARAM(nicNE555N_MSTABLE)
NETLIB_UPDATE(nicNE555N_MSTABLE)
{
- update_param(); // FIXME : m_CV should be on a sub device ...
-
- double vt = nicNE555N_clamp(nicNE555N_cv(), 0.7, 1.4);
- bool bthresh = (INPANALOG(m_THRESHOLD) > vt);
- bool btrig = (INPANALOG(m_trigger) > nicNE555N_clamp(nicNE555N_cv() * 0.5, 0.7, 1.4));
- bool out = m_last;
-
- if (!btrig)
- {
- out = true;
- }
- else if (bthresh)
- {
- out = false;
- }
-
- if (!m_last && out)
- {
- double vl = m_VL.Value();
- double time;
-
- // FIXME : m_CV should be on a sub device ...
-
- // TI datasheet states minimum pulse of 10 us
- if (vt<vl)
- time = 10;
- else
- {
- time = - log((m_VS.Value()-vt)/(m_VS.Value()-vl)) * m_R.Value() * m_C.Value() * 1.0e6; // in us
- if (time < 10.0)
- time = 10.0;
- }
-
- OUTANALOG(m_Q, m_VS.Value() * 0.7, NLTIME_FROM_NS(100));
- OUTANALOG(m_THRESHOLD_OUT, m_VS.Value(), NLTIME_FROM_US(time ));
- }
- else if (m_last && !out)
- {
- OUTANALOG(m_Q, 0.25, NLTIME_FROM_NS(100));
- OUTANALOG(m_THRESHOLD_OUT, 0.0, NLTIME_FROM_NS(1));
- }
- m_last = out;
+ update_param(); // FIXME : m_CV should be on a sub device ...
+
+ double vt = nicNE555N_clamp(nicNE555N_cv(), 0.7, 1.4);
+ bool bthresh = (INPANALOG(m_THRESHOLD) > vt);
+ bool btrig = (INPANALOG(m_trigger) > nicNE555N_clamp(nicNE555N_cv() * 0.5, 0.7, 1.4));
+ bool out = m_last;
+
+ if (!btrig)
+ {
+ out = true;
+ }
+ else if (bthresh)
+ {
+ out = false;
+ }
+
+ if (!m_last && out)
+ {
+ double vl = m_VL.Value();
+ double time;
+
+ // FIXME : m_CV should be on a sub device ...
+
+ // TI datasheet states minimum pulse of 10 us
+ if (vt<vl)
+ time = 10;
+ else
+ {
+ time = - log((m_VS.Value()-vt)/(m_VS.Value()-vl)) * m_R.Value() * m_C.Value() * 1.0e6; // in us
+ if (time < 10.0)
+ time = 10.0;
+ }
+
+ OUTANALOG(m_Q, m_VS.Value() * 0.7, NLTIME_FROM_NS(100));
+ OUTANALOG(m_THRESHOLD_OUT, m_VS.Value(), NLTIME_FROM_US(time ));
+ }
+ else if (m_last && !out)
+ {
+ OUTANALOG(m_Q, 0.25, NLTIME_FROM_NS(100));
+ OUTANALOG(m_THRESHOLD_OUT, 0.0, NLTIME_FROM_NS(1));
+ }
+ m_last = out;
}