Converted 7411 into a macro device.

This commit is contained in:
couriersud 2016-05-03 23:16:09 +02:00
parent e85517d642
commit e93ebba837
7 changed files with 71 additions and 134 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_7411.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_7411.h",
MAME_DIR .. "src/lib/netlist/devices/nld_7420.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_7420.h",
MAME_DIR .. "src/lib/netlist/devices/nld_7425.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(7411, TTL_7411_AND, "+A,B,C")
ENTRY(7420, TTL_7420_NAND, "+A,B,C,D")
ENTRY(7425, TTL_7425_NOR, "+A,B,C,D")
ENTRY(7427, TTL_7427_NOR, "+A,B,C")
@ -133,7 +132,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(7411_dip, TTL_7411_DIP, "-")
ENTRY(7420_dip, TTL_7420_DIP, "-")
ENTRY(7425_dip, TTL_7425_DIP, "-")
ENTRY(7427_dip, TTL_7427_DIP, "-")

View File

@ -17,7 +17,6 @@
#include "nld_4020.h"
#include "nld_4066.h"
#include "nld_7411.h"
#include "nld_7420.h"
#include "nld_7425.h"
#include "nld_7427.h"

View File

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

View File

@ -1,65 +0,0 @@
// license:GPL-2.0+
// copyright-holders:Couriersud
/*
* nld_7411.h
*
* DM7411: Triple 3-Input AND Gates
*
* +--------------+
* A1 |1 ++ 14| VCC
* B1 |2 13| C1
* A2 |3 12| Y1
* B2 |4 7411 11| C3
* C2 |5 10| B3
* Y2 |6 9| A3
* GND |7 8| Y3
* +--------------+
*
* Y = ABC
* +---+---+---++---+
* | A | B | C || Y |
* +===+===+===++===+
* | X | X | 0 || 0 |
* | X | 0 | X || 0 |
* | 0 | X | X || 0 |
* | 1 | 1 | 1 || 1 |
* +---+---+---++---+
*
* Naming conventions follow National Semiconductor datasheet
*
*/
#ifndef NLD_7411_H_
#define NLD_7411_H_
#include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_7411_AND(_name, _I1, _I2, _I3) \
NET_REGISTER_DEV(TTL_7411_AND, _name) \
NET_CONNECT(_name, A, _I1) \
NET_CONNECT(_name, B, _I2) \
NET_CONNECT(_name, C, _I3)
#define TTL_7411_DIP(_name) \
NET_REGISTER_DEV(TTL_7411_DIP, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE)
NETLIB_TRUTHTABLE(7411, 3, 1, 0);
#else
NETLIB_SIGNAL(7411, 3, 0, 1);
#endif
NETLIB_DEVICE(7411_dip,
NETLIB_SUB(7411) m_1;
NETLIB_SUB(7411) m_2;
NETLIB_SUB(7411) m_3;
);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7411_H_ */

View File

@ -117,7 +117,7 @@ NETLIST_START(TTL_7404_DIP)
s3.A, /* A3 |5 10| Y5 */ s5.Q,
s3.Q, /* Y3 |6 9| A4 */ s4.A,
GND.I, /* GND |7 8| Y4 */ s4.Q
/* +--------------+ */
/* +--------------+ */
)
NETLIST_END()
@ -197,6 +197,43 @@ NETLIST_START(TTL_7410_DIP)
)
NETLIST_END()
/*
* DM7411: Triple 3-Input AND Gates
*
* Y = ABC
* +---+---+---++---+
* | A | B | C || Y |
* +===+===+===++===+
* | X | X | 0 || 0 |
* | X | 0 | X || 0 |
* | 0 | X | X || 0 |
* | 1 | 1 | 1 || 1 |
* +---+---+---++---+
*
* Naming conventions follow National Semiconductor datasheet
*
*/
NETLIST_START(TTL_7411_DIP)
TTL_7411_GATE(s1)
TTL_7411_GATE(s2)
TTL_7411_GATE(s3)
DUMMY_INPUT(GND)
DUMMY_INPUT(VCC)
DIPPINS( /* +--------------+ */
s1.A, /* A1 |1 ++ 14| VCC */ VCC.I,
s1.B, /* B1 |2 13| C1 */ s1.C,
s2.A, /* A2 |3 12| Y1 */ s1.Q,
s2.B, /* B2 |4 7400 11| C3 */ s3.C,
s2.C, /* C2 |5 10| B3 */ s3.B,
s2.Q, /* Y2 |6 9| A3 */ s3.A,
GND.I, /* GND |7 8| Y3 */ s3.Q
/* +--------------+ */
)
NETLIST_END()
/*
* DM7416: Hex Inverting Buffers with
* High Voltage Open-Collector Outputs
@ -290,7 +327,7 @@ NETLIST_START(TTL74XX_lib)
TT_FAMILY("74XX")
TRUTHTABLE_END()
TRUTHTABLE_START(TTL_7410_NAND, 3, 1, 0, "A,B")
TRUTHTABLE_START(TTL_7410_NAND, 3, 1, 0, "A,B,C")
TT_HEAD("A,B,C|Q ")
TT_LINE("0,X,X|1|22")
TT_LINE("X,0,X|1|22")
@ -308,6 +345,24 @@ NETLIST_START(TTL74XX_lib)
TT_FAMILY("74XX")
TRUTHTABLE_END()
TRUTHTABLE_START(TTL_7411_AND, 3, 1, 0, "A,B,C")
TT_HEAD("A,B,C|Q ")
TT_LINE("0,X,X|0|22")
TT_LINE("X,0,X|0|22")
TT_LINE("X,X,0|0|22")
TT_LINE("1,1,1|1|15")
TT_FAMILY("74XX")
TRUTHTABLE_END()
TRUTHTABLE_START(TTL_7411_GATE, 3, 1, 0, "")
TT_HEAD("A,B,C|Q ")
TT_LINE("0,X,X|0|22")
TT_LINE("X,0,X|0|22")
TT_LINE("X,X,0|0|22")
TT_LINE("1,1,1|1|15")
TT_FAMILY("74XX")
TRUTHTABLE_END()
TRUTHTABLE_START(TTL_7416_GATE, 1, 1, 0, "")
TT_HEAD(" A | Q ")
TT_LINE(" 0 | 1 |15")
@ -321,5 +376,6 @@ NETLIST_START(TTL74XX_lib)
LOCAL_LIB_ENTRY(TTL_7404_DIP)
LOCAL_LIB_ENTRY(TTL_7408_DIP)
LOCAL_LIB_ENTRY(TTL_7410_DIP)
LOCAL_LIB_ENTRY(TTL_7411_DIP)
LOCAL_LIB_ENTRY(TTL_7416_DIP)
NETLIST_END()

View File

@ -59,7 +59,7 @@
#define TTL_7410_GATE(_name) \
NET_REGISTER_DEV(TTL_7410_NAND, _name)
NET_REGISTER_DEV(TTL_7410_GATE, _name)
#define TTL_7410_NAND(_name, _I1, _I2, _I3) \
NET_REGISTER_DEV(TTL_7410_NAND, _name) \
@ -70,6 +70,18 @@
#define TTL_7410_DIP(_name) \
NET_REGISTER_DEV(TTL_7410_DIP, _name)
#define TTL_7411_GATE(_name) \
NET_REGISTER_DEV(TTL_7411_GATE, _name)
#define TTL_7411_AND(_name, _I1, _I2, _I3) \
NET_REGISTER_DEV(TTL_7411_AND, _name) \
NET_CONNECT(_name, A, _I1) \
NET_CONNECT(_name, B, _I2) \
NET_CONNECT(_name, C, _I3)
#define TTL_7411_DIP(_name) \
NET_REGISTER_DEV(TTL_7411_DIP, _name)
#define TTL_7416_GATE(_name) \
NET_REGISTER_DEV(TTL_7416_GATE, _name)