summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatarGravatar Ryan Holtz <ryan.holtz@arrowheadgs.com>2020-08-15 14:52:53 +0200
committerGravatarGravatar Ryan Holtz <ryan.holtz@arrowheadgs.com>2020-08-15 14:52:53 +0200
commitae0841e6356ff2668ada2b4fcd797ecd3972e65c (patch)
tree0c74a5d186d069bc6f0f172f9bd473a200bf53a0
parent03f3e1ff42f4171d7ef8f484b5b4843183e95a17 (diff)
atarittl: Added netlist for Tank. Does not compile because of some error that should not happen.mog-tank
-rw-r--r--scripts/src/netlist.lua6
-rw-r--r--scripts/target/mame/arcade.lua2
-rw-r--r--src/lib/netlist/devices/net_lib.cpp6
-rw-r--r--src/lib/netlist/devices/net_lib.h1
-rw-r--r--src/lib/netlist/devices/nld_74193.cpp2
-rw-r--r--src/lib/netlist/devices/nld_8277.cpp204
-rw-r--r--src/lib/netlist/devices/nld_8277.h27
-rw-r--r--src/lib/netlist/devices/nld_9321.cpp103
-rw-r--r--src/lib/netlist/devices/nld_9321.h16
-rw-r--r--src/lib/netlist/devices/nld_devinc.h34
-rw-r--r--src/lib/netlist/devices/nld_roms.cpp85
-rw-r--r--src/lib/netlist/devices/nld_roms.h4
-rw-r--r--src/lib/netlist/macro/nlm_roms_lib.cpp47
-rw-r--r--src/lib/netlist/macro/nlm_roms_lib.h3
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx_lib.cpp64
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx_lib.h3
-rw-r--r--src/mame/audio/nl_flyball.cpp5
-rw-r--r--src/mame/drivers/atarittl.cpp123
-rw-r--r--src/mame/machine/nl_stuntcyc.h6
-rw-r--r--src/mame/machine/nl_tank.cpp1849
-rw-r--r--src/mame/machine/nl_tank.h12
21 files changed, 2550 insertions, 52 deletions
diff --git a/scripts/src/netlist.lua b/scripts/src/netlist.lua
index b19928aa464..7e3b1c3c8e5 100644
--- a/scripts/src/netlist.lua
+++ b/scripts/src/netlist.lua
@@ -219,9 +219,13 @@ project "netlist"
MAME_DIR .. "src/lib/netlist/devices/nld_82S16.h",
MAME_DIR .. "src/lib/netlist/devices/nld_82S115.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_82S115.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_8277.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_8277.h",
MAME_DIR .. "src/lib/netlist/devices/nld_9310.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_9316.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_9316.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_9321.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_9321.h",
MAME_DIR .. "src/lib/netlist/devices/nld_9322.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_9322.h",
MAME_DIR .. "src/lib/netlist/devices/nld_am2847.cpp",
@@ -230,6 +234,8 @@ project "netlist"
MAME_DIR .. "src/lib/netlist/devices/nld_dm9314.h",
MAME_DIR .. "src/lib/netlist/devices/nld_dm9334.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_dm9334.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_9321.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_9321.h",
MAME_DIR .. "src/lib/netlist/devices/nld_ne555.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_ne555.h",
MAME_DIR .. "src/lib/netlist/devices/nld_mm5837.cpp",
diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua
index 0dbf379b2b4..463fa59af58 100644
--- a/scripts/target/mame/arcade.lua
+++ b/scripts/target/mame/arcade.lua
@@ -1138,6 +1138,8 @@ files {
MAME_DIR .. "src/mame/machine/nl_gtrak10.h",
MAME_DIR .. "src/mame/machine/nl_stuntcyc.cpp",
MAME_DIR .. "src/mame/machine/nl_stuntcyc.h",
+ MAME_DIR .. "src/mame/machine/nl_tank.cpp",
+ MAME_DIR .. "src/mame/machine/nl_tank.h",
MAME_DIR .. "src/mame/drivers/atetris.cpp",
MAME_DIR .. "src/mame/includes/atetris.h",
MAME_DIR .. "src/mame/video/atetris.cpp",
diff --git a/src/lib/netlist/devices/net_lib.cpp b/src/lib/netlist/devices/net_lib.cpp
index ef88713b556..024b46089c3 100644
--- a/src/lib/netlist/devices/net_lib.cpp
+++ b/src/lib/netlist/devices/net_lib.cpp
@@ -73,6 +73,7 @@ namespace devices
#if !(NL_USE_TRUTHTABLE_7448)
LIB_ENTRY(7448)
#endif
+ LIB_ENTRY(MK28000)
LIB_ENTRY(7450)
LIB_ENTRY(7473)
LIB_ENTRY(7473A)
@@ -117,9 +118,12 @@ namespace devices
LIB_ENTRY(82S123)
LIB_ENTRY(82S126)
LIB_ENTRY(74S287)
+ LIB_ENTRY(8277)
LIB_ENTRY(9310)
LIB_ENTRY(9314)
LIB_ENTRY(9316)
+ LIB_ENTRY(9321_GATE)
+ LIB_ENTRY(9321)
LIB_ENTRY(9322_GATE)
LIB_ENTRY(9322)
LIB_ENTRY(9334)
@@ -153,9 +157,11 @@ namespace devices
LIB_ENTRY(74193_dip)
LIB_ENTRY(74194_dip)
LIB_ENTRY(74365_dip)
+ LIB_ENTRY(8277_dip)
LIB_ENTRY(9602)
LIB_ENTRY(9314_dip)
LIB_ENTRY(9334_dip)
+ LIB_ENTRY(9321_dip)
LIB_ENTRY(AM2847_dip)
LIB_ENTRY(MM5837_dip)
}
diff --git a/src/lib/netlist/devices/net_lib.h b/src/lib/netlist/devices/net_lib.h
index a891b8f1b0b..f0813c59269 100644
--- a/src/lib/netlist/devices/net_lib.h
+++ b/src/lib/netlist/devices/net_lib.h
@@ -83,6 +83,7 @@ NETLIST_EXTERNAL(base_lib)
#include "nld_tms4800.h"
#include "nld_am2847.h"
+#include "nld_8277.h"
#include "nld_dm9314.h"
#include "nld_dm9334.h"
diff --git a/src/lib/netlist/devices/nld_74193.cpp b/src/lib/netlist/devices/nld_74193.cpp
index 40ea170087b..054f0462bdd 100644
--- a/src/lib/netlist/devices/nld_74193.cpp
+++ b/src/lib/netlist/devices/nld_74193.cpp
@@ -166,7 +166,7 @@ namespace netlist
NETLIB_SUB(74193) A;
};
- NETLIB_DEVICE_IMPL(74193, "TTL_74193", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD,@VCC,@GND")
+ NETLIB_DEVICE_IMPL(74193, "TTL_74193", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD,@VCC,@GND")
NETLIB_DEVICE_IMPL(74193_dip, "TTL_74193_DIP", "")
} //namespace devices
diff --git a/src/lib/netlist/devices/nld_8277.cpp b/src/lib/netlist/devices/nld_8277.cpp
new file mode 100644
index 00000000000..df3f69937d4
--- /dev/null
+++ b/src/lib/netlist/devices/nld_8277.cpp
@@ -0,0 +1,204 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+/*
+ * nld_8277.cpp
+ *
+ * 8277: Dual 8-Bit Shift Register
+ *
+ * +--------------+
+ * RESET |1 ++ 16| VCC
+ * /Q7A |2 15| /Q7B
+ * Q7A |3 14| Q7B
+ * DSA |4 8277 13| DSB
+ * D1A |5 12| D1B
+ * D0A |6 11| D0B
+ * CLKA |7 10| CLKB
+ * GND |8 9| CLK
+ * +--------------+
+ *
+ */
+
+#include "nld_8277.h"
+#include "netlist/nl_base.h"
+
+namespace netlist
+{
+ namespace devices
+ {
+ NETLIB_OBJECT(8277_shifter)
+ {
+ NETLIB_CONSTRUCTOR_MODEL(8277_shifter, "TTL")
+ , m_D0(*this, "D0", NETLIB_DELEGATE(inputs))
+ , m_D1(*this, "D1", NETLIB_DELEGATE(inputs))
+ , m_DS(*this, "DS", NETLIB_DELEGATE(inputs))
+ , m_buffer(*this, "m_buffer", 0)
+ , m_Q7(*this, "Q7")
+ , m_Q7Q(*this, "Q7Q")
+ , m_power_pins(*this)
+ {
+ }
+
+ public:
+ void reset_shifter() noexcept
+ {
+ m_buffer = 0;
+ m_Q7.push(0, NLTIME_FROM_NS(40));
+ m_Q7Q.push(1, NLTIME_FROM_NS(40));
+ }
+
+ void shift() noexcept
+ {
+ uint32_t in = (m_DS() ? m_D1() : m_D0());
+ m_buffer <<= 1;
+ m_buffer |= in;
+ uint32_t out = (m_buffer >> 7) & 1;
+ uint32_t outq = (~m_buffer >> 7) & 1;
+ m_Q7.push(out, NLTIME_FROM_NS(40));
+ m_Q7Q.push(outq, NLTIME_FROM_NS(40));
+ }
+
+ logic_input_t m_D0;
+ logic_input_t m_D1;
+ logic_input_t m_DS;
+
+ state_var<uint8_t> m_buffer;
+
+ logic_output_t m_Q7;
+ logic_output_t m_Q7Q;
+ nld_power_pins m_power_pins;
+ private:
+ NETLIB_HANDLERI(inputs)
+ {
+ /* do nothing */
+ }
+ };
+
+ NETLIB_OBJECT(8277)
+ {
+ NETLIB_CONSTRUCTOR(8277)
+ , m_A(*this, "A")
+ , m_B(*this, "B")
+ , m_RESET(*this, "RESET", NETLIB_DELEGATE(shifter_reset))
+ , m_CLK(*this, "CLK", NETLIB_DELEGATE(clk))
+ , m_CLKA(*this, "CLKA", NETLIB_DELEGATE(clka))
+ , m_CLKB(*this, "CLKB", NETLIB_DELEGATE(clkb))
+ , m_last_CLK(*this, "m_last_CLK", 0)
+ , m_last_CLKA(*this, "m_last_CLKA", 0)
+ , m_last_CLKB(*this, "m_last_CLKB", 0)
+ // FIXME: needs family!
+ {
+ register_subalias("RESET", m_RESET);
+ register_subalias("CLK", m_CLK);
+ register_subalias("CLKA", m_CLKA);
+ register_subalias("CLKB", m_CLKB);
+ register_subalias("D0A", m_A.m_D0);
+ register_subalias("D1A", m_A.m_D1);
+ register_subalias("DSA", m_A.m_DS);
+ register_subalias("Q7A", m_A.m_Q7);
+ register_subalias("Q7QA", m_A.m_Q7Q);
+ register_subalias("D0B", m_B.m_D0);
+ register_subalias("D1B", m_B.m_D1);
+ register_subalias("DSB", m_B.m_DS);
+ register_subalias("Q7B", m_B.m_Q7);
+ register_subalias("Q7QB", m_B.m_Q7Q);
+
+ connect("A.VCC", "B.VCC");
+ connect("A.GND", "B.GND");
+
+ register_subalias("VCC", "A.VCC");
+ register_subalias("GND", "A.GND");
+ }
+
+ NETLIB_RESETI()
+ {
+ m_last_CLK = 0;
+ m_last_CLKA = 0;
+ m_last_CLKB = 0;
+ }
+
+ friend class NETLIB_NAME(8277_dip);
+ private:
+ NETLIB_HANDLERI(shifter_reset)
+ {
+ if (!m_RESET())
+ {
+ m_A.reset_shifter();
+ m_B.reset_shifter();
+ }
+ }
+
+ NETLIB_HANDLERI(clk)
+ {
+ if (!m_last_CLK && m_CLK())
+ {
+ m_A.shift();
+ m_B.shift();
+ }
+ m_last_CLK = m_CLK();
+ m_last_CLKA = m_CLKA();
+ m_last_CLKB = m_CLKB();
+ }
+
+ NETLIB_HANDLERI(clka)
+ {
+ if (!m_last_CLKA && m_CLKA())
+ {
+ m_A.shift();
+ }
+ m_last_CLKA = m_CLKA();
+ }
+
+ NETLIB_HANDLERI(clkb)
+ {
+ if (!m_last_CLKB && m_CLKB())
+ {
+ m_B.shift();
+ }
+ m_last_CLKB = m_CLKB();
+ }
+
+ NETLIB_SUB(8277_shifter) m_A;
+ NETLIB_SUB(8277_shifter) m_B;
+ logic_input_t m_RESET;
+ logic_input_t m_CLK;
+ logic_input_t m_CLKA;
+ logic_input_t m_CLKB;
+
+ state_var<uint32_t> m_last_CLK;
+ state_var<uint32_t> m_last_CLKA;
+ state_var<uint32_t> m_last_CLKB;
+ };
+
+ NETLIB_OBJECT(8277_dip)
+ {
+ NETLIB_CONSTRUCTOR(8277_dip)
+ , A(*this, "A")
+ {
+ register_subalias("1", A.m_RESET);
+ register_subalias("2", A.m_A.m_Q7Q);
+ register_subalias("3", A.m_A.m_Q7);
+ register_subalias("4", A.m_A.m_DS);
+ register_subalias("5", A.m_A.m_D1);
+ register_subalias("6", A.m_A.m_D0);
+ register_subalias("7", A.m_CLKA);
+ register_subalias("8", "A.GND");
+
+ register_subalias("9", A.m_CLK);
+ register_subalias("10", A.m_CLKB);
+ register_subalias("11", A.m_B.m_D0);
+ register_subalias("12", A.m_B.m_D1);
+ register_subalias("13", A.m_B.m_DS);
+ register_subalias("14", A.m_B.m_Q7);
+ register_subalias("15", A.m_B.m_Q7Q);
+ register_subalias("16", "A.VCC");
+ }
+ //NETLIB_RESETI() {}
+ private:
+ NETLIB_SUB(8277) A;
+ };
+
+ NETLIB_DEVICE_IMPL(8277, "TTL_8277", "+RESET,+CLK,+CLKA,+D0A,+D1A,+DSA,+CLKB,+D0B,+D1B,+DSB,@VCC,@GND")
+ NETLIB_DEVICE_IMPL(8277_dip, "TTL_8277_DIP", "")
+
+ } //namespace devices
+} // namespace netlist
diff --git a/src/lib/netlist/devices/nld_8277.h b/src/lib/netlist/devices/nld_8277.h
new file mode 100644
index 00000000000..58a925c4976
--- /dev/null
+++ b/src/lib/netlist/devices/nld_8277.h
@@ -0,0 +1,27 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+
+#ifndef NLD_8277_H_
+#define NLD_8277_H_
+
+#include "netlist/nl_setup.h"
+
+#define TTL_8277(name, cRESET, cCLK, cCLKA, cD0A, cD1A, cDSA, cCLKB, cD0B, cD1B, cDSB) \
+ NET_REGISTER_DEV(TTL_8277, name) \
+ NET_CONNECT(name, VCC, VCC) \
+ NET_CONNECT(name, GND, GND) \
+ NET_CONNECT(name, RESET, cRESET) \
+ NET_CONNECT(name, CLK, cCLK) \
+ NET_CONNECT(name, CLKA, cCLKA) \
+ NET_CONNECT(name, CLKB, cCLKB) \
+ NET_CONNECT(name, D0A, cD0A) \
+ NET_CONNECT(name, D0B, cD0B) \
+ NET_CONNECT(name, D1A, cD1A) \
+ NET_CONNECT(name, D1B, cD1B) \
+ NET_CONNECT(name, DSA, cDSA) \
+ NET_CONNECT(name, DSB, cDSB)
+
+#define TTL_8277_DIP(name) \
+ NET_REGISTER_DEV(TTL_8277_DIP, name)
+
+#endif /* NLD_2877_H_ */
diff --git a/src/lib/netlist/devices/nld_9321.cpp b/src/lib/netlist/devices/nld_9321.cpp
new file mode 100644
index 00000000000..933f69a526d
--- /dev/null
+++ b/src/lib/netlist/devices/nld_9321.cpp
@@ -0,0 +1,103 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+/*
+ * nld_9321.cpp
+ *
+ * 9321: Dual One-of-Four Decoder
+ *
+ * +------------+
+ * /E |1 ++ 16| VCC
+ * A0 |2 15| /E
+ * A1 |3 14| A0
+ * /D0 |4 9321 13| A1
+ * /D1 |5 12| /D0
+ * /D2 |6 11| /D1
+ * /D3 |7 10| /D2
+ * GND |8 9| /D3
+ * +------------+
+ *
+ */
+
+#include "nld_9321.h"
+#include "netlist/nl_base.h"
+
+namespace netlist
+{
+ namespace devices
+ {
+ class NETLIB_NAME(9321);
+
+ NETLIB_OBJECT(9321_GATE)
+ {
+ NETLIB_CONSTRUCTOR(9321_GATE)
+ , m_enable(*this, "m_enable", true)
+ , m_o(*this, "m_o", 0)
+ , m_A(*this, 0, "A{}", NETLIB_DELEGATE(in))
+ , m_D(*this, 0, "D{}")
+ , m_E(*this, "E", NETLIB_DELEGATE(e))
+ , m_power_pins(*this)
+ {
+ }
+
+ NETLIB_HANDLERI(in)
+ {
+ m_o = (m_A[1]() << 1) | m_A[0]();
+ for (std::size_t i=0; i<4; i++)
+ m_D[i].push((i == m_o && m_enable) ? 0 : 1, NLTIME_FROM_NS(21));
+ }
+
+ NETLIB_HANDLERI(e)
+ {
+ m_enable = m_E();
+ for (std::size_t i=0; i<4; i++)
+ m_D[i].push((i == m_o && m_enable) ? 0 : 1, NLTIME_FROM_NS(18));
+ }
+
+ public:
+ state_var<bool> m_enable;
+ state_var<uint8_t> m_o;
+ object_array_t<logic_input_t, 2> m_A;
+ object_array_t<logic_output_t, 4> m_D;
+ logic_input_t m_E;
+ nld_power_pins m_power_pins;
+ };
+
+ NETLIB_OBJECT(9321)
+ {
+ NETLIB_CONSTRUCTOR(9321)
+ , m_A(*this, "A")
+ , m_B(*this, "B")
+ {
+ register_subalias("AE1", m_A.m_E);
+ register_subalias("BE1", m_B.m_E);
+ register_subalias("AA0", m_A.m_A[0]);
+ register_subalias("BA0", m_B.m_A[0]);
+ register_subalias("AA1", m_A.m_A[1]);
+ register_subalias("BA1", m_B.m_A[1]);
+ register_subalias("AD0", m_A.m_D[0]);
+ register_subalias("BD0", m_B.m_D[0]);
+ register_subalias("AD1", m_A.m_D[1]);
+ register_subalias("BD1", m_B.m_D[1]);
+ register_subalias("AD2", m_A.m_D[2]);
+ register_subalias("BD2", m_B.m_D[2]);
+ register_subalias("AD3", m_A.m_D[3]);
+ register_subalias("BD3", m_B.m_D[3]);
+
+ connect("A.VCC", "B.VCC");
+ connect("A.GND", "B.GND");
+
+ register_subalias("GND", "A.GND");
+ register_subalias("VCC", "B.VCC");
+ }
+
+ friend class NETLIB_NAME(9321_dip);
+ private:
+ NETLIB_SUB(9321_GATE) m_A;
+ NETLIB_SUB(9321_GATE) m_B;
+ };
+
+ NETLIB_DEVICE_IMPL(9321_GATE, "TTL_9321_GATE", "")
+ NETLIB_DEVICE_IMPL(9321, "TTL_9321", "+SELECT,+A1,+B1,+A2,+B2,+A3,+B3,+A4,+B4,+STROBE,@VCC,@GND")
+
+ } //namespace devices
+} // namespace netlist
diff --git a/src/lib/netlist/devices/nld_9321.h b/src/lib/netlist/devices/nld_9321.h
new file mode 100644
index 00000000000..3ed55a346bd
--- /dev/null
+++ b/src/lib/netlist/devices/nld_9321.h
@@ -0,0 +1,16 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+
+#ifndef NLD_9321_H_
+#define NLD_9321_H_
+
+#include "netlist/nl_setup.h"
+
+#define TTL_9321_GATE(...) \
+ NET_REGISTER_DEVEXT(TTL_9321_GATE, __VA_ARGS__)
+
+// usage: TTL_9321(name, cAE, cA0, cA1, cBE, cB0, cB1)
+#define TTL_9321(...) \
+ NET_REGISTER_DEVEXT(TTL_9321, __VA_ARGS__)
+
+#endif /* NLD_9321_H_ */
diff --git a/src/lib/netlist/devices/nld_devinc.h b/src/lib/netlist/devices/nld_devinc.h
index cc017f1f4e7..e97cfb892fe 100644
--- a/src/lib/netlist/devices/nld_devinc.h
+++ b/src/lib/netlist/devices/nld_devinc.h
@@ -237,6 +237,14 @@
NET_REGISTER_DEVEXT(EPROM_2716, __VA_ARGS__)
// ---------------------------------------------------------------------
+// Source: src/lib/netlist/devices/nld_roms.cpp
+// ---------------------------------------------------------------------
+// usage : PROM_MK28000(name, pOE1, pOE2, pAR, pA0, pA1, pA2, pA3, pA4, pA5, pA6, pA7, pA8, pA9, pA10, pA11)
+// auto connect: VCC, GND
+#define PROM_MK28000(...) \
+ NET_REGISTER_DEVEXT(PROM_MK28000, __VA_ARGS__)
+
+// ---------------------------------------------------------------------
// Source: src/lib/netlist/devices/nld_7448.cpp
// ---------------------------------------------------------------------
// usage : TTL_7448(name, pA, pB, pC, pD, pLTQ, pBIQ, pRBIQ)
@@ -662,6 +670,14 @@
NET_REGISTER_DEVEXT(CD4538, __VA_ARGS__)
// ---------------------------------------------------------------------
+// Source: src/lib/netlist/devices/nld_8277.cpp
+// ---------------------------------------------------------------------
+// usage : TTL_8277(name, pRESET, pCLK, pCLKA, pD0A, pD1A, pDSA, pCLKB, pD0B, pD1B, pDSB)
+// auto connect: VCC, GND
+#define TTL_8277(...) \
+ NET_REGISTER_DEVEXT(TTL_8277, __VA_ARGS__)
+
+// ---------------------------------------------------------------------
// Source: src/lib/netlist/devices/nld_schmitt.cpp
// ---------------------------------------------------------------------
// usage : SCHMITT_TRIGGER(name, pSTMODEL)
@@ -774,6 +790,13 @@
NET_REGISTER_DEVEXT(TTL_9334_DIP, __VA_ARGS__)
// ---------------------------------------------------------------------
+// Source: src/lib/netlist/devices/nld_9321.cpp
+// ---------------------------------------------------------------------
+// usage : TTL_9321_DIP(name)
+#define TTL_9321_DIP(...) \
+ NET_REGISTER_DEVEXT(TTL_9321_DIP, __VA_ARGS__)
+
+// ---------------------------------------------------------------------
// Source: src/lib/netlist/devices/nld_am2847.cpp
// ---------------------------------------------------------------------
// usage : TTL_AM2847_DIP(name)
@@ -781,6 +804,13 @@
NET_REGISTER_DEVEXT(TTL_AM2847_DIP, __VA_ARGS__)
// ---------------------------------------------------------------------
+// Source: src/lib/netlist/devices/nld_8277.cpp
+// ---------------------------------------------------------------------
+// usage : TTL_8277_DIP(name)
+#define TTL_8277_DIP(...) \
+ NET_REGISTER_DEVEXT(TTL_8277_DIP, __VA_ARGS__)
+
+// ---------------------------------------------------------------------
// Source: src/lib/netlist/devices/nld_mm5837.cpp
// ---------------------------------------------------------------------
// usage : MM5837_DIP(name)
@@ -1434,6 +1464,10 @@
#define EPROM_2716_DIP(...) \
NET_REGISTER_DEVEXT(EPROM_2716_DIP, __VA_ARGS__)
+// usage : PROM_MK28000_DIP(name)
+#define PROM_MK28000_DIP(...) \
+ NET_REGISTER_DEVEXT(PROM_MK28000_DIP, __VA_ARGS__)
+
// usage : TTL_82S16_DIP(name)
#define TTL_82S16_DIP(...) \
NET_REGISTER_DEVEXT(TTL_82S16_DIP, __VA_ARGS__)
diff --git a/src/lib/netlist/devices/nld_roms.cpp b/src/lib/netlist/devices/nld_roms.cpp
index 946707ad0ef..fb55010f95f 100644
--- a/src/lib/netlist/devices/nld_roms.cpp
+++ b/src/lib/netlist/devices/nld_roms.cpp
@@ -24,6 +24,80 @@ namespace netlist
{
namespace devices
{
+ NETLIB_OBJECT(mk28000_prom)
+ {
+ NETLIB_CONSTRUCTOR(mk28000_prom)
+ , m_enable_lo(*this, "m_enable_lo", false)
+ , m_enable_hi(*this, "m_enable_hi", false)
+ , m_latched_rom(*this, "m_latched_rom", 0)
+ , m_A(*this, 1, "A{}", NETLIB_DELEGATE(addr))
+ , m_ARQ(*this, "ARQ", NETLIB_DELEGATE(arq))
+ , m_OE1(*this, "OE1", NETLIB_DELEGATE(oe1))
+ , m_OE2(*this, "OE2", NETLIB_DELEGATE(oe2))
+ , m_O(*this, 1, "O{}", 0)
+ , m_ROM(*this, "ROM")
+ , m_power_pins(*this)
+ {
+ }
+
+ private:
+ inline NETLIB_HANDLERI(arq)
+ {
+ if (m_ARQ() == 0)
+ {
+ m_latched_rom = m_ROM[m_A()];
+ }
+ }
+
+ inline NETLIB_HANDLERI(oe1)
+ {
+ m_enable_lo = m_OE1();
+ uint8_t o = m_enable_lo ? m_latched_rom : 0;
+ for (std::size_t i=0; i<4; i++)
+ {
+ m_O.set_tristate(!m_enable_lo, NLTIME_FROM_NS(600), NLTIME_FROM_NS(600));
+ m_O[i].push((o >> i) & 1, NLTIME_FROM_NS(600));
+ }
+ }
+
+ inline NETLIB_HANDLERI(oe2)
+ {
+ m_enable_hi = m_OE2();
+ uint8_t o = m_enable_hi ? m_latched_rom : 0;
+ for (std::size_t i=4; i<8; i++)
+ {
+ m_O.set_tristate(!m_enable_hi, NLTIME_FROM_NS(600), NLTIME_FROM_NS(600));
+ m_O[i].push((o >> i) & 1, NLTIME_FROM_NS(600));
+ }
+ }
+
+ inline NETLIB_HANDLERI(addr)
+ {
+ uint8_t o = (m_enable_hi || m_enable_lo) ? m_latched_rom : 0;
+ for (std::size_t i=0; i<4; i++)
+ {
+ m_O.set_tristate(!m_enable_lo, NLTIME_FROM_NS(600), NLTIME_FROM_NS(600));
+ m_O[i].push((o >> i) & 1, NLTIME_FROM_NS(600));
+ }
+ for (std::size_t i=4; i<8; i++)
+ {
+ m_O.set_tristate(!m_enable_hi, NLTIME_FROM_NS(600), NLTIME_FROM_NS(600));
+ m_O[i].push((o >> i) & 1, NLTIME_FROM_NS(600));
+ }
+ }
+
+ state_var<bool> m_enable_lo;
+ state_var<bool> m_enable_hi;
+ state_var<uint8_t> m_latched_rom;
+ object_array_t<logic_input_t, 11> m_A;
+ logic_input_t m_ARQ;
+ logic_input_t m_OE1;
+ logic_input_t m_OE2;
+ object_array_t<tristate_output_t, 8> m_O;
+
+ param_rom_t<uint8_t, 11, 8> m_ROM;
+ nld_power_pins m_power_pins;
+ };
template <typename D>
NETLIB_OBJECT(generic_prom)
@@ -154,16 +228,17 @@ namespace netlist
using output_id = desc_const<1>; // 0: logic, 1: tristate, 2: open collector
};
-
- using NETLIB_NAME(82S123) = NETLIB_NAME(generic_prom)<desc_82S123>; // 256 bits, 32x8, used as 256x4
- using NETLIB_NAME(82S126) = NETLIB_NAME(generic_prom)<desc_82S126>; // 1024 bits, 32x32, used as 256x4
- using NETLIB_NAME(74S287) = NETLIB_NAME(generic_prom)<desc_74S287>; // 1024 bits, 32x32, used as 256x4
- using NETLIB_NAME(2716) = NETLIB_NAME(generic_prom)<desc_2716>; // CE2Q = OE, CE1Q = CE
+ using NETLIB_NAME(82S123) = NETLIB_NAME(generic_prom)<desc_82S123>; // 256 bits, 32x8, used as 256x4
+ using NETLIB_NAME(82S126) = NETLIB_NAME(generic_prom)<desc_82S126>; // 1024 bits, 32x32, used as 256x4
+ using NETLIB_NAME(74S287) = NETLIB_NAME(generic_prom)<desc_74S287>; // 1024 bits, 32x32, used as 256x4
+ using NETLIB_NAME(2716) = NETLIB_NAME(generic_prom)<desc_2716>; // CE2Q = OE, CE1Q = CE
+ using NETLIB_NAME(MK28000) = NETLIB_NAME(mk28000_prom); // 16384 bits, either 2048x8 or 4096x4, determined by OE1/OE2 use
NETLIB_DEVICE_IMPL(82S126, "PROM_82S126", "+CE1Q,+CE2Q,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,@VCC,@GND")
NETLIB_DEVICE_IMPL(74S287, "PROM_74S287", "+CE1Q,+CE2Q,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,@VCC,@GND")
NETLIB_DEVICE_IMPL(82S123, "PROM_82S123", "+CEQ,+A0,+A1,+A2,+A3,+A4,@VCC,@GND")
NETLIB_DEVICE_IMPL(2716, "EPROM_2716", "+CE2Q,+CE1Q,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10,@VCC,@GND")
+ NETLIB_DEVICE_IMPL(MK28000, "PROM_MK28000", "+OE1,+OE2,+ARQ,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10,+A11,@VCC,@GND")
} //namespace devices
} // namespace netlist
diff --git a/src/lib/netlist/devices/nld_roms.h b/src/lib/netlist/devices/nld_roms.h
index 0ebd6b832b6..e8cf1b2398c 100644
--- a/src/lib/netlist/devices/nld_roms.h
+++ b/src/lib/netlist/devices/nld_roms.h
@@ -26,4 +26,8 @@
#define EPROM_2716(...) \
NET_REGISTER_DEVEXT(EPROM_2716, __VA_ARGS__)
+// PROM_MK28000(name, cOE1, cOE2, cAR, cA0, cA1, cA2, cA3, cA4, cA5, cA6, cA7, cA8, cA9, cA10, cA11)
+#define PROM_MK28000(...) \
+ NET_REGISTER_DEVEXT(PROM_MK28000, __VA_ARGS__)
+
#endif /* NLD_ROMS_H_ */
diff --git a/src/lib/netlist/macro/nlm_roms_lib.cpp b/src/lib/netlist/macro/nlm_roms_lib.cpp
index 13edd472e93..a28c3cec37b 100644
--- a/src/lib/netlist/macro/nlm_roms_lib.cpp
+++ b/src/lib/netlist/macro/nlm_roms_lib.cpp
@@ -355,6 +355,52 @@ static NETLIST_START(PROM_82S115_DIP)
)
NETLIST_END()
+//- Identifier: PROM_MK28000_DIP
+//- Title: MK28000 (2048 x 8 or 4096 x 4) 16384-Bit TTL PROM
+//- Description: This dynamic ROM is organized internally as 2048 x 8 bits,
+//- but has separate enables for the upper and lower nybbles, permitting
+//- use as 4096 x 4 as well.
+//.
+//- Pinalias: VCC,A1,A2,A3,A4,A5,A6,A10,GND,A9,A8,A7,ARQ,OE2,A11,O8,O7,O6,O5,O4,O3,O2,O1,OE1
+//- Package: DIP
+//- Param: ROM
+//- The name of the source to load the rom content from
+//- NamingConvention: Naming conventions follow Mostek datasheet
+//- Limitations:
+//- None.
+
+static NETLIST_START(PROM_MK28000_DIP)
+
+ PROM_MK28000(A)
+
+ DEFPARAM(ROM, "unknown")
+ PARAM(A.ROM, "$(@.ROM)")
+ ALIAS(1, A.VCC)
+ ALIAS(2, A.A1)
+ ALIAS(3, A.A2)
+ ALIAS(4, A.A3)
+ ALIAS(5, A.A4)
+ ALIAS(6, A.A5)
+ ALIAS(7, A.A6)
+ ALIAS(8, A.A10)
+ ALIAS(9, A.GND)
+ ALIAS(10, A.A9)
+ ALIAS(11, A.A8)
+ ALIAS(12, A.A7)
+ ALIAS(13, A.ARQ)
+ ALIAS(14, A.OE2)
+ ALIAS(15, A.A11)
+ ALIAS(16, A.O8)
+ ALIAS(17, A.O7)
+ ALIAS(18, A.O6)
+ ALIAS(19, A.O5)
+ ALIAS(20, A.O4)
+ ALIAS(21, A.O3)
+ ALIAS(22, A.O2)
+ ALIAS(23, A.O1)
+ ALIAS(24, A.OE1)
+NETLIST_END()
+
/* 2102: 1024 x 1-bit Static RAM
*
* +--------------+
@@ -394,6 +440,7 @@ NETLIST_START(roms_lib)
LOCAL_LIB_ENTRY(EPROM_2716_DIP)
LOCAL_LIB_ENTRY(TTL_82S16_DIP)
LOCAL_LIB_ENTRY(PROM_82S115_DIP)
+ LOCAL_LIB_ENTRY(PROM_MK28000_DIP)
LOCAL_LIB_ENTRY(RAM_2102A_DIP)
NETLIST_END()
diff --git a/src/lib/netlist/macro/nlm_roms_lib.h b/src/lib/netlist/macro/nlm_roms_lib.h
index ab754f34c86..2dcec6ca37b 100644
--- a/src/lib/netlist/macro/nlm_roms_lib.h
+++ b/src/lib/netlist/macro/nlm_roms_lib.h
@@ -30,6 +30,9 @@
#define PROM_74S287_DIP(name) \
NET_REGISTER_DEV(PROM_74S287_DIP, name)
+#define PROM_MK28000_DIP(name) \
+ NET_REGISTER_DEV(PROM_MK28000_DIP, name)
+
#define EPROM_2716_DIP(name) \
NET_REGISTER_DEV(EPROM_2716_DIP, name)
diff --git a/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp b/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp
index dc1a65c29b5..0f54e48c7c9 100644
--- a/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp
+++ b/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp
@@ -2846,6 +2846,70 @@ static NETLIST_START(TTL_9322_DIP)
)
NETLIST_END()
+//- Identifier: TTL_9321_DIP
+//- Title: DM9321/DM8321 Dual 4-Line to 1-Line Data Selectors/Multiplexers
+//- Pinalias: AE,AA0,AA1,AD0,AD1,AD2,AD3,GND,BD3,BD2,BD1,BD0,BA1,BA0,BE,VCC
+//- Package: DIP
+//- NamingConvention: Naming conventions follow National Semiconductor datasheet
+//-
+static NETLIST_START(TTL_9321_DIP)
+ TTL_9321_GATE(A)
+ TTL_9321_GATE(B)
+
+ NET_C(A.VCC, B.VCC)
+ NET_C(A.GND, B.GND)
+
+ DIPPINS( /* +--------------+ */
+ A.E, /* /E |1 ++ 16| VCC */ A.VCC,
+ A.A0, /* A0 |2 15| /E */ B.E,
+ A.A1, /* A1 |3 14| A0 */ B.A0
+ A.D0, /* /D0 |4 9322 13| A1 */ B.A1
+ A.D1, /* /D1 |5 12| /D0 */ B.D0
+ A.D2, /* /D2 |6 11| /D1 */ B.D1
+ A.D3, /* /D3 |7 10| /D2 */ B.D2
+ A.GND, /* GND |8 9| /D3 */ B.D3
+ /* +--------------+ */
+ )
+NETLIST_END()
+
+//- Identifier: TTL_9322_DIP
+//- Title: DM9322/DM8322 Quad 2-Line to 1-Line Data Selectors/Multiplexers
+//- Description: These data selectors/multiplexers contain inverters and
+//- drivers to supply full on-chip data selection to the four
+//- output gates. A separate strobe input is provided. A
+//- 4-bit word is selected from one of two sources and is
+//- routed to the four outputs. True data is presented
+//- at the outputs.
+//- Pinalias: SELECT,A1,B1,Y1,A2,B2,Y2,GND,Y3,B3,A3,Y4,B4,A4,STROBE,VCC
+//- Package: DIP
+//- NamingConvention: Naming conventions follow National Semiconductor datasheet
+//- FunctionTable:
+//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006606.PDF
+//-
+static NETLIST_START(TTL_9322_DIP)
+ TTL_9322_GATE(A)
+ TTL_9322_GATE(B)
+ TTL_9322_GATE(C)
+ TTL_9322_GATE(D)
+
+ NET_C(A.SELECT, B.SELECT, C.SELECT, D.SELECT)
+ NET_C(A.STROBE, B.STROBE, C.STROBE, D.STROBE)
+ NET_C(A.VCC, B.VCC, C.VCC, D.VCC)
+ NET_C(A.GND, B.GND, C.GND, D.GND)
+
+ DIPPINS( /* +--------------+ */
+ A.SELECT, /* SELECT |1 ++ 16| VCC */ A.VCC,
+ A.A, /* A1 |2 15| STROBE */ A.STROBE,
+ A.B, /* B1 |3 14| A4 */ D.A,
+ A.Y, /* Y1 |4 9322 13| B4 */ D.B,
+ B.A, /* A2 |5 12| Y4 */ D.Y,
+ B.B, /* B2 |6 11| A3 */ C.A,
+ B.Y, /* Y2 |7 10| B3 */ C.B,
+ A.GND, /* GND |8 9| Y3 */ C.Y
+ /* +--------------+ */
+ )
+NETLIST_END()
+
//- Identifier: TTL_9602_DIP
//- Title: DM9602/DM6802 Dual Retriggerable, Resettable One Shots
//- Description: These dual resettable, retriggerable one shots have two
diff --git a/src/lib/netlist/macro/nlm_ttl74xx_lib.h b/src/lib/netlist/macro/nlm_ttl74xx_lib.h
index b797bfd6cc9..7bae0bc4e76 100644
--- a/src/lib/netlist/macro/nlm_ttl74xx_lib.h
+++ b/src/lib/netlist/macro/nlm_ttl74xx_lib.h
@@ -418,6 +418,9 @@
#define TTL_9316_DIP(name) \
NET_REGISTER_DEV(TTL_9316_DIP, name)
+#define TTL_9321_DIP(name) \
+ NET_REGISTER_DEV(TTL_9321_DIP, name)
+
#define TTL_9322_DIP(name) \
NET_REGISTER_DEV(TTL_9322_DIP, name)
diff --git a/src/mame/audio/nl_flyball.cpp b/src/mame/audio/nl_flyball.cpp
index 174675c7fd5..b8ee6499a1d 100644
--- a/src/mame/audio/nl_flyball.cpp
+++ b/src/mame/audio/nl_flyball.cpp
@@ -58,7 +58,7 @@ NETLIST_START(flyball)
RES(R76, RES_K(100)) // RES., CARBON, 5%, 1/4W, 100K
RES(R77, 820) // RES., CARBON, 5%, 1/4W, 820
RES(R78, RES_K(100)) // RES., CARBON, 5%, 1/4W, 100K
- RES(R79, RES_K(820)) // RES., CARBON, 5%, 1/4W, 820K
+ RES(R79, RES_K(1)) // RES., CARBON, 5%, 1/4W, 820K // Verified as 1K on a real board
RES(R80, RES_K(330)) // RES., CARBON, 5%, 1/4W, 330 // (330 on parts list, but 330K on schematic, 330 does not work in the netlist)
RES(R87, RES_K(1)) // RES., CARBON, 5%, 1/4W, 1K
RES(R88, RES_K(3.3)) // RES., CARBON, 5%, 1/4W, 3.3K
@@ -68,7 +68,8 @@ NETLIST_START(flyball)
RES(R92, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
POT(R95, RES_K(10)) // TRIMPOT, 10K
RES(R96, RES_K(47)) // RES., CARBON, 5%, 1/4W, 47K
- RES(R97, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
+ RES(R97A, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
+ RES(R97B, RES_K(24.4)) // RES., CARBON, 5%, 1/4W, 10K // Verified to exist on a real board
RES(R98, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
RES(R99, RES_K(33)) // RES., CARBON, 5%, 1/4W, 33K
diff --git a/src/mame/drivers/atarittl.cpp b/src/mame/drivers/atarittl.cpp
index 05ff0693499..fe285d6e552 100644
--- a/src/mame/drivers/atarittl.cpp
+++ b/src/mame/drivers/atarittl.cpp
@@ -56,12 +56,10 @@
netlist system per-game:
TM-057 (Stunt Cycle)
- 566 Voltage-Controlled Oscillator
1N751A Zener Diode
1N752A Zener Diode
TM-055 (Indy 4)
- 7406 Hex Inverter Buffers/Drivers with O.C. H.V. Outputs (note: Might not be needed, could just clone from 7404)
7417 Hex Buffers/Drivers
9301 1-of-10 Decoder
LM339 Quad Comparator
@@ -72,8 +70,10 @@
#include "emu.h"
#include "machine/netlist.h"
+#include "netlist/nl_setup.h"
#include "machine/nl_stuntcyc.h"
#include "machine/nl_gtrak10.h"
+#include "machine/nl_tank.h"
#include "netlist/devices/net_lib.h"
#include "video/fixfreq.h"
#include "screen.h"
@@ -85,12 +85,12 @@
#define V_TOTAL (0x105+1) // 262
#define H_TOTAL (0x1C6+1) // 454
-#define HBSTART (H_TOTAL)
-#define HBEND (32)
-#define VBSTART (V_TOTAL)
-#define VBEND (16)
+#define HBSTART (H_TOTAL)
+#define HBEND (32)
+#define VBSTART (V_TOTAL)
+#define VBEND (16)
-#define HRES_MULT (1)
+#define HRES_MULT (1)
// end
#define SC_VIDCLOCK (14318000/2)
@@ -101,6 +101,14 @@
#define SC_VBSTART (SC_VTOTAL)
#define SC_VBEND (8)
+#define TANK_VIDCLOCK (14318000)
+#define TANK_HTOTAL (904)
+#define TANK_VTOTAL (520)
+#define TANK_HBSTART (SC_HTOTAL)
+#define TANK_HBEND (32)
+#define TANK_VBSTART (SC_VTOTAL)
+#define TANK_VBEND (8)
+
#define GTRAK10_VIDCLOCK 14318181
#define GTRAK10_HTOTAL 451
#define GTRAK10_VTOTAL 521
@@ -120,16 +128,6 @@ public:
required_device<fixedfreq_device> m_video;
void atarikee(machine_config &config);
-protected:
-
- // driver_device overrides
- virtual void machine_start() override;
- virtual void machine_reset() override;
-
- virtual void video_start() override;
-
-private:
-
};
class stuntcyc_state : public driver_device
@@ -143,11 +141,23 @@ public:
}
void stuntcyc(machine_config &config);
-protected:
- // driver_device overrides
- virtual void machine_start() override;
- virtual void machine_reset() override;
+private:
+ required_device<netlist_mame_device> m_maincpu;
+ required_device<fixedfreq_device> m_video;
+};
+
+class tank_state : public driver_device
+{
+public:
+ tank_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_video(*this, "fixfreq")
+ {
+ }
+
+ void tank(machine_config &config);
private:
required_device<netlist_mame_device> m_maincpu;
@@ -182,26 +192,6 @@ static NETLIST_START(atarikee)
NETLIST_END()
-void atarikee_state::machine_start()
-{
-}
-
-void atarikee_state::machine_reset()
-{
-}
-
-void atarikee_state::video_start()
-{
-}
-
-void stuntcyc_state::machine_start()
-{
-}
-
-void stuntcyc_state::machine_reset()
-{
-}
-
void atarikee_state::atarikee(machine_config &config)
{
/* basic machine hardware */
@@ -217,7 +207,6 @@ void atarikee_state::atarikee(machine_config &config)
m_video->set_threshold(0.30);
}
-//#define STUNTCYC_NL_CLOCK (14318181*69)
#define STUNTCYC_NL_CLOCK (SC_HTOTAL*SC_VTOTAL*60*140)
void stuntcyc_state::stuntcyc(machine_config &config)
@@ -241,6 +230,34 @@ void stuntcyc_state::stuntcyc(machine_config &config)
m_video->set_horz_scale(4);
}
+void tank_state::tank(machine_config &config)
+{
+ /* basic machine hardware */
+ NETLIST_CPU(config, m_maincpu, netlist::config::DEFAULT_CLOCK()).set_source(NETLIST_NAME(tank));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("VIDEO_OUT", "fixfreq", FUNC(fixedfreq_device::update_composite_monochrome));
+ NETLIST_LOGIC_INPUT(config, "maincpu:p1lup", "P1_LEFT_UP.POS", 0);
+ NETLIST_LOGIC_INPUT(config, "maincpu:p1ldown", "P1_LEFT_DOWN.POS", 0);
+ NETLIST_LOGIC_INPUT(config, "maincpu:p1rup", "P1_RIGHT_UP.POS", 0);
+ NETLIST_LOGIC_INPUT(config, "maincpu:p1rdown", "P1_RIGHT_DOWN.POS", 0);
+ NETLIST_LOGIC_INPUT(config, "maincpu:p2lup", "P2_LEFT_UP.POS", 0);
+ NETLIST_LOGIC_INPUT(config, "maincpu:p2ldown", "P2_LEFT_DOWN.POS", 0);
+ NETLIST_LOGIC_INPUT(config, "maincpu:p2rup", "P2_RIGHT_UP.POS", 0);
+ NETLIST_LOGIC_INPUT(config, "maincpu:p2rdown", "P2_RIGHT_DOWN.POS", 0);
+ NETLIST_LOGIC_INPUT(config, "maincpu:coin1", "COIN1.POS", 0);
+ NETLIST_LOGIC_INPUT(config, "maincpu:coin2", "COIN2.POS", 0);
+
+ /* video hardware */
+ SCREEN(config, "screen", SCREEN_TYPE_RASTER);
+ FIXFREQ(config, m_video).set_screen("screen");
+ m_video->set_monitor_clock(TANK_VIDCLOCK);
+ m_video->set_horz_params(TANK_HTOTAL-84,TANK_HTOTAL-64,TANK_HTOTAL-16, TANK_HTOTAL);
+ m_video->set_vert_params(TANK_VTOTAL-21,TANK_VTOTAL-17,TANK_VTOTAL-12, TANK_VTOTAL);
+ m_video->set_fieldcount(1);
+ m_video->set_threshold(0.89);
+ m_video->set_gain(0.2);
+ m_video->set_horz_scale(1);
+}
+
void gtrak10_state::gtrak10(machine_config &config)
{
/* basic machine hardware */
@@ -286,12 +303,30 @@ static INPUT_PORTS_START( gtrak10 )
INPUT_PORTS_END
static INPUT_PORTS_START( stuntcyc )
- PORT_START("IN0") /* fake */
+ PORT_START("IN0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_COIN1) NETLIST_LOGIC_PORT_CHANGED("maincpu", "coinsw")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_START1) NETLIST_LOGIC_PORT_CHANGED("maincpu", "startsw1")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_START2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "startsw2")
INPUT_PORTS_END
+static INPUT_PORTS_START( tank )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_2WAY NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1lup")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1ldown")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1rup")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1rdown")
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_2WAY PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1lup")
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1ldown")
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1rup")
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1rdown")
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1fire")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p2fire")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "coin1")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "coin2")
+INPUT_PORTS_END
+
/***************************************************************************
Game driver(s)
@@ -596,7 +631,7 @@ GAME(1974, qwakttl, 0, atarikee, 0, atarikee_state, empty_init,
GAME(1975, sharkjaw, 0, atarikee, 0, atarikee_state, empty_init, ROT0, "Atari/Horror Games", "Shark JAWS [TTL]", MACHINE_IS_SKELETON)
GAME(1975, steeplec, 0, atarikee, 0, atarikee_state, empty_init, ROT0, "Atari", "Steeplechase [TTL]", MACHINE_IS_SKELETON)
GAME(1976, stuntcyc, 0, stuntcyc, stuntcyc, stuntcyc_state, empty_init, ROT0, "Atari", "Stunt Cycle [TTL]", MACHINE_IS_SKELETON)
-GAME(1974, tank, 0, atarikee, 0, atarikee_state, empty_init, ROT0, "Atari/Kee", "Tank/Tank Cocktail [TTL]", MACHINE_IS_SKELETON)
+GAME(1974, tank, 0, tank, tank, tank_state, empty_init, ROT0, "Atari/Kee", "Tank/Tank Cocktail [TTL]", MACHINE_NOT_WORKING)
GAME(1975, tankii, 0, atarikee, 0, atarikee_state, empty_init, ROT0, "Atari/Kee", "Tank II [TTL]", MACHINE_IS_SKELETON)
// MISSING ROM DUMPS
diff --git a/src/mame/machine/nl_stuntcyc.h b/src/mame/machine/nl_stuntcyc.h
index 1ed85be033a..f31f7c889fc 100644
--- a/src/mame/machine/nl_stuntcyc.h
+++ b/src/mame/machine/nl_stuntcyc.h
@@ -1,6 +1,12 @@
// license:BSD-3-Clause
// copyright-holders:Ryan Holtz
+#ifndef MAME_MACHINE_NL_STUNTCYC_H
+#define MAME_MACHINE_NL_STUNTCYC_H
+
+#pragma once
#include "netlist/nl_setup.h"
NETLIST_EXTERNAL(stuntcyc)
+
+#endif // MAME_MACHINE_NL_STUNTCYC_H
diff --git a/src/mame/machine/nl_tank.cpp b/src/mame/machine/nl_tank.cpp
new file mode 100644
index 00000000000..72636e85702
--- /dev/null
+++ b/src/mame/machine/nl_tank.cpp
@@ -0,0 +1,1849 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+
+/***************************************************************************
+
+ Netlist (tank) included from atarittl.cpp
+
+***************************************************************************/
+
+#include "netlist/devices/net_lib.h"
+
+static NETLIST_START(NE556_DIP)
+ NE555(A)
+ NE555(B)
+
+ NET_C(A.GND, B.GND)
+ NET_C(A.VCC, B.VCC)
+
+ DIPPINS( /* +--------------+ */
+ A.DISCH, /* 1DISCH |1 ++ 14| VCC */ A.VCC,
+ A.THRESH, /* 1THRES |2 13| 2DISCH */ B.DISCH,
+ A.CONT, /* 1CONT |3 12| 2THRES */ B.THRESH,
+ A.RESET, /* 1RESET |4 NE556 11| 2CONT */ B.CONT,
+ A.OUT, /* 1OUT |5 10| 2RESET */ B.RESET,
+ A.TRIG, /* 1TRIG |6 9| 2OUT */ B.OUT,
+ A.GND, /* GND |7 8| 2TRIG */ B.TRIG
+ /* +--------------+ */
+ )
+NETLIST_END()
+
+NETLIST_START(tank)
+
+ SOLVER(Solver, 48000)
+
+ ANALOG_INPUT(V5, 5)
+ ANALOG_INPUT(V12, 12)
+ ALIAS(VCC, V5)
+ ALIAS(P, V5)
+
+ RES(R4, RES_K(3.3))
+ RES(R5, RES_K(3.3))
+ RES(R6, RES_K(3.3))
+ RES(R7, RES_K(3.3))
+ RES(R8, RES_K(3.3))
+ RES(R8A, 470)
+ RES(R9, RES_K(3.3))
+ RES(R9A, 470)
+ RES(R10, RES_K(3.3))
+ RES(R10A, 470)
+ RES(R11, RES_K(3.3))
+ RES(R11A, 470)
+ RES(R3V, 560)
+ RES(R4V, RES_K(1))
+ RES(R5V, RES_K(1))
+ RES(R6V, RES_K(1))
+ RES(R13, RES_K(4.7))
+ RES(R15, RES_K(47))
+ RES(R16, RES_K(33))
+ RES(R19, RES_K(1)) // Guess; VGLTank.pdf doesn't say.
+ RES(R20, RES_K(1)) // Guess; VGLTank.pdf doesn't say.
+ RES(R21, RES_K(1)) // Guess; VGLTank.pdf doesn't say.
+ RES(R22, RES_K(1)) // Guess; VGLTank.pdf doesn't say.
+ RES(R23, RES_K(1)) // Guess; VGLTank.pdf doesn't say.
+ RES(R24, RES_K(1)) // Guess; VGLTank.pdf doesn't say.
+ RES(R25, RES_K(1)) // Guess; VGLTank.pdf doesn't say.
+ RES(R26, RES_K(1)) // Guess; VGLTank.pdf doesn't say.
+ RES(R28, RES_M(1.8))
+ RES(R29, RES_M(1.8))
+ RES(R34V, 560)
+ RES(R35M1, RES_K(100))
+ RES(R36M1, RES_K(100))
+ RES(R37A, RES_K(100))
+ RES(R38, RES_K(100))
+ RES(R40, RES_K(4.7))
+ RES(R41, RES_K(4.7))
+ RES(R42, 100)
+ RES(R43, 100)
+ RES(R48A, 560)
+ RES(R48B, RES_K(4.7))
+ RES(R49B, RES_K(4.7))
+ RES(R50B, RES_K(4.7))
+ RES(R51B, RES_K(4.7))
+ RES(R52B, 100)
+ RES(R53A, RES_K(330))
+ RES(R53B, 100)
+ RES(R54A, RES_K(680))
+ RES(R54B, 100)
+ RES(R55A, RES_K(10))
+ RES(R55B, 100)
+ RES(R56A, RES_K(100))
+ RES(R56B, RES_K(4.7))
+ RES(R57, RES_K(4.7))
+ RES(R58, RES_K(4.7))
+ RES(R59A, RES_K(180))
+ RES(R59B, RES_K(4.7))
+ RES(R60A, RES_M(1))
+ RES(R60B, 100)
+ RES(R61, 100)
+ RES(R62, 100)
+ RES(R63A, RES_K(2.2))
+ RES(R63B, 100)
+ RES(R64A, RES_K(180))
+ RES(R65M2, RES_K(4.7))
+ RES(R65M2, RES_K(3.9))
+ RES(R66M2, RES_K(1))
+ RES(R67M2, RES_K(10))
+ RES(R68M2, RES_K(33))
+ RES(R69, RES_K(470))
+ RES(R69M2, RES_K(180))
+ RES(R70A, RES_M(1))
+ RES(R70M2, RES_K(330))
+ RES(R71A, RES_K(680))
+ RES(R71M2, RES_K(680))
+ RES(R72A, RES_K(180))
+ RES(R72M2, RES_K(22))
+ RES(R73A, RES_M(1))
+ RES(R73M1, RES_K(22))
+ RES(R74M1, RES_K(180))
+ RES(R75M1, RES_K(330))
+ RES(R76M1, RES_K(680))
+ RES(R77M1, RES_K(10))
+ RES(R78M1, RES_K(33))
+ RES(R79M1, RES_K(3.9))
+ RES(R80M1, RES_K(1))
+ RES(R81M1, RES_K(4.7))
+ RES(R100M1, RES_K(1))
+ RES(R101M1, 680)
+ RES(R102M1, RES_K(1))
+ RES(R103M1, 680)
+ RES(R102MX, RES_K(33))
+ RES(R103MX, RES_K(33))
+ RES(R104MX, RES_K(33))
+ RES(R106MX, RES_K(33))
+ RES(R107MX, RES_K(33))
+ RES(R108MX, RES_K(33))
+ RES(RUNK1, RES_K(47))
+
+ CAP(C2, CAP_U(0.1))
+ CAP(C4, CAP_U(0.001))
+ CAP(C5, CAP_U(0.001))
+ CAP(C6, CAP_U(0.001))
+ CAP(C7, CAP_U(0.001))
+ CAP(C8, CAP_U(100))
+ CAP(C9, CAP_U(22))
+ CAP(C11, CAP_U(47))
+ CAP(C12, CAP_U(22))
+ CAP(C15, CAP_U(0.01))
+ CAP(C16, CAP_U(0.01))
+ CAP(C18, CAP_U(1))
+ CAP(C19, CAP_U(1))
+ CAP(C21, CAP_P(100))
+ CAP(C24, CAP_U(0.1))
+ CAP(C25, CAP_U(100))
+ CAP(C26, CAP_U(0.1))
+ CAP(C27, CAP_U(0.1))
+ CAP(C27A, CAP_U(0.001))
+ CAP(C28A, CAP_U(1))
+ CAP(C29, CAP_U(10))
+ CAP(C30, CAP_U(0.1))
+ CAP(C30A, CAP_U(0.001))
+ CAP(C31, CAP_U(0.1))
+ CAP(C31A, CAP_U(1))
+ CAP(C32A, CAP_U(0.1))
+ CAP(C33, CAP_U(0.1))
+ // CAP(C34, CAP_U(0.1)) Decoupling
+ CAP(C34A, CAP_U(0.01))
+ CAP(C35, CAP_U(0.1))
+ CAP(C35A, CAP_U(5))
+ CAP(C36, CAP_U(0.1))
+ CAP(C36A, CAP_U(0.1))
+ CAP(C38A, CAP_U(5))
+ CAP(C39, CAP_U(0.1))
+ CAP(C39A, CAP_U(0.001)
+ CAP(C40, CAP_U(0.1))
+ CAP(C40A, CAP_U(0.1))
+ CAP(C41, CAP_U(0.1))
+ CAP(C41A, CAP_U(5))
+ CAP(C42, CAP_U(0.1))
+ CAP(C43A, CAP_P(220))
+ CAP(C43M2, CAP_U(0.001))
+ CAP(C44M2, CAP_U(5))
+ CAP(C47M2, CAP_U(0.001))
+ CAP(C48M2, CAP_U(0.1))
+ CAP(C49M2, CAP_U(10))
+ CAP(C50M2, CAP_U(22))
+ CAP(C51M1, CAP_U(0.22))
+ CAP(C52M1, CAP_U(0.001))
+ CAP(C53M1, CAP_U(0.1))
+ CAP(C54M1, CAP_U(10))
+ CAP(C55M1, CAP_U(0.001))
+ CAP(C56M1, CAP_U(5))
+ CAP(C100, CAP_U(0.001))
+ CAP(C101, CAP_U(1))
+ CAP(C106, CAP_U(1))
+ CAP(C110, CAP_U(0.001))
+ CAP(C111, CAP_U(0.001))
+
+ POT(SHOT_NOISE_VOL, RES_K(50))
+ POT(BOOM_NOISE_VOL, RES_K(50))
+ POT(MOTOR1_VOL, RES_K(10))
+ POT(MOTOR1_VOL2, RES_K(100))
+ POT(MOTOR2_VOL, RES_K(10))
+ POT(MOTOR2_VOL2, RES_K(100))
+ POT(PLAYTIME, RES_M(1))
+ POT(FIRE1_ADJUST, RES_K(50))
+
+ SWITCH(P1_LEFT_UP)
+ SWITCH(P1_LEFT_DOWN)
+ SWITCH(P1_RIGHT_UP)
+ SWITCH(P1_RIGHT_DOWN)
+ SWITCH(P1_FIRE)
+ SWITCH(P2_LEFT_UP)
+ SWITCH(P2_LEFT_DOWN)
+ SWITCH(P2_RIGHT_UP)
+ SWITCH(P2_RIGHT_DOWN)
+ SWITCH(P2_FIRE)
+
+ SWITCH2(COIN1)
+ SWITCH2(COIN2)
+ SWITCH2(COINAGE1)
+ SWITCH2(COINAGE2)
+
+ LOCAL_SOURCE(NE556_DIP)
+
+ DIODE(CR1, "1N914")
+ DIODE(CR2, "1N914")
+ DIODE(CR3, "1N914")
+ DIODE(CR5, "1N914")
+ DIODE(CR6, "1N914")
+ DIODE(CR7, "1N914")
+ DIODE(CR8, "1N914")
+ DIODE(CR9, "1N914")
+ DIODE(CR10, "1N914")
+ DIODE(CR11, "1N914")
+ DIODE(CR12, "1N914")
+ DIODE(CR13M1, "1N914")
+ DIODE(CR14, "1N914")
+ DIODE(CR14M1, "1N914")
+ DIODE(CR19, "1N914")
+ DIODE(CR22, "1N914")
+
+ QBJT_EB(Q2, "2N3644")
+ QBJT_EB(Q3, "2N3643")
+ QBJT_EB(Q4, "2N3643")
+ QBJT_EB(Q6, "2N3644")
+ QBJT_EB(Q7, "2N3644")
+ QBJT_EB(Q27, "2N3643")
+ QBJT_EB(Q28, "2N3644")
+ QBJT_EB(Q29, "2N3643")
+ QBJT_EB(Q30, "2N3644")
+ QBJT_EB(Q31, "2N3643")
+ QBJT_EB(Q32, "2N3644")
+ QBJT_EB(Q33, "2N3643")
+ QBJT_EB(Q34, "2N3644")
+
+ TTL_7404_DIP(IC_H3)
+ TTL_7474_DIP(IC_J4)
+ TTL_7404_DIP(IC_B6)
+ TTL_7402_DIP(IC_D6)
+ TTL_74107_DIP(IC_E6)
+ TTL_7474_DIP(IC_J6)
+ TTL_7402_DIP(IC_N6)
+ TTL_7404_DIP(IC_A7)
+ NET_C(VCC, IC_H3.14, IC_J4.14, IC_B6.14, IC_D6.14, IC_E6.14, IC_J6.14, IC_N6.14, IC_A7.14)
+ NET_C(GND, IC_H3.7, IC_J4.7, IC_B6.7, IC_D6.7, IC_E6.7, IC_J6.7, IC_N6.7, IC_A7.7)
+
+ TTL_7408_DIP(IC_A11)
+ TTL_7402_DIP(IC_B11)
+ TTL_7410_DIP(IC_B12)
+ TTL_74107_DIP(IC_C12)
+ TTL_9316_DIP(IC_D12)
+ TTL_9316_DIP(IC_E12)
+ TTL_7493_DIP(IC_F12)
+ TTL_7493_DIP(IC_H12)
+ NET_C(VCC, IC_A11.14, IC_B11.14, IC_B12.14, IC_C12.14, IC_D12.16, IC_E12.16, IC_F12.5, IC_H12.5)
+ NET_C(GND, IC_A11.7, IC_B11.7, IC_B12.7, IC_C12.7, IC_D12.8, IC_E12.8, IC_F12.10, IC_H12.10)
+
+ TTL_74107_DIP(IC_J12)
+ TTL_7474_DIP(IC_K12)
+ TTL_7402_DIP(IC_A13)
+ TTL_7420_DIP(IC_D13)
+ TTL_7404_DIP(IC_E13)
+ TTL_7400_DIP(IC_J13)
+ TTL_7410_DIP(IC_A14)
+ TTL_7400_DIP(IC_B14)
+ NET_C(VCC, IC_J12.14, IC_K12.14, IC_A13.14, IC_D13.14, IC_E13.14, IC_J13.14, IC_A14.14, IC_B14.14)
+ NET_C(GND, IC_J12.7, IC_K12.7, IC_A13.7, IC_D13.7, IC_E13.7, IC_J13.7, IC_A14.7, IC_B14.7)
+
+ TTL_7400_DIP(IC_B13)
+ TTL_7410_DIP(IC_C13)
+ TTL_7420_DIP(IC_D13)
+ TTL_7400_DIP(IC_E14)
+ TTL_7474_DIP(IC_L12)
+ TTL_7474_DIP(IC_L9)
+ TTL_7408_DIP(IC_L8)
+ TTL_7400_DIP(IC_K8)
+ NET_C(VCC, IC_B13.14, IC_C13.14, IC_D13.14, IC_E14.14, IC_L12.14, IC_L9.14, IC_L8.14, IC_K8.14)
+ NET_C(GND, IC_B13.7, IC_C13.7, IC_D13.7, IC_E14.7, IC_L12.7, IC_L9.7, IC_L8.7, IC_K8.7)
+
+ TTL_7474_DIP(IC_K9)
+ SUBMODEL(NE556_DIP, IC_C11)
+ TTL_7492_DIP(IC_A12)
+ TTL_7404_DIP(IC_M13)
+ TTL_7402_DIP(IC_E15)
+ TTL_7410_DIP(IC_F14)
+ TTL_7427_DIP(IC_K13)
+ TTL_7400_DIP(IC_L13)
+ NET_C(VCC, IC_K9.14, IC_C11.14, IC_A12.5, IC_M13.14, IC_E15.14, IC_F14.14, IC_K13.14, IC_L13.14)
+ NET_C(GND, IC_K9.7, IC_C11.7, IC_A12.10, IC_M13.7, IC_E15.7, IC_F14.7, IC_K13.7, IC_L13.7)
+
+ TTL_74107_DIP(IC_D8)
+ TTL_74193_DIP(IC_H10)
+ TTL_7408_DIP(IC_H11)
+ TTL_7410_DIP(IC_C14)
+ TTL_9316_DIP(IC_H14)
+ TTL_7493_DIP(IC_J14)
+ TTL_7402_DIP(IC_D15)
+ TTL_7400_DIP(IC_D14)
+ NET_C(VCC, IC_D8.14, IC_H10.16, IC_H11.14, IC_C14.14, IC_H14.16, IC_J14.5, IC_D15.14, IC_D14.14)
+ NET_C(GND, IC_D8.7, IC_H10.8, IC_H11.7, IC_C14.7, IC_H14.8, IC_J14.10, IC_D15.7, IC_D14.7)
+
+ TTL_7493_DIP(IC_L14)
+ TTL_9613_DIP(IC_K14)
+ TTL_74193_DIP(IC_F11)
+ TTL_7486_DIP(IC_E8)
+ TTL_7402_DIP(IC_N7)
+ TTL_7400_DIP(IC_B15)
+ TTL_7402_DIP(IC_B9)
+ TTL_7408_DIP(IC_B7)
+ NET_C(VCC, IC_L14.5, IC_K14.16, IC_F11.16, IC_E8.14, IC_N7.14, IC_B15.14, IC_B9.14, IC_B7.14)
+ NET_C(GND, IC_L14.10, IC_K14.8, IC_F11.8, IC_E8.7, IC_N7.7, IC_B15.7, IC_B9.7, IC_B7.7)
+
+ TTL_7404_DIP(IC_B10)
+ TTL_9602_DIP(IC_C9)
+ TTL_7474_DIP(IC_A8)
+ TTL_7474_DIP(IC_A15)
+ TTL_7400_DIP(IC_A9)
+ TTL_9602_DIP(IC_C8)
+ TTL_7402_DIP(IC_B8)
+ TTL_7474_DIP(IC_J8)
+ NET_C(VCC, IC_B10.14, IC_C9.16, IC_A8.14, IC_A15.14, IC_A9.14, IC_C8.16, IC_B8.14, IC_J8.14)
+ NET_C(GND, IC_B10.7, IC_C9.8, IC_A8.7, IC_A15.7, IC_A9.7, IC_C8.8, IC_B8.7, IC_J8.7)
+
+ TTL_7493_DIP(IC_C10)
+ TTL_7493_DIP(IC_D11)
+ TTL_7493_DIP(IC_E11)
+ TTL_7402_DIP(IC_J7)
+ TTL_7404_DIP(IC_D11V)
+ TTL_7402_DIP(IC_L7)
+ TTL_7402_DIP(IC_D7)
+ TTL_74165_DIP(IC_N10)
+ NET_C(VCC, IC_C10.5, IC_D11.5, IC_E11.5, IC_J7.14, IC_D11V.14, IC_L7.14, IC_D7.14, IC_N10.16)
+ NET_C(GND, IC_C10.10, IC_D11.10, IC_E11.10, IC_J7.7, IC_D11V.7, IC_L7.7, IC_D7.7, IC_N10.8)
+
+ NE555_DIP(IC_H6)
+ NET_C(VCC, IC_H6.8)
+ NET_C(GND, IC_H6.1)
+
+ // Coin Handling
+ NET_C(COIN1.1, COIN1_NC)
+ NET_C(COIN1.2, COIN1_NO)
+ NET_C(COIN2.1, COIN2_NC)
+ NET_C(COIN2.2, COIN2_NO)
+ NET_C(GND, COIN1.Q, COIN2.Q)
+
+ NET_C(IC_B6.11, IC_B6.12)
+ NET_C(IC_B6.13, IC_B6.10)
+ NET_C(IC_B6.5, IC_B6.2)
+ NET_C(IC_B6.1, IC_B6.6)
+ ALIAS(COIN1_NO, IC_B6.11)
+ ALIAS(COIN1_NC, IC_B6.13)
+ NET_C(COIN2_NO, IC_B6.5)
+ NET_C(COIN2_NC, IC_B6.1)
+
+ NET_C(IC_B6.6, IC_D6.8)
+ NET_C(IC_B6.10, IC_D6.9)
+ NET_C(IC_B6.12, IC_N6.5)
+ NET_C(IC_B6.2, IC_N6.6)
+
+ NET_C(IC_D6.10, IC_D6.11)
+ NET_C(ATTRACT, IC_D6.12)
+
+ NET_C(IC_D6.13, IC_J6.12, IC_J6.13, IC_J4.1)
+ NET_C(IC_J6.9, IC_J4.2)
+ NET_C(V128, IC_J4.3, IC_J6.11, IC_E6.9))
+ NET_C(IC_J4.5, IC_E6.C)
+ NET_C(VCC, IC_E6.1, IC_E6.4)
+ ALIAS(COIN, IC_J4.5)
+ ALIAS(COINQ, IC_J4.6)
+
+ NET_C(IC_E6.3, IC_N6.3)
+ NET_C(IC_N6.4, IC_N6.2)
+ NET_C(IC_N6.1, COINAGE1.2)
+
+ NET_C(GND, COINAGE1.1, R48A.1)
+ NET_C(R48A.2, COINAGE1.Q, IC_D6.3)
+ NET_C(COINQ, IC_D6.2)
+ ALIAS(START, IC_D6.1)
+
+ // Game Timer / Attract
+ NET_C(V5, PLAYTIME.2, PLAYTIME.3)
+ NET_C(COINAGE2.1, PLAYTIME.3, R54A.1)
+ NET_C(COINAGE2.Q, R53A.1)
+ NET_C(R54A.2, IC_H6.6, IC_H6.7, R53A.2, R60A.1, C25.1)
+ NET_C(R60A.2, Q2.B)
+ NET_C(GND, COINAGE2.2, C25.2, Q3.E, Q4.E, C24.2)
+ NET_C(IC_H6.5, C24.1, R59A.1)
+ NET_C(R59A.2, Q2.E, R56A.2, R63A.1, Q3.C, Q4.B)
+ NET_C(V5, R56A.1, R55A.1)
+ NET_C(R63A.2, R55A.2, Q4.C, IC_H3.5)
+ ALIAS(GNE, IC_H3.6)
+ NET_C(IC_H6.4, ATTRACTQ)
+ NET_C(IC_H6.3, IC_D6.5)
+ NET_C(IC_D6.4, IC_E6.11)
+ NET_C(V5, IC_E6.10) // No antenna to spark, so we pretend we never get a spark
+ ALIAS(ATTRACT, IC_E6.6)
+ NET_C(IC_D6.6, ATTRACT)
+ ALIAS(ATTRACTQ, IC_E6.5)
+ NET_C(IC_N6.9, ATTRACTQ)
+ NET_C(GND, IC_N6.8) // No antenna to spark, so we pretend we never get a spark
+ NET_C(IC_N6.10, IC_E6.13)
+ NET_C(START, IC_E6.8, IC_H3.3)
+ NET_C(IC_H3.4, IC_H6.2)
+
+ // H Info
+ NET_C(H128, IC_A13.12)
+ NET_C(H_SYNC, IC_A13.8)
+ NET_C(IC_A13.10, IC_A13.11)
+ NET_C(IC_A13.13, IC_A13.9)
+ ALIAS(H_INFO, IC_A13.13)
+ ALIAS(H_INFOQ, IC_A13.10)
+
+ // V Info
+ NET_C(V16, IC_J13.9)
+ NET_C(V64, IC_J13.10)
+ NET_C(V512Q, IC_J13.2)
+ NET_C(IC_J13.8, IC_J13.12)
+ NET_C(IC_J13.3, IC_J13.13)
+ NET_C(IC_J13.11, IC_J13.1)
+ ALIAS(V_INFO, IC_J13.3)
+ ALIAS(V_INFOQ, IC_J13.11)
+
+ // Reset2
+ NET_C(H256, IC_A11.2)
+ NET_C(H452, IC_A11.1)
+ ALIAS(RESET2, IC_A11.3)
+
+ // Main Timing & Sync
+ CLOCK(CLK, 14318000)
+ NET_C(VCC, CLK.VCC)
+ NET_C(GND, CLK.GND)
+
+ NET_C(CLK.Q, IC_A7.1, IC_A7.3)
+ ALIAS(CLOCKQ, IC_A7.4)
+
+ // Horizontal Timing
+ NET_C(IC_A7.2, IC_K12.3, IC_E12.2, IC_D12.2)
+ NET_C(V5, IC_E12.7, IC_E12.10, IC_E12.9, IC_D12.10, IC_D12.9, IC_C12.1, IC_C12.4, IC_C12.8, IC_C12.11, IC_C12.10, IC_K12.4, IC_K12.1)
+ ALIAS(H1, IC_E12.14)
+ ALIAS(H2, IC_E12.13)
+ ALIAS(H4, IC_E12.12)
+ ALIAS(H8, IC_E12.11)
+ NET_C(IC_E12.15, IC_D12.7)
+ ALIAS(H16, IC_D12.14)
+ ALIAS(H32, IC_D12.13)
+ ALIAS(H64, IC_D12.12)
+ ALIAS(H128, IC_D12.11)
+ NET_C(IC_D12.15, IC_C12.12)
+ NET_C(IC_C12.3, IC_C12.9)
+ ALIAS(H256, IC_C12.3)
+ ALIAS(H256Q, IC_C12.2)
+ ALIAS(H452, IC_C12.5)
+ NET_C(IC_C12.6, IC_B12.5)
+ NET_C(H452Q, IC_C12.6)
+ NET_C(H256, IC_D13.1)
+ NET_C(H128, IC_D13.4)
+ NET_C(H64, IC_D13.5)
+ NET_C(H2, IC_D13.2)
+ NET_C(IC_D13.6, IC_K12.2)
+ NET_C(IC_E12.1, IC_D12.1, IC_C12.13, IC_B12.3, IC_K12.5, IC_B14.5)
+ ALIAS(H_RESETQ, IC_K12.5)
+ ALIAS(H_RESET, IC_K12.6)
+ NET_C(H32Q, IC_B14.1)
+ NET_C(IC_B14.6, IC_B14.2)
+ NET_C(IC_B14.3, IC_B14.4)
+ ALIAS(H_BLANK, IC_B14.6)
+ NET_C(H_BLANK, IC_B12.4)
+ NET_C(H4, IC_E13.9)
+ NET_C(H16, IC_E13.11)
+ NET_C(H32, IC_E13.13)
+ NET_C(H64, IC_E13.5)
+ ALIAS(H4Q, IC_E13.8)
+ ALIAS(H16Q, IC_E13.10)
+ ALIAS(H32Q, IC_E13.12)
+ ALIAS(H64Q, IC_E132.6)
+ ALIAS(H_SYNCQ, IC_B12.6)
+ NET_C(H_SYNCQ, IC_E13.3, IC_A14.10)
+ NET_C(H_INFO, IC_A14.11)
+ NET_C(H64Q, IC_A14.9)
+ NET_C(IC_A14.8, IC_A14.3, IC_A14.4, IC_A14.5)
+ NET_C(IC_A14.6, IC_B11.5)
+ NET_C(H8, IC_B11.3)
+ NET_C(H16, IC_B11.2)
+ NET_C(IC_B11.1, IC_B12.2)
+ NET_C(H2, IC_B12.3)
+ NET_C(IC_E13.4, IC_B12.1)
+ ALIAS(H_SYNC, IC_E13.4)
+ ALIAS(H_COUNTQ, IC_B12.12)
+
+ // Vertical Timing
+ NET_C(V8, IC_J13.5)
+ NET_C(V512, IC_J13.4)
+ NET_C(IC_J13.6, IC_K12.12)
+ NET_C(H_RESET, IC_K12.11)
+ NET_C(VCC, IC_K12.10, IC_K12.13)
+ ALIAS(IC_K12.9, V_RESETQ)
+ ALIAS(IC_K12.8, V_RESET)
+ NET_C(V_RESET, IC_F12.2, IC_F12.3, IC_H12.2, IC_H12.3, IC_B11.12)
+ NET_C(H_BLANK, IC_F12.14)
+ NET_C(IC_F12.12, IC_F12.1)
+ NET_C(IC_F12.11, IC_H12.14)
+ NET_C(IC_H12.12, IC_H12.1)
+ NET_C(IC_H12.11, IC_J12.12)
+ NET_C(VCC, IC_J12.1, IC_J12.4, IC_J12.8, IC_J12.11)
+ NET_C(IC_J12.3, IC_J12.9)
+ NET_C(IC_J12.13, IC_J12.10)
+ ALIAS(V1, IC_F12.12)
+ ALIAS(V2, IC_F12.9)
+ ALIAS(V4, IC_F12.8)
+ ALIAS(V8, IC_F12.11)
+ ALIAS(V16, IC_H12.12)
+ ALIAS(V32, IC_H12.9)
+ ALIAS(V64, IC_H12.8)
+ ALIAS(V128, IC_H12.11)
+ ALIAS(V256, IC_J12.3)
+ ALIAS(V256Q, IC_J12.2)
+ ALIAS(V512, IC_J12.5)
+ ALIAS(V512Q, IC_J12.6)
+ ALIAS(V_RESETQ, IC_J12.13)
+ NET_C(V8, IC_B11.8)
+ NET_C(IC_B11.10, IC_B11.11)
+ NET_C(IC_B11.13, IC_B11.9)
+ ALIAS(IC_B11.10, V_SYNC)
+ NET_C(V_SYNC, IC_B11.6)
+ ALIAS(COMP_SYNC, IC_B11.4)
+
+ // Out-of-Bounds Detection
+ NET_C(RESET_2, IC_D13.10)
+ NET_C(H16, IC_D13.12)
+ NET_C(H128, IC_D13.9, IC_C13.4)
+ NET_C(H32, IC_D13.13, IC_C13.3)
+ NET_C(H452Q, IC_C13.5)
+ NET_C(IC_D13.8, IC_B13.9)
+ NET_C(IC_C13.6, IC_B13.12)
+ NET_C(IC_B13.8, IC_B13.13)
+ NET_C(IC_B13.11, IC_B13.10, IC_E14.5)
+ NET_C(V_INFOQ, IC_E14.4)
+ ALIAS(OOB, IC_E14.6)
+
+ // Tank Resets
+ NET_C(OOB, IC_K8.1, IC_K8.12)
+ NET_C(TANK2, IC_K8.2)
+ NET_C(STARTQ, IC_L8.1, IC_L8.13)
+ NET_C(IC_K8.3, IC_L8.2)
+ NET_C(IC_L8.3, IC_L12.1, IC_L12.13)
+ NET_C(VCC, IC_L12.2, IC_L12.4, IC_L12.10, IC_L12.12)
+ NET_C(RESET2, IC_L12.3)
+ NET_C(V256, IC_L12.11)
+ ALIAS(HRST2Q, IC_L12.5)
+ ALIAS(VRST2Q, IC_L12.9)
+
+ NET_C(TANK1, IC_K8.13)
+ NET_C(IC_K8.11, IC_L8.12)
+ NET_C(IC_L8.11, IC_L9.1, IC_L9.13)
+ NET_C(VCC, IC_L9.2, IC_L9.4, IC_L9.10, IC_L9.12)
+ NET_C(H_INFOQ, IC_L9.11)
+ NET_C(V_RESET, IC_L9.3)
+ NET_C(HRST1Q, IC_L9.9)
+ NET_C(VRST1Q, IC_L9.5)
+
+ // HMCE
+ NET_C(GND, IC_K9.12)
+ NET_C(VCC, IC_K9.4, IC_K9.13, IC_K9.1)
+ NET_C(VLD2, IC_K9.11)
+ NET_C(H452Q, IC_K9.3)
+ NET_C(IC_K9.5, IC_K9.10)
+ ALIAS(HMCEQ, IC_K9.5)
+ ALIAS(HMCE, IC_K9.6)
+
+ // Blo-Up 1 & Blo-Up 2
+ NET_C(V5, R28.1, R29.1)
+ NET_C(GND, C19.2, C18.2, C15.2, C16.2)
+ NET_C(R28.1, IC_C11.2, IC_C11.1, C19.1)
+ NET_C(R29.1, IC_C11.12, IC_C11.13, C18.1)
+ NET_C(C15.1, IC_C11.3)
+ NET_C(C16.1, IC_C11.11)
+ NET_C(HIT1Q, IC_C11.4, IC_C11.6)
+ NET_C(HIT2Q, IC_C11.8, IC_C11.10)
+ ALIAS(BLO_UP1, IC_C11.5)
+ ALIAS(BLO_UP2, IC_C11.9)
+
+ // Flash & TM1
+ NET_C(GND, IC_A12.6, IC_A12.7)
+ NET_C(V_RESETQ, IC_A12.14)
+ NET_C(IC_A12.12, IC_A12.1, IC_B12.10)
+ NET_C(IC_A12.11, IC_B12.9)
+ HINT(IC_A12.9, NC)
+ NET_C(VLD2, IC_B12.11)
+ NET_C(ATTRACTQ, IC_M13.1)
+ NET_C(IC_M13.2, IC_A13.2)
+ NET_C(IC_B12.8, IC_A13.3)
+ ALIAS(FLASH, IC_A12.8)
+ ALIAS(TM1, IC_A13.1)
+
+ // Tank 1 Control
+ NET_C(GND, P1_RIGHT_UP.1, P1_RIGHT_DOWN.1, P1_LEFT_UP.1, P1_LEFT_DOWN.1)
+ NET_C(GND, C39.2, C40.2, C41.2, C42.2)
+ NET_C(VCC, R56B.1, R57.1, R58.1, R59B.1, CR9.K, CR10.K, CR11.K, CR12.K)
+
+ NET_C(P1_RIGHT_UP.2, R63B.1)
+ NET_C(R63B.2, R59B.2, CR9.A, C42.1, IC_E15.2, IC_E15.12)
+ NET_C(P1_RIGHT_DOWN.2, R61.1)
+ NET_C(R61.2, R57.2, CR11.A, C40.1, IC_E15.6, IC_E15.9)
+ NET_C(P1_LEFT_UP.2, R62.1)
+ NET_C(R62.2, R58.2, CR10.A, C41.1, IC_E15.8, IC_E15.3)
+ NET_C(P1_LEFT_DOWN.2, R60B.1)
+ NET_C(R60B.2, R56B.2, CR12.A, C39.1, IC_E15.11, IC_E15.5)
+
+ ALIAS(ACC1, IC_E15.1)
+ ALIAS(STOP1, IC_E15.4)
+ ALIAS(RR1, IC_E15.10)
+ ALIAS(RL1, IC_E15.13)
+
+ NET_C(TM1, IC_E14.2, IC_C14.10, IC_E14.12, IC_E14.9)
+ NET_C(STOP1, IC_E14.1)
+ NET_C(ACC1, IC_C14.11)
+ NET_C(RR1, IC_E14.13)
+ NET_C(RL1, IC_E14.10)
+
+ NET_C(BOUNCE1Q, IC_F14.5)
+ NET_C(ATTRACTQ, IC_F14.4)
+ NET_C(IC_E14.3, IC_F14.3)
+ NET_C(IC_F14.6, IC_J14.2, IC_J14.3)
+ NET_C(IC_C14.8, IC_J14.1)
+ NET_C(IC_J14.9, IC_K13.9, IC_H14.4)
+ NET_C(IC_J14.8, IC_K13.10, IC_L13.9, IC_H14.5)
+ NET_C(IC_J14.11, IC_K13.11, IC_L13.10, IC_H14.6)
+ NET_C(IC_L13.8, IC_C14.9)
+
+ NET_C(GND, IC_H14.3)
+ NET_C(VCC, IC_H14.10, IC_H14.7)
+ NET_C(VLD1, IC_H14.2)
+ NET_C(IC_K13.8, IC_M13.5)
+ NET_C(IC_M13.6, IC_H14.1)
+ NET_C(IC_H14.15, IC_M13.11)
+ NET_C(IC_H14.9, IC_M13.10, IC_L13.4)
+ NET_C(BOUNCE1Q, IC_L13.5)
+ ALIAS(G01, IC_L13.6)
+
+ NET_C(HIT2Q, IC_H11.5)
+ NET_C(IC_E14.11, IC_H11.4)
+ NET_C(IC_H11.6, IC_H10.5)
+ NET_C(IC_E14.8, IC_H10.4)
+ NET_C(STARTQ, IC_H10.11)
+ NET_C(VCC, IC_H10.9)
+ NET_C(GND, IC_H10.15, IC_H10.1, IC_H10.10, IC_H10.14)
+ NET_C(IC_H10.12, IC_H11.10)
+ NET_C(IC_H10.13, IC_H11.9)
+ NET_C(IC_H11.8, IC_D8.12)
+ NET_C(VCC, IC_D8.1, IC_D8.4)
+ NET_C(STARTQ, IC_D8.13)
+ HINT(IC_D8.3, NC)
+ ALIAS(P1D0, IC_H10.3)
+ ALIAS(P1D1, IC_H10.2)
+ ALIAS(P1D2, IC_H10.6)
+ ALIAS(P1D3, IC_H10.7)
+ ALIAS(P1D4, IC_D8.2)
+ ALIAS(P1SP0, IC_J14.9)
+ ALIAS(P1SP1, IC_J14.8)
+ ALIAS(P1SP2, IC_J14.11)
+
+ // Tank 2 Control
+ NET_C(GND, P2_RIGHT_UP.1, P2_RIGHT_DOWN.1, P2_LEFT_UP.1, P2_LEFT_DOWN.1)
+ NET_C(GND, C33.2, C34.2, C35.2, C36.2)
+ NET_C(VCC, R48.1, R49.1, R50.1, R51.1, CR5.K, CR6.K, CR7.K, CR8.K)
+
+ NET_C(P2_RIGHT_UP.2, R55.1)
+ NET_C(R55.2, R51.2, CR5.A, C36.1, IC_D15.2, IC_D15.12)
+ NET_C(P2_RIGHT_DOWN.2, R53.1)
+ NET_C(R53.2, R49.2, CR7.A, C34.1, IC_D15.6, IC_D15.9)
+ NET_C(P2_LEFT_UP.2, R54.1)
+ NET_C(R54.2, R50.2, CR6.A, C35.1, IC_D15.8, IC_D15.3)
+ NET_C(P2_LEFT_DOWN.2, R52.1)
+ NET_C(R52.2, R48.2, CR8.A, C33.1, IC_D15.11, IC_D15.5)
+
+ ALIAS(ACC2, IC_D15.1)
+ ALIAS(STOP2, IC_D15.4)
+ ALIAS(RR2, IC_D15.10)
+ ALIAS(RL2, IC_D15.13)
+
+ NET_C(TM1, IC_D14.2, IC_C14.4, IC_D14.12, IC_D14.9)
+ NET_C(STOP2, IC_D14.1)
+ NET_C(ACC2, IC_C14.3)
+ NET_C(RR2, IC_D14.13)
+ NET_C(RL2, IC_D14.10)
+
+ NET_C(BOUNCE2Q, IC_F14.9)
+ NET_C(ATTRACTQ, IC_F14.10)
+ NET_C(IC_D14.3, IC_F14.11)
+ NET_C(IC_F14.8, IC_L14.2, IC_L14.3)
+ NET_C(IC_C14.6, IC_L14.1)
+ NET_C(IC_L14.9, IC_K13.5, IC_K14.4)
+ NET_C(IC_L14.8, IC_K13.5, IC_L13.12, IC_K14.5)
+ NET_C(IC_L14.11, IC_K13.11, IC_L13.13, IC_K14.3)
+ NET_C(IC_L13.11, IC_C14.5)
+
+ NET_C(GND, IC_K14.3)
+ NET_C(VCC, IC_K14.10, IC_K14.7)
+ NET_C(VLD2, IC_K14.2)
+ NET_C(IC_K13.6, IC_M13.9)
+ NET_C(IC_M13.8, IC_K14.1)
+ NET_C(IC_K14.15, IC_M13.13)
+ NET_C(IC_K14.9, IC_M13.12, IC_L13.2)
+ NET_C(BOUNCE2Q, IC_L13.1)
+ ALIAS(G02, IC_L13.3)
+
+ NET_C(HIT1Q, IC_H11.2)
+ NET_C(IC_D14.11, IC_H11.1)
+ NET_C(IC_H11.3, IC_F11.5)
+ NET_C(IC_D14.8, IC_F11.4)
+ NET_C(STARTQ, IC_F11.11)
+ NET_C(VCC, IC_F11.9)
+ NET_C(GND, IC_F11.15, IC_F11.1, IC_F11.10, IC_F11.14)
+ NET_C(IC_F11.12, IC_H11.12)
+ NET_C(IC_F11.13, IC_H11.13)
+ NET_C(IC_H11.11, IC_D8.9)
+ NET_C(VCC, IC_D8.8, IC_D8.11)
+ NET_C(STARTQ, IC_D8.10)
+ HINT(IC_D8.6, NC)
+ ALIAS(P2D0, IC_F11.3)
+ ALIAS(P2D1, IC_F11.2)
+ ALIAS(P2D2, IC_F11.6)
+ ALIAS(P2D3, IC_F11.7)
+ NET_C(IC_D8.5, IC_E8.10)
+ ALIAS(P2D4, IC_D8.5)
+ NET_C(BOUNCE2, IC_E8.9)
+ ALIAS(P2D4S, IC_E8.8)
+ ALIAS(P2SP0, IC_L14.9)
+ ALIAS(P2SP1, IC_L14.8)
+ ALIAS(P2SP2, IC_L14.11)
+
+ // Shell 1 Control
+ NET_C(GND, P1_FIRE.1, C31.2, C100.2, IC_C9.12, IC_C9.4)
+ NET_C(P1_FIRE.2, R43.1)
+ NET_C(R43.2, C31.1, R41.2, CR2.A, IC_B15.1)
+ NET_C(VCC, R41.1, CR2.K)
+ NET_C(BLO_UP2, IC_N7.5)
+ NET_C(SRS1, IC_N7.6)
+ NET_C(IC_N7.4, IC_A15.1)
+ NET_C(HMCEQ, IC_A15.3)
+ NET_C(ATTRACTQ, IC_A15.2)
+ NET_C(VCC, IC_A15.4, RUNK1.2, FIRE1_ADJUST.3, FIRE1_ADJUST.2, IC_C9.3, IC_A8.1, IC_A8.4)
+ NET_C(IC_A15.5, IC_B15.13)
+ NET_C(IC_B15.11, IC_C9.11, IC_B15.2)
+ NET_C(IC_B15.3, IC_B15.12)
+ NET_C(PLAYFIELD, IC_B9.8, IC_B7.4, C100.1)
+ NET_C(SHELL1, IC_B7.5)
+ NET_C(IC_B7.6, IC_B9.6)
+ NET_C(HIT2, IC_B9.5)
+ NET_C(IC_B9.4, IC_C9.13)
+ NET_C(C11.1, IC_C9.15)
+ NET_C(C11.2, IC_C9.14, FIRE1_ADJUST.1)
+ NET_C(C12.1, IC_C9.1)
+ NET_C(C12.2, IC_C9.2, RUNK1.1)
+ NET_C(IC_C9.10, IC_C9.5)
+ ALIAS(FIRE1, IC_C9.10)
+ ALIAS(FIRE1Q, IC_C9.9)
+ ALIAS(EXPL1, IC_C9.6)
+ ALIAS(EXPL1Q, IC_C9.7)
+ NET_C(TANK2, IC_B9.9)
+ NET_C(IC_B9.10, IC_B9.11)
+ NET_C(TANK1, IC_B10.9)
+ NET_C(IC_B10.8, IC_B9.12)
+ ALIAS(TANK1Q, IC_B10.8)
+ NET_C(HT1Q, IC_B10.5)
+ NET_C(IC_B10.6, IC_B9.2)
+ NET_C(IC_B9.13, IC_B9.3)
+ NET_C(IC_B9.1, IC_A9.1)
+ NET_C(IC_A9.3, IC_A9.12, IC_A8.2)
+ NET_C(IC_A9.11, IC_A9.2)
+ NET_C(IC_A8.5, IC_E8.5)
+ ALIAS(BOUNCE1, IC_A8.5)
+ NET_C(IC_A8.6, IC_A9.13)
+ ALIAS(BOUNCE1Q, IC_A8.6)
+ NET_C(P1D4, IC_E8.4)
+ ALIAS(P1D4S, IC_E8.6)
+
+ // Shell 2 Control
+ NET_C(GND, P2_FIRE.1, C30.2, IC_C8.12, IC_C8.4)
+ NET_C(P2_FIRE.2, R42.1)
+ NET_C(R42.2, C30.1, R40.2, CR3.A, IC_B15.4)
+ NET_C(VCC, R40.1, CR3.K)
+ NET_C(BLO_UP1, IC_N7.3)
+ NET_C(SRS2, IC_N7.2)
+ NET_C(IC_N7.1, IC_A15.13)
+ NET_C(HMCEQ, IC_A15.11)
+ NET_C(ATTRACTQ, IC_A15.12)
+ NET_C(VCC, IC_A15.10, R16.2, R15.2, IC_C8.3, IC_A8.10, IC_A8.13)
+ NET_C(IC_A15.9, IC_B15.10)
+ NET_C(IC_B15.8, IC_C8.11, IC_B15.5)
+ NET_C(IC_B15.6, IC_B15.9)
+ NET_C(PLAYFIELD, IC_B8.8, IC_B7.1)
+ NET_C(SHELL2, IC_B7.2)
+ NET_C(IC_B7.3, IC_B8.6)
+ NET_C(HIT1, IC_B8.5)
+ NET_C(IC_B8.4, IC_C8.13)
+ NET_C(C8.1, IC_C8.15)
+ NET_C(C8.2, IC_C8.14, R16.1)
+ NET_C(C9.1, IC_C8.1)
+ NET_C(C9.2, IC_C8.2, R15.1)
+ NET_C(IC_C8.10, IC_C8.5)
+ ALIAS(FIRE2, IC_C8.10)
+ ALIAS(FIRE2Q, IC_C8.9)
+ ALIAS(EXPL2, IC_C8.6)
+ ALIAS(EXPL2Q, IC_C8.7)
+ NET_C(TANK1, IC_B8.9)
+ NET_C(IC_B8.10, IC_B8.12)
+ NET_C(TANK2, IC_B10.11)
+ NET_C(IC_B10.10, IC_B8.11)
+ ALIAS(TANK1Q, IC_B10.10)
+ NET_C(HT2Q, IC_B10.3)
+ NET_C(IC_B10.4, IC_B8.2)
+ NET_C(IC_B8.13, IC_B8.3)
+ NET_C(IC_B8.1, IC_A9.4)
+ NET_C(IC_A9.6, IC_A9.9, IC_A8.12)
+ NET_C(IC_A9.8, IC_A9.5)
+ ALIAS(BOUNCE2, IC_A8.9)
+ NET_C(IC_A8.8, IC_A9.10)
+ ALIAS(BOUNCE2Q, IC_A8.8)
+
+ // Score
+ NET_C(VCC, IC_J8.1, IC_J8.13)
+ NET_C(GND, IC_J8.2, IC_J8.12)
+ NET_C(TANK2, IC_K8.4)
+ NET_C(SHELL1, IC_K8.5)
+ NET_C(IC_K8.6, IC_J8.4)
+ NET_C(IC_J8.2, GND)
+ NET_C(V_RESET, IC_J8.3, IC_J8.11)
+ NET_C(IC_J8.5, IC_J7.2)
+ NET_C(MTK2, IC_J7.3)
+ NET_C(IC_J7.1, IC_C10.14)
+ NET_C(START, IC_C10.2, IC_C10.3, IC_D11.2, IC_D11.3, IC_E11.2, IC_E11.3)
+ ALIAS(HIT2, IC_J8.5)
+ ALIAS(HIT2Q, IC_J8.6)
+ ALIAS(HT2Q, IC_J7.1)
+ NET_C(IC_C10.12, IC_C10.1)
+ ALIAS(SCR1A, IC_C10.12)
+ ALIAS(SCR1B, IC_C10.9)
+ ALIAS(SCR1C, IC_C10.8)
+ ALIAS(SCR1D, IC_C10.11)
+ NET_C(TANK1, IC_K8.10)
+ NET_C(SHELL2, IC_K8.9)
+ NET_C(IC_K8.8, IC_J8.10)
+ NET_C(IC_J8.9, IC_J7.12)
+ NET_C(MTK1, IC_J7.11)
+ NET_C(IC_J7.13, IC_D11.1)
+ NET_C(SCR1D, IC_D11.14)
+ NET_C(IC_D11.12, IC_E11.1)
+ NET_C(IC_D11.11, IC_E11.14)
+ ALIAS(SCR1E, IC_D11.11)
+ ALIAS(SCR2A, IC_D11.9)
+ ALIAS(SCR2B, IC_D11.8)
+ ALIAS(SCR2C, IC_D11.11)
+ ALIAS(SCR1F, IC_E11.12)
+ ALIAS(SCR2D, IC_E11.9)
+ ALIAS(SCR2E, IC_E11.8)
+ ALIAS(SCR2F, IC_E11.11)
+
+ // Memory
+ TTL_9322_DIP(IC_F10)
+ TTL_9322_DIP(IC_F8)
+ TTL_9322_DIP(IC_D10)
+ TTL_9322_DIP(IC_E10)
+ NET_C(VCC, IC_F10.16, IC_F8.16, IC_D10.16, IC_E10.16)
+ NET_C(GND, IC_F10.8, IC_F8.8, IC_D10.8, IC_E10.8, IC_F10.15, IC_F8.15, IC_D10.15, IC_E10.15)
+
+ TTL_7400_DIP(IC_H8)
+ NET_C(VCC, IC_H8.14)
+ NET_C(GND, IC_H8.7)
+
+ NET_C(H64, IC_F10.1, IC_F8.1, IC_H8.2)
+ NET_C(H64Q, IC_H8.12)
+ NET_C(H452Q, IC_D10.1, IC_E10.1)
+ NET_C(P1D0, IC_F10.2)
+ NET_C(P2D0, IC_F10.3)
+ NET_C(P1D1, IC_F10.5)
+ NET_C(P2D1, IC_F10.6)
+ NET_C(P1D2, IC_F10.14)
+ NET_C(P2D2, IC_F10.13)
+ NET_C(P1D3, IC_F10.11)
+ NET_C(P2D3, IC_F10.10)
+
+ NET_C(P1D4, IC_F8.2)
+ NET_C(P2D4, IC_F8.3)
+ NET_C(P1D4S, IC_F8.5)
+ NET_C(P2D4S, IC_F8.6)
+ NET_C(P1T2, IC_F8.14)
+ NET_C(P1T2, IC_F8.13)
+ NET_C(P1T3, IC_F8.11)
+ NET_C(P1T3, IC_F8.10)
+
+ NET_C(P1T4, IC_H8.13)
+ NET_C(P2T4, IC_H8.1)
+ NET_C(IC_H8.11, IC_H8.10)
+ NET_C(IC_H8.3, IC_H8.9)
+
+ NET_C(SCR1A, IC_D10.2)
+ NET_C(SCR2A, IC_D10.3)
+ NET_C(SCR1B, IC_D10.5)
+ NET_C(SCR2B, IC_D10.6)
+ NET_C(SCR1C, IC_D10.14)
+ NET_C(SCR2C, IC_D10.13)
+ NET_C(SCR1D, IC_D10.11)
+ NET_C(SCR2D, IC_D10.10)
+
+ NET_C(SCR1E, IC_E10.2)
+ NET_C(SCR2E, IC_E10.3)
+ NET_C(SCR1F, IC_E10.5)
+ NET_C(SCR2F, IC_E10.6)
+ NET_C(GND, IC_E10.14, IC_E10.13, IC_E10.11, IC_E10.10)
+
+ ALIAS(D0, IC_F10.4)
+ ALIAS(D1, IC_F10.7)
+ ALIAS(D2, IC_F10.12)
+ ALIAS(D3, IC_F10.9)
+
+ ALIAS(D4, IC_F8.4)
+ ALIAS(D4S, IC_F8.7)
+ ALIAS(T2, IC_F8.12)
+ ALIAS(T3, IC_F8.9)
+
+ ALIAS(T4, IC_H8.8)
+
+ ALIAS(SCRA, IC_D10.4)
+ ALIAS(SCRB, IC_D10.7)
+ ALIAS(SCRC, IC_D10.12)
+ ALIAS(SCRD, IC_D10.9)
+
+ ALIAS(SCRE, IC_E10.4)
+ ALIAS(SCRF, IC_E10.7)
+ HINT(IC_E10.12, NC)
+ HINT(IC_E10.9, NC)
+
+ TTL_74153_DIP(IC_D9)
+ TTL_74153_DIP(IC_E9)
+ TTL_74153_DIP(IC_J9)
+ TTL_74153_DIP(IC_H9)
+ TTL_74153_DIP(IC_F9)
+ NET_C(VCC, IC_D9.16, IC_E9.16, IC_J9.16, IC_H9.16, IC_F9.16)
+ NET_C(GND, IC_D9.8, IC_E9.8, IC_J9.8, IC_H9.8, IC_F9.8)
+ NET_C(GND, IC_D9.1, IC_E9.1, IC_J9.1, IC_H9.1, IC_F9.1)
+ NET_C(GND, IC_D9.15, IC_E9.15, IC_J9.15, IC_H9.15, IC_F9.15)
+
+ NET_C(VCC, R13.1)
+
+ NET_C(R13.2, IC_D9.6)
+ NET_C(GND, IC_D9.5)
+ NET_C(VCC, IC_D9.4)
+ NET_C(R13.2, IC_D9.3)
+ NET_C(V256, IC_D9.10)
+ NET_C(SCRF, IC_D9.11)
+ NET_C(D3, IC_D9.12)
+ NET_C(V256, IC_D9.13)
+
+ NET_C(128V, IC_E9.6)
+ NET_C(SCRE, IC_E9.5)
+ NET_C(D3, IC_E9.4)
+ NET_C(V128, IC_E9.3)
+ NET_C(V64, IC_E9.10)
+ NET_C(SCRD, IC_E9.11)
+ NET_C(D1, IC_E9.12)
+ NET_C(V64, IC_E9.13)
+
+ NET_C(GND, IC_J9.6)
+ NET_C(SCRC, IC_J9.5)
+ NET_C(D0, IC_J9.4)
+ NET_C(V32, IC_J9.3)
+ NET_C(D4S, IC_J9.10)
+ NET_C(SCRB, IC_J9.11)
+ NET_C(H32Q, IC_J9.12)
+ NET_C(V16, IC_J9.13)
+
+ NET_C(D3, IC_H9.6)
+ NET_C(SCRA, IC_H9.5)
+ NET_C(D4, IC_H9.4)
+ NET_C(H452, IC_H9.3)
+ NET_C(D2, IC_H9.10)
+ NET_C(V16, IC_H9.11)
+ NET_C(T4, IC_H9.12)
+ NET_C(H256, IC_H9.13)
+
+ NET_C(D1, IC_F9.6)
+ NET_C(V8, IC_F9.5)
+ NET_C(T3, IC_F9.4)
+ NET_C(H128, IC_F9.3)
+ NET_C(D0, IC_F9.10)
+ NET_C(V4, IC_F9.11)
+ NET_C(T2, IC_F9.12)
+ NET_C(H64, IC_F9.13)
+
+ NET_C(H_INFOQ, IC_D9.14, IC_E9.14, IC_J9.14, IC_H9.14, IC_F9.14, IC_E8.13)
+ NET_C(V_INFOQ, IC_D9.2, IC_E9.2, IC_J9.2, IC_H9.2, IC_F9.2, IC_E8.12)
+
+ PROM_MK28000_DIP(IC_R10)
+ NET_C(VCC, IC_R10.1, IC_R10.14, IC_R10.14)
+ NET_C(GND, IC_R10.9)
+ NET_C(H16, IC_R10.13)
+ NET_C(IC_E8.11, IC_R10.15)
+ NET_C(IC_D9.7, IC_R10.8)
+ NET_C(IC_D9.9, IC_R10.10)
+ NET_C(IC_E9.7, IC_R10.11)
+ NET_C(IC_E9.9, IC_R10.12)
+ NET_C(IC_J9.7, IC_R10.7)
+ NET_C(IC_J9.9, IC_R10.6)
+ NET_C(IC_H9.7, IC_R10.5)
+ NET_C(IC_H9.9, IC_R10.4)
+ NET_C(IC_F9.7, IC_R10.3)
+ NET_C(IC_F9.9, IC_R10.2)
+
+ TTL_7406_DIP(IC_M10)
+ TTL_7406_DIP(IC_N13)
+ NET_C(VCC, IC_M10.14, IC_N13.14)
+ NET_C(GND, IC_M10.7, IC_N13.7, R19.2, R20.2, R21.2, R22.2, R23.2, R24.2, R25.2, R26.2)
+ NET_C(IC_R10.16, IC_R19.1, IC_M10.9)
+ NET_C(IC_R10.17, IC_R20.1, IC_M10.5)
+ NET_C(IC_R10.18, IC_R21.1, IC_M10.11)
+ NET_C(IC_R10.19, IC_R22.1, IC_M10.13)
+ NET_C(IC_R10.20, IC_R23.1, IC_M10.1)
+ NET_C(IC_R10.21, IC_R24.1, IC_M10.3)
+ NET_C(IC_R10.22, IC_R25.1, IC_N13.11)
+ NET_C(IC_R10.23, IC_R26.1, IC_N13.9)
+ ALIAS(ROM_D7, IC_M10.8)
+ ALIAS(ROM_D6, IC_M10.6)
+ ALIAS(ROM_D5, IC_M10.10)
+ ALIAS(ROM_D4, IC_M10.12)
+ ALIAS(ROM_D3, IC_M10.2)
+ ALIAS(ROM_D2, IC_M10.4)
+ ALIAS(ROM_D1, IC_N13.10)
+ ALIAS(ROM_D0, IC_N13.8)
+
+ // Video Summing
+ NET_C(GND, IC_N10.15)
+ NET_C(H4Q, IC_N10.2)
+ NET_C(PFLDQ, IC_N10.1)
+ ALIAS(FIELD, IC_N10.7)
+ NET_C(ROM_D0, IC_N10.11)
+ NET_C(ROM_D1, IC_N10.12)
+ NET_C(ROM_D2, IC_N10.13)
+ NET_C(ROM_D3, IC_N10.14)
+ NET_C(ROM_D4, IC_N10.3)
+ NET_C(ROM_D5, IC_N10.4)
+ NET_C(ROM_D6, IC_N10.5)
+ NET_C(ROM_D7, IC_N10.6)
+
+ NET_C(IC_N10.9, IC_K13.2)
+ NET_C(V512, IC_K13.13)
+ NET_C(MINEFIELD, IC_K13.1)
+ ALIAS(PLAYFIELD, IC_K13.12)
+
+ NET_C(GNE, IC_C14.2)
+ NET_C(V_INFO, IC_C14.1)
+ NET_C(FLASH, IC_C14.13)
+
+ NET_C(IC_K13.12, IC_A11.4)
+ NET_C(IC_C14.12, IC_A11.5)
+ ALIAS(PLAYFIELD_VIDEO, IC_A11.6)
+
+ NET_C(PLAYFIELD_VIDEO, IC_F14.13, IC_D11V.9)
+ NET_C(TANK1Q, IC_B10.1)
+ NET_C(V_INFO, IC_F14.1)
+ NET_C(H452Q,IC_F14.2)
+ NET_C(SHELL1, IC_L7.11)
+ NET_C(BLAST1, IC_L7.12)
+ NET_C(IC_L7.13, IC_H8.5)
+ NET_C(IC_D11V.8, IC_H8.4)
+ NET_C(TANK2, IC_D7.12)
+ NET_C(MINE, IC_D7.11)
+ NET_C(SHELL2, IC_N7.8)
+ NET_C(BLAST2, IC_N7.9)
+ NET_C(IC_D7.13, IC_B7.10)
+ NET_C(IC_N7.10, IC_B7.9)
+
+ NET_C(IC_B10.2, R5V.1)
+ NET_C(IC_F14.12, R34V.1)
+ NET_C(IC_H8.6, R6V.1)
+ NET_C(IC_B7.8, R4V.1)
+
+ NET_C(VCC, R7.1)
+ NET_C(R7.2, R3V.1, C2.1)
+ NET_C(GND, C2.2)
+ NET_C(R5V.2, R34V.2, R6V.2, R3V.2, R4V.2, CR1.A, C29.1)
+ NET_C(CR1.K, COMP_SYNC)
+ ALIAS(VIDEO_OUT, C29.2)
+
+ // Mine Matrix
+ TTL_7400_DIP(IC_A10)
+ TTL_7486_DIP(IC_F13)
+ NET_C(VCC, IC_A10.14, IC_F13.14)
+ NET_C(GND, IC_A10.7, IC_F13.7)
+
+ NET_C(V8, IC_A10.13)
+ NET_C(H8, IC_A10.12)
+ ALIAS(SQUARES, IC_A10.11)
+ NET_C(V4, IC_F13.10)
+ NET_C(V2, IC_F13.9)
+ NET_C(H4, IC_F13.12)
+ NET_C(H2, IC_F13.13)
+ NET_C(IC_F13.8, IC_F13.5)
+ NET_C(IC_F13.11, IC_F13.4)
+ ALIAS(CHECKERBOARD, IC_F13.6)
+ NET_C(SQUARES, IC_D7.3)
+ NET_C(CHECKERBOARD, IC_D7.2)
+ ALIAS(MINE_MATRIX, IC_D7.1)
+
+ // Minefield
+ TTL_7410_DIP(IC_H13)
+ NET_C(VCC, IC_H13.14)
+ NET_C(GND, IC_H13.7)
+
+ NET_C(V256Q, IC_H13.5)
+ NET_C(V128, IC_H13.4, IC_H13.10)
+ NET_C(V32, IC_H13.3, IC_H13.11)
+ NET_C(V256, IC_A11.12)
+ NET_C(H_SYNC, IC_A11.13)
+ NET_C(IC_A11.11, IC_H13.9)
+ NET_C(H452, IC_C13.9)
+ NET_C(H452Q, IC_C13.1)
+ NET_C(H256, IC_C13.2)
+ NET_C(H128, IC_C13.10, IC_C13.13)
+ NET_C(H16, IC_C13.11)
+ NET_C(IC_H13.6, IC_B14.9)
+ NET_C(IC_H13.8, IC_B14.13)
+ ALIAS(MEV, IC_B14.8)
+ ALIAS(MEVQ, IC_B14.11)
+ NET_C(MEV, IC_B14.12)
+ NET_C(IC_C13.8, IC_B13.5)
+ NET_C(IC_C13.12, IC_B13.2)
+ ALIAS(MEH, IC_B13.3)
+ ALIAS(MEHQ, IC_B13.6)
+ NET_C(MEH, IC_B13.4)
+ NET_C(MEVQ, IC_B14.10, IC_A13.5)
+ NET_C(MEHQ, IC_B13.1, IC_A13.6)
+ ALIAS(MINEFIELD, IC_A13.4)
+
+ // Mine Control
+ TTL_7400_DIP(IC_K7)
+ TTL_7420_DIP(IC_E7)
+ TTL_7474_DIP(IC_H7)
+ TTL_8277_DIP(IC_F7)
+ NET_C(VCC, IC_K7.14, IC_E7.14, IC_H7.14, IC_F7.16, IC_F7.12, IC_F7.6)
+ NET_C(GND, IC_K7.7, IC_E7.7, IC_H7.7, IC_F7.8, IC_H7.2, IC_H7.12, IC_F7.8, IC_F7.7, IC_F7.10, IC_F7.5, IC_F7.11)
+
+ NET_C(IC_F7.8, IC_F7.13)
+ NET_C(MEV, IC_A11.10)
+ NET_C(V8, IC_A11.9)
+ NET_C(IC_A11.8, IC_F7.9, IC_H7.3, IC_H7.11)
+ NET_C(STARTQ, IC_H7.1, IC_H7.13, IC_F7.1)
+ NET_C(TANK1, IC_K7.13)
+ NET_C(TANK2, IC_K7.1)
+ NET_C(MINE, IC_K7.12, IC_K7.2)
+ NET_C(IC_K7.11, IC_H7.4)
+ NET_C(IC_K7.3, IC_H7.10)
+ ALIAS(MTK1, IC_H7.5)
+ ALIAS(MTK1Q, IC_H7.6)
+ ALIAS(MTK2, IC_H7.9)
+ ALIAS(MTK2Q, IC_H7.8)
+
+ NET_C(MTK1Q, IC_K7.10)
+ NET_C(MTK2Q, IC_K7.9)
+ NET_C(IC_K7.8, IC_J7.8)
+ NET_C(IC_F7.14, IC_J7.9)
+ NET_C(IC_J7.10, IC_F7.4, IC_E7.5)
+ NET_C(FIELD, IC_E7.4)
+ NET_C(MINE_MATRIX, IC_E7.2)
+ NET_C(MINEFIELD, IC_E7.1)
+ NET_C(IC_E7.6, IC_E7.9, IC_E7.10, IC_E7.12, IC_E7.13)
+ ALIAS(MINE, IC_E7.8)
+
+ // Horizontal & Vertical Load
+ TTL_7404_DIP(IC_J11)
+ TTL_7402_DIP(IC_K11)
+ TTL_9321_DIP(IC_L11)
+ NET_C(VCC, IC_J11.14, IC_K11.14, IC_L11.16)
+ NET_C(GND, IC_J11.7, IC_J11.7, IC_L11.8)
+
+ NET_C(V_RESET, IC_K11.8)
+ NET_C(V2, IC_K11.12)
+ NET_C(IC_K11.10, IC_K11.11)
+ NET_C(IC_K11.13, IC_K11.9, IC_J11.3)
+ NET_C(IC_J11.4, IC_K11.5, IC_K11.2)
+ NET_C(H16, IC_D14.5)
+ NET_C(H_INFO, IC_D14.4)
+ NET_C(IC_D14.6, IC_L11.1)
+ NET_C(H32, IC_L11.2)
+ NET_C(H64, IC_L11.3)
+ NET_C(IC_L11.4, C21.1)
+ NET_C(IC_L11.5, IC_K11.6)
+ NET_C(IC_L11.7, IC_K11.3)
+ ALIAS(LDH2BQ, IC_L11.7)
+ ALIAS(LDH2AQ, IC_L11.6)
+ ALIAS(LDH1BQ, IC_L11.5)
+ ALIAS(LDH1AQ, IC_L11.4)
+ NET_C(IC_K11.4, IC_J11.5)
+ NET_C(IC_K11.1, IC_J11.1)
+ ALIAS(VLD1, IC_K11.4)
+ ALIAS(VLD1Q, IC_J11.6)
+ ALIAS(VLD2, IC_K11.1)
+ ALIAS(VLD2Q, IC_J11.2)
+
+ // Horizontal & Vertical Motion Latches
+ TTL_7474_DIP(IC_M8)
+ TTL_7474_DIP(IC_N8)
+ TTL_7474_DIP(IC_M12)
+ TTL_7474_DIP(IC_N12)
+ TTL_7474_DIP(IC_M9)
+ TTL_7474_DIP(IC_N9)
+ TTL_7474_DIP(IC_M11)
+ TTL_7474_DIP(IC_N11)
+ NET_C(VCC, IC_M8.14, IC_N8.14, IC_M12.14, IC_N12.14, IC_M9.14, IC_N9.14, IC_M11.14, IC_N11.14)
+ NET_C(GND, IC_M8.7, IC_N8.7, IC_M12.7, IC_N12.7, IC_M9.7, IC_N9.7, IC_M11.7, IC_N11.7)
+ NET_C(VCC, IC_M8.10, IC_M8.4, IC_N8.10, IC_N8.4, IC_M12.10, IC_M12.4, IC_N12.10, IC_N12.4, IC_N9.4)
+ NET_C(VCC, IC_M9.13, IC_M9.1, IC_N9.13, IC_N9.1, IC_M11.13, IC_M11.1, IC_N11.13, IC_N11.1, IC_N11.4)
+
+ NET_C(VLD1Q, IC_M8.11, IC_M8.3, IC_N8.11, IC_N8.3, IC_M9.11, IC_M9.3, IC_N9.11, IC_N9.3)
+ NET_C(VLD2Q, IC_M12.11, IC_M12.3, IC_N12.11, IC_N12.3, IC_M11.11, IC_M11.3, IC_N11.11, IC_N11.3)
+ NET_C(G01, IC_L8.5, IC_M9.10, IC_M9.4, IC_N9.10, IC_N9.1)
+ NET_C(G02, IC_L8.9, IC_M11.10, IC_M11.4, IC_N11.10, IC_N11.1)
+ NET_C(H_COUNTQ, IC_L8.4, IC_L8.10)
+ NET_C(IC_L8.6, IC_M8.13, IC_M8.1, IC_N8.13, IC_N8.1)
+ NET_C(IC_L8.8, IC_M12.13, IC_M12.1, IC_N12.13, IC_N12.1)
+ NET_C(ROM_D0, IC_M8.12, IC_M12.12)
+ NET_C(ROM_D1, IC_M8.2, IC_M12.2)
+ NET_C(ROM_D2, IC_N8.12, IC_N12.12)
+ NET_C(ROM_D3, IC_N8.2, IC_N12.2)
+ NET_C(ROM_D4, IC_M9.12, IC_M11.12)
+ NET_C(ROM_D5, IC_M9.2, IC_M11.2)
+ NET_C(ROM_D6, IC_N9.12, IC_N11.12)
+ NET_C(ROM_D7, IC_N9.2, IC_N11.2)
+
+ ALIAS(HA1, IC_M8.9)
+ ALIAS(HB1, IC_M8.5)
+ ALIAS(HC1, IC_N8.9)
+ ALIAS(HD1, IC_N8.5)
+ ALIAS(HA2, IC_M12.9)
+ ALIAS(HB2, IC_M12.5)
+ ALIAS(HC2, IC_N12.9)
+ ALIAS(HD2, IC_N12.5)
+
+ ALIAS(VA1, IC_M9.9)
+ ALIAS(VB1, IC_M9.5)
+ ALIAS(VC1, IC_N9.9)
+ ALIAS(VD1, IC_N9.5)
+ ALIAS(VA2, IC_M11.9)
+ ALIAS(VB2, IC_M11.5)
+ ALIAS(VC2, IC_N11.9)
+ ALIAS(VD2, IC_N11.5)
+
+ // Tank 1 Motion
+ TTL_9316_DIP(IC_A1)
+ TTL_9316_DIP(IC_B1)
+ TTL_9316_DIP(IC_A2)
+ TTL_9316_DIP(IC_B2)
+ TTL_9316_DIP(IC_C2)
+ TTL_74165_DIP(IC_A3)
+ TTL_74165_DIP(IC_B3)
+ TTL_74107_DIP(IC_N1)
+ NET_C(VCC, IC_A1.16, IC_B1.16, IC_A2.16, IC_B2.16, IC_C2.16, IC_A3.16, IC_B3.16, IC_N1.14)
+ NET_C(GND, IC_A1.8, IC_B1.8, IC_A2.8, IC_B2.8, IC_C2.8, IC_A3.8, IC_B3.8, IC_N1.7)
+
+ TTL_7420_DIP(IC_M1)
+ TTL_7410_DIP(IC_M2)
+ TTL_7400_DIP(IC_C1)
+ TTL_7404_DIP(IC_J3)
+ TTL_7404_DIP(IC_A6)
+ TTL_7486_DIP(IC_K3)
+ TTL_7402_DIP(IC_L3)
+ TTL_7474_DIP(IC_F3)
+ NET_C(VCC, IC_M1.14, IC_M2.14, IC_C1.14, IC_J3.14, IC_A6.14, IC_K3.14, IC_L3.14, IC_F3.14)
+ NET_C(GND, IC_M1.7, IC_M2.7, IC_C1.7, IC_J3.7, IC_A6.7, IC_K3.7, IC_L3.7, IC_F3.7)
+
+ NET_C(HA1, IC_A1.3)
+ NET_C(HB1, IC_A1.4)
+ NET_C(HC1, IC_A1.5)
+ NET_C(HD1, IC_A1.6)
+
+ NET_C(VA1, IC_A2.3)
+ NET_C(VB1, IC_A2.4)
+ NET_C(VC1, IC_A2.5)
+ NET_C(VD1, IC_A2.6)
+
+ NET_C(HRST1Q, IC_A1.1, IC_B1.1, IC_N1.10, IC_N1.13)
+ NET_C(VRST1Q, IC_A2.1, IC_B2.1, IC_C2.1)
+
+ NET_C(CLOCKQ, IC_A6.9)
+ NET_C(IC_A6.8, IC_A1.2, IC_B1.2, IC_A3.2, IC_B3.2, IC_F3.11)
+ ALIAS(CLOCK1, IC_A6.8)
+
+ NET_C(H_COUNTQ, IC_A6.1)
+ NET_C(IC_A6.2, IC_A2.2, IC_B2.2, IC_C2.2)
+ ALIAS(H_COUNT1, IC_A6.2)
+
+ NET_C(VCC, IC_A1.7, IC_A1.10, IC_B1.10, IC_B1.3, IC_B1.4, IC_B1.5)
+ NET_C(VCC, IC_N1.1, IC_N1.4, IC_N1.8, IC_N1.11)
+ NET_C(VCC, IC_A2.7, IC_A2.10, IC_B2.10, IC_B2.3, IC_B2.4, IC_B2.5, IC_B2.6, IC_C2.3, IC_C2.5, IC_C2.6)
+ NET_C(VCC, IC_F3.13, IC_A3.10)
+ NET_C(GND, IC_B1.6, IC_C2.4)
+
+ NET_C(IC_A1.15, IC_B1.7, IC_M1.3)
+ NET_C(IC_B1.15, IC_N1.12, IC_M2.5, IC_M1.1)
+ NET_C(IC_N1.3, IC_N1.9, IC_M2.4, IC_M1.2)
+ NET_C(IC_N1.6, IC_M2.3, IC_M1.4)
+ NET_C(IC_M1.6, IC_A1.9, IC_B1.9)
+ ALIAS(THR1Q, IC_M1.6)
+ ALIAS(THW1Q, IC_M2.6)
+
+ NET_C(IC_A2.15, IC_B2.7, IC_C2.7, IC_C1.12)
+ NET_C(IC_B2.15, IC_C2.10)
+ NET_C(IC_C2.15, IC_C1.13, IC_F3.10)
+ NET_C(IC_C1.11, IC_A2.9, IC_B2.9, IC_C2.9)
+ ALIAS(TVR1Q, IC_C1.11)
+
+ NET_C(THW1Q, IC_F3.12)
+ ALIAS(WINDO1, IC_F3.8)
+ NET_C(IC_F3.9, IC_A3.15, IC_B3.15, IC_L3.11)
+ NET_C(IC_A3.9, IC_B3.10)
+ NET_C(IC_B3.7, IC_K3.1)
+
+ NET_C(FLASH, IC_C1.10, IC_J3.3)
+ NET_C(BLO_UP1, IC_C1.9)
+ ALIAS(FLASHQ, IC_J3.4)
+ NET_C(IC_C1.8, IC_K3.2)
+ NET_C(IC_K3.3, IC_L3.12)
+ ALIAS(TANK1, IC_L3.13)
+
+ ALIAS(LAD1AQ, IC_A3.1)
+ ALIAS(LDH1BQ, IC_B3.1)
+
+ NET_C(ROM_D0, IC_A3.11, IC_B3.11)
+ NET_C(ROM_D1, IC_A3.12, IC_B3.12)
+ NET_C(ROM_D2, IC_A3.13, IC_B3.13)
+ NET_C(ROM_D3, IC_A3.14, IC_B3.14)
+ NET_C(ROM_D4, IC_A3.3, IC_B3.3)
+ NET_C(ROM_D5, IC_A3.4, IC_B3.4)
+ NET_C(ROM_D6, IC_A3.5, IC_B3.5)
+ NET_C(ROM_D7, IC_A3.6, IC_B3.6)
+
+ ALIAS(P1T2, IC_A2.13)
+ ALIAS(P1T3, IC_A2.12)
+ ALIAS(P1T4, IC_A2.11)
+
+ // Tank 2 Motion Circuit
+ TTL_9316_DIP(IC_A5)
+ TTL_9316_DIP(IC_B5)
+ TTL_9316_DIP(IC_A4)
+ TTL_9316_DIP(IC_B4)
+ TTL_9316_DIP(IC_C4)
+ TTL_74165_DIP(IC_C3)
+ TTL_74165_DIP(IC_D3)
+ TTL_74107_DIP(IC_N5)
+ NET_C(VCC, IC_A5.16, IC_B5.16, IC_A4.16, IC_B4.16, IC_C4.16, IC_C3.16, IC_D3.16, IC_N5.14)
+ NET_C(GND, IC_A5.8, IC_B5.8, IC_A4.8, IC_B4.8, IC_C4.8, IC_C3.8, IC_D3.8, IC_N5.7)
+
+ TTL_7420_DIP(IC_M1)
+ TTL_7410_DIP(IC_M2)
+ TTL_7400_DIP(IC_C1)
+ TTL_7404_DIP(IC_J3)
+ TTL_7404_DIP(IC_A6)
+ TTL_7486_DIP(IC_K3)
+ TTL_7402_DIP(IC_L3)
+ TTL_7474_DIP(IC_F3)
+ TTL_7402_DIP(IC_C6)
+ TTL_7420_DIP(IC_M5)
+ TTL_7410_DIP(IC_M4)
+ TTL_7400_DIP(IC_C5)
+ NET_C(VCC, IC_M1.14, IC_M2.14, IC_C1.14, IC_J3.14, IC_A6.14, IC_K3.14, IC_L3.14, IC_F3.14, IC_C6.14, IC_M5.14, IC_M4.14, IC_C5.14)
+ NET_C(GND, IC_M1.7, IC_M2.7, IC_C1.7, IC_J3.7, IC_A6.7, IC_K3.7, IC_L3.7, IC_F3.7, IC_C6.7, IC_M5.7, IC_M4.7, IC_C5.7)
+
+ NET_C(CLOCKQ, IC_A6.5)
+ ALIAS(CLOCK2, IC_A6.5)
+ NET_C(IC_A6.6, IC_A5.2, IC_A5.2, IC_F3.3, IC_C3.2, IC_D3.2)
+ NET_C(HRST2Q, IC_A5.1, IC_B5.1, IC_N5.10, IC_N5.13)
+ NET_C(VCC, IC_B5.10, IC_B5.3, IC_B5.4, IC_B5.5, IC_N5.1, IC_N5.4, IC_N5.8, IC_N5.11, IC_C3.10, IC_F3.1, IC_A5.7, IC_A5.10)
+ NET_C(GND, IC_B5.6)
+
+ NET_C(THW2Q, IC_F3.2)
+ NET_C(TVW2, IC_F3.4)
+
+ NET_C(IC_F3.5, IC_C3.15, IC_D3.15, IC_C6.3)
+
+ NET_C(HA2, IC_A5.3)
+ NET_C(HB2, IC_A5.4)
+ NET_C(HC2, IC_A5.5)
+ NET_C(HD2, IC_A5.6)
+ NET_C(IC_A5.15, IC_B5.7, IC_M5.1)
+ NET_C(IC_B5.15, IC_N5.12, IC_M5.2, IC_M4.5)
+ NET_C(IC_N5.3, IC_N5.9, IC_M5.5, IC_M4.3)
+ NET_C(IC_N5.6, IC_M5.4, IC_M4.4)
+
+ NET_C(ROM_D0, IC_C3.11, IC_D3.11)
+ NET_C(ROM_D1, IC_C3.12, IC_D3.12)
+ NET_C(ROM_D2, IC_C3.13, IC_D3.13)
+ NET_C(ROM_D3, IC_C3.14, IC_D3.14)
+ NET_C(ROM_D4, IC_C3.3, IC_D3.3)
+ NET_C(ROM_D5, IC_C3.4, IC_D3.4)
+ NET_C(ROM_D6, IC_C3.5, IC_D3.5)
+ NET_C(ROM_D7, IC_C3.6, IC_D3.6)
+
+ ALIAS(WINDO2, IC_F3.6)
+ ALIAS(LDH2A, IC_C3.1)
+ ALIAS(LDH2B, IC_D3.1)
+
+ NET_C(BLO_UP2, IC_C5.13)
+ NET_C(FLASH, IC_C5.12)
+ NET_C(IC_5.10, IC_K3.10)
+ NET_C(IC_D3.9, IC_K3.9)
+ NET_C(IC_K3.2, IC_C6.2)
+ ALIAS(TANK2, IC_C6.1)
+
+ NET_C(VA2, IC_A4.3)
+ NET_C(VB2, IC_A4.4)
+ NET_C(VC2, IC_A4.5)
+ NET_C(VD2, IC_A4.6)
+
+ NET_C(VCC, IC_A4.7, IC_A4.10, IC_B4.10, IC_B4.3, IC_B4.4, IC_B4.5, IC_B4.6, IC_C4.3, IC_C4.5, IC_C4.6)
+ NET_C(GND, IC_C4.4)
+
+ NET_C(H_COUNTQ, IC_A6.3)
+ NET_C(IC_A6.4, IC_A4.2, IC_B4.2, IC_C4.2)
+ ALIAS(HCOUNT2, IC_A6.4)
+
+ NET_C(VRST2Q, IC_A4.1, IC_B4.1, IC_C4.1)
+ ALIAS(P2T2, IC_A4.13)
+ ALIAS(P2T3, IC_A4.12)
+ ALIAS(P2T4, IC_A4.11)
+
+ NET_C(IC_A4.15, IC_B4.7, IC_C4.7, IC_C5.10)
+ NET_C(IC_C4.15, IC_C5.9)
+ NET_C(IC_C5.8, IC_A4.9, IC_B4.9, IC_C4.9)
+ ALIAS(TVR2Q, IC_C5.8)
+ ALIAS(TVW2Q, IC_C4.15)
+
+ // Shell 1 Motion
+ TTL_7474_DIP(IC_D1)
+ TTL_7474_DIP(IC_E1)
+ TTL_9316_DIP(IC_H1)
+ TTL_9316_DIP(IC_J1)
+ TTL_9316_DIP(IC_F1)
+ TTL_9316_DIP(IC_H2)
+ TTL_9316_DIP(IC_J2)
+ TTL_74107_DIP(IC_L1)
+ TTL_7408_DIP(IC_F2)
+ NET_C(VCC, IC_D1.14, IC_E1.14, IC_H1.16, IC_J1.16, IC_F1.16, IC_H2.16, IC_J2.16, IC_L1.14, IC_F2.14)
+ NET_C(GND, IC_D1.7, IC_E1.7, IC_H1.8, IC_J1.8, IC_F1.8, IC_H2.8, IC_J2.8, IC_L1.7, IC_F2.7)
+
+ TTL_7402_DIP(IC_K1)
+ TTL_7404_DIP(IC_N4)
+ TTL_7420_DIP(IC_L2)
+ TTL_7486_DIP(IC_K2)
+ TTL_7402_DIP(IC_K1)
+ TTL_7474_DIP(IC_N3)
+ TTL_7408_DIP(IC_M3)
+ TTL_7474_DIP(IC_D2)
+ TTL_7474_DIP(IC_E2)
+ NET_C(VCC, IC_K1.14, IC_N4.14, IC_L2.14, IC_K2.14, IC_K1.14, IC_N3.14, IC_M3.14, IC_D2.14, IC_E2.14)
+ NET_C(GND, IC_K1.7, IC_N4.7, IC_L2.7, IC_K2.7, IC_K1.7, IC_N3.7, IC_M3.7, IC_D2.7, IC_E2.7)
+
+ NET_C(VCC, R4.1, R5.1, R6.1, R7.1, R8.1, R9.1, R10.1, R11.1)
+ NET_C(VCC, IC_H2.7, IC_H2.10, IC_J2.10, IC_J2.3, IC_J2.4, IC_J2.5, IC_L1.1, IC_L1.4, IC_L1.8, IC_L1.11, IC_N3.1, IC_H2.1, IC_J2.1)
+ NET_C(VCC, IC_F1.7, IC_F1.10, IC_H1.10, IC_H1.3, IC_H1.4, IC_H1.5, IC_H1.6, IC_J1.3, IC_J1.5, IC_J1.6)
+ NET_C(VCC, IC_D1.1, IC_D1.13, IC_E1.1, IC_H2.1, IC_J2.1)
+ NET_C(GND, C110.2, IC_N3.2, IC_J2.6, IC_J1.4)
+
+ NET_C(VLD1, IC_M2.1, IC_M2.2)
+ NET_C(FIRE1Q, IC_M2.13)
+ NET_C(IC_M2.12, IC_D2.3, IC_D2.11, IC_E2.3, IC_E2.11, IC_D1.3, IC_D1.11, IC_E1.3, IC_E1.11)
+ NET_C(EXPL1, IC_J3.13)
+ NET_C(IC_J4.12, IC_D2.1, IC_D2.13, IC_E2.1, IC_E2.13, IC_E1.13)
+ NET_C(HMCE, IC_F2.12, IC_F2.5, IC_F2.9, IC_C1.1)
+ NET_C(IC_D2.5, IC_F2.13)
+ NET_C(IC_E2.5, IC_F2.4)
+ NET_C(IC_D2.9, IC_F2.10)
+ NET_C(IC_E2.9, IC_C1.2)
+
+ NET_C(FIRE1Q, C110.1, IC_C1.4)
+ NET_C(EXPL1Q, IC_C1.5)
+ ALIAS(FPE1, IC_C1.6)
+ NET_C(IC_C1.6, IC_L3.2)
+ NET_C(THW1Q, IC_L3.3)
+ NET_C(IC_L3.1, IC_J3.1)
+ NET_C(IC_J3.2, IC_M3.4, IC_N3.4)
+
+ NET_C(IC_F2.11, IC_H2.3)
+ NET_C(IC_F2.6, IC_H2.4)
+ NET_C(IC_F2.8, IC_H2.5)
+ NET_C(IC_C1.3, IC_H2.6)
+
+ NET_C(CLOCK1, IC_H2.2, IC_J2.2)
+ NET_C(H_COUNT1, IC_F1.2, IC_H1.2, IC_J1.2)
+
+ NET_C(IC_H2.15, IC_J2.7, IC_M1.13, IC_N3.3)
+ NET_C(IC_J2.15, IC_L1.12, IC_M1.12, IC_M2.9)
+ NET_C(IC_L1.3, IC_L1.9, IC_M1.10, IC_M2.10)
+ NET_C(IC_L1.5, IC_M1.9, IC_M2.11)
+ NET_C(IC_N3.6, IC_L1.10, IC_L1.13)
+
+ NET_C(IC_D1.5, IC_F1.3)
+ NET_C(IC_D1.9, IC_F1.4)
+ NET_C(IC_E1.5, IC_F1.5)
+ NET_C(IC_E1.9, IC_F1.6)
+
+ NET_C(IC_F1.15, IC_H1.7, IC_J1.7, IC_F2.2)
+ NET_C(IC_H1.15, IC_J1.10)
+ NET_C(IC_J1.15, IC_J3.11, IC_F2.1)
+ NET_C(IC_F2.3, IC_K1.12)
+ NET_C(FPE1, IC_K1.9)
+ NET_C(TVR1Q, IC_K1.8)
+ ALIAS(IC_K1.10, SRS1)
+ NET_C(IC_K1.10, IC_K1.11)
+ NET_C(IC_K1.13, IC_J1.9, IC_H1.9, IC_F1.9)
+
+ NET_C(IC_J3.10, IC_L3.5)
+ NET_C(IC_M2.8, IC_L3.6)
+ NET_C(IC_L3.4, IC_L2.1, IC_L2.9)
+ NET_C(FIRE1Q, IC_J3.5)
+ NET_C(IC_J3.6, IC_L2.2)
+ NET_C(S4V1, IC_L3.9)
+ NET_C(S8H1, IC_L3.8)
+ NET_C(IC_L3.10, IC_L2.4)
+ NET_C(S4H1, IC_M3.9)
+ NET_C(S8V1, IC_M3.10)
+ NET_C(IC_M3.8, IC_L2.5)
+ NET_C(IC_L2.6, IC_N4.5)
+ ALIAS(SHELL1, IC_N4.6)
+
+ NET_C(S4V1, IC_K2.5)
+ NET_C(S8V1, IC_K2.4)
+ NET_C(S4H1, IC_K2.10)
+ NET_C(S8H1, IC_K2.9)
+ NET_C(S2V1, IC_K2.12)
+ NET_C(S2H1, IC_K2.13)
+ NET_C(IC_K2.6, IC_K2.2, IC_K1.2)
+ NET_C(IC_K2.8, IC_K2.1, IC_K1.3)
+ NET_C(FLASHQ, IC_K3.4)
+ NET_C(IC_K3.3, IC_K3.5)
+ NET_C(IC_K3.6, IC_L2.12)
+ NET_C(IC_K1.1, IC_K1.6)
+ NET_C(IC_K2.11, IC_K1.5)
+ NET_C(IC_K1.4, IC_L2.13)
+ NET_C(EXPL1, IC_L2.10)
+ NET_C(IC_L2.8, IC_N4.9)
+ ALIAS(BLAST1, IC_N4.8)
+
+ ALIAS(S2H1, IC_H2.13)
+ ALIAS(S4H1, IC_H2.12)
+ ALIAS(S8H1, IC_H2.11)
+
+ ALIAS(S2V1, IC_F1.13)
+ ALIAS(S4V1, IC_F1.12)
+ ALIAS(S8V1, IC_F1.11)
+
+ NET_C(ROM_D0, IC_D2.2)
+ NET_C(ROM_D1, IC_E2.2)
+ NET_C(ROM_D2, IC_E2.12)
+ NET_C(ROM_D3, IC_D2.12)
+ NET_C(ROM_D4, IC_D1.2)
+ NET_C(ROM_D5, IC_D1.12)
+ NET_C(ROM_D6, IC_E1.2)
+ NET_C(ROM_D7, IC_E1.12)
+
+ // Shell 2 Motion
+ TTL_7474_DIP(IC_E4)
+ TTL_7474_DIP(IC_D4)
+ TTL_7474_DIP(IC_D5)
+ TTL_7474_DIP(IC_E5)
+ TTL_9316_DIP(IC_H4)
+ TTL_9316_DIP(IC_J4)
+ TTL_9316_DIP(IC_F5)
+ TTL_9316_DIP(IC_H5)
+ TTL_9316_DIP(IC_J5)
+ NET_C(VCC, IC_E4.14, IC_D4.14, IC_D5.14, IC_E5.14, IC_H4.16, IC_J4.16, IC_F5.16, IC_H5.16, IC_J5.16)
+ NET_C(GND, IC_E4.7, IC_D4.7, IC_D5.7, IC_E7.7, IC_H4.8, IC_J4.8, IC_F5.8, IC_H5.8, IC_J5.8)
+
+ TTL_74107_DIP(IC_L5)
+ TTL_7486_DIP(IC_K4)
+ TTL_7402_DIP(IC_K5)
+ TTL_7408_DIP(IC_F4)
+ NET_C(VCC, IC_L5.14, IC_K4.14, IC_K5.14, IC_F4.14)
+ NET_C(GND, IC_L5.7, IC_K4.7, IC_K5.7, IC_F4.7)
+
+ NET_C(VCC, IC_E4.4, IC_D4.4, IC_E4.10, IC_D4.10, IC_D5.1, IC_D5.13, IC_E5.1)
+ NET_C(VCC, IC_J4.10, IC_J4.3, IC_J4.4, IC_J4.5, IC_H5.10, IC_H5.3, IC_H5.4, IC_H5.5, IC_H5.6, IC_J5.3, IC_J5.5, IC_J5.6)
+ NET_C(VCC, IC_H4.1, IC_J4.1, IC_F5.1, IC_H5.1, IC_J5.1, IC_N3.13, IC_L5.8, IC_L5.11, IC_L5.1, IC_L5.4, IC_E5.10)
+ NET_C(GND, C111.2, IC_J4.6, IC_J5.4)
+
+ NET_C(FIRE2Q, IC_M4.1, IC_M4.10)
+ NET_C(VLD2, IC_M4.13)
+ NET_C(IC_M4.12, IC_E4.3, IC_D4.3, IC_E4.11, IC_D4.11, IC_D5.3, IC_D5.11, IC_E5.3, IC_E5.11)
+ NET_C(IC_E5.13, IC_D5.4, IC_D5.10, IC_E5.4)
+
+ NET_C(EXPL2, IC_H3.11)
+ NET_C(IC_H3.10, IC_E4.1, IC_D4.1, IC_E4.13, IC_D4.13)
+
+ NET_C(IC_E4.5, IC_F4.2)
+ NET_C(IC_D4.5, IC_F4.5)
+ NET_C(IC_E4.9, IC_F4.9)
+ NET_C(IC_D4.9, IC_C5.5)
+ NET_C(HMCE, IC_F4.1, IC_F4.4, IC_F4.10, IC_C5.4)
+
+ NET_C(IC_F4.3, IC_H4.3)
+ NET_C(IC_F4.6, IC_H4.4)
+ NET_C(IC_F4.8, IC_H4.5)
+ NET_C(IC_C5.6, IC_H4.6)
+
+ NET_C(HCOUNT2, IC_F5.2, IC_H5.2, IC_J5.2)
+ NET_C(IC_H5.15, IC_J5.10)
+ NET_C(IC_J5.15, IC_H3.13, IC_F4.12)
+ NET_C(IC_F5.15, IC_H5.7, IC_J5.7, IC_F4.13)
+ NET_C(IC_F4.11, IC_C6.12)
+ NET_C(FPE2, IC_C6.8)
+ NET_C(TVR2Q, IC_C6.9)
+ NET_C(IC_C6.10, IC_C6.11)
+ ALIAS(SRS2, IC_C6.10)
+ NET_C(IC_C6.13, IC_F5.9, IC_H5.9, IC_J5.9)
+
+ NET_C(CLOCK2, IC_H4.2, IC_J4.2)
+ NET_C(IC_H4.15, IC_J4.7, IC_M5.9, IC_N3.11)
+ NET_C(IC_J4.15, IC_L5.9, IC_M5.10, IC_M4.11)
+ NET_C(IC_L5.5, IC_L5.12, IC_M5.12, IC_M4.10)
+ NET_C(IC_L5.3, IC_M5.13, IC_M4.9)
+ NET_C(IC_M4.8, IC_K5.11)
+ NET_C(IC_H3.12, IC_K5.12)
+
+ NET_C(FIRE2Q, C111.1, IC_C5.1)
+ NET_C(EXPL2Q, IC_C5.2)
+ NET_C(IC_C5.3, IC_C6.6)
+ ALIAS(FPE2, IC_C5.3)
+ NET_C(THW2Q, IC_C6.5)
+ NET_C(IC_C6.4, IC_H3.1)
+ NET_C(IC_H3.2, IC_N3.10, IC_M3.2)
+ NET_C(IC_M5.8, IC_M3.1)
+ NET_C(IC_M3.3, IC_H4.9, IC_J4.9)
+ NET_C(IC_N3.8, IC_L5.10, IC_L5.13)
+
+ NET_C(S4H2, IC_M3.12)
+ NET_C(S8V2, IC_M3.13)
+ NET_C(S4V2, IC_K5.3)
+ NET_C(S8H2, IC_K5.2)
+ NET_C(IC_M3.11, IC_L4.5)
+ NET_C(IC_K5.1, IC_L4.2)
+ NET_C(FIRE2Q, IC_H3.9)
+ NET_C(IC_H3.8, IC_L4.4)
+
+ NET_C(IC_K5.13, IC_L4.13, IC_L4.1)
+ NET_C(IC_L4.6, IC_N4.11)
+ ALIAS(SHELL2, IC_N4.10)
+
+ NET_C(S4V2, IC_K4.1)
+ NET_C(S8V2, IC_K4.2)
+ NET_C(S4H2, IC_K4.10)
+ NET_C(S8H2, IC_K4.9)
+ NET_C(S2H2, IC_K4.12)
+ NET_C(S2V2, IC_K4.13)
+ NET_C(IC_K4.3, IC_K4.4, IC_K5.6)
+ NET_C(IC_K4.8, IC_K4.5, IC_K5.5)
+ NET_C(FLASHQ, IC_K3.12)
+ NET_C(IC_K4.6, IC_K3.13)
+ NET_C(IC_K5.4, IC_K5.9)
+ NET_C(IC_K5.11, IC_K5.8)
+ NET_C(IC_K3.11, IC_L4.12)
+ NET_C(IC_K5.10, IC_L4.10)
+ NET_C(EXPL2, IC_L4.9)
+ NET_C(IC_L4.8, IC_N4.13)
+ ALIAS(IC_N4.12, BLAST2)
+
+ ALIAS(S2H2, IC_H4.13)
+ ALIAS(S4H2, IC_H4.12)
+ ALIAS(S8H2, IC_H4.11)
+ ALIAS(S2V2, IC_F5.13)
+ ALIAS(S4V2, IC_F5.12)
+ ALIAS(S8V2, IC_F5.11)
+
+ NET_C(ROM_D0, IC_E4.2)
+ NET_C(ROM_D1, IC_D4.2)
+ NET_C(ROM_D2, IC_E4.12)
+ NET_C(ROM_D3, IC_D4.12)
+ NET_C(ROM_D4, IC_D5.2)
+ NET_C(ROM_D5, IC_D5.12)
+ NET_C(ROM_D6, IC_E5.2)
+ NET_C(ROM_D7, IC_E5.12)
+
+ // Boom Com
+ TTL_9602_DIP(IC_N14)
+ NET_C(VCC, IC_N14.16, IC_N14.3, IC_N14.5, R38.2)
+ NET_C(GND, IC_N14.8, R10A.2, R9A.2)
+ NET_C(MTK1, IC_L7.5)
+ NET_C(EXPL1, C5.1)
+ NET_C(C5.2, R10A.1, IC_L7.6)
+ NET_C(MTK2, IC_L7.9)
+ NET_C(EXPL2, C6.1)
+ NET_C(C6.2, R9A.1, IC_L7.8)
+ NET_C(IC_L7.4, IC_K7.4)
+ NET_C(IC_L7.10, IC_K7.5)
+ NET_C(IC_K7.6, IC_N14.4)
+ NET_C(IC_N14.1, C27.1)
+ NET_C(IC_N14.2, C27.2, R38.1)
+ NET_C(IC_N14.6, IC_N13.5)
+ ALIAS(BOOM_COM, IC_N13.6)
+
+ // Shot Com
+
+ // Noise Generation
+ UA741_DIP8(IC_NOISE_OP)
+ NET_C(V12, IC_NOISE_OP.7, R71.1, R70.1)
+ NET_C(R71.2, C40.1, C43.1, R70.2, R73.1, IC_NOISE_OP.3)
+ NET_C(GND, C43.2, R73.2, C38.1)
+ NET_C(C38.2, R69.1, C39.1, IC_NOISE_OP.2)
+ NET_C(IC_NOISE_OP.6, R69.2, C39.2)
+ ALIAS(NOISE, IC_NOISE_OP.6)
+
+ // Shot Sound
+ MC3340_DIP(IC_K6)
+ NET_C(V12, IC_K6.8)
+ NET_C(GND, SHOT_NOISE_VOL.1, C32A.2, IC_K6.3, C27A.2, C28A.2, Q7.C)
+ NET_C(NOISE, SHOT_NOISE_VOL.3)
+ NET_C(SHOT_NOISE_VOL.2, C32A.1, C31A.1)
+ NET_C(C31A.2, IC_K6.2)
+ NET_C(IC_K6.6, C27.1A.1)
+ NET_C(VCC, R64A.1)
+ NET_C(SHOT_COM, CR19.K)
+ NET_C(CR19.A, R64A.2, Q7.B, C28A.1)
+ NET_C(IC_K6.2, Q7.E)
+ ALIAS(SHOT, IC_K6.7)
+
+ // Shot Com
+ NET_C(FIRE1, C7.1)
+ NET_C(FIRE2, C4.1)
+ NET_C(C7.2, R8A.1, IC_L7.2)
+ NET_C(C4.2, R11A.1, IC_L7.3)
+ NET_C(GND, IC_N14.12)
+ NET_C(IC_L7.1, IC_N14.11)
+ NET_C(IC_N14.15, C26.1)
+ NET_C(IC_N14.14, C26.2, R37A.1)
+ NET_C(R37A.2, VCC)
+ NET_C(IC_N14.10, IC_N13.3)
+ ALIAS(SHOT_COM, IC_N13.4)
+
+ // Boom Sound
+ MC3340_DIP(IC_L6)
+ NET_C(V12, IC_L6.8)
+ NET_C(NOISE, BOOM_NOISE_VOL.3)
+ NET_C(GND, BOOM_NOISE_VOL.1, C36A.2, C41A.2, Q6.C, C30A.2)
+ NET_C(BOOM_NOISE_VOL.2, C36A.1, C35A.1)
+ NET_C(C35A.2, IC_L6.1)
+ NET_C(BOOM_COM, CR22.K)
+ NET_C(CR22.A, R72A.2, C41A.1, Q6.B)
+ NET_C(V5, R72A.1)
+ NET_C(Q6.E, IC_L6.2)
+ NET_C(IC_L6.6, C30A.1)
+ ALIAS(BOOM, IC_L6.7)
+
+ // Motor 1 Sound
+ TTL_7406_DIP(IC_K15)
+ NE555_DIP(IC_L15)
+ NE566_DIP(IC_M15)
+ MC3340_DIP(IC_N15)
+ NET_C(VCC, IC_K15.14, IC_L15.8, IC_L15.4, Q29.C)
+ NET_C(V12, IC_M15.8, IC_N15.8, R73M1.1, Q27.C, R100M1.1, Q30.E)
+ NET_C(GND, C54M1.2, C51M1.2, C53M1.2, C55M1.2, R78M1.2, IC_L15.1)
+ NET_C(P1SP2, IC_K15.13)
+ NET_C(P1SP1, IC_K15.11)
+ NET_C(P1SP0, IC_K15.9)
+ NET_C(IC_K15.12, R74M1.2)
+ NET_C(IC_K15.10, R75M1.2)
+ NET_C(IC_K15.8, R76M1.2)
+ NET_C(R73M1.2, R74M1.2, R75M1.2, R76M1.2, C54M1.1, Q27.B)
+ NET_C(C54M2.2, MOTOR1_VOL.1)
+ NET_C(MOTOR1_VOL.3, Q27.E, Q28.B, C52M1.1, IC_M15.5)
+ NET_C(R100M1.2, MOTOR1_VOL2.3, MOTOR1_VOL2.2)
+ NET_C(MOTOR1_VOL2.1, Q28.E)
+ NET_C(MOTOR1_VOL.2, R101M1.1)
+ NET_C(CR14M1.A, IC_L15.2)
+ NET_C(Q28.C, R77M1.1, IC_L15.7)
+ NET_C(IC_L15.6, C51M1.1, CR14M1.K, R77M1.2, Q29.B)
+ NET_C(Q29.E, R78M1.1, C56M1.2)
+ NET_C(IC_M15.7, C53M1.1)
+ NET_C(C52M1.2, R36M1.2, IC_M15.6)
+ NET_C(IC_M15.4, R80M1.1, R79M1.1)
+ NET_C(R101M1.2, R79M1.2, Q30.C, IC_N15.2)
+ NET_C(ATTRACT, IC_N13.1)
+ NET_C(IC_N13.2, R81M1.1)
+ NET_C(R81M1.2, Q30.B)
+ NET_C(IC_N15.6, C55M1.1)
+ ALIAS(MOTOR1, IC_N15.7)
+
+ // Motor 2 Sound
+ NE555_DIP(IC_J14)
+ NE566_DIP(IC_H15)
+ MC3340_DIP(IC_F15)
+ NET_C(VCC, IC_J15.8, IC_J15.4, Q33.C)
+ NET_C(V12, IC_H15.8, IC_F15.8, R72M2.1, Q31.C, R102M2.1, Q31.E)
+ NET_C(GND, C49M2.2, C50M2.2, C48M2.2, C43M2.2, R68M2.2, IC_J15.1)
+ NET_C(P2SP2, IC_K15.1)
+ NET_C(P2SP1, IC_K15.3)
+ NET_C(P2SP0, IC_K15.5)
+ NET_C(IC_K15.2, R69M2.2)
+ NET_C(IC_K15.4, R70M2.2)
+ NET_C(IC_K15.6, R71M2.2)
+ NET_C(R72M2.2, R71M2.2, R70M2.2, R69M2.2, C49M2.1, Q31.B)
+ NET_C(C49M2.2, MOTOR2_VOL.1)
+ NET_C(MOTOR2_VOL.3, Q31.E, Q32.B, C47M2.1, IC_H15.5)
+ NET_C(R102M2.2, MOTOR2_VOL2.3, MOTOR2_VOL2.2)
+ NET_C(MOTOR2_VOL2.1, Q32.E)
+ NET_C(MOTOR2_VOL.2, R103M2.1)
+ NET_C(CR13M2.A, IC_J15.2)
+ NET_C(Q32.C, R67M2.1, IC_J15.7)
+ NET_C(IC_J15.6, C50M2.1, CR13M2.K, R67M2.2, Q33.B)
+ NET_C(Q33.E, R68M2.1, C44M2.2)
+ NET_C(IC_H15.7, C48M2.1)
+ NET_C(C47M2.2, R35M2.2, IC_H15.6)
+ NET_C(IC_H15.4, R66M2.1, R65M2.1)
+ NET_C(R103M2.2, R65M2.2, Q34.C, IC_F15.2)
+ NET_C(ATTRACT, IC_N13.13)
+ NET_C(IC_N13.12, R64M2.1)
+ NET_C(R64M2.2, Q34.B)
+ NET_C(IC_F15.6, C43M2.1)
+ ALIAS(MOTOR2, IC_F15.7)
+
+ // Mixer
+ NET_C(MOTOR1, R102MX.1)
+ NET_C(MOTOR2, R106MX.1)
+ NET_C(BOOM, R103MX.1, R107MX.1)
+ NET_C(SHOT, R104MX.1, R108MX.1)
+ NET_C(R102MX.2, R103MX.2, R104MX.2, C101.1)
+ NET_C(R106MX.2, R107MX.2, R108MX.2, C106.1)
+ ALIAS(OUT1, C101.2)
+ ALIAS(OUT2, C106.2)
+ NET_C(C101.2, GND)
+ NET_C(C106.2, GND)
+NETLIST_END()
diff --git a/src/mame/machine/nl_tank.h b/src/mame/machine/nl_tank.h
new file mode 100644
index 00000000000..f3cc88d7cf1
--- /dev/null
+++ b/src/mame/machine/nl_tank.h
@@ -0,0 +1,12 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+#ifndef MAME_MACHINE_NL_TANK_H
+#define MAME_MACHINE_NL_TANK_H
+
+#pragma once
+
+#include "netlist/nl_setup.h"
+
+NETLIST_EXTERNAL(tank)
+
+#endif // MAME_MACHINE_NL_TANK_H