diff options
-rw-r--r-- | scripts/src/netlist.lua | 2 | ||||
-rwxr-xr-x | src/lib/netlist/generated/nlm_modules_lib.cpp | 4 | ||||
-rw-r--r-- | src/lib/netlist/macro/modules/nlmod_ICL8038_DIP.cpp | 61 | ||||
-rw-r--r-- | src/lib/netlist/macro/modules/nlmod_NE556_DIP.cpp | 24 | ||||
-rw-r--r-- | src/mame/audio/nl_destroyr.cpp | 21 | ||||
-rw-r--r-- | src/mame/audio/nl_fireone.cpp | 84 | ||||
-rw-r--r-- | src/mame/audio/nl_flyball.cpp | 21 | ||||
-rw-r--r-- | src/mame/audio/nl_starfire.cpp | 79 | ||||
-rw-r--r-- | src/mame/machine/nl_tank.cpp | 21 |
9 files changed, 91 insertions, 226 deletions
diff --git a/scripts/src/netlist.lua b/scripts/src/netlist.lua index 07fdfe85a53..442074f0215 100644 --- a/scripts/src/netlist.lua +++ b/scripts/src/netlist.lua @@ -203,6 +203,8 @@ project "netlist" MAME_DIR .. "src/lib/netlist/macro/nlm_roms_lib.cpp", MAME_DIR .. "src/lib/netlist/macro/modules/nlmod_RTEST.cpp", + MAME_DIR .. "src/lib/netlist/macro/modules/nlmod_NE556_DIP.cpp", + MAME_DIR .. "src/lib/netlist/macro/modules/nlmod_ICL8038_DIP.cpp", MAME_DIR .. "src/lib/netlist/generated/static_solvers.cpp", MAME_DIR .. "src/lib/netlist/generated/nld_devinc.h", diff --git a/src/lib/netlist/generated/nlm_modules_lib.cpp b/src/lib/netlist/generated/nlm_modules_lib.cpp index d9fe63979d9..7f91075ac40 100755 --- a/src/lib/netlist/generated/nlm_modules_lib.cpp +++ b/src/lib/netlist/generated/nlm_modules_lib.cpp @@ -1,12 +1,14 @@ // license:CC0 // copyright-holders:Couriersud -// File programmatically created Sat Sep 12 14:42:49 2020 +// File programmatically created Sun Sep 13 20:49:39 2020 #include "devices/net_lib.h" NETLIST_START(modules_lib) + EXTERNAL_LIB_ENTRY(ICL8038_DIP) + EXTERNAL_LIB_ENTRY(NE556_DIP) EXTERNAL_LIB_ENTRY(RTEST) NETLIST_END() diff --git a/src/lib/netlist/macro/modules/nlmod_ICL8038_DIP.cpp b/src/lib/netlist/macro/modules/nlmod_ICL8038_DIP.cpp new file mode 100644 index 00000000000..05a4d300099 --- /dev/null +++ b/src/lib/netlist/macro/modules/nlmod_ICL8038_DIP.cpp @@ -0,0 +1,61 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +#include "devices/net_lib.h" + +// +// ICL8038 is broadly similar to a 566 VCO, and can be simulated partially as such. +// + +NETLIST_START(ICL8038_DIP) + VCVS(VI, 1) + CCCS(CI1, -1) + CCCS(CI2, 2) + SYS_COMPD(COMP) + SYS_DSW2(SW) + VCVS(VO, 1) + RES(R_SHUNT, RES_R(50)) + + PARAM(VO.RO, 50) + PARAM(COMP.MODEL, "FAMILY(TYPE=CUSTOM IVL=0.16 IVH=0.4 OVL=0.01 OVH=0.01 ORL=50 ORH=50)") + PARAM(SW.GOFF, 0) // This has to be zero to block current sources + + NET_C(VI.OP, CI1.IN, CI2.IN) + NET_C(CI1.OP, VO.IP) + NET_C(COMP.Q, SW.I) + NET_C(CI2.OP, SW.2) + NET_C(COMP.VCC, R_SHUNT.1) + NET_C(SW.1, R_SHUNT.2) + NET_C(SW.3, VO.IP) + NET_C(VO.OP, COMP.IN) + + // Avoid singular Matrix due to G=0 switch + RES(RX1, 1e10) + RES(RX2, 1e10) + NET_C(RX1.1, SW.1) + NET_C(RX2.1, SW.3) + + NET_C(COMP.GND, RX1.2, RX2.2) + + RES(R1, 5000) + RES(R2, 5000) + RES(R3, 5000) + + // Square output wave + VCVS(V_SQR, 1) + NET_C(COMP.Q, V_SQR.IP) + + NET_C(COMP.GND, SW.GND, VI.ON, VI.IN, CI1.ON, CI2.ON, VO.IN, VO.ON, R2.2, V_SQR.IN, V_SQR.ON) + NET_C(COMP.VCC, SW.VCC, R1.2) + NET_C(COMP.IP, R1.1, R2.1, R3.1) + NET_C(COMP.Q, R3.2) + + ALIAS(11, VI.ON) // GND + ALIAS(9, V_SQR.OP) // Square out + ALIAS(3, VO.OP) // Triag out + ALIAS(8, VI.IP) // VC + ALIAS(4, CI1.IP) // R1 + ALIAS(5, CI2.IP) // R2 + ALIAS(10, VO.IP) // C1 + ALIAS(6, COMP.VCC) // V+ +NETLIST_END() diff --git a/src/lib/netlist/macro/modules/nlmod_NE556_DIP.cpp b/src/lib/netlist/macro/modules/nlmod_NE556_DIP.cpp new file mode 100644 index 00000000000..7f278a18b6d --- /dev/null +++ b/src/lib/netlist/macro/modules/nlmod_NE556_DIP.cpp @@ -0,0 +1,24 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +// + +#include "devices/net_lib.h" + +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() diff --git a/src/mame/audio/nl_destroyr.cpp b/src/mame/audio/nl_destroyr.cpp index 2f3e8f7f81b..0ed9c7dc701 100644 --- a/src/mame/audio/nl_destroyr.cpp +++ b/src/mame/audio/nl_destroyr.cpp @@ -32,25 +32,6 @@ static NETLIST_START(LM324_VM5V12_DIP) NET_C(A.VCC, B.VCC, C.VCC, D.VCC) NETLIST_END() -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(destroyr) SOLVER(Solver, 48000) @@ -65,7 +46,7 @@ NETLIST_START(destroyr) NET_MODEL("LM324_M5V12V OPAMP(TYPE=3 VLH=1.1 VLL=0.11 FPF=5 UGF=50k SLEW=0.3M RI=1000k RO=50 DAB=0.00075)") - LOCAL_SOURCE(NE556_DIP) + //LOCAL_SOURCE(NE556_DIP) LOCAL_SOURCE(LM324_VM5V12_DIP) TTL_INPUT(MOTOR_SPEED, 0) diff --git a/src/mame/audio/nl_fireone.cpp b/src/mame/audio/nl_fireone.cpp index 5bca887402e..fced0ac6994 100644 --- a/src/mame/audio/nl_fireone.cpp +++ b/src/mame/audio/nl_fireone.cpp @@ -13,87 +13,6 @@ #include "netlist/devices/net_lib.h" // -// 556 is just two 555s in one package -// - -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() - - -// -// ICL8038 is broadly similar to a 566 VCO, and can be simulated partially as such. -// - -static NETLIST_START(ICL8038_DIP) - VCVS(VI, 1) - CCCS(CI1, -1) - CCCS(CI2, 2) - SYS_COMPD(COMP) - SYS_DSW2(SW) - VCVS(VO, 1) - RES(R_SHUNT, RES_R(50)) - - PARAM(VO.RO, 50) - PARAM(COMP.MODEL, "FAMILY(TYPE=CUSTOM IVL=0.16 IVH=0.4 OVL=0.01 OVH=0.01 ORL=50 ORH=50)") - PARAM(SW.GOFF, 0) // This has to be zero to block current sources - - NET_C(VI.OP, CI1.IN, CI2.IN) - NET_C(CI1.OP, VO.IP) - NET_C(COMP.Q, SW.I) - NET_C(CI2.OP, SW.2) - NET_C(COMP.VCC, R_SHUNT.1) - NET_C(SW.1, R_SHUNT.2) - NET_C(SW.3, VO.IP) - NET_C(VO.OP, COMP.IN) - - // Avoid singular Matrix due to G=0 switch - RES(RX1, 1e10) - RES(RX2, 1e10) - NET_C(RX1.1, SW.1) - NET_C(RX2.1, SW.3) - - NET_C(COMP.GND, RX1.2, RX2.2) - - RES(R1, 5000) - RES(R2, 5000) - RES(R3, 5000) - - // Square output wave - VCVS(V_SQR, 1) - NET_C(COMP.Q, V_SQR.IP) - - NET_C(COMP.GND, SW.GND, VI.ON, VI.IN, CI1.ON, CI2.ON, VO.IN, VO.ON, R2.2, V_SQR.IN, V_SQR.ON) - NET_C(COMP.VCC, SW.VCC, R1.2) - NET_C(COMP.IP, R1.1, R2.1, R3.1) - NET_C(COMP.Q, R3.2) - - ALIAS(11, VI.ON) // GND - ALIAS(9, V_SQR.OP) // Square out - ALIAS(3, VO.OP) // Triag out - ALIAS(8, VI.IP) // VC - ALIAS(4, CI1.IP) // R1 - ALIAS(5, CI2.IP) // R2 - ALIAS(10, VO.IP) // C1 - ALIAS(6, COMP.VCC) // V+ -NETLIST_END() - -// // Main netlist // @@ -130,9 +49,6 @@ NETLIST_START(fireone) NET_C(VCC, MUSIC_A.VCC, MUSIC_B.VCC, MUSIC_C.VCC) NET_C(GND, MUSIC_A.GND, MUSIC_B.GND, MUSIC_C.GND) - LOCAL_SOURCE(NE556_DIP) - LOCAL_SOURCE(ICL8038_DIP) - TTL_7406_GATE(IC27_A) TTL_7406_GATE(IC27_B) TTL_7406_GATE(IC27_C) diff --git a/src/mame/audio/nl_flyball.cpp b/src/mame/audio/nl_flyball.cpp index 6e6a1d94fa1..45a4ab4cb19 100644 --- a/src/mame/audio/nl_flyball.cpp +++ b/src/mame/audio/nl_flyball.cpp @@ -11,25 +11,6 @@ #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(flyball) SOLVER(Solver, 48000) @@ -41,8 +22,6 @@ NETLIST_START(flyball) NET_C(VCC, H256.VCC, V128.VCC) NET_C(GND, H256.GND, V128.GND) - LOCAL_SOURCE(NE556_DIP) - TTL_INPUT(BAT_SOUND, 1) TTL_INPUT(FOOTSTEP, 1) TTL_INPUT(CROWD_SL, 1) diff --git a/src/mame/audio/nl_starfire.cpp b/src/mame/audio/nl_starfire.cpp index bae260e7ad1..668d85966cb 100644 --- a/src/mame/audio/nl_starfire.cpp +++ b/src/mame/audio/nl_starfire.cpp @@ -14,82 +14,6 @@ #include "netlist/devices/net_lib.h" // -// 556 is just two 555s in one package -// - -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() - -static NETLIST_START(ICL8038_DIP) - VCVS(VI, 1) - CCCS(CI1, -1) - CCCS(CI2, 2) - SYS_COMPD(COMP) - SYS_DSW2(SW) - VCVS(VO, 1) - RES(R_SHUNT, RES_R(50)) - - PARAM(VO.RO, 50) - PARAM(COMP.MODEL, "FAMILY(TYPE=CUSTOM IVL=0.16 IVH=0.4 OVL=0.01 OVH=0.01 ORL=50 ORH=50)") - PARAM(SW.GOFF, 0) // This has to be zero to block current sources - - NET_C(VI.OP, CI1.IN, CI2.IN) - NET_C(CI1.OP, VO.IP) - NET_C(COMP.Q, SW.I) - NET_C(CI2.OP, SW.2) - NET_C(COMP.VCC, R_SHUNT.1) - NET_C(SW.1, R_SHUNT.2) - NET_C(SW.3, VO.IP) - NET_C(VO.OP, COMP.IN) - - // Avoid singular Matrix due to G=0 switch - RES(RX1, 1e10) - RES(RX2, 1e10) - NET_C(RX1.1, SW.1) - NET_C(RX2.1, SW.3) - - NET_C(COMP.GND, RX1.2, RX2.2) - - RES(R1, 5000) - RES(R2, 5000) - RES(R3, 5000) - - // Square output wave - VCVS(V_SQR, 1) - NET_C(COMP.Q, V_SQR.IP) - - NET_C(COMP.GND, SW.GND, VI.ON, VI.IN, CI1.ON, CI2.ON, VO.IN, VO.ON, R2.2, V_SQR.IN, V_SQR.ON) - NET_C(COMP.VCC, SW.VCC, R1.2) - NET_C(COMP.IP, R1.1, R2.1, R3.1) - NET_C(COMP.Q, R3.2) - - ALIAS(11, VI.ON) // GND - ALIAS(9, V_SQR.OP) // Square out - ALIAS(3, VO.OP) // Triag out - ALIAS(8, VI.IP) // VC - ALIAS(4, CI1.IP) // R1 - ALIAS(5, CI2.IP) // R2 - ALIAS(10, VO.IP) // C1 - ALIAS(6, COMP.VCC) // V+ -NETLIST_END() - -// // Main netlist // @@ -117,9 +41,6 @@ NETLIST_START(starfire) NET_C(VCC, SIZE.VCC, SEXPLO.VCC, STIE.VCC, SLASER.VCC, TRACK.VCC, LOCK.VCC, SCANNER.VCC, OHEAT.VCC) NET_C(GND, SIZE.GND, SEXPLO.GND, STIE.GND, SLASER.GND, TRACK.GND, LOCK.GND, SCANNER.GND, OHEAT.GND) - LOCAL_SOURCE(NE556_DIP) - LOCAL_SOURCE(ICL8038_DIP) - RES(R12, RES_K(10)) RES(R13, RES_K(470)) RES(R14, RES_K(470)) diff --git a/src/mame/machine/nl_tank.cpp b/src/mame/machine/nl_tank.cpp index e956d12a09c..152d7fe01d3 100644 --- a/src/mame/machine/nl_tank.cpp +++ b/src/mame/machine/nl_tank.cpp @@ -9,25 +9,6 @@ #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, 16000) @@ -42,8 +23,6 @@ NETLIST_START(tank) ALIAS(VCC, V5) ALIAS(P, V5) - LOCAL_SOURCE(NE556_DIP) - RES(R4, RES_K(3.3)) RES(R5, RES_K(3.3)) RES(R6, RES_K(3.3)) |