1 // license:BSD-3-Clause
2 // copyright-holders:Ryan Holtz
3 
4 //
5 // Netlist for Tank Battalion
6 //
7 // Derived from the schematics in the manual.
8 //
9 // Known problems/issues:
10 //
11 //    * None.
12 //
13 
14 #include "netlist/devices/net_lib.h"
15 
16 //
17 // Main netlist
18 //
19 
20 NETLIST_START(tankbatt)
21 
22 	SOLVER(Solver, 48000)
23 	ANALOG_INPUT(V5, 5)
24 	ALIAS(VCC, V5)
25 
26 	CLOCK(2V, 4000) // 18.432MHz / (3 * 384 * 2)
27 	CLOCK(4V, 2000) // 18.432MHz / (3 * 384 * 4)
28 
29 	TTL_INPUT(S1, 0)        // active high
30 	TTL_INPUT(S2, 0)        // active high
31 	TTL_INPUT(OFF, 1)       // active high
32 	TTL_INPUT(ENGINE_HI, 0) // active high
33 	TTL_INPUT(SHOOT, 0)     // active high
34 	TTL_INPUT(HIT, 0)       // active high
35 
36 	RES(R31, 470)
37 	RES(R32, 470)
38 	RES(R35, RES_K(4.7))
39 	RES(R36, RES_K(4.7))
40 	RES(R37, RES_K(6.8))
41 	RES(R38, RES_K(10))
42 	//RES(R41, RES_K(22))
43 	RES(R42, RES_K(22))
44 	RES(R43, RES_K(22))
45 	RES(R44, RES_K(33))
46 	RES(R45, RES_K(47))
47 	RES(R46, RES_K(4.7)) // Possible schematic or scan-quality error: Schematic says 47K
48 	RES(R47, RES_K(4.7))
49 	RES(R48, RES_K(4.7))
50 	RES(R49, RES_K(4.7)) // Possible schematic or scan-quality error: Schematic says 47K
51 	RES(R50, RES_K(150))
52 	RES(R51, RES_K(150))
53 	RES(R52, RES_K(220))
54 	RES(R53, RES_K(470))
55 	RES(R54, RES_K(470))
56 	RES(R56_1, RES_K(1))
57 	RES(R56_2, RES_K(1))
58 	RES(R57, RES_K(10))
59 	RES(R58, RES_K(1))
60 	RES(R59, RES_K(1))
61 	RES(R60, RES_K(1))
62 	RES(R61, RES_K(1))
63 
64 	CAP(C10, CAP_U(2.2))
65 	CAP(C11, CAP_U(2.2))
66 	CAP(C12, CAP_U(2.2))
67 	CAP(C13, CAP_U(2.2))
68 	CAP(C14, CAP_U(0.1))
69 	CAP(C15, CAP_U(0.01))
70 	CAP(C16, CAP_U(0.01))
71 	CAP(C17, CAP_U(0.01))
72 	CAP(C18, CAP_U(0.01))
73 	CAP(C42, CAP_U(0.1))
74 
75 	DIODE(D8, "D") // Generic diodes, types not listed on schematic
76 	DIODE(D9, "D")
77 	DIODE(D10, "D")
78 	DIODE(D11, "D")
79 
80 	CD4006(_6F)
81 	CD4066_DIP(_6L)
82 	LM324_DIP(_6J)
83 	TTL_7486_DIP(_6K)
84 	TTL_7492_DIP(_5K)
85 
86 	NET_C(VCC, _5K.5, _6F.VDD, _6J.4, _6K.7, _6L.14, S1.VCC, S2.VCC, OFF.VCC, ENGINE_HI.VCC, SHOOT.VCC, HIT.VCC, 2V.VCC, 4V.VCC)
87 	NET_C(GND, _5K.10, _6F.VSS, _6J.11, _6K.14, _6L.7, S1.GND, S2.GND, OFF.GND, ENGINE_HI.GND, SHOOT.GND, HIT.GND, 2V.GND, 4V.GND)
88 
89 	// Noise generation (presumably)
90 	NET_C(_6F.CLOCK, 2V)
91 	NET_C(_6F.D1P4, _6F.D3)
92 	NET_C(_6F.D3P4, _6F.D4, _6L.12, _6L.6)
93 	NET_C(_6F.D1, _6F.D2P5, _6K.A.A)
94 	NET_C(_6F.D4P4, _6K.A.B)
95 	NET_C(_6K.A.Q, R38.1)
96 	NET_C(_6F.D2, R38.2, D9.K)
97 	NET_C(_6F.D4P5, D8.A, R53.1)
98 	NET_C(D8.K, R53.2, C42.1, _6J.2)
99 	NET_C(_6J.1, C42.2, D9.A)
100 	NET_C(_6J.3, C12.1, R43.1, R44.1, _6J.12, _6J.10)
101 	NET_C(C12.2, GND)
102 	NET_C(R43.2, GND)
103 	NET_C(R44.2, V5)
104 
105 	// S1
106 	NET_C(S1.Q, _6L.5)
107 	NET_C(4V, _6L.4)
108 	NET_C(_6L.3, R35.1)
109 
110 	// S2
111 	NET_C(S2.Q, _6L.13)
112 	NET_C(2V, _6L.1)
113 	NET_C(_6L.2, R36.1)
114 
115 	// Hit
116 	NET_C(HIT.Q, R31.1)
117 	NET_C(R31.2, D10.A)
118 	NET_C(D10.K, C10.1, _6L.8)
119 	NET_C(C10.2, GND)
120 	NET_C(_6L.9, R50.1)
121 	NET_C(R50.2, R42.1, C15.1, C16.1)
122 	NET_C(R42.2, GND)
123 	NET_C(C16.2, R54.1, _6J.9)
124 	NET_C(C15.2, R54.2, _6J.8, R56_1.1)
125 
126 	// Shoot
127 	NET_C(SHOOT.Q, R32.1)
128 	NET_C(R32.2, D11.A)
129 	NET_C(D11.K, C11.1, _6L.11)
130 	NET_C(C11.2, GND)
131 	NET_C(_6L.10, R45.1)
132 	NET_C(R45.2, R37.1, C17.1, C18.1)
133 	NET_C(R37.2, GND)
134 	NET_C(C18.2, R51.1, _6J.13)
135 	NET_C(C17.2, R51.2, _6J.14, R56_2.1)
136 
137 	// Engine Rumble
138 	NET_C(ENGINE_HI.Q, _6K.B.A)
139 	NET_C(_6K.B.B, _6K.C.Q)
140 	NET_C(_6K.B.Q, R52.1, _5K.1)
141 	NET_C(R52.2, R46.1, _6J.6, C14.1)
142 	NET_C(C14.2, GND)
143 	NET_C(_6J.5, R47.1, R48.1, R49.1)
144 	NET_C(R47.2, V5)
145 	NET_C(R48.2, GND)
146 	NET_C(R49.2, R57.1, _6J.7, R46.2, _6K.C.A)
147 	NET_C(R57.2, GND)
148 	NET_C(_6K.C.B, VCC)
149 	NET_C(_5K.7, VCC)
150 	NET_C(_5K.6, OFF.Q)
151 	NET_C(_5K.11, R60.1, _6K.D.A)
152 	NET_C(_5K.8, R58.1, _6K.D.B)
153 	NET_C(_6K.D.Q, _5K.14)
154 	NET_C(_5K.12, R61.1)
155 	NET_C(R58.2, R60.2, R61.2, C13.1, R59.1)
156 	NET_C(C13.2, GND)
157 
158 	// Mixing
159 	//NET_C(R56_1.2, R56_2.2)
160 	//NET_C(R35.2, R36.2)
161 	//NET_C(R56_2.2, R59.2)
162 	NET_C(R35.2, R36.2, R56_1.2, R56_2.2, R59.2)
163 	//NET_C(R41.2, GND)
164 NETLIST_END()
165