diff options
author | 2015-04-20 00:55:19 +0200 | |
---|---|---|
committer | 2015-04-20 00:55:19 +0200 | |
commit | 67d69aa02d91189dad82646ef89e6f789481c475 (patch) | |
tree | 63abd6a2de4e8cf0bfc64486a59bcc722565155a | |
parent | 4793f59507fcfd9c93a75467b328da532205a6d2 (diff) |
Add 9312/DM9312 to netlist. [Couriersud]
-rw-r--r-- | scripts/src/netlist.lua | 2 | ||||
-rw-r--r-- | src/emu/netlist/devices/net_lib.c | 2 | ||||
-rw-r--r-- | src/emu/netlist/devices/net_lib.h | 1 | ||||
-rw-r--r-- | src/emu/netlist/devices/nld_9312.c | 87 | ||||
-rw-r--r-- | src/emu/netlist/devices/nld_9312.h | 58 |
5 files changed, 150 insertions, 0 deletions
diff --git a/scripts/src/netlist.lua b/scripts/src/netlist.lua index be502f5ba5c..2db67d68526 100644 --- a/scripts/src/netlist.lua +++ b/scripts/src/netlist.lua @@ -83,6 +83,8 @@ files { MAME_DIR .. "src/emu/netlist/devices/nld_74153.h", MAME_DIR .. "src/emu/netlist/devices/nld_74ls629.c", MAME_DIR .. "src/emu/netlist/devices/nld_74ls629.h", + MAME_DIR .. "src/emu/netlist/devices/nld_9312.c", + MAME_DIR .. "src/emu/netlist/devices/nld_9312.h", MAME_DIR .. "src/emu/netlist/devices/nld_9316.c", MAME_DIR .. "src/emu/netlist/devices/nld_9316.h", MAME_DIR .. "src/emu/netlist/devices/nld_ne555.c", diff --git a/src/emu/netlist/devices/net_lib.c b/src/emu/netlist/devices/net_lib.c index 4c8e22d685b..1ef800e524b 100644 --- a/src/emu/netlist/devices/net_lib.c +++ b/src/emu/netlist/devices/net_lib.c @@ -117,6 +117,7 @@ void nl_initialize_factory(netlist_factory_t &factory) ENTRY(74123, TTL_74123, "-") ENTRY(74153, TTL_74153, "+C0,C1,C2,C3,A,B,G") ENTRY(SN74LS629, SN74LS629, "CAP") + ENTRY(9312, TTL_9312, "-") ENTRY(9316, TTL_9316, "+CLK,ENP,ENT,CLRQ,LOADQ,A,B,C,D") ENTRY(NE555, NE555, "-") ENTRY(r2r_dac, R2R_DAC, "+VIN,R,N") @@ -145,6 +146,7 @@ void nl_initialize_factory(netlist_factory_t &factory) ENTRY(74123_dip, TTL_74123_DIP, "-") ENTRY(74153_dip, TTL_74153_DIP, "-") ENTRY(9602_dip, TTL_9602_DIP, "-") + ENTRY(9312_dip, TTL_9312_DIP, "-") ENTRY(9316_dip, TTL_9316_DIP, "-") ENTRY(SN74LS629_dip, SN74LS629_DIP, "1.CAP1,2.CAP2") ENTRY(NE555_dip, NE555_DIP, "-") diff --git a/src/emu/netlist/devices/net_lib.h b/src/emu/netlist/devices/net_lib.h index f3db97584fe..f66da6bb441 100644 --- a/src/emu/netlist/devices/net_lib.h +++ b/src/emu/netlist/devices/net_lib.h @@ -79,6 +79,7 @@ #include "nld_74123.h" #include "nld_74153.h" #include "nld_74ls629.h" +#include "nld_9312.h" #include "nld_9316.h" #include "nld_ne555.h" diff --git a/src/emu/netlist/devices/nld_9312.c b/src/emu/netlist/devices/nld_9312.c new file mode 100644 index 00000000000..6651848e3a9 --- /dev/null +++ b/src/emu/netlist/devices/nld_9312.c @@ -0,0 +1,87 @@ +/* + * nld_9312.c + * + */ + +/* + * +---+---+---+---++---+---+ + * | C | B | A | G || Y | YQ| + * +===+===+===+===++===+===+ + * | X | X | X | 1 || 0| 1 | + * | 0 | 0 | 0 | 0 || D0|D0Q| + * | 0 | 0 | 1 | 0 || D1|D1Q| + * | 0 | 1 | 0 | 0 || D2|D2Q| + * | 0 | 1 | 1 | 0 || D3|D3Q| + * | 1 | 0 | 0 | 0 || D4|D4Q| + * | 1 | 0 | 1 | 0 || D5|D5Q| + * | 1 | 1 | 0 | 0 || D6|D6Q| + * | 1 | 1 | 1 | 0 || D7|D7Q| + * +---+---+---+---++---+---+ +*/ +#include "nld_9312.h" + +//#if (USE_TRUTHTABLE) +nld_9312::truthtable_t nld_9312::m_ttbl; + +/* FIXME: Data changes are propagating faster than changing selects A,B,C + * Please refer to data sheet. + * This would require a state machine, thus we do not + * do this right now. + */ + +const char *nld_9312::m_desc[] = { + " C, B, A, G,D0,D1,D2,D3,D4,D5,D6,D7| Y,YQ", + " X, X, X, 1, X, X, X, X, X, X, X, X| 0, 1|33,19", + " 0, 0, 0, 0, 0, X, X, X, X, X, X, X| 0, 1|33,28", + " 0, 0, 0, 0, 1, X, X, X, X, X, X, X| 1, 0|33,28", + " 0, 0, 1, 0, X, 0, X, X, X, X, X, X| 0, 1|33,28", + " 0, 0, 1, 0, X, 1, X, X, X, X, X, X| 1, 0|33,28", + " 0, 1, 0, 0, X, X, 0, X, X, X, X, X| 0, 1|33,28", + " 0, 1, 0, 0, X, X, 1, X, X, X, X, X| 1, 0|33,28", + " 0, 1, 1, 0, X, X, X, 0, X, X, X, X| 0, 1|33,28", + " 0, 1, 1, 0, X, X, X, 1, X, X, X, X| 1, 0|33,28", + " 1, 0, 0, 0, X, X, X, X, 0, X, X, X| 0, 1|33,28", + " 1, 0, 0, 0, X, X, X, X, 1, X, X, X| 1, 0|33,28", + " 1, 0, 1, 0, X, X, X, X, X, 0, X, X| 0, 1|33,28", + " 1, 0, 1, 0, X, X, X, X, X, 1, X, X| 1, 0|33,28", + " 1, 1, 0, 0, X, X, X, X, X, X, 0, X| 0, 1|33,28", + " 1, 1, 0, 0, X, X, X, X, X, X, 1, X| 1, 0|33,28", + " 1, 1, 1, 0, X, X, X, X, X, X, X, 0| 0, 1|33,28", + " 1, 1, 1, 0, X, X, X, X, X, X, X, 1| 1, 0|33,28", + "" +}; +//#endif + + +NETLIB_START(9312_dip) +{ + register_sub(m_sub, "1"); + + register_subalias("13", m_sub.m_i[0]); + register_subalias("12", m_sub.m_i[1]); + register_subalias("11", m_sub.m_i[2]); + register_subalias("10", m_sub.m_i[3]); + + register_subalias("1", m_sub.m_i[4]); + register_subalias("2", m_sub.m_i[5]); + register_subalias("3", m_sub.m_i[6]); + register_subalias("4", m_sub.m_i[7]); + register_subalias("5", m_sub.m_i[8]); + register_subalias("6", m_sub.m_i[9]); + register_subalias("7", m_sub.m_i[10]); + register_subalias("9", m_sub.m_i[11]); + + register_subalias("15", m_sub.m_Q[0]); // Y + register_subalias("14", m_sub.m_Q[1]); // YQ +} + +NETLIB_UPDATE(9312_dip) +{ + /* only called during startup */ + m_sub.update_dev(); +} + +NETLIB_RESET(9312_dip) +{ + m_sub.do_reset(); +} diff --git a/src/emu/netlist/devices/nld_9312.h b/src/emu/netlist/devices/nld_9312.h new file mode 100644 index 00000000000..98fd0c7177d --- /dev/null +++ b/src/emu/netlist/devices/nld_9312.h @@ -0,0 +1,58 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud +/* + * nld_9312.h + * + * DM9312: One of Eight Line Data Selectors/Multiplexers + * + * +--------------+ + * D0 |1 ++ 16| VCC + * D1 |2 15| Y + * D2 |3 14| YQ + * D3 |4 9312 13| C + * D4 |5 12| B + * D5 |6 11| A + * D6 |7 10| G Strobe + * GND |8 9| D7 + * +--------------+ + * __ + * +---+---+---+---++---+---+ + * | C | B | A | G || Y | YQ| + * +===+===+===+===++===+===+ + * | X | X | X | 1 || 0| 1 | + * | 0 | 0 | 0 | 0 || D0|D0Q| + * | 0 | 0 | 1 | 0 || D1|D1Q| + * | 0 | 1 | 0 | 0 || D2|D2Q| + * | 0 | 1 | 1 | 0 || D3|D3Q| + * | 1 | 0 | 0 | 0 || D4|D4Q| + * | 1 | 0 | 1 | 0 || D5|D5Q| + * | 1 | 1 | 0 | 0 || D6|D6Q| + * | 1 | 1 | 1 | 0 || D7|D7Q| + * +---+---+---+---++---+---+ + * + * Naming conventions follow National Semiconductor datasheet + * + */ + +#ifndef NLD_9312_H_ +#define NLD_9312_H_ + +#include "nld_signal.h" + +#define TTL_9312(_name) \ + NET_REGISTER_DEV(9312, _name) \ + +//#if (USE_TRUTHTABLE) +#include "nld_truthtable.h" +NETLIB_TRUTHTABLE(9312, 12, 2, 0); +//#endif + + +#define TTL_9312_DIP(_name) \ + NET_REGISTER_DEV(9312_dip, _name) + +NETLIB_DEVICE(9312_dip, + NETLIB_NAME(9312) m_sub; +); + +#endif /* NLD_9312_H_ */ |