summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/machine/net_lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/machine/net_lib.c')
-rw-r--r--src/emu/machine/net_lib.c277
1 files changed, 132 insertions, 145 deletions
diff --git a/src/emu/machine/net_lib.c b/src/emu/machine/net_lib.c
index 18f76156343..45c93f6796f 100644
--- a/src/emu/machine/net_lib.c
+++ b/src/emu/machine/net_lib.c
@@ -72,7 +72,7 @@ NETLIB_CONSTRUCTOR(netdev_log)
NETLIB_UPDATE(netdev_log)
{
- printf("%s: %d %d\n", name(), (UINT32) (netlist().time().as_raw() / 1000000), INPVAL(m_I));
+ printf("%s: %d %d\n", name(), (UINT32) (netlist().time().as_raw() / 1000000), INPLOGIC(m_I));
}
NETLIB_CONSTRUCTOR(netdev_clock)
@@ -94,18 +94,8 @@ NETLIB_UPDATE_PARAM(netdev_clock)
NETLIB_UPDATE(netdev_clock)
{
- m_Q.setToNoCheck(!m_Q.new_Q(), m_inc );
-}
-
-NETLIB_UPDATE_PARAM(netdev_mainclock)
-{
- m_inc = netlist_time::from_hz(m_freq.Value()*2);
-}
-
-NETLIB_UPDATE(netdev_mainclock)
-{
- *m_Q.new_Q_ptr() = !m_Q.new_Q();
- m_Q.set_time(m_netlist.time() + m_inc);
+ //m_Q.setToNoCheck(!m_Q.new_Q(), m_inc );
+ OUTLOGIC(m_Q, !m_Q.new_Q(), m_inc );
}
NETLIB_CONSTRUCTOR(nicMultiSwitch)
@@ -120,7 +110,7 @@ NETLIB_CONSTRUCTOR(nicMultiSwitch)
{
register_input(sIN[i], m_I[i]);
//register_link_internal(m_I[i], m_low);
- m_I[i].set_output( GETINPPTR(m_low));
+ m_I[i].set_output(m_low);
}
register_param("POS", m_POS);
register_output("Q", m_Q);
@@ -131,7 +121,7 @@ NETLIB_CONSTRUCTOR(nicMultiSwitch)
NETLIB_UPDATE(nicMultiSwitch)
{
assert(m_position<8);
- m_Q.setTo(INPANALOG(m_I[m_position]), NLTIME_FROM_NS(1));
+ OUTANALOG(m_Q, INPANALOG(m_I[m_position]), NLTIME_FROM_NS(1));
}
NETLIB_UPDATE_PARAM(nicMultiSwitch)
@@ -151,7 +141,7 @@ NETLIB_CONSTRUCTOR(nicMixer8)
for (i=0; i<8; i++)
{
register_input(sI[i], m_I[i]);
- m_I[i].set_output(GETINPPTR(m_low));
+ m_I[i].set_output(m_low);
register_param(sR[i], m_R[i], 1e12);
}
register_output("Q", m_Q);
@@ -168,7 +158,7 @@ NETLIB_UPDATE(nicMixer8)
{
r += m_w[i] * INPANALOG(m_I[i]);
}
- m_Q.setTo(r, NLTIME_IMMEDIATE);
+ OUTANALOG(m_Q, r, NLTIME_IMMEDIATE);
}
NETLIB_UPDATE_PARAM(nicMixer8)
@@ -198,15 +188,15 @@ NETLIB_CONSTRUCTOR(nicRSFF)
NETLIB_UPDATE(nicRSFF)
{
- if (INPVAL(m_S))
+ if (INPLOGIC(m_S))
{
- m_Q.set();
- m_QQ.clear();
+ OUTLOGIC(m_Q, 1, NLTIME_FROM_NS(10));
+ OUTLOGIC(m_QQ, 0, NLTIME_FROM_NS(10));
}
- else if (INPVAL(m_R))
+ else if (INPLOGIC(m_R))
{
- m_Q.clear();
- m_QQ.set();
+ OUTLOGIC(m_Q, 0, NLTIME_FROM_NS(10));
+ OUTLOGIC(m_QQ, 1, NLTIME_FROM_NS(10));
}
}
@@ -222,7 +212,7 @@ NETLIB_CONSTRUCTOR(nicNE555N_MSTABLE)
register_param("VS", m_VS, 5.0);
register_param("VL", m_VL, 0.0 *5.0);
- m_THRESHOLD_OUT.set_netdev(this);
+ m_THRESHOLD_OUT.init_terminal(this);
register_link_internal(m_THRESHOLD, m_THRESHOLD_OUT, net_input_t::INP_STATE_ACTIVE);
m_Q.initial(5.0 * 0.4);
@@ -283,13 +273,13 @@ NETLIB_UPDATE(nicNE555N_MSTABLE)
time = 10.0;
}
- m_Q.setToNoCheckPS(m_VS.Value() * 0.7, NLTIME_FROM_NS(100));
- m_THRESHOLD_OUT.setTo(m_VS.Value(), NLTIME_FROM_US(time ));
+ 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)
{
- m_Q.setToNoCheckPS(0.25, NLTIME_FROM_NS(100));
- m_THRESHOLD_OUT.setTo(0.0, NLTIME_FROM_NS(1));
+ OUTANALOG(m_Q, 0.25, NLTIME_FROM_NS(100));
+ OUTANALOG(m_THRESHOLD_OUT, 0.0, NLTIME_FROM_NS(1));
}
m_last = out;
}
@@ -304,8 +294,8 @@ NETLIB_CONSTRUCTOR(nic7404)
NETLIB_UPDATE(nic7404)
{
static const netlist_time delay[2] = { NLTIME_FROM_NS(15), NLTIME_FROM_NS(22) };
- UINT8 t = (INPVAL(m_I)) ^ 1;
- m_Q.setTo(t, delay[t]);
+ UINT8 t = (INPLOGIC(m_I)) ^ 1;
+ OUTLOGIC(m_Q, t, delay[t]);
}
NETLIB_CONSTRUCTOR(nic7486)
@@ -318,8 +308,8 @@ NETLIB_CONSTRUCTOR(nic7486)
NETLIB_UPDATE(nic7486)
{
static const netlist_time delay[2] = { NLTIME_FROM_NS(15), NLTIME_FROM_NS(22) };
- UINT8 t = INPVAL(m_I0) ^ INPVAL(m_I1);
- m_Q.setTo(t, delay[t]);
+ UINT8 t = INPLOGIC(m_I0) ^ INPLOGIC(m_I1);
+ OUTLOGIC(m_Q, t, delay[t]);
}
NETLIB_CONSTRUCTOR(nic7448)
@@ -347,16 +337,16 @@ NETLIB_CONSTRUCTOR(nic7448)
NETLIB_UPDATE(nic7448)
{
- if (INPVAL(m_BIQ) && !INPVAL(m_LTQ))
+ if (INPLOGIC(m_BIQ) && !INPLOGIC(m_LTQ))
{
sub.update_outputs(8);
}
- else if (!INPVAL(m_BIQ))
+ else if (!INPLOGIC(m_BIQ))
{
sub.update_outputs(15);
}
- if (!INPVAL(m_BIQ) || (INPVAL(m_BIQ) && !INPVAL(m_LTQ)))
+ if (!INPLOGIC(m_BIQ) || (INPLOGIC(m_BIQ) && !INPLOGIC(m_LTQ)))
{
sub.m_A0.inactivate();
sub.m_A1.inactivate();
@@ -378,8 +368,8 @@ NETLIB_UPDATE(nic7448_sub)
{
UINT8 v;
- v = (INPVAL(m_A0) << 0) | (INPVAL(m_A1) << 1) | (INPVAL(m_A2) << 2) | (INPVAL(m_A3) << 3);
- if ((!INPVAL(m_RBIQ) && (v==0)))
+ v = (INPLOGIC(m_A0) << 0) | (INPLOGIC(m_A1) << 1) | (INPLOGIC(m_A2) << 2) | (INPLOGIC(m_A3) << 3);
+ if ((!INPLOGIC(m_RBIQ) && (v==0)))
v = 15;
update_outputs(v);
}
@@ -389,13 +379,13 @@ NETLIB_FUNC_VOID(nic7448_sub, update_outputs, (UINT8 v))
assert(v<16);
if (v != m_state)
{
- m_a.setTo(tab7448[v][0], NLTIME_FROM_NS(100));
- m_b.setTo(tab7448[v][1], NLTIME_FROM_NS(100));
- m_c.setTo(tab7448[v][2], NLTIME_FROM_NS(100));
- m_d.setTo(tab7448[v][3], NLTIME_FROM_NS(100));
- m_e.setTo(tab7448[v][4], NLTIME_FROM_NS(100));
- m_f.setTo(tab7448[v][5], NLTIME_FROM_NS(100));
- m_g.setTo(tab7448[v][6], NLTIME_FROM_NS(100));
+ OUTLOGIC(m_a, tab7448[v][0], NLTIME_FROM_NS(100));
+ OUTLOGIC(m_b, tab7448[v][1], NLTIME_FROM_NS(100));
+ OUTLOGIC(m_c, tab7448[v][2], NLTIME_FROM_NS(100));
+ OUTLOGIC(m_d, tab7448[v][3], NLTIME_FROM_NS(100));
+ OUTLOGIC(m_e, tab7448[v][4], NLTIME_FROM_NS(100));
+ OUTLOGIC(m_f, tab7448[v][5], NLTIME_FROM_NS(100));
+ OUTLOGIC(m_g, tab7448[v][6], NLTIME_FROM_NS(100));
m_state = v;
}
}
@@ -431,11 +421,11 @@ NETLIB_CONSTRUCTOR(nic7450)
NETLIB_UPDATE(nic7450)
{
- UINT8 t1 = INPVAL(m_I0) & INPVAL(m_I1);
- UINT8 t2 = INPVAL(m_I2) & INPVAL(m_I3);
+ UINT8 t1 = INPLOGIC(m_I0) & INPLOGIC(m_I1);
+ UINT8 t2 = INPLOGIC(m_I2) & INPLOGIC(m_I3);
#if 0
UINT8 t = (t1 | t2) ^ 1;
- m_Q.setTo(t, t ? NLTIME_FROM_NS(22) : NLTIME_FROM_NS(15));
+ OUTLOGIC(m_Q, t, t ? NLTIME_FROM_NS(22) : NLTIME_FROM_NS(15));
#else
const netlist_time times[2] = { NLTIME_FROM_NS(22), NLTIME_FROM_NS(15) };
@@ -464,46 +454,46 @@ NETLIB_UPDATE(nic7450)
m_I3.inactivate();
}
}
- m_Q.setTo(res, times[1 - res]);// ? 22000 : 15000);
+ OUTLOGIC(m_Q, res, times[1 - res]);// ? 22000 : 15000);
#endif
}
-INLINE void nic7474_newstate(const UINT8 state, ttl_output_t &Q, ttl_output_t &QQ)
+ATTR_HOT inline void nic7474sub::newstate(const UINT8 state)
{
static const netlist_time delay[2] = { NLTIME_FROM_NS(25), NLTIME_FROM_NS(40) };
//printf("%s %d %d %d\n", "7474", state, Q.Q(), QQ.Q());
- Q.setTo(state, delay[state]);
- QQ.setTo(!state, delay[!state]);
+ OUTLOGIC(m_Q, state, delay[state]);
+ OUTLOGIC(m_QQ, !state, delay[!state]);
}
NETLIB_UPDATE(nic7474sub)
{
//if (!INP_LAST(m_clk) & INP(m_clk))
{
- nic7474_newstate(m_nextD, m_Q, m_QQ);
+ newstate(m_nextD);
m_clk.inactivate();
}
}
NETLIB_UPDATE(nic7474)
{
- if (!INPVAL(m_preQ))
+ if (!INPLOGIC(m_preQ))
{
- nic7474_newstate(1, sub.m_Q, sub.m_QQ);
+ sub.newstate(1);
sub.m_clk.inactivate();
m_D.inactivate();
}
- else if (!INPVAL(m_clrQ))
+ else if (!INPLOGIC(m_clrQ))
{
- nic7474_newstate(0, sub.m_Q, sub.m_QQ);
+ sub.newstate(0);
sub.m_clk.inactivate();
m_D.inactivate();
}
else
{
m_D.activate();
- sub.m_nextD = INPVAL(m_D);
+ sub.m_nextD = INPLOGIC(m_D);
sub.m_clk.activate_lh();
}
}
@@ -547,19 +537,19 @@ NETLIB_CONSTRUCTOR(nic7483)
NETLIB_UPDATE(nic7483)
{
- UINT8 a = (INPVAL(m_A1) << 0) | (INPVAL(m_A2) << 1) | (INPVAL(m_A3) << 2) | (INPVAL(m_A4) << 3);
- UINT8 b = (INPVAL(m_B1) << 0) | (INPVAL(m_B2) << 1) | (INPVAL(m_B3) << 2) | (INPVAL(m_B4) << 3);
+ UINT8 a = (INPLOGIC(m_A1) << 0) | (INPLOGIC(m_A2) << 1) | (INPLOGIC(m_A3) << 2) | (INPLOGIC(m_A4) << 3);
+ UINT8 b = (INPLOGIC(m_B1) << 0) | (INPLOGIC(m_B2) << 1) | (INPLOGIC(m_B3) << 2) | (INPLOGIC(m_B4) << 3);
- UINT8 r = a + b + INPVAL(m_CI);
+ UINT8 r = a + b + INPLOGIC(m_CI);
if (r != m_lastr)
{
m_lastr = r;
- m_SA.setTo((r >> 0) & 1, NLTIME_FROM_NS(23));
- m_SB.setTo((r >> 1) & 1, NLTIME_FROM_NS(23));
- m_SC.setTo((r >> 2) & 1, NLTIME_FROM_NS(23));
- m_SD.setTo((r >> 3) & 1, NLTIME_FROM_NS(23));
- m_CO.setTo((r >> 4) & 1, NLTIME_FROM_NS(23));
+ OUTLOGIC(m_SA, (r >> 0) & 1, NLTIME_FROM_NS(23));
+ OUTLOGIC(m_SB, (r >> 1) & 1, NLTIME_FROM_NS(23));
+ OUTLOGIC(m_SC, (r >> 2) & 1, NLTIME_FROM_NS(23));
+ OUTLOGIC(m_SD, (r >> 3) & 1, NLTIME_FROM_NS(23));
+ OUTLOGIC(m_CO, (r >> 4) & 1, NLTIME_FROM_NS(23));
}
}
@@ -581,17 +571,17 @@ NETLIB_CONSTRUCTOR(nic7490)
NETLIB_UPDATE(nic7490)
{
- if (INPVAL(m_R91) & INPVAL(m_R92))
+ if (INPLOGIC(m_R91) & INPLOGIC(m_R92))
{
m_cnt = 9;
update_outputs();
}
- else if (INPVAL(m_R1) & INPVAL(m_R2))
+ else if (INPLOGIC(m_R1) & INPLOGIC(m_R2))
{
m_cnt = 0;
update_outputs();
}
- else if (INPVAL_LAST(m_clk) & !INPVAL(m_clk))
+ else if (INP_HL(m_clk))
{
m_cnt++;
if (m_cnt >= 10)
@@ -602,22 +592,17 @@ NETLIB_UPDATE(nic7490)
#if 0
NETLIB_FUNC_VOID(nic7490, update_outputs)
{
- m_QA.setTo((m_cnt >> 0) & 1, NLTIME_FROM_NS(18));
- m_QB.setTo((m_cnt >> 1) & 1, NLTIME_FROM_NS(36));
- m_QC.setTo((m_cnt >> 2) & 1, NLTIME_FROM_NS(54));
- m_QD.setTo((m_cnt >> 3) & 1, NLTIME_FROM_NS(72));
+ OUTLOGIC(m_QA, (m_cnt >> 0) & 1, NLTIME_FROM_NS(18));
+ OUTLOGIC(m_QB, (m_cnt >> 1) & 1, NLTIME_FROM_NS(36));
+ OUTLOGIC(m_QC, (m_cnt >> 2) & 1, NLTIME_FROM_NS(54));
+ OUTLOGIC(m_QD, (m_cnt >> 3) & 1, NLTIME_FROM_NS(72));
}
#else
NETLIB_FUNC_VOID(nic7490, update_outputs, (void))
{
const 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].setTo((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]);
+ OUTLOGIC(m_Q[i], (m_cnt >> i) & 1, delay[i]);
}
#endif
#if !USE_OLD7493
@@ -646,12 +631,12 @@ NETLIB_CONSTRUCTOR(nic7493)
NETLIB_UPDATE(nic7493ff)
{
if (m_reset == 0)
- m_Q.setTo(!m_Q.new_Q(), NLTIME_FROM_NS(18));
+ OUTLOGIC(m_Q, !m_Q.new_Q(), NLTIME_FROM_NS(18));
}
NETLIB_UPDATE(nic7493)
{
- net_sig_t r = INPVAL(m_R1) & INPVAL(m_R2);
+ net_sig_t r = INPLOGIC(m_R1) & INPLOGIC(m_R2);
if (r)
{
@@ -659,10 +644,10 @@ NETLIB_UPDATE(nic7493)
A.m_reset = B.m_reset = C.m_reset = D.m_reset = 1;
A.m_I.inactivate();
B.m_I.inactivate();
- A.m_Q.setTo(0, NLTIME_FROM_NS(40));
- B.m_Q.setTo(0, NLTIME_FROM_NS(40));
- C.m_Q.setTo(0, NLTIME_FROM_NS(40));
- D.m_Q.setTo(0, NLTIME_FROM_NS(40));
+ OUTLOGIC(A.m_Q, 0, NLTIME_FROM_NS(40));
+ OUTLOGIC(B.m_Q, 0, NLTIME_FROM_NS(40));
+ OUTLOGIC(C.m_Q, 0, NLTIME_FROM_NS(40));
+ OUTLOGIC(D.m_Q, 0, NLTIME_FROM_NS(40));
}
else
{
@@ -692,25 +677,25 @@ NETLIB_CONSTRUCTOR(nic7493)
NETLIB_UPDATE(nic7493)
{
//UINT8 old_clk = m_lastclk;
- //m_lastclk = INPVAL(m_clk);
+ //m_lastclk = INPLOGIC(m_clk);
//printf("%s %d %d %d %d %d %d\n", name(), m_cnt, old_clk, m_QA.Q(), m_QB.Q(), m_QC.Q(), m_QD.Q());
- if (INPVAL(m_R1) & INPVAL(m_R2))
+ if (INPLOGIC(m_R1) & INPLOGIC(m_R2))
{
if (m_cnt > 0)
{
m_cnt = 0;
- m_QA.setTo(0, NLTIME_FROM_NS(40));
- m_QB.setTo(0, NLTIME_FROM_NS(40));
- m_QC.setTo(0, NLTIME_FROM_NS(40));
- m_QD.setTo(0, NLTIME_FROM_NS(40));
+ OUTLOGIC(m_QA, 0, NLTIME_FROM_NS(40));
+ OUTLOGIC(m_QB, 0, NLTIME_FROM_NS(40));
+ OUTLOGIC(m_QC, 0, NLTIME_FROM_NS(40));
+ OUTLOGIC(m_QD, 0, NLTIME_FROM_NS(40));
}
m_CLK.inactivate();
}
//else if (old_clk & !m_lastclk)
else {
m_CLK.activate_hl();
- if (INPVAL_LAST(m_CLK) & !INPVAL(m_CLK))
+ if (INP_HL(m_CLK))
{
m_cnt++;
m_cnt &= 0x0f;
@@ -722,32 +707,32 @@ NETLIB_UPDATE(nic7493)
NETLIB_FUNC_VOID(nic7493, update_outputs, (void))
{
if (m_cnt & 1)
- m_QA.setToNoCheck(1, NLTIME_FROM_NS(16));
+ OUTLOGIC(m_QA, 1, NLTIME_FROM_NS(16));
else
{
- m_QA.setToNoCheck(0, NLTIME_FROM_NS(16));
+ OUTLOGIC(m_QA, 0, NLTIME_FROM_NS(16));
switch (m_cnt)
{
case 0x00:
- m_QD.setToNoCheck(0, NLTIME_FROM_NS(70));
- m_QC.setToNoCheck(0, NLTIME_FROM_NS(48));
- m_QB.setToNoCheck(0, NLTIME_FROM_NS(34));
+ OUTLOGIC(m_QD, 0, NLTIME_FROM_NS(70));
+ OUTLOGIC(m_QC, 0, NLTIME_FROM_NS(48));
+ OUTLOGIC(m_QB, 0, NLTIME_FROM_NS(34));
break;
case 0x02:
case 0x06:
case 0x0A:
case 0x0E:
- m_QB.setToNoCheck(1, NLTIME_FROM_NS(34));
+ OUTLOGIC(m_QB, 1, NLTIME_FROM_NS(34));
break;
case 0x04:
case 0x0C:
- m_QC.setToNoCheck(1, NLTIME_FROM_NS(48));
- m_QB.setToNoCheck(0, NLTIME_FROM_NS(34));
+ OUTLOGIC(m_QC, 1, NLTIME_FROM_NS(48));
+ OUTLOGIC(m_QB, 0, NLTIME_FROM_NS(34));
break;
case 0x08:
- m_QD.setToNoCheck(1, NLTIME_FROM_NS(70));
- m_QC.setToNoCheck(0, NLTIME_FROM_NS(48));
- m_QB.setToNoCheck(0, NLTIME_FROM_NS(34));
+ OUTLOGIC(m_QD, 1, NLTIME_FROM_NS(70));
+ OUTLOGIC(m_QC, 0, NLTIME_FROM_NS(48));
+ OUTLOGIC(m_QB, 0, NLTIME_FROM_NS(34));
break;
}
}
@@ -768,12 +753,12 @@ NETLIB_CONSTRUCTOR(nic74107A)
sub.m_QQ.initial(1);
}
-INLINE void nic74107A_newstate(UINT8 state, ttl_output_t &Q, ttl_output_t &QQ)
+ATTR_HOT inline void nic74107Asub::newstate(const net_sig_t state)
{
const netlist_time delay[2] = { NLTIME_FROM_NS(40), NLTIME_FROM_NS(25) };
#if 1
- Q.setTo(state, delay[1-state]);
- QQ.setTo(1-state, delay[state]);
+ OUTLOGIC(m_Q, state, delay[state ^ 1]);
+ OUTLOGIC(m_QQ, state ^ 1, delay[state]);
#else
if (state != Q.new_Q())
{
@@ -787,7 +772,7 @@ NETLIB_UPDATE(nic74107Asub)
{
{
net_sig_t t = m_Q.new_Q();
- nic74107A_newstate((!t & m_Q1) | (t & m_Q2) | m_F, m_Q, m_QQ);
+ newstate((!t & m_Q1) | (t & m_Q2) | m_F);
if (!m_Q1)
m_clk.inactivate();
}
@@ -795,19 +780,19 @@ NETLIB_UPDATE(nic74107Asub)
NETLIB_UPDATE(nic74107A)
{
- if (INPVAL(m_J) & INPVAL(m_K))
+ if (INPLOGIC(m_J) & INPLOGIC(m_K))
{
sub.m_Q1 = 1;
sub.m_Q2 = 0;
sub.m_F = 0;
}
- else if (!INPVAL(m_J) & INPVAL(m_K))
+ else if (!INPLOGIC(m_J) & INPLOGIC(m_K))
{
sub.m_Q1 = 0;
sub.m_Q2 = 0;
sub.m_F = 0;
}
- else if (INPVAL(m_J) & !INPVAL(m_K))
+ else if (INPLOGIC(m_J) & !INPLOGIC(m_K))
{
sub.m_Q1 = 0;
sub.m_Q2 = 0;
@@ -820,13 +805,15 @@ NETLIB_UPDATE(nic74107A)
sub.m_F = 0;
sub.m_clk.inactivate();
}
- if (!INPVAL(m_clrQ))
+ if (!INPLOGIC(m_clrQ))
{
sub.m_clk.inactivate();
- nic74107A_newstate(0, sub.m_Q, sub.m_QQ);
+ sub.newstate(0);
}
- if (!sub.m_Q2 && INPVAL(m_clrQ))
+ else if (!sub.m_Q2)
sub.m_clk.activate_hl();
+ //if (!sub.m_Q2 & INPLOGIC(m_clrQ))
+ // sub.m_clk.activate_hl();
}
NETLIB_CONSTRUCTOR(nic74153)
@@ -845,15 +832,15 @@ NETLIB_CONSTRUCTOR(nic74153)
NETLIB_UPDATE(nic74153)
{
const netlist_time delay[2] = { NLTIME_FROM_NS(23), NLTIME_FROM_NS(18) };
- if (!INPVAL(m_GA))
+ if (!INPLOGIC(m_GA))
{
- UINT8 chan = (INPVAL(m_A) | (INPVAL(m_B)<<1));
- UINT8 t = INPVAL(m_I[chan]);
- m_AY.setTo(t, delay[t] ); /* data to y only, FIXME */
+ UINT8 chan = (INPLOGIC(m_A) | (INPLOGIC(m_B)<<1));
+ UINT8 t = INPLOGIC(m_I[chan]);
+ OUTLOGIC(m_AY, t, delay[t] ); /* data to y only, FIXME */
}
else
{
- m_AY.setTo(0, delay[0]);
+ OUTLOGIC(m_AY, 0, delay[0]);
}
}
@@ -893,19 +880,19 @@ NETLIB_UPDATE(nic9316_sub)
}
else
{
- m_cnt = (INPVAL_PASSIVE(m_D) << 3) | (INPVAL_PASSIVE(m_C) << 2) | (INPVAL_PASSIVE(m_B) << 1) | (INPVAL_PASSIVE(m_A) << 0);
+ m_cnt = (INPLOGIC_PASSIVE(m_D) << 3) | (INPLOGIC_PASSIVE(m_C) << 2) | (INPLOGIC_PASSIVE(m_B) << 1) | (INPLOGIC_PASSIVE(m_A) << 0);
update_outputs_all();
}
- m_RC.setTo(m_ent & (m_cnt == 0x0f), NLTIME_FROM_NS(20));
+ OUTLOGIC(m_RC, m_ent & (m_cnt == 0x0f), NLTIME_FROM_NS(20));
}
NETLIB_UPDATE(nic9316)
{
- sub.m_loadq = INPVAL(m_LOADQ);
- sub.m_ent = INPVAL(m_ENT);
- const net_sig_t clrq = INPVAL(m_CLRQ);
+ sub.m_loadq = INPLOGIC(m_LOADQ);
+ sub.m_ent = INPLOGIC(m_ENT);
+ const net_sig_t clrq = INPLOGIC(m_CLRQ);
- if ((!sub.m_loadq || (sub.m_ent & INPVAL(m_ENP))) & clrq)
+ if ((!sub.m_loadq || (sub.m_ent & INPLOGIC(m_ENP))) & clrq)
{
sub.m_clk.activate_lh();
}
@@ -916,58 +903,58 @@ NETLIB_UPDATE(nic9316)
{
sub.m_cnt = 0;
sub.update_outputs();
- sub.m_RC.setTo(0, NLTIME_FROM_NS(20));
+ OUTLOGIC(sub.m_RC, 0, NLTIME_FROM_NS(20));
return;
}
}
- sub.m_RC.setTo(sub.m_ent & (sub.m_cnt == 0x0f), NLTIME_FROM_NS(20));
+ OUTLOGIC(sub.m_RC, sub.m_ent & (sub.m_cnt == 0x0f), NLTIME_FROM_NS(20));
}
NETLIB_FUNC_VOID(nic9316_sub, update_outputs_all, (void))
{
const netlist_time out_delay = NLTIME_FROM_NS(20);
- m_QA.setTo((m_cnt >> 0) & 1, out_delay);
- m_QB.setTo((m_cnt >> 1) & 1, out_delay);
- m_QC.setTo((m_cnt >> 2) & 1, out_delay);
- m_QD.setTo((m_cnt >> 3) & 1, out_delay);
+ OUTLOGIC(m_QA, (m_cnt >> 0) & 1, out_delay);
+ OUTLOGIC(m_QB, (m_cnt >> 1) & 1, out_delay);
+ OUTLOGIC(m_QC, (m_cnt >> 2) & 1, out_delay);
+ OUTLOGIC(m_QD, (m_cnt >> 3) & 1, out_delay);
}
NETLIB_FUNC_VOID(nic9316_sub, update_outputs, (void))
{
const netlist_time out_delay = NLTIME_FROM_NS(20);
#if 0
- m_QA.setTo((m_cnt >> 0) & 1, out_delay);
- m_QB.setTo((m_cnt >> 1) & 1, out_delay);
- m_QC.setTo((m_cnt >> 2) & 1, out_delay);
- m_QD.setTo((m_cnt >> 3) & 1, out_delay);
+ OUTLOGIC(m_QA, (m_cnt >> 0) & 1, out_delay);
+ OUTLOGIC(m_QB, (m_cnt >> 1) & 1, out_delay);
+ OUTLOGIC(m_QC, (m_cnt >> 2) & 1, out_delay);
+ OUTLOGIC(m_QD, (m_cnt >> 3) & 1, out_delay);
#else
if ((m_cnt & 1) == 1)
- m_QA.setToNoCheck(1, out_delay);
+ OUTLOGIC(m_QA, 1, out_delay);
else
{
- m_QA.setToNoCheck(0, out_delay);
+ OUTLOGIC(m_QA, 0, out_delay);
switch (m_cnt)
{
case 0x00:
- m_QB.setToNoCheck(0, out_delay);
- m_QC.setToNoCheck(0, out_delay);
- m_QD.setToNoCheck(0, out_delay);
+ OUTLOGIC(m_QB, 0, out_delay);
+ OUTLOGIC(m_QC, 0, out_delay);
+ OUTLOGIC(m_QD, 0, out_delay);
break;
case 0x02:
case 0x06:
case 0x0A:
case 0x0E:
- m_QB.setToNoCheck(1, out_delay);
+ OUTLOGIC(m_QB, 1, out_delay);
break;
case 0x04:
case 0x0C:
- m_QB.setToNoCheck(0, out_delay);
- m_QC.setToNoCheck(1, out_delay);
+ OUTLOGIC(m_QB, 0, out_delay);
+ OUTLOGIC(m_QC, 1, out_delay);
break;
case 0x08:
- m_QB.setToNoCheck(0, out_delay);
- m_QC.setToNoCheck(0, out_delay);
- m_QD.setToNoCheck(1, out_delay);
+ OUTLOGIC(m_QB, 0, out_delay);
+ OUTLOGIC(m_QC, 0, out_delay);
+ OUTLOGIC(m_QD, 1, out_delay);
break;
}
@@ -986,7 +973,7 @@ static const net_device_t_base_factory *netregistry[] =
ENTRY(netdev_log, NETDEV_LOG)
ENTRY(netdev_clock, NETDEV_CLOCK)
ENTRY(netdev_mainclock, NETDEV_MAINCLOCK)
- ENTRY(netdev_callback, NETDEV_CALLBACK)
+ ENTRY(netdev_analog_callback,NETDEV_CALLBACK)
ENTRY(nicMultiSwitch, NETDEV_SWITCH2)
ENTRY(nicRSFF, NETDEV_RSFF)
ENTRY(nicMixer8, NETDEV_MIXER)