mirror of
https://github.com/holub/mame
synced 2025-06-30 16:00:01 +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_7425.h svneol=native#text/plain
|
||||||
src/emu/netlist/devices/nld_7427.c 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_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_7430.h svneol=native#text/plain
|
||||||
src/emu/netlist/devices/nld_7474.c 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
|
src/emu/netlist/devices/nld_7474.h svneol=native#text/plain
|
||||||
|
@ -97,7 +97,7 @@
|
|||||||
|
|
||||||
#define NETDEV_SOUND_OUT(_name, _v) \
|
#define NETDEV_SOUND_OUT(_name, _v) \
|
||||||
NET_REGISTER_DEV(sound, _name) \
|
NET_REGISTER_DEV(sound, _name) \
|
||||||
PARAM_name.CHAN, _v)
|
PARAM(_name.CHAN, _v)
|
||||||
|
|
||||||
|
|
||||||
class netlist_mame_device_t;
|
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);
|
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_ */
|
#endif /* NLD_7430_H_ */
|
||||||
|
@ -7,7 +7,8 @@
|
|||||||
|
|
||||||
NETLIB_START(7490)
|
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("R1", m_R1);
|
||||||
register_input("R2", m_R2);
|
register_input("R2", m_R2);
|
||||||
register_input("R91", m_R91);
|
register_input("R91", m_R91);
|
||||||
@ -27,6 +28,13 @@ NETLIB_RESET(7490)
|
|||||||
m_cnt = 0;
|
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)
|
NETLIB_UPDATE(7490)
|
||||||
{
|
{
|
||||||
if (INPLOGIC(m_R91) & INPLOGIC(m_R92))
|
if (INPLOGIC(m_R91) & INPLOGIC(m_R92))
|
||||||
@ -39,9 +47,14 @@ NETLIB_UPDATE(7490)
|
|||||||
m_cnt = 0;
|
m_cnt = 0;
|
||||||
update_outputs();
|
update_outputs();
|
||||||
}
|
}
|
||||||
else if (INP_HL(m_clk))
|
else if (INP_HL(m_A))
|
||||||
{
|
{
|
||||||
m_cnt++;
|
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)
|
if (m_cnt >= 10)
|
||||||
m_cnt = 0;
|
m_cnt = 0;
|
||||||
update_outputs();
|
update_outputs();
|
||||||
@ -50,7 +63,50 @@ NETLIB_UPDATE(7490)
|
|||||||
|
|
||||||
NETLIB_FUNC_VOID(7490, update_outputs, (void))
|
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++)
|
for (int i=0; i<4; i++)
|
||||||
OUTLOGIC(m_Q[i], (m_cnt >> i) & 1, delay[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"
|
#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_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, R1, _R1) \
|
||||||
NET_CONNECT(_name, R2, _R2) \
|
NET_CONNECT(_name, R2, _R2) \
|
||||||
NET_CONNECT(_name, R91, _R91) \
|
NET_CONNECT(_name, R91, _R91) \
|
||||||
NET_CONNECT(_name, R92, _R92)
|
NET_CONNECT(_name, R92, _R92)
|
||||||
|
|
||||||
|
#define TTL_7490_DIP(_name) \
|
||||||
|
NET_REGISTER_DEV(7490_dip, _name)
|
||||||
|
|
||||||
|
|
||||||
NETLIB_DEVICE(7490,
|
NETLIB_DEVICE(7490,
|
||||||
ATTR_HOT void update_outputs();
|
ATTR_HOT void update_outputs();
|
||||||
@ -73,11 +77,15 @@ NETLIB_DEVICE(7490,
|
|||||||
netlist_ttl_input_t m_R2;
|
netlist_ttl_input_t m_R2;
|
||||||
netlist_ttl_input_t m_R91;
|
netlist_ttl_input_t m_R91;
|
||||||
netlist_ttl_input_t m_R92;
|
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;
|
UINT8 m_cnt;
|
||||||
|
|
||||||
netlist_ttl_output_t m_Q[4];
|
netlist_ttl_output_t m_Q[4];
|
||||||
);
|
);
|
||||||
|
|
||||||
|
NETLIB_DEVICE_DERIVED(7490_dip, 7490,
|
||||||
|
);
|
||||||
|
|
||||||
#endif /* NLD_7490_H_ */
|
#endif /* NLD_7490_H_ */
|
||||||
|
@ -99,6 +99,7 @@ NETLIB_START(7493_dip)
|
|||||||
register_subalias("14", A.m_I);
|
register_subalias("14", A.m_I);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NETLIB_UPDATE(7493_dip)
|
NETLIB_UPDATE(7493_dip)
|
||||||
{
|
{
|
||||||
NETLIB_NAME(7493)::update();
|
NETLIB_NAME(7493)::update();
|
||||||
|
@ -542,7 +542,7 @@ static NETLIST_START(pong_schematics)
|
|||||||
// ----------------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
TTL_7402_NOR(ic_f5b, L, Missed)
|
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)
|
TTL_74107(ic_c8a, ic_c7.QD, high, high, SRSTQ)
|
||||||
SWITCH2(sw1a, high, ic_c7.QC)
|
SWITCH2(sw1a, high, ic_c7.QC)
|
||||||
PARAM(sw1a.POS, 0)
|
PARAM(sw1a.POS, 0)
|
||||||
@ -557,7 +557,7 @@ static NETLIST_START(pong_schematics)
|
|||||||
ALIAS(score1_10Q, ic_c8a.QQ)
|
ALIAS(score1_10Q, ic_c8a.QQ)
|
||||||
|
|
||||||
TTL_7402_NOR(ic_f5a, R, Missed)
|
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)
|
TTL_74107(ic_c8b, ic_d7.QD, high, high, SRSTQ)
|
||||||
SWITCH2(sw1b, high, ic_d7.QC)
|
SWITCH2(sw1b, high, ic_d7.QC)
|
||||||
PARAM(sw1b.POS, 0)
|
PARAM(sw1b.POS, 0)
|
||||||
@ -707,7 +707,7 @@ static NETLIST_START(pong_fast)
|
|||||||
|
|
||||||
NETLIST_END()
|
NETLIST_END()
|
||||||
|
|
||||||
#ifdef TESTSOUND
|
#ifdef TEST_SOUND
|
||||||
static NETLIST_START(test)
|
static NETLIST_START(test)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -837,7 +837,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
ROM_START( pong ) /* dummy to satisfy game entry*/
|
ROM_START( pong ) /* dummy to satisfy game entry*/
|
||||||
ROM_REGION( 0x10000, "maincpu", 0 ) /* enough for netlist */
|
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_END
|
||||||
|
|
||||||
ROM_START( pongf ) /* dummy to satisfy game entry*/
|
ROM_START( pongf ) /* dummy to satisfy game entry*/
|
||||||
|
Loading…
Reference in New Issue
Block a user