Convert 7432 to macro device.

This commit is contained in:
couriersud 2016-05-04 00:51:51 +02:00
parent 1ea05793be
commit a920da0ec3
7 changed files with 86 additions and 151 deletions

View File

@ -92,8 +92,6 @@ project "netlist"
MAME_DIR .. "src/lib/netlist/devices/nld_7425.h", 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.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_7430.h", MAME_DIR .. "src/lib/netlist/devices/nld_7430.h",
MAME_DIR .. "src/lib/netlist/devices/nld_7432.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_7432.h",
MAME_DIR .. "src/lib/netlist/devices/nld_7448.cpp", MAME_DIR .. "src/lib/netlist/devices/nld_7448.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_7448.h", MAME_DIR .. "src/lib/netlist/devices/nld_7448.h",
MAME_DIR .. "src/lib/netlist/devices/nld_7450.cpp", MAME_DIR .. "src/lib/netlist/devices/nld_7450.cpp",

View File

@ -101,7 +101,6 @@ void initialize_factory(factory_list_t &factory)
ENTRY(7420, TTL_7420_NAND, "+A,B,C,D") ENTRY(7420, TTL_7420_NAND, "+A,B,C,D")
ENTRY(7425, TTL_7425_NOR, "+A,B,C,D") ENTRY(7425, TTL_7425_NOR, "+A,B,C,D")
ENTRY(7430, TTL_7430_NAND, "+A,B,C,D,E,F,G,H") ENTRY(7430, TTL_7430_NAND, "+A,B,C,D,E,F,G,H")
ENTRY(7432, TTL_7432_OR, "+A,B")
ENTRY(7450, TTL_7450_ANDORINVERT, "+A,B,C,D") ENTRY(7450, TTL_7450_ANDORINVERT, "+A,B,C,D")
ENTRY(7486, TTL_7486_XOR, "+A,B") ENTRY(7486, TTL_7486_XOR, "+A,B")
ENTRY(7448, TTL_7448, "+A,B,C,D,LTQ,BIQ,RBIQ") ENTRY(7448, TTL_7448, "+A,B,C,D,LTQ,BIQ,RBIQ")
@ -133,7 +132,6 @@ void initialize_factory(factory_list_t &factory)
ENTRY(7420_dip, TTL_7420_DIP, "-") ENTRY(7420_dip, TTL_7420_DIP, "-")
ENTRY(7425_dip, TTL_7425_DIP, "-") ENTRY(7425_dip, TTL_7425_DIP, "-")
ENTRY(7430_dip, TTL_7430_DIP, "-") ENTRY(7430_dip, TTL_7430_DIP, "-")
ENTRY(7432_dip, TTL_7432_DIP, "-")
ENTRY(7448_dip, TTL_7448_DIP, "-") ENTRY(7448_dip, TTL_7448_DIP, "-")
ENTRY(7450_dip, TTL_7450_DIP, "-") ENTRY(7450_dip, TTL_7450_DIP, "-")
ENTRY(7474_dip, TTL_7474_DIP, "-") ENTRY(7474_dip, TTL_7474_DIP, "-")

View File

@ -19,7 +19,6 @@
#include "nld_7420.h" #include "nld_7420.h"
#include "nld_7425.h" #include "nld_7425.h"
#include "nld_7430.h" #include "nld_7430.h"
#include "nld_7432.h"
#include "nld_7448.h" #include "nld_7448.h"
#include "nld_7450.h" #include "nld_7450.h"
#include "nld_7474.h" #include "nld_7474.h"

View File

@ -1,65 +0,0 @@
// license:GPL-2.0+
// copyright-holders:Couriersud
/*
* nld_7432.c
*
*/
#include "nld_7432.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE)
nld_7432::truthtable_t nld_7432::m_ttbl;
const char *nld_7432::m_desc[] = {
"A,B|Q ",
"1,X|1|22",
"0,1|1|22",
"0,0|0|15",
""
};
#endif
NETLIB_START(7432_dip)
{
register_sub("1", m_1);
register_sub("2", m_2);
register_sub("3", m_3);
register_sub("4", m_4);
register_subalias("3", m_1->m_Q[0]);
register_subalias("1", m_1->m_I[0]);
register_subalias("2", m_1->m_I[1]);
register_subalias("6", m_2->m_Q[0]);
register_subalias("4", m_2->m_I[0]);
register_subalias("5", m_2->m_I[1]);
register_subalias("9", m_3->m_I[0]);
register_subalias("10", m_3->m_I[1]);
register_subalias("8", m_3->m_Q[0]);
register_subalias("12", m_4->m_I[0]);
register_subalias("13", m_4->m_I[1]);
register_subalias("11", m_4->m_Q[0]);
}
NETLIB_UPDATE(7432_dip)
{
/* only called during startup */
m_1->update_dev();
m_2->update_dev();
m_3->update_dev();
m_4->update_dev();
}
NETLIB_RESET(7432_dip)
{
m_1->do_reset();
m_2->do_reset();
m_3->do_reset();
m_4->do_reset();
}
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -1,64 +0,0 @@
// license:GPL-2.0+
// copyright-holders:Couriersud
/*
* nld_7432.h
*
* DM7432: Quad 2-Input OR Gates
*
* +--------------+
* A1 |1 ++ 14| VCC
* B1 |2 13| B4
* Y1 |3 12| A4
* A2 |4 7432 11| Y4
* B2 |5 10| B3
* Y2 |6 9| A3
* GND |7 8| Y3
* +--------------+
* ___
* Y = A+B
* +---+---++---+
* | A | B || Y |
* +===+===++===+
* | 0 | 0 || 0 |
* | 0 | 1 || 1 |
* | 1 | 0 || 1 |
* | 1 | 1 || 1 |
* +---+---++---+
*
* Naming conventions follow National Semiconductor datasheet
*
*/
#ifndef NLD_7432_H_
#define NLD_7432_H_
#include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_7432_OR(_name, _I1, _I2) \
NET_REGISTER_DEV(TTL_7432_OR, _name) \
NET_CONNECT(_name, A, _I1) \
NET_CONNECT(_name, B, _I2)
#define TTL_7432_DIP(_name) \
NET_REGISTER_DEV(TTL_7432_DIP, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE)
NETLIB_TRUTHTABLE(7432, 2, 1, 0);
#else
NETLIB_SIGNAL(7432, 2, 1, 1);
#endif
NETLIB_DEVICE(7432_dip,
NETLIB_SUB(7432) m_1;
NETLIB_SUB(7432) m_2;
NETLIB_SUB(7432) m_3;
NETLIB_SUB(7432) m_4;
);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7432_H_ */

View File

@ -302,7 +302,47 @@ NETLIST_START(TTL_7427_DIP)
NETLIST_END() NETLIST_END()
/* /*
* DM7400: Quad 2-Input NAND Gates * DM7432: Quad 2-Input OR Gates
*
* ___
* Y = A+B
* +---+---++---+
* | A | B || Y |
* +===+===++===+
* | 0 | 0 || 0 |
* | 0 | 1 || 1 |
* | 1 | 0 || 1 |
* | 1 | 1 || 1 |
* +---+---++---+
*
* Naming conventions follow National Semiconductor datasheet
*
*/
NETLIST_START(TTL_7432_DIP)
TTL_7432_GATE(s1)
TTL_7432_GATE(s2)
TTL_7432_GATE(s3)
TTL_7432_GATE(s4)
DUMMY_INPUT(GND)
DUMMY_INPUT(VCC)
DIPPINS( /* +--------------+ */
s1.A, /* A1 |1 ++ 14| VCC */ VCC.I,
s1.B, /* B1 |2 13| B4 */ s4.B,
s1.Q, /* Y1 |3 12| A4 */ s4.A,
s2.A, /* A2 |4 7400 11| Y4 */ s4.Q,
s2.B, /* B2 |5 10| B3 */ s3.B,
s2.Q, /* Y2 |6 9| A3 */ s3.A,
GND.I, /* GND |7 8| Y3 */ s3.Q
/* +--------------+ */
)
NETLIST_END()
/*
* DM7437: Quad 2-Input NAND Gates
* *
* __ * __
* Y = AB * Y = AB
@ -427,19 +467,19 @@ NETLIST_START(TTL74XX_lib)
TRUTHTABLE_START(TTL_7411_AND, 3, 1, 0, "A,B,C") TRUTHTABLE_START(TTL_7411_AND, 3, 1, 0, "A,B,C")
TT_HEAD("A,B,C|Q ") TT_HEAD("A,B,C|Q ")
TT_LINE("0,X,X|0|22") TT_LINE("0,X,X|0|15")
TT_LINE("X,0,X|0|22") TT_LINE("X,0,X|0|15")
TT_LINE("X,X,0|0|22") TT_LINE("X,X,0|0|15")
TT_LINE("1,1,1|1|15") TT_LINE("1,1,1|1|22")
TT_FAMILY("74XX") TT_FAMILY("74XX")
TRUTHTABLE_END() TRUTHTABLE_END()
TRUTHTABLE_START(TTL_7411_GATE, 3, 1, 0, "") TRUTHTABLE_START(TTL_7411_GATE, 3, 1, 0, "")
TT_HEAD("A,B,C|Q ") TT_HEAD("A,B,C|Q ")
TT_LINE("0,X,X|0|22") TT_LINE("0,X,X|0|15")
TT_LINE("X,0,X|0|22") TT_LINE("X,0,X|0|15")
TT_LINE("X,X,0|0|22") TT_LINE("X,X,0|0|15")
TT_LINE("1,1,1|1|15") TT_LINE("1,1,1|1|22")
TT_FAMILY("74XX") TT_FAMILY("74XX")
TRUTHTABLE_END() TRUTHTABLE_END()
@ -453,19 +493,35 @@ NETLIST_START(TTL74XX_lib)
TRUTHTABLE_START(TTL_7427_GATE, 3, 1, 0, "") TRUTHTABLE_START(TTL_7427_GATE, 3, 1, 0, "")
TT_HEAD("A,B,C|Q ") TT_HEAD("A,B,C|Q ")
TT_LINE("1,X,X|0|22") TT_LINE("1,X,X|0|15")
TT_LINE("X,1,X|0|22") TT_LINE("X,1,X|0|15")
TT_LINE("X,X,1|0|22") TT_LINE("X,X,1|0|15")
TT_LINE("0,0,0|1|15") TT_LINE("0,0,0|1|22")
TT_FAMILY("74XX") TT_FAMILY("74XX")
TRUTHTABLE_END() TRUTHTABLE_END()
TRUTHTABLE_START(TTL_7427_NOR, 3, 1, 0, "A,B,C") TRUTHTABLE_START(TTL_7427_NOR, 3, 1, 0, "A,B,C")
TT_HEAD("A,B,C|Q ") TT_HEAD("A,B,C|Q ")
TT_LINE("1,X,X|0|22") TT_LINE("1,X,X|0|15")
TT_LINE("X,1,X|0|22") TT_LINE("X,1,X|0|15")
TT_LINE("X,X,1|0|22") TT_LINE("X,X,1|0|15")
TT_LINE("0,0,0|1|15") TT_LINE("0,0,0|1|22")
TT_FAMILY("74XX")
TRUTHTABLE_END()
TRUTHTABLE_START(TTL_7432_GATE, 2, 1, 0, "")
TT_HEAD("A,B|Q ")
TT_LINE("1,X|1|22")
TT_LINE("X,1|1|22")
TT_LINE("0,0|0|15")
TT_FAMILY("74XX")
TRUTHTABLE_END()
TRUTHTABLE_START(TTL_7432_OR, 2, 1, 0, "A,B")
TT_HEAD("A,B|Q ")
TT_LINE("1,X|1|22")
TT_LINE("X,1|1|22")
TT_LINE("0,0|0|15")
TT_FAMILY("74XX") TT_FAMILY("74XX")
TRUTHTABLE_END() TRUTHTABLE_END()
@ -497,5 +553,6 @@ NETLIST_START(TTL74XX_lib)
LOCAL_LIB_ENTRY(TTL_7411_DIP) LOCAL_LIB_ENTRY(TTL_7411_DIP)
LOCAL_LIB_ENTRY(TTL_7416_DIP) LOCAL_LIB_ENTRY(TTL_7416_DIP)
LOCAL_LIB_ENTRY(TTL_7427_DIP) LOCAL_LIB_ENTRY(TTL_7427_DIP)
LOCAL_LIB_ENTRY(TTL_7432_DIP)
LOCAL_LIB_ENTRY(TTL_7437_DIP) LOCAL_LIB_ENTRY(TTL_7437_DIP)
NETLIST_END() NETLIST_END()

View File

@ -104,6 +104,18 @@
NET_REGISTER_DEV(TTL_7427_DIP, _name) NET_REGISTER_DEV(TTL_7427_DIP, _name)
#define TTL_7432_GATE(_name) \
NET_REGISTER_DEV(TTL_7432_OR, _name)
#define TTL_7432_OR(_name, _I1, _I2) \
NET_REGISTER_DEV(TTL_7432_OR, _name) \
NET_CONNECT(_name, A, _I1) \
NET_CONNECT(_name, B, _I2)
#define TTL_7432_DIP(_name) \
NET_REGISTER_DEV(TTL_7432_DIP, _name)
#define TTL_7437_GATE(_name) \ #define TTL_7437_GATE(_name) \
NET_REGISTER_DEV(TTL_7437_GATE, _name) NET_REGISTER_DEV(TTL_7437_GATE, _name)