1 // license:CC0
2 // copyright-holders:Ryan Holtz, Ivan Vangelista
3 //
4 // Netlist for Atari's Flyball
5 //
6 // Derived from the schematics in the manual.
7 //
8 // Known problems/issues:
9 //    * None.
10 //
11 
12 #include "netlist/devices/net_lib.h"
13 
14 NETLIST_START(flyball)
15 
16 	SOLVER(Solver, 48000)
17 	ANALOG_INPUT(V5, 5)
18 	ANALOG_INPUT(V18, 18)
19 	ALIAS(VCC, V5)
20 	CLOCK(H256, 15750.0)
21 	CLOCK(V128, 61.5234375)
22 	NET_C(VCC, H256.VCC, V128.VCC)
23 	NET_C(GND, H256.GND, V128.GND)
24 
25 	TTL_INPUT(BAT_SOUND, 1)
26 	TTL_INPUT(FOOTSTEP, 1)
27 	TTL_INPUT(CROWD_SL, 1)
28 	TTL_INPUT(CROWD_ON, 1)
29 	TTL_INPUT(CROWD_VL, 1)
30 	NET_C(VCC, BAT_SOUND.VCC, FOOTSTEP.VCC, CROWD_SL.VCC, CROWD_ON.VCC, CROWD_VL.VCC)
31 	NET_C(GND, BAT_SOUND.GND, FOOTSTEP.GND, CROWD_SL.GND, CROWD_ON.GND, CROWD_VL.GND)
32 
33 	RES(R43, RES_K(68)) // RES., CARBON, 5%, 1/4W, 68K
34 	RES(R73, RES_K(1)) // RES., CARBON, 5%, 1/4W, 1K
35 	RES(R74, RES_K(1)) // RES., CARBON, 5%, 1/4W, 1K
36 	POT(R75, RES_K(50)) // TRIMPOT, 50K
37 	RES(R76, RES_K(100)) // RES., CARBON, 5%, 1/4W, 100K
38 	RES(R77, 820)  // RES., CARBON, 5%, 1/4W, 820
39 	RES(R78, RES_K(100)) // RES., CARBON, 5%, 1/4W, 100K
40 	RES(R79, RES_K(1)) // RES., CARBON, 5%, 1/4W, 820K // Verified as 1K on a real board
41 	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)
42 	RES(R87, RES_K(1)) // RES., CARBON, 5%, 1/4W, 1K
43 	RES(R88, RES_K(3.3)) // RES., CARBON, 5%, 1/4W, 3.3K
44 	RES(R89, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
45 	RES(R90, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
46 	RES(R91, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
47 	RES(R92, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
48 	POT(R95, RES_K(10)) // TRIMPOT, 10K
49 	RES(R96, RES_K(47)) // RES., CARBON, 5%, 1/4W, 47K
50 	RES(R97A, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
51 	RES(R97B, RES_K(24.4)) // RES., CARBON, 5%, 1/4W, 10K // Verified to exist on a real board
52 	RES(R98, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
53 	RES(R99, RES_K(33)) // RES., CARBON, 5%, 1/4W, 33K
54 
55 	CAP(C34, CAP_U(0.0047)) // CAP., MYLAR, .0047uf
56 	CAP(C44, CAP_U(0.0047)) // CAP., MYLAR, .0047uf
57 	CAP(C45, CAP_U(0.1)) // CAP., CERAMIC DISC., 0.1 uf, 25V
58 	CAP(C46, CAP_U(0.015)) // CAP., CERAMIC DISC., 0.015 uf, 25V
59 	CAP(C47, CAP_U(0.015)) // CAP., CERAMIC DISC., 0.015 uf, 25V
60 	CAP(C48, CAP_U(10)) // CAP., ELECTROLYTIC, 10 uf, 25V
61 	CAP(C49, CAP_U(100)) // CAP., ELECTROLYTIC, 100 uf, 25V
62 	CAP(C51, CAP_U(0.1)) // CAP., CERAMIC DISC., 0.1 uf, 25V
63 	CAP(C52, CAP_U(0.1)) // CAP., CERAMIC DISC., 0.1 uf, 25V
64 	CAP(C53, CAP_U(0.1)) // CAP., CERAMIC DISC., 0.1 uf, 25V
65 	CAP(C79, CAP_U(0.1)) // CAP., CERAMIC DISC., 0.1 uf, 25V
66 	CAP(C80, CAP_U(0.1)) // CAP., CERAMIC DISC., 0.1 uf, 25V
67 
68 	TTL_7486_DIP(IC_E7)
69 	TTL_74164_DIP(IC_B7)
70 	TTL_74164_DIP(IC_C7)
71 	TTL_7474_DIP(IC_D7)
72 	NET_C(VCC, IC_E7.14, IC_B7.14, IC_C7.14, IC_D7.14, IC_E7.13, IC_B7.9, IC_B7.2, IC_C7.9, IC_C7.2)
73 	NET_C(GND, IC_E7.7,  IC_B7.7,  IC_C7.7,  IC_D7.7,  IC_D7.2, IC_E7.4, IC_E7.5)
74 
75 	SUBMODEL(NE556_DIP, IC_E8)
76 	NET_C(VCC, IC_E8.14)
77 	NET_C(GND, IC_E8.7)
78 
79 	MC3340_DIP(IC_A8)
80 	MC3340_DIP(IC_C8)
81 	NET_C(V18, IC_A8.8, IC_C8.8)
82 	NET_C(GND, IC_A8.3, IC_C8.3)
83 
84 	UA741_DIP8(IC_D8)
85 	NET_C(V18, IC_D8.7)
86 	NET_C(GND, IC_D8.4)
87 
88 	// Random Noise Generator
89 	NET_C(H256.Q, IC_B7.8, IC_C7.8, IC_D7.11, IC_D7.4)
90 	NET_C(VCC, IC_D7.13, IC_D7.1)
91 	NET_C(IC_B7.13, IC_C7.1)
92 	NET_C(IC_C7.13, IC_D7.12)
93 	NET_C(IC_D7.9, IC_E7.9)
94 	NET_C(IC_B7.5, IC_E7.10)
95 	NET_C(IC_E7.8, IC_E7.12)
96 	NET_C(IC_E7.11, IC_B7.1)
97 	NET_C(IC_D7.5, IC_D7.10)
98 	NET_C(V128, IC_D7.3)
99 
100 	// Band Pass Filter
101 	NET_C(IC_D7.8, R78.1)
102 	NET_C(R78.2, R77.1, C46.1, C47.1)
103 	NET_C(GND, R77.2)
104 	NET_C(C46.2, R80.1, IC_D8.6)
105 	NET_C(C47.2, R80.2, IC_D8.2)
106 	NET_C(V5, IC_D8.3)
107 
108 	// Bat Sound
109 	NET_C(BAT_SOUND.Q, IC_E8.4, IC_E8.10, IC_E7.1)
110 	NET_C(V5, IC_E7.2, R73.1, R74.1)
111 	NET_C(R74.2, R75.3, R75.2, IC_E8.1)
112 	NET_C(R75.1, R43.1)
113 	NET_C(R43.2, IC_E8.2, IC_E8.6, C34.1)
114 	NET_C(R73.2, IC_E8.13, R76.1)
115 	NET_C(R76.2, IC_E8.12, IC_E8.8, C44.1)
116 	NET_C(IC_E8.3, IC_E8.11, C45.1)
117 	NET_C(GND, C34.2, C44.2, C45.2)
118 	NET_C(IC_E8.5, R91.1)
119 	NET_C(IC_E8.9, R90.1)
120 	NET_C(IC_E7.3, R89.1)
121 
122 	// Footstep Envelope Generator
123 	NET_C(FOOTSTEP.Q, R88.1)
124 	NET_C(IC_D7.8, R79.1)
125 	NET_C(R79.2, C79.1)
126 	NET_C(C79.2, IC_C8.1)
127 	NET_C(R88.2, C48.1, IC_C8.2)
128 	NET_C(GND, C48.2)
129 	NET_C(IC_C8.7, R92.1)
130 
131 	// Crowd & Whistle Volume Control
132 	NET_C(IC_D8.6, R87.1)
133 	NET_C(R87.2, C80.1)
134 	NET_C(C80.2, IC_A8.1)
135 	NET_C(CROWD_VL.Q, R97A.2, R97B.2)
136 	NET_C(CROWD_ON.Q, R98.2)
137 	NET_C(CROWD_SL.Q, R99.2)
138 	NET_C(R97A.1, R97B.1, R98.1, R99.1, C49.1, IC_A8.2)
139 	NET_C(GND, C49.2)
140 	NET_C(IC_A8.7, R96.1)
141 
142 	// Mixer
143 	NET_C(R89.2, R90.2, R91.2, R92.2, R96.2, C51.1, R95.3)
144 	NET_C(GND, C51.2, R95.1)
145 	NET_C(R95.2, C53.1)
146 	NET_C(C53.2, C52.1)
147 	NET_C(C52.2, GND)
148 	ALIAS(OUTPUT, C53.2)
149 
150 	// Unconnected pins
151 	HINT(IC_A8.6, NC)
152 	HINT(IC_C8.6, NC)
153 	HINT(IC_B7.2, NC)
154 	HINT(IC_B7.9, NC)
155 	HINT(IC_B7.3, NC)
156 	HINT(IC_B7.4, NC)
157 	HINT(IC_B7.6, NC)
158 	HINT(IC_B7.10, NC)
159 	HINT(IC_B7.11, NC)
160 	HINT(IC_B7.12, NC)
161 	HINT(IC_C7.3, NC)
162 	HINT(IC_C7.4, NC)
163 	HINT(IC_C7.5, NC)
164 	HINT(IC_C7.6, NC)
165 	HINT(IC_C7.10, NC)
166 	HINT(IC_C7.11, NC)
167 	HINT(IC_C7.12, NC)
168 	HINT(IC_D7.6, NC)
169 	HINT(IC_E7.6, NC)
170 NETLIST_END()
171