summaryrefslogblamecommitdiffstatshomepage
path: root/src/mame/audio/nl_gamemachine.cpp
blob: ec039e6ab4773c9ee4e9f4d8a51638960a82ec4e (plain) (tree)









































                                                                                


                                                                                          













































                                                                     
// license:CC0
// copyright-holders:Couriersud
// thanks-to:Sean Riddle

#include "netlist/devices/net_lib.h"

/* ----------------------------------------------------------------------------
 *  Gamemachine schematics
 * ---------------------------------------------------------------------------*/

NETLIST_START(gamemachine)

	/* Standard stuff */

	SOLVER(Solver, 48000)
	PARAM(Solver.ACCURACY, 1e-7)
	ANALOG_INPUT(V5, 5)

	/* Schematics: http://seanriddle.com/gamemachineaudio.JPG
	 *
	 * 3870 datasheet: http://nice.kaze.com/MK3870.pdf
	 *
	 * The 3870 has mask-programmable outputs (page VIII-7 in datasheet).
	 *
	 * Given the schematics, in this case the OPENDRAIN configuration is the
	 * most probable.
	 *
	 */

	NET_MODEL("OPENDRAIN FAMILY(OVL=0.0 OVH=0.0 ORL=1.0 ORH=1e12)")
	NET_MODEL("TYPE6K FAMILY(OVL=0.05 OVH=0.05 ORL=1.0 ORH=6000)")
	NET_MODEL("DIRECTDRIVE FAMILY(OVL=0.05 OVH=0.05 ORL=1.0 ORH=1000)")

	LOGIC_INPUT(P08, 1, "OPENDRAIN")
	LOGIC_INPUT(P09, 1, "OPENDRAIN")
	LOGIC_INPUT(P10, 1, "OPENDRAIN")
	LOGIC_INPUT(P11, 1, "OPENDRAIN")
	LOGIC_INPUT(P12, 1, "OPENDRAIN")
	LOGIC_INPUT(P13, 1, "OPENDRAIN")
	LOGIC_INPUT(P14, 1, "OPENDRAIN")
	LOGIC_INPUT(P15, 1, "OPENDRAIN")

	NET_C(V5,  P08.VCC, P09.VCC, P10.VCC, P11.VCC, P12.VCC, P13.VCC, P14.VCC, P15.VCC)
	NET_C(GND, P08.GND, P09.GND, P10.GND, P11.GND, P12.GND, P13.GND, P14.GND, P15.GND)

	RES(R1, RES_K(2.4))
	RES(R2, RES_K(10))
	RES(R3, RES_K(4.3))
	RES(R4, RES_K(150))
	RES(R5, RES_K(240))
	RES(R6, RES_K(2.4))
	RES(SPK1, 8)

	CAP(C1, CAP_P(50))
	CAP(C2, CAP_U(0.001))
	CAP(C3, CAP_U(0.002))
	CAP(C4, CAP_U(0.005))
	CAP(C5, CAP_U(0.010))

	CAP(C6, CAP_P(50))
	CAP(C7, CAP_U(0.01))
	CAP(C8, CAP_U(470))

	QBJT_EB(Q1, "9013")

	MC1455P_DIP(IC1)

	NET_C(P08.Q, R2.2, IC1.4)
	NET_C(P09.Q, C8.2)
	NET_C(P15.Q, R1.2)

	NET_C(C1.1, P10.Q)
	NET_C(C2.1, P11.Q)
	NET_C(C3.1, P12.Q)
	NET_C(C4.1, P13.Q)
	NET_C(C5.1, P14.Q)

	NET_C(C1.2, C2.2, C3.2, C4.2, C5.2, C6.2, IC1.2, IC1.6, R5.2)
	NET_C(GND, C6.1, IC1.1, Q1.E)
	NET_C(R5.1, R4.2, IC1.7)
	NET_C(V5, R4.1, R2.1, IC1.8, SPK1.1, R3.1)

	NET_C(C7.1, R6.1, IC1.3)

	NET_C(C7.2, R6.2, Q1.B)
	NET_C(Q1.C, SPK1.2)

	NET_C(C8.1, R1.1, R3.2, IC1.5)

NETLIST_END()