diff options
-rw-r--r-- | .gitattributes | 1 | ||||
-rw-r--r-- | nl_examples/7400_astable.c | 5 | ||||
-rw-r--r-- | nl_examples/bjt.c | 6 | ||||
-rw-r--r-- | nl_examples/bjt_eb.c | 15 | ||||
-rw-r--r-- | nl_examples/msx_mixer_stage.c | 15 | ||||
-rw-r--r-- | nl_examples/ne555_astable.c | 3 | ||||
-rw-r--r-- | nl_examples/opamp.c | 2 | ||||
-rw-r--r-- | nl_examples/sn74ls629_osc.c | 7 | ||||
-rw-r--r-- | nl_examples/tdice.c | 1182 | ||||
-rw-r--r-- | nl_examples/test.c | 15 |
10 files changed, 1212 insertions, 39 deletions
diff --git a/.gitattributes b/.gitattributes index 7d4565838a9..63f1bf73144 100644 --- a/.gitattributes +++ b/.gitattributes @@ -363,6 +363,7 @@ nl_examples/msx_mixer_stage.c svneol=native#text/plain nl_examples/ne555_astable.c svneol=native#text/plain nl_examples/opamp.c svneol=native#text/plain nl_examples/sn74ls629_osc.c svneol=native#text/plain +nl_examples/tdice.c svneol=native#text/plain nl_examples/test.c svneol=native#text/plain nl_examples/todo.c svneol=native#text/plain nl_examples/vccs.c svneol=native#text/plain diff --git a/nl_examples/7400_astable.c b/nl_examples/7400_astable.c index b9f4c93eee0..87e925b4a97 100644 --- a/nl_examples/7400_astable.c +++ b/nl_examples/7400_astable.c @@ -14,9 +14,8 @@ NETLIST_START(7400_astable) /* Standard stuff */ - SOLVER(Solver) - PARAM(Solver.FREQ, 48000) - PARAM(Solver.ACCURACY, 1e-4) + SOLVER(Solver, 48000) + PARAM(Solver.ACCURACY, 1e-5) // astable NAND Multivibrator ==> f ~ 1.0 / (3 * R * C) RES(R1, 4700) diff --git a/nl_examples/bjt.c b/nl_examples/bjt.c index 9c91ce12a16..fc5b72f3d02 100644 --- a/nl_examples/bjt.c +++ b/nl_examples/bjt.c @@ -9,10 +9,8 @@ NETLIST_START(bjt) /* Standard stuff */ - CLOCK(clk) - PARAM(clk.FREQ, 1000) // 1000 Hz - SOLVER(Solver) - PARAM(Solver.FREQ, 48000) + CLOCK(clk, 1000) // 1000 Hz + SOLVER(Solver, 48000) ANALOG_INPUT(V5, 5) ANALOG_INPUT(V3, 3.5) diff --git a/nl_examples/bjt_eb.c b/nl_examples/bjt_eb.c index 5731e77e55b..b6cfab70994 100644 --- a/nl_examples/bjt_eb.c +++ b/nl_examples/bjt_eb.c @@ -10,13 +10,10 @@ NETLIST_START(bjt) /* Standard stuff */ - CLOCK(clk) - PARAM(clk.FREQ, 10000) // 1000 Hz - SOLVER(Solver) - PARAM(Solver.FREQ, 48000) - PARAM(Solver.ACCURACY, 1e-4) - //PARAM(Solver.ACCURACY, 1e-6) - PARAM(Solver.RESCHED_LOOPS, 50) + CLOCK(clk, 10000) // 10000 Hz + SOLVER(Solver, 48000) + PARAM(Solver.ACCURACY, 1e-6) + PARAM(Solver.RESCHED_LOOPS, 30) ANALOG_INPUT(V5, 5) ANALOG_INPUT(V3, 3.5) @@ -39,7 +36,7 @@ NETLIST_START(bjt) NET_C(RCE.1, Q.C) NET_C(RCE.2, GND) - //LOG(logB, Q.B) - //LOG(logC, Q.C) + LOG(logB, Q.B) + LOG(logC, Q.C) NETLIST_END() diff --git a/nl_examples/msx_mixer_stage.c b/nl_examples/msx_mixer_stage.c index e80d003d4f7..b6f17b52c22 100644 --- a/nl_examples/msx_mixer_stage.c +++ b/nl_examples/msx_mixer_stage.c @@ -7,15 +7,14 @@ #include "netlist/devices/net_lib.h" NETLIST_START(msx) - /* Standard stuff */ + /* The BJT is used as an amplifier. RESCHED_LOOPS must be relatively high to + * allow Newton-Raphson to finish. */ - CLOCK(clk) - PARAM(clk.FREQ, 1000) // 1000 Hz - SOLVER(Solver) - PARAM(Solver.FREQ, 48000) + CLOCK(clk, 1000) // 1000 Hz + SOLVER(Solver, 48000) PARAM(Solver.ACCURACY, 1e-5) - PARAM(Solver.CONVERG, 0.3) - PARAM(Solver.RESCHED_LOOPS, 80) + //PARAM(Solver.CONVERG, 0.3) + PARAM(Solver.RESCHED_LOOPS, 150) RES(RAY8910, 2345) // Max Voltage @@ -58,7 +57,7 @@ NETLIST_START(msx) NET_C(R8.1, T2.E) NET_C(R8.2, GND) - LOG(logB, T2.B) + //LOG(logB, T2.B) LOG(logC, T2.C) NETLIST_END() diff --git a/nl_examples/ne555_astable.c b/nl_examples/ne555_astable.c index 4b511bed219..0ab323d3c2d 100644 --- a/nl_examples/ne555_astable.c +++ b/nl_examples/ne555_astable.c @@ -14,8 +14,7 @@ NETLIST_START(ne555_astable) /* Standard stuff */ - SOLVER(Solver) - PARAM(Solver.FREQ, 48000) + SOLVER(Solver, 48000) ANALOG_INPUT(V5, 5) // 5V diff --git a/nl_examples/opamp.c b/nl_examples/opamp.c index 07d7df47135..550ac2e7708 100644 --- a/nl_examples/opamp.c +++ b/nl_examples/opamp.c @@ -41,7 +41,7 @@ NETLIST_START(main) NET_C(RL.2, GND) NET_C(RL.1, op1.OUT) - //LOG(logX, op1.OUT) + LOG(logX, op1.OUT) //LOG(logY, clk) NETLIST_END() diff --git a/nl_examples/sn74ls629_osc.c b/nl_examples/sn74ls629_osc.c index e390361a74b..8e697e0855f 100644 --- a/nl_examples/sn74ls629_osc.c +++ b/nl_examples/sn74ls629_osc.c @@ -5,7 +5,7 @@ #include "netlist/devices/net_lib.h" -NETLIST_START(ne555_astable) +NETLIST_START(ls629) /* * Astable ne555 @@ -14,8 +14,7 @@ NETLIST_START(ne555_astable) /* Standard stuff */ - SOLVER(Solver) - PARAM(Solver.FREQ, 48000) + SOLVER(Solver, 48000) ANALOG_INPUT(V5, 5) // 5V ANALOG_INPUT(VF, 2.5) // 5V @@ -28,6 +27,6 @@ NETLIST_START(ne555_astable) NET_C(VF, OSC.FC) NET_C(GND, OSC.ENQ) - //LOG(log2, OSC.Y) + LOG(log2, OSC.Y) NETLIST_END() diff --git a/nl_examples/tdice.c b/nl_examples/tdice.c new file mode 100644 index 00000000000..37f33400dfd --- /dev/null +++ b/nl_examples/tdice.c @@ -0,0 +1,1182 @@ +// license:MAME,GPL-2.0+ +// copyright-holders:DICE Team,couriersud +/* + * Changelog: + * - Original version imported from DICE + * - Changes made to run in MAME (couriersud) + * + * The MAME team has asked for and received written confirmation from the + * author of DICE to use, modify and redistribute code under + * a dual licensing scheme: + * + * * The licensing terms of MAME apply to this piece of code for the MAME + * project and derivative works, as defined by the MAME license. You + * may opt to make modifications, improvements or derivative works under + * that same conditions, and the MAME project may opt to keep + * modifications, improvements or derivatives under their terms exclusively. + * + * - Alternatively you can choose to apply the terms of the "GPL" (see + * below) to this - and only this - piece of code or your derivative works. + * Note that in no case your choice can have any impact on any other + * source code of the MAME project, or binary, or executable, be it closely + * or losely related to this piece of code. + * + * - GPL (GNU General Public License) + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * - DICE itself is licensed under version 3 of the GNU General Public License. + * Under no circumstances the exemptions listed above shall apply to any + * other code of DICE not contained in this file. + * + * The following is an extract from the DICE readme. + * + * ---------------------------------------------------------------------------- + * + * DICE is a Discrete Integrated Circuit Emulator. It emulates computer systems + * that lack any type of CPU, consisting only of discrete logic components. + * + * Project Page: http://sourceforge.net/projects/dice/ + * Email: dice.emulator@gmail.com + * + * License + * + * Copyright (C) 2008-2013 DICE Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + */ + + +#include "netlist/nl_dice_compat.h" +#include "netlist/devices/net_lib.h" +#include "netlist/analog/nld_twoterm.h" + +static Mono555Desc a3_555_desc(K_OHM(100.0), U_FARAD(0.1)); + +static Mono555Desc a10_555_desc(K_OHM(70.0), U_FARAD(0.1)); +static Mono555Desc b10_555_desc(K_OHM(70.0), U_FARAD(0.1)); + +static Mono555Desc b9a_555_desc(K_OHM(70.0), U_FARAD(0.1)); +static Mono555Desc b9b_555_desc(K_OHM(70.0), U_FARAD(0.1)); + +static Mono555Desc f5_555_desc(K_OHM(330.0), U_FARAD(4.7)); +static Mono555Desc g5_555_desc(K_OHM(220.0), U_FARAD(1.0)); + +static SeriesRCDesc c33_desc(K_OHM(1.0), U_FARAD(0.1)); // Capacitor C33, Resistor R30 + +#if 0 +static Paddle1VerticalDesc pad1_desc(17000.0, 145000.0, &a10_555_desc); +static Paddle2VerticalDesc pad2_desc(17000.0, 145000.0, &b10_555_desc); +static Paddle3VerticalDesc pad3_desc(17000.0, 145000.0, &b9b_555_desc); +static Paddle4VerticalDesc pad4_desc(17000.0, 145000.0, &b9a_555_desc); + +static DipswitchDesc dipswitch1_desc("winning_score", "Winning Score", 0, "11", "15"); +#endif + +CIRCUIT_LAYOUT( pongdoubles ) +SOLVER(Solver) +PARAM(Solver.FREQ, 48000) +PARAM(Solver.ACCURACY, 1e-7) // works and is sufficient + //CHIP("CLOCK", CLOCK_14_318_MHZ) + MAINCLOCK(CLOCK) + PARAM(CLOCK.FREQ, 14318000.0) + + ANALOG_INPUT(V5, 5) +#define VCC "V5", Q +#define GND "GND", Q + + CHIP("F9", 7493) + CHIP("F10", 7493) + CHIP("F7", 74107) + CHIP("F8", 7430) + CHIP("E8", 7474) + + CHIP("E9", 7493) + CHIP("E10", 7493) + CHIP("D10", 74107) + CHIP("D9", 7410) + + CHIP("G6", 7410) + CHIP("H6", 7400) + CHIP("F6", 7402) + + CHIP("F4", 74107) + CHIP("G4", 7400) + CHIP("G3", 7427) + + CHIP("E4", 7427) + CHIP("E3", 7410) + CHIP("D3", 7402) + CHIP("G2", 7402) + CHIP("F3", 7425) + CHIP("C6", 7448) + CHIP("C7", 74153) + CHIP("D7", 74153) + + CHIP("C4", 7400) + CHIP("E5", 7404) + CHIP("E6", 7427) + CHIP("C5", 7410) + CHIP("D5", 7410) + CHIP("D6", 7410) + CHIP("D4", 7430) + + //CHIP("B10", 555_Mono, &b10_555_desc) + CHIP_555_Mono(B10, &b10_555_desc) + + CHIP("C10", 7404) + CHIP("A7", 7493) + CHIP("B8", 7400) + CHIP("A8", 7420) + + //CHIP("A10", 555_Mono, &a10_555_desc) + CHIP_555_Mono(A10, &a10_555_desc) + CHIP("A9", 7493) + + CHIP("H4", 7474) + + CHIP("B3", 7400) + CHIP("D2", 7404) + + CHIP("G8", 9316) + CHIP("H8", 9316) + CHIP("G7", 74107) + CHIP("H7", 7420) + CHIP("E2", 7400) + + CHIP("B4", 9316) + CHIP("A4", 9316) + CHIP("B5", 7483) + + CHIP("B6", 7474) + CHIP("H5", 7400) + CHIP("E7", 7400) + //CHIP("F5", 555_Mono, &f5_555_desc) + CHIP_555_Mono(F5, &f5_555_desc) + + //CHIP("G5", 555_Mono, &g5_555_desc) + CHIP_555_Mono(G5, &g5_555_desc) + CHIP("C3", 7474) + CHIP("C2", 7400) + + CHIP("F2", 7493) + CHIP("H2", 7400) + CHIP("H3", 74107) + + CHIP("B7", 7450) + CHIP("A6", 7474) + CHIP("A5", 7486) + //CHIP("D10", 74107) + + CHIP("C8", 7490) + CHIP("D8", 7490) + CHIP("C9", 74107) + + CHIP("A1", 74153) + CHIP("B1", 74153) + + CHIP("B2", 7474) + CHIP("H1", 7402) + CHIP("G1", 7404) + + CHIP("E1", 7400) + CHIP("A2", 7420) + CHIP("D1", 7493) + CHIP("C1", 7493) + + CHIP("J1", 7474) + CHIP("F1", 7427) + + CHIP("J10", 7400) + CHIP("H10", 7474) + CHIP("G10", 7474) + //CHIP("A3", 555_Mono, &a3_555_desc) + CHIP_555_Mono(A3, &a3_555_desc) + + //CHIP("B9A", 555_Mono, &b9a_555_desc) + CHIP_555_Mono(B9A, &b9a_555_desc) + //CHIP("B9B", 555_Mono, &b9b_555_desc) + CHIP_555_Mono(B9B, &b9b_555_desc) + + CHIP_SERIES_RC(C33, &c33_desc) + +#if 0 + CHIP("PAD1", PADDLE1_VERTICAL_INPUT, &pad1_desc) + PADDLE_CONNECTION("PAD1", "A10") + + CHIP("PAD2", PADDLE2_VERTICAL_INPUT, &pad2_desc) + PADDLE_CONNECTION("PAD2", "B10") + + CHIP("PAD3", PADDLE3_VERTICAL_INPUT, &pad3_desc) + PADDLE_CONNECTION("PAD3", "B9B") + + CHIP("PAD4", PADDLE4_VERTICAL_INPUT, &pad4_desc) + PADDLE_CONNECTION("PAD4", "B9A") + + CHIP("LATCH", LATCH) + CHIP("COIN", COIN_INPUT) + CHIP("START", START_INPUT) + CHIP("DIPSW1", DIPSWITCH, &dipswitch1_desc) + + VIDEO(pongdoubles) +#endif + + //CHIP("COIN", COIN_INPUT) + CHIP_INPUT(COIN) + //CHIP("LATCH", LATCH) + CHIP_LATCH(LATCH) + //CHIP("START", START_INPUT) + CHIP_INPUT(START) + //CHIP("DIPSW1", DIPSWITCH, &dipswitch1_desc) + SWITCH2(DIPSW1) + SWITCH2(DIPSW2) +#ifdef DEBUG + CHIP("LOG1", VCD_LOG, &vcd_log_desc) +#endif + + // Not used, need to be connected + CONNECTION(GND, "C2", 1) + CONNECTION(GND, "C2", 2) + CONNECTION(GND, "A5", 1) + CONNECTION(GND, "A5", 2) + CONNECTION(GND, "G7", 4) + CONNECTION(GND, "G7", 1) + CONNECTION(GND, "G7",13) + CONNECTION(GND, "G7",12) + CONNECTION(GND, "J10",13) + CONNECTION(GND, "J10",12) + CONNECTION(GND, "C10",9) + CONNECTION(GND, "C10",11) + CONNECTION(GND, "C10",13) + CONNECTION(GND, "B1",10) + CONNECTION(GND, "B1",11) + CONNECTION(GND, "B1",12) + CONNECTION(GND, "B1",13) + CONNECTION(GND, "E7",12) + CONNECTION(GND, "E7",13) + CONNECTION(GND, "H1",11) + CONNECTION(GND, "H1",12) + CONNECTION(GND, "G1",9) + + // HRESET Circuit + + CONNECTION("CLOCK", Q, "F7", 12) + CONNECTION(VCC, "F7", 1) + CONNECTION(VCC, "F7", 4) + CONNECTION(VCC, "F7", 13) + + #define CLK "F7", 3 + + CONNECTION("F9", 12, "F9", 1) + CONNECTION(CLK, "F9", 14) + CONNECTION("E8", 8, "F9", 2) + CONNECTION("E8", 8, "F9", 3) + + CONNECTION("F10", 12, "F10", 1) + CONNECTION("F9", 11, "F10", 14) + CONNECTION("E8", 8, "F10", 2) + CONNECTION("E8", 8, "F10", 3) + + CONNECTION(VCC, "F7", 8) + CONNECTION(VCC, "F7", 11) + CONNECTION("F10", 11, "F7", 9) + CONNECTION("E8", 9, "F7", 10) + + CONNECTION("F7", 5, "F8", 1) + CONNECTION("F10", 11, "F8", 11) + CONNECTION("F10", 8, "F8", 12) + CONNECTION("F9", 8, "F8", 5) + CONNECTION("F9", 9, "F8", 6) + CONNECTION(VCC, "F8", 2) + CONNECTION(VCC, "F8", 3) + CONNECTION(VCC, "F8", 4) + + CONNECTION(CLK, "E8", 11) + CONNECTION("F8", 8, "E8", 12) + CONNECTION(VCC, "E8", 13) + CONNECTION(VCC, "E8", 10) + + #define H1 "F9", 12 + #define H2 "F9", 9 + #define H4 "F9", 8 + #define H8 "F9", 11 + #define H16 "F10", 12 + #define H32 "F10", 9 + #define H64 "F10", 8 + #define H128 "F10", 11 + #define H256 "F7", 5 + #define H256_n "F7", 6 + #define HRESET "E8", 8 + #define HRESET_n "E8", 9 + + + // VRESET Circuit + CONNECTION("E9", 12, "E9", 1) + CONNECTION(HRESET, "E9", 14) + CONNECTION("E8", 6, "E9", 2) + CONNECTION("E8", 6, "E9", 3) + + CONNECTION("E10", 12, "E10", 1) + CONNECTION("E9", 11, "E10", 14) + CONNECTION("E8", 6, "E10", 2) + CONNECTION("E8", 6, "E10", 3) + + CONNECTION(VCC, "D10", 8) + CONNECTION(VCC, "D10", 11) + CONNECTION("E10", 11, "D10", 9) + CONNECTION("E8", 5, "D10", 10) + + CONNECTION("D10", 5, "D9", 9) + CONNECTION("E9", 12, "D9", 10) + CONNECTION("E9", 8, "D9", 11) + + CONNECTION(HRESET, "E8", 3) + CONNECTION("D9", 8, "E8", 2) + CONNECTION(VCC, "E8", 1) + CONNECTION(VCC, "E8", 4) + + #define V1 "E9", 12 + #define V2 "E9", 9 + #define V4 "E9", 8 + #define V8 "E9", 11 + #define V16 "E10", 12 + #define V32 "E10", 9 + #define V64 "E10", 8 + #define V128 "E10", 11 + #define V256 "D10", 5 + #define V256_n "D10", 6 + #define VRESET "E8", 6 + #define VRESET_n "E8", 5 + + + // HSync Logic + CONNECTION(H16, "G6", 3) + CONNECTION(H64, "G6", 4) + CONNECTION(H64, "G6", 5) + + CONNECTION("G6", 6, "H6", 4) + CONNECTION(HRESET_n, "H6", 10) + CONNECTION("H6", 6, "H6", 9) + CONNECTION("H6", 8, "H6", 5) + + CONNECTION(H64, "D2", 9) + + CONNECTION(H64, "D3", 3) + CONNECTION("H6", 6, "D3", 2) + + CONNECTION("D2", 8, "C2", 9) + //CONNECTION("D2", 8, "C2", 10) + CONNECTION(H32, "C2", 10) // Not shown. Accurate? + + CONNECTION(VCC, "B2", 10) + CONNECTION("C2", 8, "B2", 12) + CONNECTION(H16, "B2", 11) + CONNECTION("D3", 1, "B2", 13) + + #define HBLANK "H6", 8 + #define HBLANK_n "H6", 6 + #define HSYNC_n "B2", 8 + + // VSync Logic + CONNECTION(VRESET, "F6", 8) + CONNECTION(V16, "F6", 12) + CONNECTION("F6", 10, "F6", 11) + CONNECTION("F6", 13, "F6", 9) + + CONNECTION(V8, "H6", 1) + CONNECTION(V8, "H6", 2) + + CONNECTION("F6", 13, "G6", 1) + CONNECTION(V4, "G6", 2) + CONNECTION("H6", 3, "G6", 13) + + #define VBLANK "F6", 13 + #define VBLANK_n "F6", 10 + + + // Net circuit + CONNECTION(H256, "F4", 8) + CONNECTION(H256_n, "F4", 11) + CONNECTION(CLK, "F4", 9) + CONNECTION(VCC, "F4", 10) + + CONNECTION("F4", 6, "G4", 5) + CONNECTION(H256, "G4", 4) + + CONNECTION(V4, "G3", 3) + CONNECTION(VBLANK, "G3", 4) + CONNECTION("G4", 6, "G3", 5) + + #define NET "G3", 6 + + + // Score decoding circuit + CONNECTION("C9", 2, "D7", 6) + CONNECTION("C8", 8, "D7", 5) + CONNECTION("C9", 6, "D7", 4) + CONNECTION("D8", 8, "D7", 3) + CONNECTION("C9", 2, "D7", 10) + CONNECTION("C8", 11, "D7", 11) + CONNECTION("C9", 6, "D7", 12) + CONNECTION("D8", 11, "D7", 13) + CONNECTION(H32, "D7", 14) + CONNECTION(H64, "D7", 2) + CONNECTION(GND, "D7", 1) + CONNECTION(GND, "D7", 15) + + CONNECTION(VCC, "C7", 6) + CONNECTION("C8", 12, "C7", 5) + CONNECTION(VCC, "C7", 4) + CONNECTION("D8", 12, "C7", 3) + CONNECTION("C9", 2, "C7", 10) + CONNECTION("C8", 9, "C7", 11) + CONNECTION("C9", 6, "C7", 12) + CONNECTION("D8", 9, "C7", 13) + CONNECTION(H32, "C7", 14) + CONNECTION(H64, "C7", 2) + CONNECTION(GND, "C7", 1) + CONNECTION(GND, "C7", 15) + + CONNECTION(H128, "E4", 1) + CONNECTION(H128, "E4", 2) + CONNECTION(H128, "E4", 13) + + CONNECTION("E4", 12, "E4", 5) + CONNECTION(H64, "E4", 4) + CONNECTION(H256, "E4", 3) + + CONNECTION("E4", 12, "E3", 9) + CONNECTION(H64, "E3", 10) + CONNECTION(H256, "E3", 11) + + CONNECTION("E3", 8, "E4", 9) + CONNECTION("E3", 8, "E4", 10) + CONNECTION("E3", 8, "E4", 11) + + CONNECTION("E4", 6, "D3", 8) + CONNECTION("E4", 8, "D3", 9) + + CONNECTION(V32, "G2", 2) + CONNECTION(V32, "G2", 3) + + CONNECTION("G2", 1, "F3", 1) + CONNECTION(V64, "F3", 2) + CONNECTION(V128, "F3", 4) + CONNECTION("D3", 10, "F3", 5) + + CONNECTION("C7", 7, "C6", 7) + CONNECTION("C7", 9, "C6", 1) + CONNECTION("D7", 7, "C6", 2) + CONNECTION("D7", 9, "C6", 6) + CONNECTION("F3", 6, "C6", 4) + CONNECTION(VCC, "C6", 3) + CONNECTION(VCC, "C6", 5) + + + // Score display circuit + CONNECTION(H16, "E5", 3) + + CONNECTION(H4, "C4", 12) + CONNECTION(H8, "C4", 13) + + CONNECTION("E5", 4, "E6", 9) + CONNECTION(H4, "E6", 10) + CONNECTION(H8, "E6", 11) + + CONNECTION("C4", 11, "D3", 5) + CONNECTION("E5", 4, "D3", 6) + + CONNECTION(V8, "E6", 3) + CONNECTION(V4, "E6", 4) + CONNECTION("E5", 4, "E6", 5) + + CONNECTION(V4, "E3", 1) + CONNECTION(V8, "E3", 2) + CONNECTION(H16, "E3", 13) + + CONNECTION("E5", 1, "E3", 12) + + CONNECTION(V16, "E5", 5) + + CONNECTION("E5", 6, "D5", 1) + CONNECTION("C6", 15, "D5", 2) + CONNECTION("E6", 8, "D5", 13) + + CONNECTION("C6", 9, "D6", 9) + CONNECTION(V16, "D6", 10) + CONNECTION("E6", 8, "D6", 11) + + CONNECTION("D3", 4, "C5", 9) + CONNECTION("E5", 6, "C5", 10) + CONNECTION("C6", 12, "C5", 11) + + CONNECTION("D3", 4, "D6", 1) + CONNECTION("C6", 11, "D6", 2) + CONNECTION(V16, "D6", 13) + + CONNECTION("C6", 13, "D5", 9) + CONNECTION("E5", 6, "D5", 10) + CONNECTION("E6", 6, "D5", 11) + + CONNECTION("C6", 14, "D5", 3) + CONNECTION("E5", 2, "D5", 4) + CONNECTION("E5", 6, "D5", 5) + + CONNECTION("E5", 2, "D6", 3) + CONNECTION(V16, "D6", 4) + CONNECTION("C6", 10, "D6", 5) + + CONNECTION("D5", 12, "D4", 12) + CONNECTION("D6", 8, "D4", 5) + CONNECTION("C5", 8, "D4", 4) + CONNECTION(VCC, "D4", 1) + CONNECTION("D6", 12, "D4", 2) + CONNECTION("D5", 8, "D4", 11) + CONNECTION("D5", 6, "D4", 6) + CONNECTION("D6", 6, "D4", 3) + + + // Coin / Start Logic + CONNECTION("COIN", 1, "C10", 5) + + // Capacitor C33 used to drive a ~0.1ms low pulse + // onto A3 pin 2 at the falling edge of COIN. + CONNECTION("COIN", 1, "C33", 1) + CONNECTION(VCC, "C33", 2) + + CONNECTION(VCC, "A3", 4) + CONNECTION("C33", 3, "A3", 2) + + CONNECTION("A3", 3, "D2", 11) + + CONNECTION(VCC, "B2", 4) + CONNECTION("D2", 10, "B2", 3) + CONNECTION("C10", 6, "B2", 2) + CONNECTION("C10", 6, "B2", 1) + + CONNECTION("J10", 3, "LATCH", 1) + CONNECTION("B2", 6, "LATCH", 2) + + CONNECTION("LATCH", 3, "H6", 12) + CONNECTION("LATCH", 3, "H6", 13) // Wrong pins on schematic + + CONNECTION("START", 1, "J10", 9) + CONNECTION("START", 1, "J10", 10) + + CONNECTION(VCC, "C3", 10) + CONNECTION("H10", 6, "C3", 12) + CONNECTION("B2", 5, "C3", 11) + CONNECTION(VCC, "C3", 13) + + CONNECTION("H6", 11, "H10", 4) + CONNECTION(VCC, "H10", 2) + CONNECTION("B2", 6, "H10", 1) + CONNECTION("G10", 9, "H10", 3) + + CONNECTION("H10", 5, "J10", 2) + CONNECTION("G10", 9, "J10", 1) + + CONNECTION(VCC, "G10", 4) + CONNECTION("G10", 9, "G10", 2) + CONNECTION("J10", 8, "G10", 3) + CONNECTION("H10", 8, "G10", 1) + + CONNECTION(VCC, "H10", 10) + CONNECTION("G10", 5, "H10", 12) + CONNECTION(V256, "H10", 11) + CONNECTION(VCC, "H10", 13) + + CONNECTION("H10", 9, "J10", 4) + CONNECTION("H10", 6, "J10", 5) + + CONNECTION("H6", 11, "G10", 10) + CONNECTION(VCC, "G10", 12) + CONNECTION("B3", 3, "G10", 11) + CONNECTION("J10", 6, "G10", 13) // Schematic shows pin 10 + + CONNECTION("J10", 6, "E5", 9) // Schematic says E6? + + #define ATTRACT_n "D2", 4 + #define ATTRACT "G10", 9 + + #define SRST "E5", 8 + #define SRST_n "J10", 6 + + + // Game Control Logic + CONNECTION("H7", 6, "E7", 9) + CONNECTION("H6", 8, "E7", 10) + + CONNECTION("E7", 8, "D2", 13) + + CONNECTION("D2", 12, "E2", 1) + CONNECTION(ATTRACT_n, "E2", 2) + + CONNECTION(SRST_n, "E7", 4) + CONNECTION("E7", 8, "E7", 5) + + CONNECTION("E7", 6, "E7", 1) + CONNECTION("E7", 6, "E7", 2) + + CONNECTION("E7", 3, "F5", 2) + CONNECTION(VCC, "F5", 4) + + CONNECTION(ATTRACT, "E6", 1) + CONNECTION("B3", 3, "E6", 2) + CONNECTION("F5", 3, "E6", 13) + + CONNECTION("E6", 12, "B6", 12) + CONNECTION("E6", 12, "B6", 13) + CONNECTION(VCC, "B6", 10) + CONNECTION("G3", 8, "B6", 11) + + CONNECTION(ATTRACT, "D2", 3) + + + + // Horizontal Ball Counter + CONNECTION(ATTRACT_n, "E2", 4) + CONNECTION("B6", 8, "E2", 5) + + CONNECTION("H5", 8, "G8", 3) + CONNECTION("H5", 6, "G8", 4) + CONNECTION(GND, "G8", 5) + CONNECTION(VCC, "G8", 6) + CONNECTION(CLK, "G8", 2) + CONNECTION("E2", 6, "G8", 1) + CONNECTION(VCC, "G8", 7) + CONNECTION("H6", 6, "G8", 10) + CONNECTION("G6", 8, "G8", 9) + + CONNECTION(GND, "H8", 3) + CONNECTION(GND, "H8", 4) + CONNECTION(GND, "H8", 5) + CONNECTION(VCC, "H8", 6) + CONNECTION(CLK, "H8", 2) + CONNECTION("E2", 6, "H8", 1) + CONNECTION("G8", 15, "H8", 7) + CONNECTION(VCC, "H8", 10) + CONNECTION("G6", 8, "H8", 9) + + CONNECTION(VCC, "G7", 8) + CONNECTION(VCC, "G7", 11) + CONNECTION("H8", 15, "G7", 9) + CONNECTION("E2", 6, "G7", 10) + + CONNECTION("G8", 12, "H7", 9) + CONNECTION("G8", 11, "H7", 10) + CONNECTION("H8", 15, "H7", 12) + CONNECTION("G7", 5, "H7", 13) + + #define HVID_n "H7", 8 + + CONNECTION("H8", 15, "G6", 9) + CONNECTION("G8", 15, "G6", 10) + CONNECTION("G7", 5, "G6", 11) + + CONNECTION(HVID_n, "H7", 1) + CONNECTION(HVID_n, "H7", 2) + CONNECTION(HVID_n, "H7", 4) + CONNECTION(HVID_n, "H7", 5) + + #define HVID "H7", 6 + + + // Vertical Ball Counter + CONNECTION("B5", 9, "B4", 3) + CONNECTION("B5", 6, "B4", 4) + CONNECTION("B5", 2, "B4", 5) + CONNECTION("B5", 15, "B4", 6) + CONNECTION("B2", 8, "B4", 2) + CONNECTION(VCC, "B4", 1) + CONNECTION(VCC, "B4", 7) + CONNECTION("F6", 10, "B4", 10) + CONNECTION("B3", 6, "B4", 9) + + CONNECTION(GND, "A4", 3) + CONNECTION(GND, "A4", 4) + CONNECTION(GND, "A4", 5) + CONNECTION(GND, "A4", 6) + CONNECTION("B2", 8, "A4", 2) + CONNECTION(VCC, "A4", 1) + CONNECTION("B4", 15, "A4", 7) + CONNECTION(VCC, "A4", 10) + CONNECTION("B3", 6, "A4", 9) + + CONNECTION("B4", 15, "B3", 5) + CONNECTION("A4", 15, "B3", 4) + + CONNECTION("B4", 12, "E3", 3) + CONNECTION("B4", 11, "E3", 4) + CONNECTION("A4", 15, "E3", 5) + + CONNECTION("E3", 6, "D3", 11) + CONNECTION("E3", 6, "D3", 12) + + #define VVID_n "E3", 6 + #define VVID "D3", 13 + + + // Hit Logic + CONNECTION(HVID_n, "G2", 5) + CONNECTION(VVID_n, "G2", 6) + + CONNECTION("G1", 10, "G4", 1) + CONNECTION("G2", 4, "G4", 2) + + CONNECTION("G1", 12, "G4", 13) + CONNECTION("G2", 4, "G4", 12) + + CONNECTION("G4", 3, "B3", 9) + CONNECTION("G4", 11, "B3", 10) + + CONNECTION("B3", 8, "B3", 12) + CONNECTION("B3", 8, "B3", 13) + + #define HIT "B3", 8 + #define HIT_n "B3", 11 + + + // Horizontal Ball Control + CONNECTION("E2", 8, "E2", 12) + CONNECTION("C3", 6, "E2", 13) + + CONNECTION("E7", 6, "F2", 2) + CONNECTION("E7", 6, "F2", 3) + CONNECTION("E2", 11, "F2", 14) + CONNECTION("F2", 12, "F2", 1) + + CONNECTION("F2", 8, "G2", 11) + CONNECTION("F2", 11, "G2", 12) + + CONNECTION("F2", 8, "E2", 9) + CONNECTION("F2", 11, "E2", 10) + + CONNECTION("G2", 13, "H2", 1) + CONNECTION("G2", 13, "H2", 2) + + CONNECTION("H2", 3, "H2", 12) + CONNECTION("E2", 8, "H2", 13) + + CONNECTION("H2", 11, "H2", 9) + CONNECTION("E8", 6, "H2", 10) + + CONNECTION("H2", 3, "H2", 4) + CONNECTION("E8", 6, "H2", 5) + + CONNECTION(H256_n, "G2", 8) + CONNECTION("E8", 6, "G2", 9) + + CONNECTION(VCC, "H3", 8) + CONNECTION("G2", 10, "H3", 9) + CONNECTION("H5", 3, "H3", 11) + CONNECTION("H2", 8, "H3", 10) + + CONNECTION("H3", 5, "H3", 1) + CONNECTION("G2", 10, "H3", 12) + CONNECTION(GND, "H3", 4) + CONNECTION("H2", 6, "H3", 13) + + CONNECTION("H3", 5, "H5", 1) + CONNECTION("H3", 3, "H5", 2) + + CONNECTION("G5", 3, "C2", 12) + CONNECTION(ATTRACT, "C2", 13) + + CONNECTION("C2", 11, "D2", 1) + + CONNECTION("H4", 8, "H4", 12) + CONNECTION("D2", 2, "H4", 11) + CONNECTION("G4", 11, "H4", 13) + CONNECTION("G4", 3, "H4", 10) + + CONNECTION("H5", 3, "H5", 12) + CONNECTION("H4", 9, "H5", 13) + + CONNECTION("H5", 3, "H5", 4) + CONNECTION("H4", 8, "H5", 5) + + CONNECTION("H5", 11, "H5", 10) + CONNECTION("H5", 6, "H5", 9) + + + + // Vertical Ball Control + + CONNECTION("A7", 9, "B1", 6) + CONNECTION("D1", 9, "B1", 5) + CONNECTION("A9", 9, "B1", 4) + CONNECTION("C1", 9, "B1", 3) + CONNECTION(H64, "B1", 14) + CONNECTION(H256, "B1", 2) + CONNECTION(GND, "B1", 1) + CONNECTION(GND, "B1", 15) // Added + + CONNECTION("A7", 8, "A1", 6) + CONNECTION("D1", 8, "A1", 5) + CONNECTION("A9", 8, "A1", 4) + CONNECTION("C1", 8, "A1", 3) + CONNECTION("A7", 11, "A1", 10) + CONNECTION("D1", 11, "A1", 11) + CONNECTION("A9", 11, "A1", 12) + CONNECTION("C1", 11, "A1", 13) + CONNECTION(H64, "A1", 14) + CONNECTION(H256, "A1", 2) + CONNECTION(GND, "A1", 1) + CONNECTION(GND, "A1", 15) + + CONNECTION("A7", 11, "B7", 3) + CONNECTION(H256_n, "B7", 2) + CONNECTION("A9", 11, "B7", 4) + CONNECTION(H256, "B7", 5) + + CONNECTION(ATTRACT, "D2", 5) + + CONNECTION("B1", 7, "A6", 12) + CONNECTION(HIT, "A6", 11) + CONNECTION("D2", 6, "A6", 13) + CONNECTION(VCC, "A6", 10) + + CONNECTION("A1", 7, "A6", 2) + CONNECTION(HIT, "A6", 3) + CONNECTION("D2", 6, "A6", 1) + CONNECTION(VCC, "A6", 4) + + CONNECTION("A1", 9, "B6", 2) + CONNECTION(HIT, "B6", 3) + CONNECTION("D2", 6, "B6", 1) + CONNECTION(VCC, "B6", 4) + + CONNECTION(VVID, "D10", 1) + CONNECTION("F6", 13, "D10", 12) + CONNECTION(VVID, "D10", 4) + CONNECTION("B3", 11, "D10", 13) + + CONNECTION("A6", 8, "A5", 9) + CONNECTION("D10", 3, "A5", 10) + + CONNECTION("D10", 3, "A5", 4) + CONNECTION("A6", 6, "A5", 5) + + CONNECTION("D10", 3, "B7", 1) + CONNECTION("B6", 6, "B7", 13) + CONNECTION("B6", 5, "B7", 10) // Pins 5&6 swapped compared to Pong + CONNECTION("D10", 2, "B7", 9) + + CONNECTION("B7", 8, "C5", 1) + CONNECTION("B7", 8, "C5", 2) + CONNECTION("B7", 8, "C5", 13) + + CONNECTION("A5", 8, "B5", 10) + CONNECTION("A5", 6, "B5", 8) + CONNECTION("B7", 8, "B5", 3) + CONNECTION(GND, "B5", 1) + CONNECTION("C5", 12, "B5", 11) + CONNECTION(VCC, "B5", 7) + CONNECTION(VCC, "B5", 4) + CONNECTION(GND, "B5", 16) + CONNECTION(GND, "B5", 13) + + + + // Paddle 1 Vertical + CONNECTION(V256_n, "B10", 2) + CONNECTION(VCC, "B10", 4) + + CONNECTION("B10", 3, "C10", 3) + + CONNECTION(HSYNC_n, "B8", 4) + CONNECTION("A8", 8, "B8", 5) + + CONNECTION("B10", 3, "A7", 2) + CONNECTION("B10", 3, "A7", 3) + CONNECTION("B8", 6, "A7", 14) + CONNECTION("A7", 12, "A7", 1) + + CONNECTION("A7", 12, "A8", 10) + CONNECTION("A7", 9, "A8", 9) + CONNECTION("A7", 8, "A8", 12) + CONNECTION("A7", 11, "A8", 13) + + CONNECTION("C10", 4, "B8", 1) + CONNECTION("A8", 8, "B8", 2) + + // Paddle 1N Vertical + CONNECTION(V256_n, "B9A", 2) + CONNECTION(VCC, "B9A", 4) + + CONNECTION("B9A", 3, "G1", 1) + + CONNECTION(HSYNC_n, "E1", 1) + CONNECTION("A2", 8, "E1", 2) + + CONNECTION("B9A", 3, "D1", 2) + CONNECTION("B9A", 3, "D1", 3) + CONNECTION("E1", 3, "D1", 14) + CONNECTION("D1", 12, "D1", 1) + + CONNECTION("D1", 12, "A2", 10) + CONNECTION("D1", 9, "A2", 9) + CONNECTION("D1", 8, "A2", 12) + CONNECTION("D1", 11, "A2", 13) + + CONNECTION("G1", 2, "E1", 12) + CONNECTION("A2", 8, "E1", 13) + + + + // Paddle 2 Vertical + CONNECTION(V256_n, "A10", 2) + CONNECTION(VCC, "A10", 4) + + CONNECTION("A10", 3, "C10", 1) + + CONNECTION("A8", 6, "B8", 9) + CONNECTION(HSYNC_n, "B8", 10) + + CONNECTION("A10", 3, "A9", 2) + CONNECTION("A10", 3, "A9", 3) + CONNECTION("B8", 8, "A9", 14) + CONNECTION("A9", 12, "A9", 1) + + CONNECTION("A9", 12, "A8", 2) + CONNECTION("A9", 9, "A8", 1) + CONNECTION("A9", 8, "A8", 4) + CONNECTION("A9", 11, "A8", 5) + + CONNECTION("C10", 2, "B8", 13) + CONNECTION("A8", 6, "B8", 12) + + // Paddle 2N Vertical + CONNECTION(V256_n, "B9B", 2) + CONNECTION(VCC, "B9B", 4) + + CONNECTION("B9B", 3, "G1", 3) + + CONNECTION(HSYNC_n, "E1", 4) + CONNECTION("A2", 6, "E1", 5) + + CONNECTION("B9B", 3, "C1", 2) + CONNECTION("B9B", 3, "C1", 3) + CONNECTION("E1", 6, "C1", 14) + CONNECTION("C1", 12, "C1", 1) + + CONNECTION("C1", 12, "A2", 5) + CONNECTION("C1", 9, "A2", 4) + CONNECTION("C1", 8, "A2", 2) + CONNECTION("C1", 11, "A2", 1) + + CONNECTION("G1", 4, "E1", 9) + CONNECTION("A2", 6, "E1", 10) + + + // Paddle N Horizontal + CONNECTION(H64, "G1", 5) + + CONNECTION(VCC, "J1", 4) + CONNECTION("G1", 6, "J1", 2) + CONNECTION(H4, "J1", 3) + CONNECTION(ATTRACT_n, "J1", 1) + + CONNECTION("C3", 9, "J1", 10) + CONNECTION(VCC, "J1", 12) + CONNECTION("G4", 8, "J1", 11) + CONNECTION(H256, "J1", 13) + + CONNECTION("J1", 9, "F1", 4) + CONNECTION("G1", 6, "F1", 3) + CONNECTION("J1", 6, "F1", 5) + + CONNECTION("F1", 6, "H1", 8) + CONNECTION("F1", 6, "H1", 9) + + CONNECTION("H1", 10, "F1", 13) + CONNECTION(H256, "F1", 2) // Schematic says 256V + CONNECTION("E1", 11, "F1", 1) + + CONNECTION("H1", 10, "F1", 11) + CONNECTION(H256_n, "F1", 9) + CONNECTION("E1", 8, "F1", 10) + + + // Paddle Horizontal + CONNECTION(VCC, "H4", 1) + CONNECTION("D2", 4, "H4", 4) + CONNECTION(H4, "H4", 3) + CONNECTION(H128, "H4", 2) + + CONNECTION(H128, "G4", 10) + CONNECTION("H4", 6, "G4", 9) + + CONNECTION("G4", 8, "G3", 9) + CONNECTION(H256, "G3", 10) + CONNECTION("B8", 3, "G3", 11) + + CONNECTION("B8", 11, "G3", 1) + CONNECTION(H256_n, "G3", 2) + CONNECTION("G4", 8, "G3", 13) + + CONNECTION("F1", 12, "H1", 2) + CONNECTION("G3", 8, "H1", 3) + + CONNECTION("F1", 8, "H1", 5) + CONNECTION("G3", 12, "H1", 6) + + CONNECTION("H1", 1, "G1", 13) + CONNECTION("H1", 4, "G1", 11) + + + // Sound + CONNECTION("E7", 8, "G5", 2) + CONNECTION(VCC, "G5", 4) + + CONNECTION("G5", 3, "C4", 10) + CONNECTION(V32, "C4", 9) + + CONNECTION(VCC, "C3", 2) + CONNECTION(VCC, "C3", 4) + CONNECTION(HIT_n, "C3", 1) + CONNECTION("A4", 15, "C3", 3) + + CONNECTION("C3", 6, "C4", 1) + CONNECTION("A4", 14, "C4", 2) + + CONNECTION(VVID, "F4", 1) + CONNECTION("F6", 13, "F4", 12) + CONNECTION(VVID_n, "F4", 4) + CONNECTION("B6", 9, "F4", 13) + + CONNECTION("F4", 3, "C4", 5) + CONNECTION("A4", 13, "C4", 4) + + CONNECTION("C4", 6, "C5", 3) + CONNECTION("C4", 3, "C5", 4) + CONNECTION("C4", 8, "C5", 5) + + + + + // Score Counters + CONNECTION("H4", 9, "F6", 5) + CONNECTION("E2", 3, "F6", 6) + + CONNECTION("H4", 8, "F6", 2) + CONNECTION("E2", 3, "F6", 3) + + CONNECTION("F6", 4, "C8", 14) + CONNECTION("C8", 12, "C8", 1) + CONNECTION(SRST, "C8", 2) + CONNECTION(SRST, "C8", 3) + CONNECTION(GND, "C8", 6) + CONNECTION(GND, "C8", 7) + + CONNECTION("F6", 1, "D8", 14) + CONNECTION("D8", 12, "D8", 1) + CONNECTION(SRST, "D8", 2) + CONNECTION(SRST, "D8", 3) + CONNECTION(GND, "D8", 6) + CONNECTION(GND, "D8", 7) + + CONNECTION("C8", 11, "C9", 12) + CONNECTION(VCC, "C9", 1) + CONNECTION(VCC, "C9", 4) + CONNECTION(SRST_n, "C9", 13) + + CONNECTION("D8", 11, "C9", 9) + CONNECTION(VCC, "C9", 8) + CONNECTION(VCC, "C9", 11) + CONNECTION(SRST_n, "C9", 10) + + CONNECTION(VCC, "DIPSW1", 1) + CONNECTION("C8", 8, "DIPSW1", 2) + + CONNECTION("C8", 12, "D9", 1) + //CONNECTION("DIPSW1", 3, "D9", 2) + CONNECTION("DIPSW1", Q, "D9", 2) + CONNECTION("C9", 3, "D9", 13) + + //CONNECTION(VCC, "DIPSW1", 4) + //CONNECTION("D8", 8, "DIPSW1", 5) + CONNECTION(VCC, "DIPSW2", 1) + CONNECTION("D8", 8, "DIPSW2", 2) + + CONNECTION("D8", 12, "D9", 3) + //CONNECTION("DIPSW1", 6, "D9", 4) + CONNECTION("DIPSW2", Q, "D9", 4) + CONNECTION("C9", 5, "D9", 5) + + CONNECTION("D9", 12, "B3", 1) + CONNECTION("D9", 6, "B3", 2) + + // Missing Logic in DICE + + NET_C(G6.12, A5.13) + NET_C(B2.8, A5.12) + NET_C(A5.11, E5.11) + + // Video Summing + CONNECTION("F3", 13, "G2", 4) // Ball + CONNECTION("F3", 12, "G1", 10) + CONNECTION("F3", 10, NET) + CONNECTION("F3", 9, "G1", 12) + + CONNECTION("F3", 8, "E5", 13) + + // FIXME: pong doubles uses different resistor values! + RES(RV1, 1000) + RES(RV2, 1200) + RES(RV3, 22000) + NET_C(E5.12, RV1.1) //Video + NET_C(D4.8, RV2.1) //Score + NET_C(E5.10, RV3.1) + + NET_C(RV1.2, RV2.2) + NET_C(RV2.2, RV3.2) + + ALIAS(videomix, RV3.2) + +#if 0 + CONNECTION("VIDEO", 1, "E5", 12) // VIDEO + CONNECTION("VIDEO", 2, "D4", 8) // SCORE + + CONNECTION("VIDEO", Video::HBLANK_PIN, HBLANK) + CONNECTION("VIDEO", Video::VBLANK_PIN, VBLANK) +#endif + + // Audio Summing + CONNECTION(ATTRACT_n, "C2", 4) + CONNECTION("C5", 6, "C2", 5) + + //CONNECTION("AUDIO", 1, "C2", 6) + ALIAS(AUDIO, C2.6) + +#ifdef DEBUG + CONNECTION("LOG1", 1, "COIN", 1) + CONNECTION("LOG1", 2, "A3", 3) + CONNECTION("LOG1", 3, "B2", 5) + CONNECTION("LOG1", 4, "H10", 5) + CONNECTION("LOG1", 5, "C3", 9) + CONNECTION("LOG1", 6, "G10", 5) + CONNECTION("LOG1", 7, "E2", 6) + CONNECTION("LOG1", 8, "B3", 3) +#endif + + +CIRCUIT_LAYOUT_END + + diff --git a/nl_examples/test.c b/nl_examples/test.c index a76c4b88c8c..aee7bf9ec86 100644 --- a/nl_examples/test.c +++ b/nl_examples/test.c @@ -3,23 +3,22 @@ * */ +// CURRENTLY BROKEN #include "netlist/devices/net_lib.h" NETLIST_START(bjt) /* Standard stuff */ - CLOCK(clk) - PARAM(clk.FREQ, 1000) // 1000 Hz - SOLVER(Solver) - PARAM(Solver.FREQ, 48000) + CLOCK(clk, 1000) // 1000 Hz + SOLVER(Solver, 48000) ANALOG_INPUT(V3, 3) ANALOG_INPUT(STOPG, 0) - NET_ALIAS(SRSTQ, RYf.2) - NET_ALIAS(SRST, RYc.2) + ALIAS(SRSTQ, RYf.2) + ALIAS(SRST, RYc.2) NET_C(antenna, GND) - NET_ALIAS(runQ, Q1.C) + ALIAS(runQ, Q1.C) TTL_7404_INVERT(e4d, STOPG) @@ -38,7 +37,7 @@ NETLIST_START(bjt) /* Antenna circuit */ /* Also has a diode to clamp negative voltages - omitted here */ NETDEV_QNPN(Q3, BC237B) - NET_ALIAS(antenna, Q3.B) + ALIAS(antenna, Q3.B) NET_C(GND, Q3.E) RES(RX5, 100) CAP(CX1, 100) |