Convert 7425 to macro modul

This commit is contained in:
couriersud 2016-05-05 14:36:47 +02:00
parent 87541ec5ca
commit 38d3050da0
7 changed files with 77 additions and 118 deletions

View File

@ -86,8 +86,6 @@ project "netlist"
MAME_DIR .. "src/lib/netlist/devices/nld_4020.h",
MAME_DIR .. "src/lib/netlist/devices/nld_4066.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_4066.h",
MAME_DIR .. "src/lib/netlist/devices/nld_7425.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_7425.h",
MAME_DIR .. "src/lib/netlist/devices/nld_7430.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_7430.h",
MAME_DIR .. "src/lib/netlist/devices/nld_7448.cpp",

View File

@ -98,7 +98,6 @@ void initialize_factory(factory_list_t &factory)
ENTRY(switch2, SWITCH2, "-")
ENTRY(nicRSFF, NETDEV_RSFF, "+S,R")
ENTRY(nicDelay, NETDEV_DELAY, "-")
ENTRY(7425, TTL_7425_NOR, "+A,B,C,D")
ENTRY(7430, TTL_7430_NAND, "+A,B,C,D,E,F,G,H")
ENTRY(7450, TTL_7450_ANDORINVERT, "+A,B,C,D")
ENTRY(7486, TTL_7486_XOR, "+A,B")
@ -128,7 +127,6 @@ void initialize_factory(factory_list_t &factory)
ENTRY(NE555, NE555, "-")
ENTRY(r2r_dac, R2R_DAC, "+VIN,R,N")
ENTRY(4538_dip, CD4538_DIP, "-")
ENTRY(7425_dip, TTL_7425_DIP, "-")
ENTRY(7430_dip, TTL_7430_DIP, "-")
ENTRY(7448_dip, TTL_7448_DIP, "-")
ENTRY(7450_dip, TTL_7450_DIP, "-")

View File

@ -16,7 +16,6 @@
#include "nld_4020.h"
#include "nld_4066.h"
#include "nld_7425.h"
#include "nld_7430.h"
#include "nld_7448.h"
#include "nld_7450.h"

View File

@ -1,50 +0,0 @@
// license:GPL-2.0+
// copyright-holders:Couriersud
/*
* nld_7425.c
*
*/
#include "nld_7425.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(7425_dip)
{
register_sub("1", m_1);
register_sub("2", m_2);
register_subalias("1", m_1->m_I[0]);
register_subalias("2", m_1->m_I[1]);
//register_subalias("3", ); X1 ==> NC
register_subalias("4", m_1->m_I[2]);
register_subalias("5", m_1->m_I[3]);
register_subalias("6", m_1->m_Q[0]);
register_subalias("8", m_2->m_Q[0]);
register_subalias("9", m_2->m_I[0]);
register_subalias("10", m_2->m_I[1]);
//register_subalias("11", ); X2 ==> NC
register_subalias("12", m_2->m_I[2]);
register_subalias("13", m_2->m_I[3]);
}
NETLIB_UPDATE(7425_dip)
{
/* only called during startup */
m_1->update_dev();
m_2->update_dev();
}
NETLIB_RESET(7425_dip)
{
m_1->do_reset();
m_2->do_reset();
}
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -1,63 +0,0 @@
// license:GPL-2.0+
// copyright-holders:Couriersud
/*
* nld_7425.h
*
* DM7425: Dual 4-Input NOR Gates
*
* +--------------+
* A1 |1 ++ 14| VCC
* B1 |2 13| D2
* X1 |3 12| C2
* C1 |4 7425 11| X2
* D1 |5 10| B2
* Y1 |6 9| A2
* GND |7 8| Y2
* +--------------+
* _______
* Y = A+B+C+D
* +---+---+---+---+---++---+
* | A | B | C | D | X || Y |
* +===+===+===+===+===++===+
* | X | X | X | X | 0 || Z |
* | 0 | 0 | 0 | 0 | 1 || 1 |
* | X | X | X | 1 | 1 || 0 |
* | X | X | 1 | X | 1 || 0 |
* | X | 1 | X | X | 1 || 0 |
* | 1 | X | X | X | 1 || 0 |
* +---+---+---+---+---++---+
*
* TODO: The "X" input and high impedance output are currently not simulated.
*
* Naming conventions follow National Semiconductor datasheet
*
*/
#ifndef NLD_7425_H_
#define NLD_7425_H_
#include "nld_signal.h"
#define TTL_7425_NOR(_name, _I1, _I2, _I3, _I4) \
NET_REGISTER_DEV(TTL_7425_NOR, _name) \
NET_CONNECT(_name, A, _I1) \
NET_CONNECT(_name, B, _I2) \
NET_CONNECT(_name, C, _I3) \
NET_CONNECT(_name, D, _I4)
#define TTL_7425_DIP(_name) \
NET_REGISTER_DEV(TTL_7425_DIP, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_SIGNAL(7425, 4, 1, 0);
NETLIB_DEVICE(7425_dip,
NETLIB_SUB(7425) m_1;
NETLIB_SUB(7425) m_2;
);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7425_H_ */

View File

@ -301,6 +301,48 @@ NETLIST_START(TTL_7420_DIP)
)
NETLIST_END()
/*
* DM7425: Dual 4-Input NOR Gates
*
* _______
* Y = A+B+C+D
* +---+---+---+---+---++---+
* | A | B | C | D | X || Y |
* +===+===+===+===+===++===+
* | X | X | X | X | 0 || Z |
* | 0 | 0 | 0 | 0 | 1 || 1 |
* | X | X | X | 1 | 1 || 0 |
* | X | X | 1 | X | 1 || 0 |
* | X | 1 | X | X | 1 || 0 |
* | 1 | X | X | X | 1 || 0 |
* +---+---+---+---+---++---+
*
* FIXME: The "X" input and high impedance output are currently not simulated.
*
* Naming conventions follow National Semiconductor datasheet
*
*/
NETLIST_START(TTL_7425_DIP)
TTL_7425_GATE(s1)
TTL_7425_GATE(s2)
DUMMY_INPUT(GND)
DUMMY_INPUT(VCC)
DUMMY_INPUT(X)
DIPPINS( /* +--------------+ */
s1.A, /* A1 |1 ++ 14| VCC */ VCC.I,
s1.B, /* B1 |2 13| D2 */ s2.D,
X.I, /* X1 |3 12| C2 */ s2.C,
s1.C, /* C1 |4 7425 11| X2 */ X.I,
s1.D, /* D1 |5 10| B2 */ s2.B,
s1.Q, /* Y1 |6 9| A2 */ s2.A,
GND.I, /* GND |7 8| Y2 */ s2.Q
/* +--------------+ */
)
NETLIST_END()
/*
* DM7427: Triple 3-Input NOR Gates
*
@ -549,6 +591,26 @@ NETLIST_START(TTL74XX_lib)
TT_FAMILY("74XX")
TRUTHTABLE_END()
TRUTHTABLE_START(TTL_7425_GATE, 4, 1, 0, "")
TT_HEAD("A,B,C,D|Q ")
TT_LINE("1,X,X,X|0|15")
TT_LINE("X,1,X,X|0|15")
TT_LINE("X,X,1,X|0|15")
TT_LINE("X,X,X,1|0|15")
TT_LINE("0,0,0,0|1|22")
TT_FAMILY("74XX")
TRUTHTABLE_END()
TRUTHTABLE_START(TTL_7425_NOR, 4, 1, 0, "A,B,C,D")
TT_HEAD("A,B,C,D|Q ")
TT_LINE("1,X,X,X|0|15")
TT_LINE("X,1,X,X|0|15")
TT_LINE("X,X,1,X|0|15")
TT_LINE("X,X,X,1|0|15")
TT_LINE("0,0,0,0|1|22")
TT_FAMILY("74XX")
TRUTHTABLE_END()
TRUTHTABLE_START(TTL_7427_GATE, 3, 1, 0, "")
TT_HEAD("A,B,C|Q ")
TT_LINE("1,X,X|0|15")
@ -611,6 +673,7 @@ NETLIST_START(TTL74XX_lib)
LOCAL_LIB_ENTRY(TTL_7411_DIP)
LOCAL_LIB_ENTRY(TTL_7416_DIP)
LOCAL_LIB_ENTRY(TTL_7420_DIP)
LOCAL_LIB_ENTRY(TTL_7425_DIP)
LOCAL_LIB_ENTRY(TTL_7427_DIP)
LOCAL_LIB_ENTRY(TTL_7432_DIP)
LOCAL_LIB_ENTRY(TTL_7437_DIP)

View File

@ -105,6 +105,20 @@
NET_REGISTER_DEV(TTL_7420_DIP, _name)
#define TTL_7425_GATE(_name) \
NET_REGISTER_DEV(TTL_7425_GATE, _name)
#define TTL_7425_NOR(_name, _I1, _I2, _I3, _I4) \
NET_REGISTER_DEV(TTL_7425_NOR, _name) \
NET_CONNECT(_name, A, _I1) \
NET_CONNECT(_name, B, _I2) \
NET_CONNECT(_name, C, _I3) \
NET_CONNECT(_name, D, _I4)
#define TTL_7425_DIP(_name) \
NET_REGISTER_DEV(TTL_7425_DIP, _name)
#define TTL_7427_GATE(_name) \
NET_REGISTER_DEV(TTL_7427_GATE, _name)