Fixed minor bugs and removed a hack in 7490 code. Also added more pinouts.

This commit is contained in:
Couriersud 2014-01-24 16:24:32 +00:00
parent dcd57f0f8b
commit 4633122377
8 changed files with 121 additions and 15 deletions

1
.gitattributes vendored
View File

@ -2176,6 +2176,7 @@ src/emu/netlist/devices/nld_7425.c svneol=native#text/plain
src/emu/netlist/devices/nld_7425.h svneol=native#text/plain
src/emu/netlist/devices/nld_7427.c svneol=native#text/plain
src/emu/netlist/devices/nld_7427.h svneol=native#text/plain
src/emu/netlist/devices/nld_7430.c svneol=native#text/plain
src/emu/netlist/devices/nld_7430.h svneol=native#text/plain
src/emu/netlist/devices/nld_7474.c svneol=native#text/plain
src/emu/netlist/devices/nld_7474.h svneol=native#text/plain

View File

@ -97,7 +97,7 @@
#define NETDEV_SOUND_OUT(_name, _v) \
NET_REGISTER_DEV(sound, _name) \
PARAM_name.CHAN, _v)
PARAM(_name.CHAN, _v)
class netlist_mame_device_t;

View File

@ -0,0 +1,33 @@
/*
* nld_7430.c
*
*/
#include "nld_7430.h"
NETLIB_START(7430_dip)
{
register_sub(m_1, "1");
register_subalias("1", m_1.m_i[0]);
register_subalias("2", m_1.m_i[1]);
register_subalias("3", m_1.m_i[2]);
register_subalias("4", m_1.m_i[3]);
register_subalias("5", m_1.m_i[4]);
register_subalias("6", m_1.m_i[5]);
register_subalias("8", m_1.m_Q);
register_subalias("11", m_1.m_i[6]);
register_subalias("12", m_1.m_i[7]);
}
NETLIB_UPDATE(7430_dip)
{
}
NETLIB_RESET(7430_dip)
{
m_1.do_reset();
}

View File

@ -53,4 +53,11 @@
NETLIB_SIGNAL(7430, 8, 0, 0);
#define TTL_7430_DIP(_name) \
NET_REGISTER_DEV(7430_dip, _name)
NETLIB_DEVICE(7430_dip,
NETLIB_NAME(7430) m_1;
);
#endif /* NLD_7430_H_ */

View File

@ -7,7 +7,8 @@
NETLIB_START(7490)
{
register_input("CLK", m_clk);
register_input("A", m_A);
register_input("B", m_B);
register_input("R1", m_R1);
register_input("R2", m_R2);
register_input("R91", m_R91);
@ -27,6 +28,13 @@ NETLIB_RESET(7490)
m_cnt = 0;
}
static const netlist_time delay[4] =
{
NLTIME_FROM_NS(18),
NLTIME_FROM_NS(36) - NLTIME_FROM_NS(18),
NLTIME_FROM_NS(54) - NLTIME_FROM_NS(18),
NLTIME_FROM_NS(72) - NLTIME_FROM_NS(18)};
NETLIB_UPDATE(7490)
{
if (INPLOGIC(m_R91) & INPLOGIC(m_R92))
@ -39,18 +47,66 @@ NETLIB_UPDATE(7490)
m_cnt = 0;
update_outputs();
}
else if (INP_HL(m_clk))
else if (INP_HL(m_A))
{
m_cnt++;
if (m_cnt >= 10)
m_cnt = 0;
update_outputs();
m_cnt ^= 1;
OUTLOGIC(m_Q[0], m_cnt & 1, delay[0]);
}
else if (INP_HL(m_B))
{
m_cnt += 2;
if (m_cnt >= 10)
m_cnt = 0;
update_outputs();
}
}
NETLIB_FUNC_VOID(7490, 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++)
OUTLOGIC(m_Q[i], (m_cnt >> i) & 1, delay[i]);
}
NETLIB_START(7490_dip)
{
NETLIB_NAME(7490)::start();
#if 0
register_subalias("1", B.m_I);
register_subalias("2", m_R1);
register_subalias("3", m_R2);
// register_subalias("4", ); --> NC
// register_subalias("5", ); --> VCC
// register_subalias("6", ); --> NC
// register_subalias("7", ); --> NC
register_subalias("8", C.m_Q);
register_subalias("9", B.m_Q);
// register_subalias("10", ); --> GND
register_subalias("11", D.m_Q);
register_subalias("12", A.m_Q);
// register_subalias("13", ); --> NC
register_subalias("14", A.m_I);
#endif
}
/* +--------------+
* B |1 ++ 14| A
* R01 |2 13| NC
* R02 |3 12| QA
* NC |4 7490 11| QD
* VCC |5 10| GND
* R91 |6 9| QB
* R92 |7 8| QC
* +--------------+
*/
NETLIB_UPDATE(7490_dip)
{
NETLIB_NAME(7490)::update();
}
NETLIB_RESET(7490_dip)
{
NETLIB_NAME(7490)::reset();
}

View File

@ -57,14 +57,18 @@
#include "../nl_base.h"
#define TTL_7490(_name, _CLK, _R1, _R2, _R91, _R92) \
#define TTL_7490(_name, _A, _B, _R1, _R2, _R91, _R92) \
NET_REGISTER_DEV(7490, _name) \
NET_CONNECT(_name, CLK, _CLK) \
NET_CONNECT(_name, A, _A) \
NET_CONNECT(_name, B, _B) \
NET_CONNECT(_name, R1, _R1) \
NET_CONNECT(_name, R2, _R2) \
NET_CONNECT(_name, R91, _R91) \
NET_CONNECT(_name, R92, _R92)
#define TTL_7490_DIP(_name) \
NET_REGISTER_DEV(7490_dip, _name)
NETLIB_DEVICE(7490,
ATTR_HOT void update_outputs();
@ -73,11 +77,15 @@ NETLIB_DEVICE(7490,
netlist_ttl_input_t m_R2;
netlist_ttl_input_t m_R91;
netlist_ttl_input_t m_R92;
netlist_ttl_input_t m_clk;
netlist_ttl_input_t m_A;
netlist_ttl_input_t m_B;
UINT8 m_cnt;
netlist_ttl_output_t m_Q[4];
);
NETLIB_DEVICE_DERIVED(7490_dip, 7490,
);
#endif /* NLD_7490_H_ */

View File

@ -99,6 +99,7 @@ NETLIB_START(7493_dip)
register_subalias("14", A.m_I);
}
NETLIB_UPDATE(7493_dip)
{
NETLIB_NAME(7493)::update();

View File

@ -542,7 +542,7 @@ static NETLIST_START(pong_schematics)
// ----------------------------------------------------------------------------------------
TTL_7402_NOR(ic_f5b, L, Missed)
TTL_7490(ic_c7, ic_f5b, SRST, SRST, low, low)
TTL_7490(ic_c7, ic_f5b, ic_c7.QA, SRST, SRST, low, low)
TTL_74107(ic_c8a, ic_c7.QD, high, high, SRSTQ)
SWITCH2(sw1a, high, ic_c7.QC)
PARAM(sw1a.POS, 0)
@ -557,7 +557,7 @@ static NETLIST_START(pong_schematics)
ALIAS(score1_10Q, ic_c8a.QQ)
TTL_7402_NOR(ic_f5a, R, Missed)
TTL_7490(ic_d7, ic_f5a, SRST, SRST, low, low)
TTL_7490(ic_d7, ic_f5a, ic_d7.QA, SRST, SRST, low, low)
TTL_74107(ic_c8b, ic_d7.QD, high, high, SRSTQ)
SWITCH2(sw1b, high, ic_d7.QC)
PARAM(sw1b.POS, 0)
@ -707,7 +707,7 @@ static NETLIST_START(pong_fast)
NETLIST_END()
#ifdef TESTSOUND
#ifdef TEST_SOUND
static NETLIST_START(test)
/*
@ -837,7 +837,7 @@ MACHINE_CONFIG_END
ROM_START( pong ) /* dummy to satisfy game entry*/
ROM_REGION( 0x10000, "maincpu", 0 ) /* enough for netlist */
ROM_LOAD( "pong.netlist", 0x000000, 0x0043d9, CRC(64edd5a0) SHA1(9e661f2fba44f46015fdccffa7766dd4e61cdc7d) )
ROM_LOAD( "pong.netlist", 0x000000, 17790 /*0x0043d9*/, CRC(64edd5a0) SHA1(9e661f2fba44f46015fdccffa7766dd4e61cdc7d) )
ROM_END
ROM_START( pongf ) /* dummy to satisfy game entry*/