diff --git a/src/emu/machine/net_lib.c b/src/emu/machine/net_lib.c index 9ac3a489616..572f59f3e22 100644 --- a/src/emu/machine/net_lib.c +++ b/src/emu/machine/net_lib.c @@ -84,7 +84,7 @@ NETLIB_UPDATE_PARAM(netdev_clock) NETLIB_UPDATE(netdev_clock) { - m_Q.setToPS(!m_Q.new_Q(), m_inc ); + m_Q.setToNoCheckPS(!m_Q.new_Q(), m_inc ); } NETLIB_START(nicMultiSwitch) @@ -231,8 +231,9 @@ NETLIB_UPDATE(nicNE555N_MSTABLE) { update_param(); // FIXME : m_CV should be on a sub device ... - bool bthresh = (INPANALOG(m_THRESHOLD) > nicNE555N_cv(*this)); - bool btrig = (INPANALOG(m_trigger) > nicNE555N_cv(*this) * 0.5); + double vt = nicNE555N_clamp(*this, nicNE555N_cv(*this), 0.7, 1.4); + bool bthresh = (INPANALOG(m_THRESHOLD) > vt); + bool btrig = (INPANALOG(m_trigger) > nicNE555N_clamp(*this, nicNE555N_cv(*this) * 0.5, 0.7, 1.4)); bool out = m_last; if (!btrig) @@ -246,20 +247,23 @@ NETLIB_UPDATE(nicNE555N_MSTABLE) if (!m_last && out) { - double vt = nicNE555N_cv(*this); double vl = m_VL.Value(); double time; - vt = nicNE555N_clamp(*this, vt, 0.7, 1.4); // FIXME : m_CV should be on a sub device ... + // TI datasheet states minimum pulse of 10 us if (vt> 0) & 1, NLTIME_FROM_NS(18)); @@ -556,7 +551,19 @@ NETLIB_FUNC_VOID(nic7490, update_outputs) m_QC.setToPS((m_cnt >> 2) & 1, NLTIME_FROM_NS(54)); m_QD.setToPS((m_cnt >> 3) & 1, NLTIME_FROM_NS(72)); } +#else +NETLIB_FUNC_VOID(nic7490, update_outputs) +{ + static netlist_time delay[4] = { NLTIME_FROM_NS(18), NLTIME_FROM_NS(36), NLTIME_FROM_NS(54), NLTIME_FROM_NS(72) }; + for (int i=0; i<4; i++) + m_Q[i].setToPS((m_cnt >> i) & 1, delay[i]); + //m_QA.setToPS((m_cnt >> 0) & 1, delay[0]); + //m_QB.setToPS((m_cnt >> 1) & 1, delay[1]); + //m_QC.setToPS((m_cnt >> 2) & 1, delay[2]); + //m_QD.setToPS((m_cnt >> 3) & 1, delay[3]); +} +#endif #if 1 NETLIB_START(nic7493) { @@ -595,12 +602,12 @@ NETLIB_UPDATE(nic7493) { //printf("%s reset\n", name()); A.m_I.inactivate(); - A.m_Q.setToPS(0, NLTIME_FROM_NS(40)); B.m_I.inactivate(); - B.m_Q.setToPS(0, NLTIME_FROM_NS(40)); C.m_I.inactivate(); - C.m_Q.setToPS(0, NLTIME_FROM_NS(40)); D.m_I.inactivate(); + A.m_Q.setToPS(0, NLTIME_FROM_NS(40)); + B.m_Q.setToPS(0, NLTIME_FROM_NS(40)); + C.m_Q.setToPS(0, NLTIME_FROM_NS(40)); D.m_Q.setToPS(0, NLTIME_FROM_NS(40)); } else