mirror of
https://github.com/holub/mame
synced 2025-06-01 10:31:48 +03:00
Fixed minor bugs and removed a hack in 7490 code. Also added more pinouts.
This commit is contained in:
parent
dcd57f0f8b
commit
4633122377
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -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
|
||||
|
@ -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;
|
||||
|
33
src/emu/netlist/devices/nld_7430.c
Normal file
33
src/emu/netlist/devices/nld_7430.c
Normal 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();
|
||||
}
|
||||
|
@ -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_ */
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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_ */
|
||||
|
@ -99,6 +99,7 @@ NETLIB_START(7493_dip)
|
||||
register_subalias("14", A.m_I);
|
||||
}
|
||||
|
||||
|
||||
NETLIB_UPDATE(7493_dip)
|
||||
{
|
||||
NETLIB_NAME(7493)::update();
|
||||
|
@ -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*/
|
||||
|
Loading…
Reference in New Issue
Block a user