diff options
author | 2020-05-02 19:30:21 +0200 | |
---|---|---|
committer | 2020-05-02 19:30:21 +0200 | |
commit | f0928453f6d7749054f818581881f0036dda2065 (patch) | |
tree | e87740da0cb3994113b50aaecc5b171a648ffc7d /src/lib/netlist/examples | |
parent | fb2839ba10e89f58d26011b46ba436b7e2bd953d (diff) |
netlist: change license for netlists in examples to CC0. [Couriersud]
Diffstat (limited to 'src/lib/netlist/examples')
31 files changed, 32 insertions, 1957 deletions
diff --git a/src/lib/netlist/examples/2N6027.cpp b/src/lib/netlist/examples/2N6027.cpp index 8b414317087..777369929b1 100644 --- a/src/lib/netlist/examples/2N6027.cpp +++ b/src/lib/netlist/examples/2N6027.cpp @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud #include "netlist/devices/net_lib.h" diff --git a/src/lib/netlist/examples/7400_astable.c b/src/lib/netlist/examples/7400_astable.c index d20ededb6f7..cb49db8a1a4 100644 --- a/src/lib/netlist/examples/7400_astable.c +++ b/src/lib/netlist/examples/7400_astable.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * 7400_astable.c diff --git a/src/lib/netlist/examples/74123_mstable.c b/src/lib/netlist/examples/74123_mstable.c index 38e3f5f2072..5243f4c0ad2 100644 --- a/src/lib/netlist/examples/74123_mstable.c +++ b/src/lib/netlist/examples/74123_mstable.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * 74123_mstable.c diff --git a/src/lib/netlist/examples/7414.cpp b/src/lib/netlist/examples/7414.cpp index e7c01ce85d3..0301d9d62ec 100644 --- a/src/lib/netlist/examples/7414.cpp +++ b/src/lib/netlist/examples/7414.cpp @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * 7414.c diff --git a/src/lib/netlist/examples/9602_mstable.c b/src/lib/netlist/examples/9602_mstable.c index 164241886b9..f253c9e994c 100644 --- a/src/lib/netlist/examples/9602_mstable.c +++ b/src/lib/netlist/examples/9602_mstable.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * 9602_mstable.c diff --git a/src/lib/netlist/examples/LM3900_test.cpp b/src/lib/netlist/examples/LM3900_test.cpp index 32ceb066864..a48a2cd8a78 100644 --- a/src/lib/netlist/examples/LM3900_test.cpp +++ b/src/lib/netlist/examples/LM3900_test.cpp @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * Script to analyze opamp amplification as a function of frequency. diff --git a/src/lib/netlist/examples/bjt.c b/src/lib/netlist/examples/bjt.c index f28c070910a..b654750bcad 100644 --- a/src/lib/netlist/examples/bjt.c +++ b/src/lib/netlist/examples/bjt.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * bjt.c diff --git a/src/lib/netlist/examples/bjt_eb.c b/src/lib/netlist/examples/bjt_eb.c index a42def2df3b..75a43827e69 100644 --- a/src/lib/netlist/examples/bjt_eb.c +++ b/src/lib/netlist/examples/bjt_eb.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * bjt.c diff --git a/src/lib/netlist/examples/bjt_eb_pnp.c b/src/lib/netlist/examples/bjt_eb_pnp.c index 7ca43466300..9bd052f7df1 100644 --- a/src/lib/netlist/examples/bjt_eb_pnp.c +++ b/src/lib/netlist/examples/bjt_eb_pnp.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * bjt.c diff --git a/src/lib/netlist/examples/breakout.c b/src/lib/netlist/examples/breakout.c deleted file mode 100644 index c5919af5e5a..00000000000 --- a/src/lib/netlist/examples/breakout.c +++ /dev/null @@ -1,1462 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud -#define NETLIST_DEVELOPMENT 1 - -#include "netlist/nl_dice_compat.h" -#include "netlist/devices/net_lib.h" -#include "netlist/analog/nld_twoterm.h" - -//2 555 timers -static Astable555Desc b2_555_desc(OHM(560.0), M_OHM(1.8), U_FARAD(0.1)); - -static Mono555Desc c9_555_desc(OHM(47.0), U_FARAD(1.0)); // R33, C21 - -//check these values -//static Paddle1HorizontalDesc pad1_desc(15047.0, 47.0, &c9_555_desc); - -static CapacitorDesc c32_desc(U_FARAD(0.1)); -static CapacitorDesc c36_desc(N_FARAD(1.0)); //0.001uF = 1nF -static CapacitorDesc c37_desc(P_FARAD(330.0)); -static BufferDesc pad_en_buf_desc(DELAY_NS(15.0), DELAY_NS(15.0)); // Prevents 12ns glitch on PAD_EN_n signal from resetting C9. TODO: is this accurate? - -#if 0 -static VIDEO_DESC( breakout ) - VIDEO_RESISTANCE(1, K_OHM(0.0)) - VIDEO_RESISTANCE(2, K_OHM(3.9)) - VIDEO_RESISTANCE(3, K_OHM(3.9)) - VIDEO_RESISTANCE(4, K_OHM(3.9)) - VIDEO_RESISTANCE(5, K_OHM(3.9)) - VIDEO_RESISTANCE(6, K_OHM(3.9)) - //VIDEO_RESISTANCE(Video::HBLANK_PIN, K_OHM(0.0)) - VIDEO_ORIENTATION(ROTATE_90) - VIDEO_CONTRAST(4.0) - - // Values guessed based on screenshots. TODO: Make more accurate - // X, Y, W, H, R, G, B - VIDEO_OVERLAY( 15.570e-6, 0.0, 1.911e-6, -1.0, 0.80, 0.15, 0.05 ) // Red Bricks - VIDEO_OVERLAY( 17.481e-6, 0.0, 1.956e-6, -1.0, 0.95, 0.65, 0.05 ) // Amber Bricks - VIDEO_OVERLAY( 19.437e-6, 0.0, 1.956e-6, -1.0, 0.05, 0.65, 0.25 ) // Green Bricks - VIDEO_OVERLAY( 21.393e-6, 0.0, 1.955e-6, -1.0, 0.95, 0.95, 0.20 ) // Yellow Bricks - VIDEO_OVERLAY( 51.345e-6, 0.0, 1.956e-6, -1.0, 0.05, 0.65, 0.95 ) // Blue Paddle - - // TODO: Different overlays for cocktail cabinet -VIDEO_DESC_END - -static AUDIO_DESC( breakout ) - AUDIO_RESISTANCE(1, K_OHM(47.0)) - AUDIO_RESISTANCE(2, K_OHM(47.0)) - AUDIO_RESISTANCE(3, K_OHM(47.0)) - AUDIO_RESISTANCE(4, K_OHM(47.0)) - AUDIO_GAIN(3.0) -VIDEO_DESC_END -#endif - -static Mono9602Desc n8_desc(K_OHM(33.0), U_FARAD(100.0), K_OHM(5.6), P_FARAD(0.01)); // No capacitor on 2nd 9602, assume very low internal capacitance -static Mono9602Desc f3_desc(K_OHM(47.0), U_FARAD(1.0), K_OHM(47.0), U_FARAD(1.0)); - -static Mono9602Desc a7_desc(K_OHM(68.0), U_FARAD(1.0), K_OHM(22.0), U_FARAD(10.0)); -static Mono9602Desc a8_desc(K_OHM(27.0), U_FARAD(1.0), K_OHM(27.0), U_FARAD(1.0)); - -static Dipswitch53137Desc dipswitch1_desc("bonus_credit", "Bonus Credit", 3, "None", "100", "200", "300", "400", "500", "600", "700", "800"); -//static DipswitchDesc dipswitch2_desc("cabinet_type", "Cabinet Type", 0, "Normal", "Cocktail"); -//static DipswitchDesc dipswitch3_desc("coinage", "Coinage", 0, "1 Coin / 1 Credit", "1 Coin / 2 Credits"); -//static DipswitchDesc dipswitch4_desc("ball_count", "Ball Count", 0, "3", "5"); - -CIRCUIT_LAYOUT( breakout ) - CHIP("S1", 53137, &dipswitch1_desc) - CHIP("S2", DIPSWITCH, &dipswitch2_desc) - CHIP("S3", DIPSWITCH, &dipswitch3_desc) - CHIP("S4", DIPSWITCH, &dipswitch4_desc) - - SOLVER(Solver, 48000) - PARAM(Solver.ACCURACY, 1e-7) // works and is sufficient - //CHIP("CLOCK", CLOCK_14_318_MHZ) - MAINCLOCK(Y1, 14318000.0) - - ANALOG_INPUT(V5, 5) -#define VCC "V5", Q -#define GND "GND", Q - - //CHIP("Y1", CLOCK_14_318_MHZ) //Y1 - - CHIP_CAPACITOR(C32, &c32_desc) - CHIP_CAPACITOR(C36, &c36_desc) - CHIP_CAPACITOR(C37, &c37_desc) - CHIP("PAD_EN_BUF", BUFFER, &pad_en_buf_desc) - - CHIP("A3", 7474) - CHIP("A4", 7408) - CHIP("A5", 7400) - CHIP("A6", 7474) - CHIP_9602_Mono(A7, &a7_desc) - CHIP_9602_Mono(A8, &a8_desc) - - CHIP_555_Astable(B2, &b2_555_desc) - CHIP("B3", 7402) - CHIP("B4", 9316) - CHIP("B5", 74193) - CHIP("B6", 7400) - CHIP("B7", 9316) - CHIP("B8", 9316) - CHIP("B9", 7408) - - CHIP("C2", 7400) - CHIP("C3", 7400) - CHIP("C4", 7486) - CHIP("C5", 7404) - CHIP("C6", 7486) - CHIP("C7", 9316) - CHIP("C8", 9316) - CHIP_555_Mono(C9, &c9_555_desc) - - CHIP("D2", 7432) - CHIP("D3", 7474) - CHIP("D4", 9316) - CHIP("D5", 7474) - CHIP("D6", 7408) - CHIP("D7", 7411) - CHIP("D8", 7400) -// CHIP("D9", 4016) //quad bilateral switch - - CHIP("E1", 7404) - CHIP("E2", 7486) - CHIP("E3", 7402) - CHIP("E4", 7432) - CHIP("E5", 7408) - CHIP("E6", 7474) - CHIP("E7", 7402) - CHIP("E8", 7474) - CHIP("E9", 7404) - - CHIP("F1", 9316) - CHIP("F2", 7411) - CHIP_9602_Mono(F3, &f3_desc) - CHIP("F4", 7474) - CHIP("F5", 7474) - CHIP("F6", 74193) - CHIP("F7", 74279) - CHIP("F8", 7474) - CHIP("F9", 7404) - - CHIP("H1", 7437) - CHIP("H2", 7408) - CHIP("H3", 7427) - CHIP("H4", 7400) - CHIP("H5", 9312) - CHIP("H6", 9310) - CHIP("H7", 7408) //sometimes looks like N7 on schematic - CHIP("H8", 7474) - CHIP("H9", 7474) - - CHIP("J1", 74175) - CHIP("J2", 7404) - CHIP("J3", 7402) - CHIP("J4", 9312) - CHIP("J5", 7448) - CHIP("J6", 9310) - CHIP("J7", 7420) - CHIP("J8", 74279) - CHIP("J9", 7410) - - CHIP("K1", 9316) - CHIP("K2", 7486) - CHIP("K3", 7430) - CHIP("K4", 7408) - CHIP("K5", 9312) - CHIP("K6", 9310) - CHIP("K7", 7486) - CHIP("K8", 7474) //TODO: one more than bom? - CHIP("K9", 74107) - - CHIP("L1", 9316) - CHIP("L2", 7486) - CHIP("L3", 82S16) //RAM - CHIP("L4", 7411) - CHIP("L5", 9312) - CHIP("L6", 9310) - CHIP("L7", 7486) - CHIP("L8", 74193) - CHIP("L9", 7400) //TODO: 1 more chip than on bom? - - CHIP("M1", 9316) - CHIP("M2", 7483) - CHIP("M3", 7486) - CHIP("M4", 7410) - CHIP("M5", 9312) - CHIP("M6", 9310) - CHIP("M8", 7427) - CHIP("M9", 7404) - - CHIP("N1", 9316) - CHIP("N2", 7483) - CHIP("N3", 7486) - CHIP("N4", 7411) - CHIP("N5", 9312) - CHIP("N6", 9310) - CHIP("N7", 7408) //sometimes looks like H7 on schematic - CHIP_9602_Mono(N8, &n8_desc) - CHIP("N9", 74192) - - //LM380 //speaker amplifier - //LM323 //regulator - -// CHIP("CREDIT_LIGHT1", LAMP) -// CHIP("CREDIT_LIGHT2", LAMP) -// CHIP("SERVE_LIGHT", LAMP) - - CHIP("PAD1", PADDLE1_HORIZONTAL_INPUT, &pad1_desc) - PADDLE_CONNECTION("PAD1", "C9") - - CHIP_LATCH(LATCH) - CHIP("COIN1", COIN_INPUT) - - //CHIP("COIN2", COIN_INPUT) - - CHIP("START", START_INPUT) - - CHIP("SERVE", BUTTONS1_INPUT) - - //TODO: coin2 and start 2 - - VIDEO(breakout) - AUDIO(breakout) - -#ifdef DEBUG - CHIP("LOG1", VCD_LOG, &vcd_log_desc) -#endif - - //HSYNC and VSYNC - #define H1_d "L1", 14 - #define H2_d "L1", 13 - #define H4_d "L1", 12 - #define H8_d "L1", 11 - #define H8_n "J2", 2 - #define H16_d "K1", 14 - #define H16_n "J2", 6 - #define H32_d "K1", 13 - #define H32_n "J2", 4 - #define H64_d "K1", 12 - #define H128_d "K1", 11 - - #define V1_d "M1", 14 - #define V2_d "M1", 13 - #define V4_d "M1", 12 - #define V8_d "M1", 11 - #define V16_d "N1", 14 - #define V16_n "J2", 10 - #define V32_d "N1", 13 - #define V64_d "N1", 12 - #define V64I "H7", 11 - #define V64_n "M9", 10 - #define V128_d "N1", 11 - - #define H1 "L2", 8 - #define H2 "L2", 11 - #define H4 "L2", 3 - #define H8 "L2", 6 - #define H16 "K2", 8 - #define H32 "K2", 11 - #define H64 "K2", 3 - #define H128 "K2", 6 - - //#define V1 - #define V2 "M3", 3 - #define V4 "M3", 6 - #define V8 "M3", 11 - #define V16 "N3", 8 - #define V32 "N3", 3 - #define V64 "N3", 6 - #define V128 "N3", 11 - - #define HSYNC "J1", 2 - #define HSYNC_n "J1", 3 - #define VSYNC "J1", 7 - #define VSYNC_n "J1", 6 - #define PSYNC "J1", 11 - #define PSYNC_n "J1", 10 - #define BSYNC "J1", 15 - #define BSYNC_n "J1", 14 - - #define BALL "D7", 6 - #define BALL_DISPLAY "A4", 6 - #define PLAYFIELD "H4", 3 - #define SCORE "D3", 5 - #define VERT_TRIG_n "H1", 8 - - #define CLOCK "H1", 11 - #define SCLOCK "K1", 15 - #define CKBH "F1", 13 - - #define PAD_n "K3", 8 - #define PAD_EN_n "C2", 8 - - //#define P VCC - #define P "V5", Q - - #define COIN "L9", 6 - #define COIN1_n "F8", 5 - #define COIN2_n "H9", 5 - #define CREDIT_1_OR_2 "L9", 3 - #define CREDIT_1_OR_2_n "F9", 8 - #define CREDIT2 "F9", 6 - #define CREDIT2_n "M8", 8 - #define CR_START1 "E8", 5 - #define CR_START1_n "E8", 6 //Schematic shows E8.6 as positive CR_START1, but this can't be right? - #define CR_START2 "E8", 9 - #define CR_START2_n "E8", 8 - #define CSW1 "F9", 12 - #define CSW2 "F9", 2 - - #define P2_CONDITIONAL "H1", 3 - #define P2_CONDITIONAL_dash "H7", 8 - #define PLAYER_2 "B4", 14 - #define PLAYER_2_n "M9", 8 - - #define START_GAME "D8", 6 - #define START_GAME1_n "M9", 4 - #define START_GAME_n "M9", 6 - - #define BG1_n "K8", 9 - #define BG1 "K8", 8 - #define BG2_n "K8", 5 - #define BG2 "K8", 6 - - #define FREE_GAME_TONE "N7", 3 - #define BONUS_COIN "L9", 11 - - //#define Q "E9", 6 - #define LAT_Q "E9", 6 - #define Q_n "LATCH", 3 - #define SBD_n "D2", 11 - - #define PLAY_CP "D2", 8 - #define PLGM2_n "F7", 7 - #define VB_HIT_n "A5", 6 - - #define SERVE_n "SERVE", 1 - #define SERVE_WAIT "A3", 9 - #define SERVE_WAIT_n "A3", 8 - - #define BRICK_DISPLAY "E3", 1 - #define BRICK_HIT "E6", 5 - #define BRICK_HIT_n "E6", 6 - - //#define EGL "A4", 3 - #define EGL "C37" , 2 - #define EGL_n "C5", 2 - - #define RAM_PLAYER1 "E7", 4 - #define A1 "H6", 14 - #define B1 "H6", 13 - #define C1 "H6", 12 - #define D1 "H6", 11 - #define E1 "J6", 14 - #define F1 "J6", 13 - #define G1 "J6", 12 - #define H01 "J6", 11 - #define I1 "K6", 14 - #define J1 "K6", 13 - #define K1 "K6", 12 - #define L1 "K6", 11 - #define A2 "N6", 14 - #define B2 "N6", 13 - #define C2 "N6", 12 - #define D2 "N6", 11 - #define E2 "M6", 14 - #define F2 "M6", 13 - #define G2 "M6", 12 - #define H02 "M6", 11 //TODO: better name for these signals - #define I2 "L6", 14 - #define J2 "L6", 13 - #define K2 "L6", 12 - #define L2 "L6", 11 - - #define CX0 "C6", 11 - #define CX1 "C6", 6 - #define X0 "C5", 10 - #define X1 "B6", 3 - #define X2 "C6", 3 - #define Y0 "B6", 11 - #define Y1 "B6", 6 - #define Y2 "A6", 6 - #define DN "C4", 3 - #define PC "D4", 12 - #define PD "D4", 11 - #define SU_n "D5", 8 - #define V_SLOW "C5", 8 - - #define PLNR "E3", 4 - #define SCI_n "H4", 6 - #define SFL_n "E9", 12 //score flash - #define TOP_n "E9", 2 - - #define BP_HIT_n "A5", 8 - #define BTB_HIT_n "C3", 3 - - #define SET_BRICKS "D3", 9 - #define SET_BRICKS_n "D3", 8 - - #define BALL_A "B4", 13 - #define BALL_B "B4", 12 - #define BALL_C "B4", 11 - - #define FPD1 "F3", 10 - #define FPD1_n "F3", 9 - #define FPD2 "F3", 6 - #define FPD2_n "F3", 7 - - #define COUNT "N7", 11 - #define COUNT_1 "N7", 8 - #define COUNT_2 "N7", 6 - - #define ATTRACT "E6", 8 - #define ATTRACT_n "E6", 9 - - #define BRICK_SOUND "B8", 14 - #define P_HIT_SOUND "B7", 12 - #define VB_HIT_SOUND "B7", 11 - - #define LH_SIDE "J3", 13 - #define RH_SIDE "H2", 3 - #define TOP_BOUND "K4", 6 - -// CONNECTION(CREDIT_1_OR_2, "CREDIT_LIGHT1", 1) -// CONNECTION(CREDIT2, "CREDIT_LIGHT2", 1) -// CONNECTION(SERVE_WAIT_n, "SERVE_LIGHT", 1) - - //Audio - CONNECTION("M9", 2, "F6", 5) - CONNECTION("M9", 2, "F7", 15) - CONNECTION("F6", 13, "F7", 14) - CONNECTION(START_GAME_n, "F6", 11) - CONNECTION(P, "F6", 15) - CONNECTION(P, "F6", 1) - CONNECTION(P, "F6", 10) - CONNECTION(P, "F6", 9) - CONNECTION(GND, "F6", 14) - CONNECTION("F7", 13, "J9", 2) - CONNECTION(VSYNC, "J9", 1) - CONNECTION("A7", 9, "J9", 13) - CONNECTION("J9", 12, "F6", 4) - CONNECTION("J9", 12, "A7", 11) - CONNECTION(GND, "A7", 12) - CONNECTION(ATTRACT_n, "A7", 13) - CONNECTION("J9", 12, "A8", 11) - CONNECTION(GND, "A8", 12) - CONNECTION(ATTRACT_n, "A8", 13) - CONNECTION(VB_HIT_n, "A7", 5) - CONNECTION(GND, "A7", 4) - CONNECTION(ATTRACT_n, "A7", 3) - CONNECTION(BP_HIT_n, "A8", 5) - CONNECTION(GND, "A8", 4) - CONNECTION(ATTRACT_n, "A8", 3) - CONNECTION("A8", 6, "B9", 13) - CONNECTION(P_HIT_SOUND, "B9", 12) - CONNECTION("A8", 10, "B9", 10) - CONNECTION(BRICK_SOUND, "B9", 9) - CONNECTION("A7", 6, "B9", 4) - CONNECTION(VB_HIT_SOUND, "B9", 5) - - CONNECTION(GND, "S1", 1) - CONNECTION(P, "S1", 2) - CONNECTION(GND, "S1", 4) - CONNECTION(P, "S1", 3) - CONNECTION(GND, "S1", 12) - CONNECTION(P, "S1", 11) - CONNECTION(GND, "S1", 9) - CONNECTION(P, "S1", 10) - - //Free Game Selector - CONNECTION(I1, "K7", 2) - CONNECTION("S1", 15, "K7", 1) - CONNECTION(J1, "K7", 12) - CONNECTION("S1", 14, "K7", 13) - CONNECTION(K1, "K7", 5) - CONNECTION("S1", 6, "K7", 4) - CONNECTION(L1, "K7", 9) - CONNECTION("S1", 7, "K7", 10) - - CONNECTION(I2, "L7", 2) - CONNECTION("S1", 15, "L7", 1) - CONNECTION(J2, "L7", 12) - CONNECTION("S1", 14, "L7", 13) - CONNECTION(K2, "L7", 5) - CONNECTION("S1", 6, "L7", 4) - CONNECTION(L2, "L7", 9) - CONNECTION("S1", 7, "L7", 10) - - - CONNECTION("K7", 3, "J7", 13) - CONNECTION("K7", 11, "J7", 12) - CONNECTION("K7", 6, "J7", 10) - CONNECTION("K7", 8, "J7", 9) - - CONNECTION("L7", 3, "J7", 1) - CONNECTION("L7", 11, "J7", 2) - CONNECTION("L7", 6, "J7", 4) - CONNECTION("L7", 8, "J7", 5) - - CONNECTION(START_GAME1_n, "J8", 12) - CONNECTION(BG1_n, "J8", 11) - CONNECTION("J7", 8, "J8", 10) - - CONNECTION(START_GAME1_n, "J8", 2) - CONNECTION(BG2_n, "J8", 3) - CONNECTION("J7", 6, "J8", 1) - - CONNECTION("J8", 9, "K8", 12) - CONNECTION(EGL, "K8", 11) - CONNECTION(P, "K8", 13) - CONNECTION(LAT_Q, "K8", 10) - - CONNECTION("J8", 4, "K8", 2) - CONNECTION(EGL, "K8", 3) - CONNECTION(P, "K8", 1) - CONNECTION(LAT_Q, "K8", 4) - - CONNECTION(P, "K9", 8) - CONNECTION("J8", 9, "K9", 9) - CONNECTION(GND, "K9", 11) - CONNECTION(HSYNC_n, "K9", 10) - - CONNECTION(P, "K9", 1) - CONNECTION("J8", 4, "K9", 12) - CONNECTION(GND, "K9", 4) - CONNECTION(HSYNC_n, "K9", 13) - - CONNECTION("K9", 6, "L9", 12) - CONNECTION("K9", 2, "L9", 13) - - CONNECTION(P, "N8", 5) - CONNECTION(BONUS_COIN, "N8", 4) - CONNECTION(ATTRACT_n, "N8", 3) - - CONNECTION(V4_d, "N7", 2) - CONNECTION("N8", 6, "N7", 1) - // - CONNECTION(GND, "M2", 13) - CONNECTION(V1_d, "M2", 10) - CONNECTION(V2_d, "M2", 8) - CONNECTION(V4_d, "M2", 3) - CONNECTION(V8_d, "M2", 1) - CONNECTION(GND, "M2", 11) - CONNECTION(P2_CONDITIONAL, "M2", 7) - CONNECTION(GND, "M2", 4) - CONNECTION(GND, "M2", 16) - - CONNECTION("M2", 14, "N2", 13) - CONNECTION(V16_d, "N2", 10) - CONNECTION(V32_d, "N2", 8) - CONNECTION(V64_d, "N2", 3) - CONNECTION(V128_d, "N2", 1) - CONNECTION(GND, "N2", 11) - CONNECTION(P2_CONDITIONAL, "N2", 7) - CONNECTION(GND, "N2", 4) - CONNECTION(GND, "N2", 16) - - CONNECTION("M2", 6, "M3", 2) - CONNECTION(P2_CONDITIONAL, "M3", 1) - CONNECTION("M2", 2, "M3", 5) - CONNECTION(P2_CONDITIONAL, "M3", 4) - CONNECTION("M2", 15, "M3", 12) - CONNECTION(P2_CONDITIONAL, "M3", 13) - - CONNECTION(P2_CONDITIONAL, "N3", 10) - CONNECTION("N2", 9, "N3", 9) - CONNECTION(P2_CONDITIONAL, "N3", 1) - CONNECTION("N2", 6, "N3", 2) - CONNECTION(P2_CONDITIONAL, "N3", 4) - CONNECTION("N2", 2, "N3", 5) - CONNECTION(P2_CONDITIONAL, "N3", 13) - CONNECTION("N2", 15, "N3", 12) - - CONNECTION(H1_d, "L2", 9) - CONNECTION(P2_CONDITIONAL, "L2", 10) - CONNECTION(H2_d, "L2", 12) - CONNECTION(P2_CONDITIONAL, "L2", 13) - CONNECTION(H4_d, "L2", 2) - CONNECTION(P2_CONDITIONAL, "L2", 1) - CONNECTION(H8_d, "L2", 5) - CONNECTION(P2_CONDITIONAL, "L2", 4) - - CONNECTION(P2_CONDITIONAL, "K2", 10) - CONNECTION(H16_d, "K2", 9) - CONNECTION(P2_CONDITIONAL, "K2", 13) - CONNECTION(H32_d, "K2", 12) - CONNECTION(P2_CONDITIONAL, "K2", 1) - CONNECTION(H64_d, "K2", 2) - CONNECTION(P2_CONDITIONAL, "K2", 4) - CONNECTION(H128_d, "K2", 5) - - - CONNECTION(V64, "M9", 11) - CONNECTION(H16, "J2", 5) - CONNECTION(H32, "J2", 3) - CONNECTION(V16, "J2", 11) - CONNECTION(H8, "J2", 1) - - CONNECTION(CLOCK, "J1", 9) - CONNECTION(SCLOCK, "J1", 4) - CONNECTION("N4", 6, "J1", 5) - CONNECTION(PAD_n, "J1", 12) - CONNECTION(BALL_DISPLAY, "J1", 13) - CONNECTION(P, "J1", 1) - - CONNECTION(P, "K1", 1) - CONNECTION(P, "K1", 3) - CONNECTION(P, "K1", 4) - CONNECTION(P, "K1", 5) - CONNECTION(P, "K1", 6) - CONNECTION(P, "K1", 9) - CONNECTION(P, "K1", 10) - CONNECTION(CLOCK, "K1", 2) - CONNECTION("L1", 15, "K1", 7) - - CONNECTION(P, "L1", 1) - CONNECTION(P, "L1", 3) - CONNECTION(GND, "L1", 4) - CONNECTION(P, "L1", 5) - CONNECTION(GND, "L1", 6) - CONNECTION(VERT_TRIG_n, "L1", 9) - CONNECTION(P, "L1", 10) - CONNECTION(CLOCK, "L1", 2) - CONNECTION(P, "L1", 7) - - CONNECTION(P, "N1", 1) - CONNECTION(P, "N1", 10) - CONNECTION(P, "N1", 3) - CONNECTION(P, "N1", 4) - CONNECTION(P, "N1", 5) - CONNECTION(P, "N1", 6) - CONNECTION(P, "N1", 9) - CONNECTION(CLOCK, "N1", 2) - CONNECTION("H2", 6, "N1", 7) - - CONNECTION("M1", 15, "H2", 5) - CONNECTION("L1", 15, "H2", 4) - - CONNECTION(V128_d, "N4", 5) - CONNECTION(V64_d, "N4", 3) - CONNECTION(V32_d, "N4", 4) - CONNECTION("N4", 6, "H1", 10) - CONNECTION(VSYNC_n, "H1", 9) - - CONNECTION(P, "M1", 1) - CONNECTION(GND, "M1", 3) - CONNECTION(GND, "M1", 4) - CONNECTION(P, "M1", 5) - CONNECTION(GND, "M1", 6) - CONNECTION(VERT_TRIG_n, "M1", 9) - CONNECTION(CLOCK, "M1", 2) - CONNECTION("L1", 15, "M1", 7) - CONNECTION("K1", 15, "M1", 10) - - - //9312 circuit - CONNECTION(PLAYER_2, "M9", 9) - CONNECTION(BALL_A, "C5", 5) - CONNECTION(BALL_A, "C4", 13) - CONNECTION(BALL_B, "C4", 12) - CONNECTION(BALL_A, "A4", 13) - CONNECTION(BALL_B, "A4", 12) - CONNECTION(BALL_C, "C4", 10) - CONNECTION("A4", 11, "C4", 9) - - CONNECTION(A2, "N5", 1) - CONNECTION(E2, "N5", 2) - CONNECTION(I2, "N5", 3) - CONNECTION("C5", 6, "N5", 4) - CONNECTION(A1, "N5", 5) - CONNECTION(E1, "N5", 6) - CONNECTION(I1, "N5", 7) - CONNECTION(PLAYER_2_n, "N5", 9) - CONNECTION(H32_n, "N5", 10) - CONNECTION(V16, "N5", 11) - CONNECTION(V64, "N5", 12) - CONNECTION(V128, "N5", 13) - - CONNECTION(B2, "M5", 1) - CONNECTION(F2, "M5", 2) - CONNECTION(J2, "M5", 3) - CONNECTION("C4", 11, "M5", 4) - CONNECTION(B1, "M5", 5) - CONNECTION(F1, "M5", 6) - CONNECTION(J1, "M5", 7) - CONNECTION(PLAYER_2, "M5", 9) - CONNECTION(H32_n, "M5", 10) - CONNECTION(V16, "M5", 11) - CONNECTION(V64, "M5", 12) - CONNECTION(V128, "M5", 13) - - CONNECTION(C2, "L5", 1) - CONNECTION(G2, "L5", 2) - CONNECTION(K2, "L5", 3) - CONNECTION("C4", 8, "L5", 4) - CONNECTION(C1, "L5", 5) - CONNECTION(G1, "L5", 6) - CONNECTION(K1, "L5", 7) - CONNECTION(GND, "L5", 9) - CONNECTION(H32_n, "L5", 10) - CONNECTION(V16, "L5", 11) - CONNECTION(V64, "L5", 12) - CONNECTION(V128, "L5", 13) - - CONNECTION(D2, "K5", 1) - CONNECTION(H02, "K5", 2) - CONNECTION(L2, "K5", 3) - CONNECTION(GND, "K5", 4) - CONNECTION(D1, "K5", 5) - CONNECTION(H01, "K5", 6) - CONNECTION(L1, "K5", 7) - CONNECTION(GND, "K5", 9) - CONNECTION(H32_n, "K5", 10) - CONNECTION(V16, "K5", 11) - CONNECTION(V64, "K5", 12) - CONNECTION(V128, "K5", 13) - - CONNECTION(P, "J5", 4) - CONNECTION(P, "J5", 3) - CONNECTION("N5", 15, "J5", 7) - CONNECTION("M5", 15, "J5", 1) - CONNECTION("L5", 15, "J5", 2) - CONNECTION("K5", 15, "J5", 6) - CONNECTION(H32, "J5", 5) - - CONNECTION("J5", 13, "H5", 1) - CONNECTION(GND, "H5", 2) - CONNECTION(GND, "H5", 3) - CONNECTION("J5", 14, "H5", 4) - CONNECTION(GND, "H5", 5) - CONNECTION(GND, "H5", 6) - CONNECTION("J5", 10, "H5", 7) - CONNECTION(GND, "H5", 9) - - CONNECTION(V4, "K4", 12) - CONNECTION(V8, "K4", 13) - - CONNECTION("K4", 11, "H5", 10) - CONNECTION(H2, "H5", 11) - CONNECTION(H4, "H5", 12) - CONNECTION(H8, "H5", 13) - - CONNECTION(H2, "L4", 3) - CONNECTION(H4, "L4", 5) - CONNECTION(H8, "L4", 4) - - CONNECTION("J5", 12 , "J4", 1) - CONNECTION("J5", 11, "J4", 2) - CONNECTION(GND, "J4", 3) - CONNECTION(GND, "J4", 4) - CONNECTION("J5", 15, "J4", 5) - CONNECTION("J5", 9, "J4", 6) - CONNECTION(GND, "J4", 7) - CONNECTION(GND, "J4", 9) - CONNECTION("L4", 6, "J4", 10) - CONNECTION(H8, "J4", 11) - CONNECTION(V4, "J4", 12) - CONNECTION(V8, "J4", 13) - - CONNECTION("H5", 14, "H4", 13) - CONNECTION("J4", 14, "H4", 12) - - //PADDLES - CONNECTION(ATTRACT_n, "B2", 4) - - CONNECTION("B2", 3, "E9", 13) - CONNECTION(PLAYER_2_n, "M3", 9) - CONNECTION(V128, "M3", 10) - CONNECTION(H64, "J3", 8) - CONNECTION(H128, "J3", 9) - CONNECTION(V32, "E3", 5) - CONNECTION(V16_n, "E3", 6) - - CONNECTION(SFL_n, "M8", 1) - CONNECTION("M3", 8, "M8", 2) - CONNECTION(PLNR, "M8", 13) - CONNECTION("J3", 10, "E9", 1) - CONNECTION(V64, "E2", 5) - CONNECTION(V32, "E2", 4) - CONNECTION(PLNR, "E2", 10) - CONNECTION(H16, "E2", 9) - - CONNECTION("M8", 12, "M8", 3) - CONNECTION(TOP_n, "M8", 4) - CONNECTION(TOP_n, "M8", 5) - CONNECTION("H4", 11, "F2", 11) - CONNECTION("E2", 6, "F2", 10) - CONNECTION("E2", 8, "F2", 9) - - CONNECTION("M8", 6, "H4", 5) - CONNECTION("F2", 8, "H4", 4) - - CONNECTION(PAD_EN_n, "PAD_EN_BUF", 1) - - CONNECTION("PAD_EN_BUF", 2, "C9", 4) - CONNECTION("PAD_EN_BUF", 2, "C9", 2) - CONNECTION(BTB_HIT_n, "C5", 3) - CONNECTION(P, "F5", 10) - CONNECTION(P, "F5", 12) - CONNECTION("C5", 4, "F5", 11) - CONNECTION(SERVE_WAIT_n, "F5", 13) - CONNECTION(H64, "E5", 13) - CONNECTION("F5", 9, "E5", 12) - CONNECTION(H128, "E5", 10) - CONNECTION("F5", 8, "E5", 9) - CONNECTION("E5", 11, "E4", 12) - CONNECTION("E5", 8, "E4", 13) - CONNECTION("E4", 11, "D4", 2) - CONNECTION(P, "D4", 3) - CONNECTION(P, "D4", 4) - CONNECTION(P, "D4", 5) - CONNECTION(P, "D4", 6) - CONNECTION(P, "D4", 9) - CONNECTION(P, "D4", 10) - CONNECTION("C3", 11, "D4", 7) - CONNECTION(VSYNC_n, "D4", 1) - - CONNECTION("D4", 15, "E4", 10) - CONNECTION("H7", 6, "E4", 9) - CONNECTION("C9", 3, "H7", 5) - CONNECTION(PAD_EN_n, "H7", 4) - CONNECTION("E4", 8, "C3", 12) - CONNECTION(ATTRACT_n, "C3", 13) - CONNECTION(H8, "J3", 2) - CONNECTION(H32, "J3", 3) - - CONNECTION("C3", 11, "K3", 12) - CONNECTION(H128, "K3", 5) - CONNECTION(H64, "K3", 6) - CONNECTION(H16, "K3", 11) - CONNECTION(H4, "K3", 4) - CONNECTION("J3", 1, "K3", 1) - CONNECTION(P, "K3", 3) - CONNECTION(P, "K3", 2) - - CONNECTION(V16_d, "D7", 1) - CONNECTION(V64_d, "D7", 13) - CONNECTION(V128_d, "D7", 2) - CONNECTION("D7", 12, "H1", 4) - CONNECTION(V8_d, "H1", 5) - CONNECTION("H1", 6, "C2", 4) - CONNECTION("H1", 6, "C2", 5) - CONNECTION(V32_d, "J2", 9) - CONNECTION("J2", 8, "C2", 10) - CONNECTION("C2", 6, "C2", 9) - - - //SCORE - CONNECTION(SCI_n, "D3", 4) - CONNECTION(GND, "D3", 2) - CONNECTION(GND, "D3", 3) - CONNECTION(GND, "D3", 1) - - //PLAYER2_CONDITIONAL - CONNECTION(PLAYER_2, "H7", 10) - CONNECTION(GND, "S2", 1) - CONNECTION(P, "S2", 2) - CONNECTION("S2", 3, "H7", 9) - - //A-L 1 and 2 - CONNECTION(SET_BRICKS_n, "B3", 2) - CONNECTION(H2, "B3", 3) - CONNECTION("B3", 1, "E7", 6) - CONNECTION(PLAYER_2, "E7", 5) - CONNECTION(P, "N6", 9) - CONNECTION(P, "M6", 9) - CONNECTION(P, "L6", 9) - CONNECTION(P, "H6", 9) - CONNECTION(P, "J6", 9) - CONNECTION(P, "K6", 9) - - CONNECTION(P, "N6", 10) - CONNECTION(PLAYER_2, "N6", 7) - CONNECTION(COUNT_2, "N6", 2) - CONNECTION(START_GAME_n, "N6", 1) - - CONNECTION("N6", 15, "M6", 10) - CONNECTION(PLAYER_2, "M6", 7) - CONNECTION(COUNT_2, "M6", 2) - CONNECTION(START_GAME_n, "M6", 1) - - CONNECTION("M6", 15, "L6", 10) - CONNECTION(PLAYER_2, "L6", 7) - CONNECTION(COUNT_2, "L6", 2) - CONNECTION(START_GAME_n, "L6", 1) - - CONNECTION(P, "H6", 10) - CONNECTION(RAM_PLAYER1, "H6", 7) - CONNECTION(COUNT_1, "H6", 2) - CONNECTION(START_GAME_n, "H6", 1) - - CONNECTION("H6", 15, "J6", 10) - CONNECTION(RAM_PLAYER1, "J6", 7) - CONNECTION(COUNT_1, "J6", 2) - CONNECTION(START_GAME_n, "J6", 1) - - CONNECTION("J6", 15, "K6", 10) - CONNECTION(RAM_PLAYER1, "K6", 7) - CONNECTION(COUNT_1, "K6", 2) - CONNECTION(START_GAME_n, "K6", 1) - - - //CX0 and CX1 - CONNECTION(BRICK_HIT, "H2", 9) - CONNECTION(H16_n, "H2", 10) - CONNECTION(P, "D5", 10) - CONNECTION(P, "D5", 12) - CONNECTION("H2", 8, "D5", 11) - CONNECTION(SERVE_WAIT_n, "D5", 13) - CONNECTION(X0, "C6", 13) - CONNECTION("D5", 9, "C6", 12) - CONNECTION("D5", 9, "D6", 12) - CONNECTION(DN, "D6", 13) - CONNECTION("D6", 11, "C6", 4) - CONNECTION(X1, "C6", 5) - - //COUNT1 and COUNT2 - CONNECTION(P, "N8", 11) - CONNECTION(BRICK_HIT, "N8", 12) - CONNECTION(ATTRACT_n, "N8", 13) - CONNECTION("N8", 9, "N9", 11) - CONNECTION(P, "N9", 15) - CONNECTION(P, "N9", 5) - - CONNECTION(COUNT, "N9", 4) - CONNECTION(START_GAME, "N9", 14) - CONNECTION(H8_n, "N9", 1) - CONNECTION(H16_n, "N9", 10) - CONNECTION(GND, "N9", 9) - - CONNECTION("N9", 13, "N7", 13) - CONNECTION(SCLOCK, "N7", 12) - - CONNECTION(PLAYER_2, "N7", 5) - CONNECTION(COUNT, "N7", 4) - - CONNECTION(COUNT, "M9", 1) - CONNECTION(COUNT, "N7", 10) - CONNECTION(RAM_PLAYER1, "N7", 9) - - - //Ball Logic - CONNECTION(P, "C7", 1) - CONNECTION(P, "C7", 10) - CONNECTION(P, "C7", 7) - CONNECTION(CX0, "C7", 3) - CONNECTION(CX1, "C7", 4) - CONNECTION(X2, "C7", 5) - CONNECTION(GND, "C7", 6) - CONNECTION("D8", 8, "C7", 9) - CONNECTION("C7", 15, "C8", 7) - CONNECTION("C7", 11, "C8", 10) - CONNECTION("C7", 12, "D7", 10) - CONNECTION("C7", 13, "D7", 11) - CONNECTION(CLOCK, "C7", 2) - - CONNECTION(P, "C8", 1) - CONNECTION(P, "C8", 3) - CONNECTION(P, "C8", 4) - CONNECTION(P, "C8", 5) - CONNECTION(P, "C8", 6) - CONNECTION(P, "C8", 9) - CONNECTION(CLOCK, "C8", 2) - CONNECTION("C8", 15, "B7", 7) - CONNECTION("C7", 15, "B7", 10) - - CONNECTION(P, "B7", 1) - CONNECTION(Y0, "B7", 3) - CONNECTION(Y1, "B7", 4) - CONNECTION(Y2, "B7", 5) - CONNECTION(GND, "B7", 6) - CONNECTION("D8", 8, "B7", 9) - CONNECTION(CLOCK, "B7", 2) - CONNECTION("B7", 15, "B8", 7) - - CONNECTION(VB_HIT_SOUND, "D7", 9) - - CONNECTION(P, "B8", 1) - CONNECTION(P, "B8", 3) - CONNECTION(P, "B8", 4) - CONNECTION(P, "B8", 5) - CONNECTION(P, "B8", 6) - CONNECTION(P, "B8", 9) - CONNECTION("C8", 15, "B8", 10) - CONNECTION(CLOCK, "B8", 2) - - CONNECTION("B8", 15, "D8", 10) - CONNECTION("B7", 15, "D8", 9) - - CONNECTION("D7", 8, "D7", 5) - CONNECTION(P_HIT_SOUND, "D7", 4) - CONNECTION("B8", 15, "D7", 3) - - //Clock Generator - CONNECTION(CKBH, "H1", 12) - CONNECTION("F1", 14, "H1", 13) - CONNECTION("F1", 15, "E1", 5) - - CONNECTION(P, "F1", 1) - CONNECTION(P, "F1", 7) - CONNECTION(P, "F1", 10) - CONNECTION(GND, "F1", 3) - CONNECTION(P, "F1", 4) - CONNECTION(GND, "F1", 5) - CONNECTION(GND, "F1", 6) - CONNECTION("E1", 6, "F1", 9) - CONNECTION("Y1", 1, "F1", 2) - - // RH and LH Sides - CONNECTION(V128, "N4", 1) - CONNECTION(V64, "N4", 2) - CONNECTION(V16, "N4", 13) - CONNECTION("N4", 12, "N4", 11) - CONNECTION(V8, "N4", 10) - CONNECTION(V4, "N4", 9) - CONNECTION("N4", 8, "H2", 2) - CONNECTION(V32, "H2", 1) - CONNECTION("N4", 8, "J2", 13) - CONNECTION("J2", 12, "J3", 11) - CONNECTION(V32, "J3", 12) - - // Top Bound - CONNECTION(H128, "H3", 4) - CONNECTION(H64, "H3", 5) - CONNECTION(H32, "H3", 3) - CONNECTION("H3", 6, "L4", 9) - CONNECTION(H16, "L4", 10) - CONNECTION(H8, "L4", 11) - CONNECTION("L4", 8, "K4", 5) - CONNECTION(VSYNC_n, "K4", 4) - - //Cabinet type - - // Coin Circuit - CONNECTION("COIN1", 1, "F9", 13) - - CONNECTION(CSW1, "F9", 11) - //CONNECTION("F9", 10, "F9", 13) //TODO: causes lots of bouncing, commented out since this trace is not implemented in gotcha - - CONNECTION(V64, "H7", 12) - CONNECTION(V64, "H7", 13) - - CONNECTION(CSW1, "F8", 10) - CONNECTION("F9", 10, "F8", 12) - CONNECTION(V64I, "F8", 11) - CONNECTION(P, "F8", 13) - CONNECTION(P, "F8", 1) - CONNECTION(V64I, "F8", 3) - CONNECTION("F8", 9, "F8", 2) - CONNECTION(CSW1, "F8", 4) - - CONNECTION("F8", 6, "H8", 12) - CONNECTION(P, "H8", 10) - CONNECTION(V16_d, "H8", 11) - CONNECTION(P, "H8", 13) - CONNECTION("H8", 9, "J8", 15) - CONNECTION("H8", 9, "J9", 9) - CONNECTION(V16_d, "J8", 14) - CONNECTION("J8", 13, "J9", 10) - CONNECTION(P, "S3", 1) - CONNECTION(V4_d, "S3", 2) - CONNECTION("S3", 3, "J9", 11) - - CONNECTION("J9", 8, "L9", 5) - CONNECTION("J9", 6, "L9", 4) - - //COIN2 circuit - //CONNECTION("COIN2", 1, "F9", 1) - CONNECTION(GND, "F9", 1) //TODO: coin2 not implemented - - CONNECTION(CSW2, "F9", 3) - CONNECTION(CSW2, "H9", 10) - CONNECTION("F9", 4, "H9", 12) - CONNECTION(V64_n, "H9", 11) - CONNECTION(V64_n, "H9", 3) - CONNECTION(P, "H9", 13) - CONNECTION("H9", 9, "H9", 2) - CONNECTION(CSW2, "H9", 4) - CONNECTION(P, "H9", 1) - - CONNECTION(P, "H8", 4) - CONNECTION("H9", 6, "H8", 2) - CONNECTION(V16_d, "H8", 3) - CONNECTION(P, "H8", 1) - CONNECTION("H8", 5, "J8", 6) - CONNECTION(V16_d, "J8", 5) - CONNECTION(P, "J9", 3) - CONNECTION("H8", 5, "J9", 5) - CONNECTION("J8", 7, "J9", 4) - - CONNECTION(P2_CONDITIONAL_dash, "E9", 9) - CONNECTION("E9", 8, "H1", 1) - CONNECTION("E9", 8, "H1", 2) - - //Start2 Input - CONNECTION("START", 2, "E9", 11) - CONNECTION("E9", 10, "E8", 12) - CONNECTION(P, "E8", 10) - CONNECTION(V64I, "E8", 11) - - CONNECTION(V128_d, "F7", 2) - CONNECTION(V128_d, "F7", 3) - CONNECTION(CREDIT2_n, "F7", 1) - CONNECTION(ATTRACT_n, "E7", 12) - CONNECTION("F7", 4, "E7", 11) - CONNECTION("E7", 13, "E8", 13) - - //Start1 Input - CONNECTION("START", 1, "E9", 3) - CONNECTION("E9", 4, "E8", 2) - CONNECTION(P, "E8", 4) - CONNECTION(V64_d, "E8", 3) - - - CONNECTION(CREDIT_1_OR_2_n, "E7", 2) - CONNECTION(ATTRACT_n, "E7", 3) - CONNECTION("E7", 1, "E8", 1) - - CONNECTION(CR_START1_n, "D8", 4) // Schematic shows CR_START1 ? - CONNECTION(CR_START2_n, "D8", 5) - - - CONNECTION(START_GAME, "M9", 3) - CONNECTION(START_GAME, "M9", 5) - - CONNECTION(V32, "D6", 4) - CONNECTION(ATTRACT, "D6", 5) - CONNECTION(P, "E6", 10) - CONNECTION(START_GAME, "E6", 12) - CONNECTION("D6", 6, "E6", 11) - CONNECTION("D6", 3, "E6", 13) - - //TODO: hows this whole latch stuff work? what about Q_n going to COIN1_n and COIN2_n - CONNECTION(CREDIT_1_OR_2_n, "D8", 13) - CONNECTION(EGL, "D8", 12) - CONNECTION("LATCH", 1, "D8", 11) //set - CONNECTION("LATCH", 2, COIN1_n) //reset - //CONNECTION("LATCH", 3, COIN2_n) //set //TODO: coin2 here - CONNECTION( "LATCH", 3, "E9", 5) //output - - - CONNECTION(LAT_Q, "D6", 1) - CONNECTION(EGL_n, "D6", 2) - - //Serve - CONNECTION(H64, "J3", 6) - CONNECTION(H32, "J3", 5) - CONNECTION("J3", 4, "L4", 13) - CONNECTION(H128, "L4", 2) - CONNECTION(H16, "L4", 1) - - CONNECTION(BALL_DISPLAY, "H2", 13) - CONNECTION(H128, "H2", 12) - CONNECTION("H2", 11, "C3", 9) - CONNECTION(HSYNC, "C3", 10) - CONNECTION("C3", 8, "B3", 5) - CONNECTION(H8_d, "B3", 6) - CONNECTION("B3", 4, "C3", 4) - CONNECTION(H4, "C3", 5) - CONNECTION("C3", 6, "A4", 9) - CONNECTION(START_GAME1_n, "A4", 10) - - CONNECTION(SERVE_WAIT_n, "D2", 13) - - CONNECTION(SERVE_n, "D2", 12) - CONNECTION(SERVE_n, "A3", 4) - CONNECTION(P, "A3", 2) - CONNECTION(ATTRACT, "A3", 3) - CONNECTION(SERVE_WAIT, "A3", 1) - - CONNECTION(BALL, "E1", 13) - CONNECTION("E1", 12, "B3", 8) - CONNECTION("A3", 6, "B3", 9) - CONNECTION("B3", 10, "B3", 11) - CONNECTION(SERVE_WAIT_n, "B3", 12) - CONNECTION("B3", 13, "A3", 12) - CONNECTION("A4", 8, "A3", 10) - CONNECTION("L4", 12, "A3", 11) - CONNECTION(P, "A3", 13) - - //Set Bricks - CONNECTION(P, "D3", 10) - CONNECTION(P, "D3", 12) - CONNECTION(START_GAME, "D3", 11) - CONNECTION(SERVE_n, "D3", 13) - - //Playfield - CONNECTION(LH_SIDE, "H3", 1) - CONNECTION(TOP_BOUND, "H3", 13) - CONNECTION(RH_SIDE, "H3", 2) - CONNECTION("H3", 12, "H4", 2) - CONNECTION("E1", 2, "C36", 1) - CONNECTION("C36", 2, "H4", 1) - - CONNECTION(BALL_DISPLAY, "A5", 10) - CONNECTION(PSYNC, "A5", 9) - CONNECTION(BSYNC, "C3", 2) - CONNECTION(TOP_BOUND, "C3", 1) - - CONNECTION(PC, "C4", 4) - CONNECTION(PD, "C4", 5) - CONNECTION(BP_HIT_n, "C5", 13) - CONNECTION(PD, "A5", 1) - CONNECTION("C5", 12, "A5", 2) - CONNECTION(BSYNC, "A5", 5) - CONNECTION(VSYNC, "A5", 4) - - CONNECTION("C5", 12, "A5", 13) - CONNECTION("A5", 3, "A5", 12) - - CONNECTION(BRICK_HIT, "D5", 3) - CONNECTION("E5", 3, "D5", 1) - CONNECTION("D5", 6, "D5", 2) - CONNECTION(BP_HIT_n, "D5", 4) - - CONNECTION(P, "A6", 10) - CONNECTION("C4", 6, "A6", 12) - CONNECTION(BP_HIT_n, "A6", 11) - CONNECTION(P, "A6", 13) - - CONNECTION("A5", 3, "A6", 4) - CONNECTION(V16_d, "A6", 2) - CONNECTION(VB_HIT_n, "A6", 3) - CONNECTION("A5", 11, "A6", 1) - - CONNECTION(P2_CONDITIONAL, "C6", 1) - CONNECTION("D5", 5, "C6", 2) - CONNECTION("D5", 6, "C4", 2) - CONNECTION(P2_CONDITIONAL, "C4", 1) - - CONNECTION(V_SLOW, "B6", 12) - CONNECTION("A6", 8, "B6", 13) - CONNECTION(V_SLOW, "C6", 10) - CONNECTION("A6", 5, "C6", 9) - - CONNECTION(Y0, "B6", 4) - CONNECTION("C6", 8, "B6", 5) - - CONNECTION(X2, "D6", 10) - CONNECTION("B6", 8, "D6", 9) - CONNECTION("B5", 7, "B6", 9) - CONNECTION("B5", 6, "B6", 10) - CONNECTION(X0, "B6", 1) - CONNECTION(X2, "B6", 2) - - CONNECTION("B5", 6, "C5", 11) - CONNECTION("B5", 7, "C5", 9) - - CONNECTION(SU_n, "B5", 11) - CONNECTION(P, "B5", 15) - CONNECTION(P, "B5", 1) - CONNECTION(P, "B5", 10) - CONNECTION(P, "B5", 9) - CONNECTION(P, "B5", 4) - CONNECTION("D6", 8, "B5", 5) - CONNECTION(SERVE_WAIT, "B5", 14) - - CONNECTION(BTB_HIT_n, "E5", 1) - CONNECTION(SBD_n, "E5", 2) - - CONNECTION(BP_HIT_n, "E5", 4) - CONNECTION(BTB_HIT_n, "E5", 5) - CONNECTION("E5", 6, "F7", 11) - CONNECTION("E5", 6, "F7", 12) - CONNECTION(BRICK_HIT_n, "F7", 10) - CONNECTION("F7", 9, "C2", 2) - CONNECTION(BALL_DISPLAY, "C2", 1) - CONNECTION("L3", 6, "E3", 11) - CONNECTION("C2", 3, "E3", 12) - - CONNECTION(SET_BRICKS_n, "E6", 4) - CONNECTION("E3", 13, "E6", 2) - CONNECTION(CKBH, "E6", 3) - CONNECTION("E3", 13, "D2", 2) - CONNECTION(SET_BRICKS, "D2", 1) - CONNECTION("D2", 3, "E6", 1) - - CONNECTION(BRICK_DISPLAY, "E1", 1) - CONNECTION(H1, "K4", 9) - CONNECTION(H2, "K4", 10) - CONNECTION("K4", 8, "E3", 2) - CONNECTION("L3", 6, "E3", 3) - - CONNECTION(ATTRACT_n, "C2", 13) - CONNECTION(SET_BRICKS_n, "C2", 12) - CONNECTION("C2", 11, "H3", 10) - CONNECTION(FPD1, "H3", 9) - CONNECTION(FPD2, "H3", 11) - CONNECTION("H3", 8, "E1", 3) - CONNECTION("E1", 4, "C32", 1) - CONNECTION("C32", 2, "L3", 13) - CONNECTION(H4, "L3", 2) - CONNECTION(H8, "L3", 1) - CONNECTION(H16, "L3", 15) - CONNECTION(V32, "L3", 14) - CONNECTION(V64, "L3", 7) - CONNECTION(V128, "L3", 9) - CONNECTION(V16, "L3", 10) - CONNECTION(RAM_PLAYER1, "L3", 11) - CONNECTION(H32, "L3", 3) - CONNECTION(H128, "L3", 4) - CONNECTION("H4", 8, "L3", 5) - - CONNECTION(V2, "M4", 5) - CONNECTION(V4, "M4", 4) - CONNECTION(V8, "M4", 3) - CONNECTION("M4", 6, "H4", 9) - CONNECTION(VSYNC_n, "K4", 2) - CONNECTION(H64, "K4", 1) - CONNECTION("K4", 3, "H4", 10) - CONNECTION(FPD1_n, "F2", 13) - CONNECTION(BRICK_HIT_n, "F2", 2) - CONNECTION(FPD2_n, "F2", 1) - - CONNECTION("F2", 12, "L3", 12) - - //FPD circuits - CONNECTION(K2, "M4", 2) - CONNECTION(G2, "M4", 13) - CONNECTION(D2, "M4", 1) - CONNECTION(K1, "M4", 9) - CONNECTION(G1, "M4", 10) - CONNECTION(D1, "M4", 11) - CONNECTION(BP_HIT_n, "E4", 2) - CONNECTION("M4", 12, "E4", 1) - CONNECTION(BP_HIT_n, "E4", 4) - CONNECTION("M4", 8, "E4", 5) - - CONNECTION(P, "F4", 4) - CONNECTION(P, "F4", 2) - CONNECTION("E4", 3, "F4", 3) - CONNECTION(START_GAME1_n, "F4", 1) - - CONNECTION(P, "F4", 10) - CONNECTION(P, "F4", 12) - CONNECTION("E4", 6, "F4", 11) - CONNECTION(START_GAME1_n, "F4", 13) - - CONNECTION("F4", 6, "F3", 5) - CONNECTION(GND, "F3", 4) - CONNECTION("F4", 8, "F3", 11) - CONNECTION(GND, "F3", 12) - - CONNECTION(P, "F3", 3) - CONNECTION(P, "F3", 13) - - - //CREDIT_COUNTER - CONNECTION(BONUS_COIN, "E7", 8) - CONNECTION(COIN, "E7", 9) - CONNECTION(CR_START1_n, "H7", 2) - CONNECTION(V8, "D8", 1) - CONNECTION(CR_START2, "D8", 2) - CONNECTION("D8", 3, "H7", 1) - - CONNECTION("L8", 12, "L8", 11) // not on schematic, on rollover load 16, keeps you from losing all credits - CONNECTION(P, "L8", 15) - CONNECTION(P, "L8", 1) - CONNECTION(P, "L8", 10) - CONNECTION(P, "L8", 9) - CONNECTION("E7", 10, "L8", 5) - CONNECTION("H7", 3, "L8", 4) - - CONNECTION(LAT_Q, "L9", 10) - CONNECTION("L8", 13, "L9", 9) - CONNECTION("L9", 8, "L8", 14) - CONNECTION("L8", 7, "M8", 9) - CONNECTION("L8", 6, "M8", 10) - CONNECTION("L8", 2, "M8", 11) - CONNECTION("L8", 3, "M9", 13) - - CONNECTION(CREDIT2_n, "F9", 5) - CONNECTION(CREDIT2_n, "L9", 2) - CONNECTION("M9", 12, "L9", 1) - CONNECTION(CREDIT_1_OR_2, "F9", 9) - - //PLGM2_n - CONNECTION(CR_START1_n, "F7", 6) - CONNECTION(CR_START2_n, "F7", 5) - - //PLAY_CP - CONNECTION(PLGM2_n, "F2", 5) - CONNECTION(PLAYER_2, "F2", 4) - CONNECTION(H1, "F2", 3) - - CONNECTION(P, "F5", 4) - CONNECTION(P, "F5", 2) - CONNECTION(SERVE_WAIT, "F5", 3) - CONNECTION(H128, "F5", 1) - CONNECTION("F2", 6, "D2", 9) - CONNECTION("F5", 5, "D2", 10) - - //EGL - CONNECTION(P, "B4", 10) - CONNECTION(P, "B4", 7) - CONNECTION(P, "B4", 9) - CONNECTION(PLAY_CP, "B4", 2) - - CONNECTION(EGL, "C5", 1) - - - - CONNECTION(START_GAME1_n, "B4", 1) - CONNECTION(BALL_A, "A4", 2) - CONNECTION(BALL_B, "S4", 1) - CONNECTION(BALL_C, "S4", 2) - CONNECTION("S4", 3, "A4", 1) - CONNECTION("A4", 3, "C37", 1) - - CONNECTION(SERVE_WAIT_n, "A4", 5) - CONNECTION(BALL, "A4", 4) - - // Ball Circuit - - - // Video Summing - CONNECTION(V16_d, "D2", 4) - CONNECTION(V8_d, "D2", 5) - CONNECTION("D2", 6, "E3", 8) - CONNECTION(VSYNC_n, "E3", 9) - CONNECTION(HSYNC_n, "E2", 12) - CONNECTION("E3", 10, "E2", 13) - CONNECTION(PSYNC, "B9", 1) - CONNECTION(VSYNC_n, "B9", 2) - - //CONNECTION("VIDEO", 1, "E2", 11) - CONNECTION("VIDEO", 2, PLAYFIELD) - CONNECTION("VIDEO", 3, BSYNC) - CONNECTION("VIDEO", 4, SCORE) - CONNECTION("VIDEO", 5, "B9", 3) - //CONNECTION("VIDEO", 6, P) - - CONNECTION("VIDEO", Video::HBLANK_PIN, HSYNC) - CONNECTION("VIDEO", Video::VBLANK_PIN, "E3", 10) - - - // Audio Summing - CONNECTION("AUDIO", 1, "B9", 11) - CONNECTION("AUDIO", 2, "B9", 8) - CONNECTION("AUDIO", 3, FREE_GAME_TONE) - CONNECTION("AUDIO", 4, "B9", 6) - - -#ifdef DEBUG - // RAM access - /*CONNECTION("LOG1", 3, H4) //A - CONNECTION("LOG1", 4, H8) //B - CONNECTION("LOG1", 5, H16) //C - CONNECTION("LOG1", 6, V32) //D - CONNECTION("LOG1", 7, V64) //E - CONNECTION("LOG1", 8, V128) //F - CONNECTION("LOG1", 9, V16) //G - CONNECTION("LOG1", 10, RAM_PLAYER1) //H - CONNECTION("LOG1", 11, H32) //I - CONNECTION("LOG1", 12, H128) //J - CONNECTION("LOG1", 13, "H4", 8) //K - CONNECTION("LOG1", 14, "E1", 4) //L - CONNECTION("LOG1", 15, "F2", 12) //M - CONNECTION("LOG1", 16, "L3", 6)*/ //N -#endif - -CIRCUIT_LAYOUT_END - diff --git a/src/lib/netlist/examples/cd4066.c b/src/lib/netlist/examples/cd4066.c index 1917c1909fc..fbb8e75ba2d 100644 --- a/src/lib/netlist/examples/cd4066.c +++ b/src/lib/netlist/examples/cd4066.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * bjt.c diff --git a/src/lib/netlist/examples/cdelay.c b/src/lib/netlist/examples/cdelay.c index 273a9fcfab7..c48279fa5ab 100644 --- a/src/lib/netlist/examples/cdelay.c +++ b/src/lib/netlist/examples/cdelay.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * cdelay.c diff --git a/src/lib/netlist/examples/cmos_inverter.cpp b/src/lib/netlist/examples/cmos_inverter.cpp index 02ea330cb77..a80deb66075 100644 --- a/src/lib/netlist/examples/cmos_inverter.cpp +++ b/src/lib/netlist/examples/cmos_inverter.cpp @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * bjt.c diff --git a/src/lib/netlist/examples/cmos_inverter_clk.cpp b/src/lib/netlist/examples/cmos_inverter_clk.cpp index 32dbb25a33b..5d60761f939 100644 --- a/src/lib/netlist/examples/cmos_inverter_clk.cpp +++ b/src/lib/netlist/examples/cmos_inverter_clk.cpp @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * cmos_inverter_clk diff --git a/src/lib/netlist/examples/cs.cpp b/src/lib/netlist/examples/cs.cpp index f9b9741e0ff..562270a23be 100644 --- a/src/lib/netlist/examples/cs.cpp +++ b/src/lib/netlist/examples/cs.cpp @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * cs.c diff --git a/src/lib/netlist/examples/kidniki.c b/src/lib/netlist/examples/kidniki.c deleted file mode 100644 index b05a3b52d9f..00000000000 --- a/src/lib/netlist/examples/kidniki.c +++ /dev/null @@ -1,466 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud -#include "netlist/devices/net_lib.h" -#include "netlist/devices/nld_system.h" -#include "netlist/analog/nld_bjt.h" - -#define USE_FRONTIERS 0 -#define USE_FIXED_STV 1 - -NETLIST_START(dummy) -#if (1 || USE_FRONTIERS) - SOLVER(Solver, 18000) - PARAM(Solver.ACCURACY, 1e-8) - PARAM(Solver.NR_LOOPS, 300) - PARAM(Solver.GS_LOOPS, 1) - //PARAM(Solver.METHOD, "W") - PARAM(Solver.METHOD, "MAT_CR") - //PARAM(Solver.METHOD, "MAT") - //PARAM(Solver.METHOD, "GMRES") - //PARAM(Solver.METHOD, "SOR") - PARAM(Solver.DYNAMIC_TS, 0) - PARAM(Solver.DYNAMIC_LTE, 5e-3) - PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 10e-6) - PARAM(Solver.PARALLEL, 0) - PARAM(Solver.SOR_FACTOR, 1.00) - PARAM(Solver.PIVOT, 0) -#else - SOLVER(Solver, 12000) - PARAM(Solver.ACCURACY, 1e-8) - PARAM(Solver.NR_LOOPS, 300) - PARAM(Solver.GS_LOOPS, 20) - PARAM(Solver.METHOD, "GMRES") - PARAM(Solver.PARALLEL, 0) -#endif - //FIXME proper models! - //NET_MODEL("2SC945 NPN(Is=2.04f Xti=3 Eg=1.11 Vaf=6 Bf=400 Ikf=20m Xtb=1.5 Br=3.377 Rc=1 Cjc=1p Mjc=.3333 Vjc=.75 Fc=.5 Cje=25p Mje=.3333 Vje=.75 Tr=450n Tf=20n Itf=0 Vtf=0 Xtf=0 VCEO=45V ICrating=150M MFG=Toshiba)") - //NET_MODEL("1S1588 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)") - - //NET_C(R44.1, XU1.7) - - /* - * Workaround: The simplified opamp model does not correctly - * model the internals of the inputs. - */ - - ANALOG_INPUT(VWORKAROUND, 2.061) - RES(RWORKAROUND, RES_K(27)) - NET_C(VWORKAROUND.Q, RWORKAROUND.1) - NET_C(XU1.6, RWORKAROUND.2) - - ANALOG_INPUT(I_V5, 5) - //ANALOG_INPUT(I_V0, 0) - ALIAS(I_V0.Q, GND) - #if 0 - TTL_INPUT(I_SD0, 0) - TTL_INPUT(I_BD0, 0) - TTL_INPUT(I_CH0, 0) - TTL_INPUT(I_OH0, 0) - TTL_INPUT(I_SOUNDIC0, 0) - ANALOG_INPUT(I_MSM2K0, 0) - ANALOG_INPUT(I_MSM3K0, 0) - TTL_INPUT(I_SOUND0, 0) - TTL_INPUT(I_SINH0, 0) - #else - TTL_INPUT(I_SD0, 1) - //CLOCK(I_SD0, 5) - TTL_INPUT(I_BD0, 1) - //CLOCK(I_BD0, 5) - TTL_INPUT(I_CH0, 1) - //CLOCK(I_CH0, 5 ) - //TTL_INPUT(I_OH0, 1) - CLOCK(I_OH0, 5) - TTL_INPUT(I_SOUNDIC0, 1) - ANALOG_INPUT(I_MSM2K0, 0) - ANALOG_INPUT(I_MSM3K0, 0) - TTL_INPUT(I_SOUND0, 1) - TTL_INPUT(I_SINH0, 1) - #endif - - INCLUDE(kidniki_schematics) - - #if (USE_FRONTIERS) - OPTIMIZE_FRONTIER(C63.2, RES_K(27), RES_K(1)) - OPTIMIZE_FRONTIER(R31.2, RES_K(5.1), 50) - OPTIMIZE_FRONTIER(R29.2, RES_K(2.7), 50) - OPTIMIZE_FRONTIER(R87.2, RES_K(68), 50) - - OPTIMIZE_FRONTIER(R50.1, RES_K(2.2), 50) - OPTIMIZE_FRONTIER(R55.1, RES_K(510), 50) - OPTIMIZE_FRONTIER(R84.2, RES_K(50), RES_K(5)) - #endif - -NETLIST_END() - -NETLIST_START(kidniki_schematics) - // EESCHEMA NETLIST VERSION 1.1 (SPICE FORMAT) CREATION DATE: SAT 06 JUN 2015 01:06:26 PM CEST - // TO EXCLUDE A COMPONENT FROM THE SPICE NETLIST ADD [SPICE_NETLIST_ENABLED] USER FIELD SET TO: N - // TO REORDER THE COMPONENT SPICE NODE SEQUENCE ADD [SPICE_NODE_SEQUENCE] USER FIELD AND DEFINE SEQUENCE: 2,1,0 - // SHEET NAME:/ - // IGNORED O_AUDIO0: O_AUDIO0 49 0 - // .END - - CAP(C200, CAP_N(100)) - CAP(C28, CAP_U(1)) - CAP(C31, CAP_N(470)) - CAP(C32, CAP_N(3.3)) - CAP(C33, CAP_U(1)) - CAP(C34, CAP_N(1)) - CAP(C35, CAP_N(1)) - CAP(C36, CAP_N(6.5)) - CAP(C37, CAP_N(22)) - CAP(C38, CAP_N(1)) - CAP(C39, CAP_N(1)) - CAP(C40, CAP_P(12)) - CAP(C41, CAP_U(1)) - CAP(C42, CAP_N(1.2)) - CAP(C43, CAP_N(1.2)) - CAP(C44, CAP_U(1)) - CAP(C45, CAP_N(22)) - CAP(C47, CAP_U(1)) - CAP(C48, CAP_N(470)) - CAP(C49, CAP_N(3.3)) - CAP(C50, CAP_N(22)) - CAP(C51, CAP_N(22)) - CAP(C52, CAP_N(27)) - CAP(C53, CAP_N(27)) - CAP(C56, CAP_N(6.8)) - CAP(C57, CAP_N(6.8)) - CAP(C59, CAP_N(6.8)) - CAP(C60, CAP_N(22)) - CAP(C61, CAP_N(22)) - CAP(C62, CAP_N(6.8)) - CAP(C63, CAP_N(1)) - CAP(C64, CAP_N(68)) - CAP(C65, CAP_N(68)) - CAP(C66, CAP_N(68)) - CAP(C67, CAP_N(15)) - CAP(C68, CAP_N(15)) - CAP(C69, CAP_N(10)) - CAP(C70, CAP_N(22)) - CAP(C72, CAP_N(12)) - CAP(C73, CAP_N(10)) - CAP(C76, CAP_N(68)) - CAP(C77, CAP_N(12)) - - DIODE(D3, "1S1588") - DIODE(D4, "1S1588") - DIODE(D5, "1S1588") - - POT(RV1, RES_K(50)) - - QBJT_EB(Q10, "2SC945") - QBJT_EB(Q3, "2SC945") - QBJT_EB(Q4, "2SC945") - QBJT_EB(Q5, "2SC945") - QBJT_EB(Q6, "2SC945") - QBJT_EB(Q7, "2SC945") - QBJT_EB(Q9, "2SC945") - - SUBMODEL(LM324_DIP,XU1) - SUBMODEL(LM358_DIP,XU2) - - TTL_7404_DIP(XU3) - - RES(R100, RES_K(560)) - RES(R101, RES_K(150)) - RES(R102, RES_K(150)) - RES(R103, RES_K(470)) - RES(R104, RES_K(22)) - RES(R105, RES_K(470)) - RES(R106, RES_K(150)) - RES(R107, RES_K(150)) - RES(R108, RES_K(560)) - RES(R119, RES_K(22)) - RES(R200, RES_K(100)) - RES(R201, RES_K(100)) - RES(R27, RES_K(6.8)) - RES(R28, RES_K(150)) - RES(R29, RES_K(2.7)) - RES(R30, RES_K(10)) - RES(R31, RES_K(5.1)) - RES(R32, RES_K(4.7)) - RES(R34, RES_K(100)) - RES(R35, RES_K(100)) - RES(R36, RES_K(100)) - RES(R37, RES_K(47)) - RES(R38, 820) - RES(R39, RES_K(22)) - RES(R40, RES_K(10)) - RES(R41, RES_K(10)) - RES(R42, RES_K(150)) - RES(R43, 470) - RES(R44, RES_K(100)) - RES(R45, RES_K(1)) - RES(R46, RES_K(12)) - RES(R48, 470) - RES(R48_2, RES_K(100)) - RES(R49, RES_K(10)) - RES(R50, RES_K(22)) - RES(R51, RES_K(150)) - RES(R52, RES_K(100)) - RES(R53, RES_K(100)) - RES(R54, RES_K(680)) - RES(R55, RES_K(510)) - RES(R57, 560) - RES(R58, RES_K(39)) - RES(R59, 560) - RES(R60, RES_K(39)) - RES(R61, RES_K(100)) - RES(R62, RES_K(100)) - RES(R63, RES_K(1)) - RES(R65, RES_K(1)) - RES(R65_1, RES_K(27)) - RES(R66, RES_M(1)) - RES(R67, RES_K(100)) - RES(R68, RES_K(100)) - RES(R69, RES_K(1)) - RES(R70, RES_K(10)) - RES(R71, RES_K(100)) - RES(R72, RES_K(100)) - RES(R73, RES_K(10)) - RES(R74, RES_K(10)) - RES(R75, RES_K(10)) - RES(R76, RES_K(10)) - RES(R81, 220) - RES(R82, RES_M(2.2)) - RES(R83, RES_K(12)) - RES(R84, RES_K(1)) - RES(R85, RES_M(2.2)) - RES(R86, RES_K(10)) - RES(R87, RES_K(68)) - RES(R89, RES_K(22)) - RES(R90, RES_K(390)) - RES(R91, RES_K(100)) - RES(R92, RES_K(22)) - RES(R93, RES_K(1)) - RES(R94, RES_K(22)) - RES(R95, RES_K(330)) - RES(R96, RES_K(150)) - RES(R97, RES_K(150)) - RES(R98, RES_K(650)) - - #if USE_FIXED_STV - ANALOG_INPUT(STV, 2) - #else - RES(R78, RES_K(3.3)) - RES(R77, RES_K(2.2)) - CAP(C58, CAP_U(47)) - #endif - - NET_C(R95.1, XU3.2, R96.2) - NET_C(R95.2, XU3.1, C69.1) - NET_C(XU3.3, R103.2, C73.1) - NET_C(XU3.4, R103.1, R102.2) - NET_C(XU3.5, R105.2, C72.1) - NET_C(XU3.6, R105.1, R106.2) - #if USE_FIXED_STV - //FIXME: We should have a NET_C_REMOVE - NET_C(/*XU3.7,*/ C69.2, C73.2, C72.2, C77.2, C67.2, C68.2, R65.2, R38.2, XU1.11, R54.2, Q4.E, R63.2, C47.2, R72.2, R67.2, R71.2, R68.2, C48.2, R46.2, C28.1, C32.1, R43.2, XU2.4, C56.1, C52.1,/* R77.2, C58.1, */ R48.2, R93.2, R94.2, R119.2, R104.2, R53.2, R34.2, R81.2, R92.2, R89.2, C33.1, R37.2, R36.1, R91.1, I_V0.Q, RV1.3) - #else - NET_C(/*XU3.7,*/ C69.2, C73.2, C72.2, C77.2, C67.2, C68.2, R65.2, R38.2, XU1.11, R54.2, Q4.E, R63.2, C47.2, R72.2, R67.2, R71.2, R68.2, C48.2, R46.2, C28.1, C32.1, R43.2, XU2.4, C56.1, C52.1, R77.2, C58.1, R48.2, R93.2, R94.2, R119.2, R104.2, R53.2, R34.2, R81.2, R92.2, R89.2, C33.1, R37.2, R36.1, R91.1, I_V0.Q, RV1.3) - #endif - NET_C(XU3.8, R108.1, R107.2) - NET_C(XU3.9, R108.2, C77.1) - NET_C(XU3.10, R100.1, R101.2) - NET_C(XU3.11, R100.2, C67.1) - NET_C(XU3.12, R98.1, R97.2) - NET_C(XU3.13, R98.2, C68.1) - #if USE_FIXED_STV - NET_C(/*XU3.14,*/ XU1.4, R66.1, R70.1, Q6.C, Q5.C, XU2.8, /* R78.1, */ R86.1, R83.1, Q3.C, I_V5.Q) - #else - NET_C(/*XU3.14,*/ XU1.4, R66.1, R70.1, Q6.C, Q5.C, XU2.8, R78.1, R86.1, R83.1, Q3.C, I_V5.Q) - #endif - NET_C(R96.1, R102.1, R106.1, R107.1, R101.1, R97.1, R65.1, C63.2) - NET_C(C63.1, R65_1.2) - NET_C(R65_1.1, R44.2, C38.2, C40.2, XU1.6) - #if USE_FIXED_STV - NET_C(R30.1, R41.1, R40.1, STV, R76.2, /* R78.2, R77.1, C58.2*/ STV) - #else - NET_C(R30.1, R41.1, R40.1, R76.2, R78.2, R77.1, C58.2) - #endif - NET_C(R30.2, XU1.5) - NET_C(R44.1, C39.1, C40.1, R48_2.2) - NET_C(C38.1, C39.2, R38.1) - NET_C(XU1.1, XU1.2, R39.1, R32.2) - NET_C(XU1.3, C34.1, R41.2) - NET_C(XU1.7, R45.2) - NET_C(XU1.8, XU1.9, R31.2, C36.2) - NET_C(XU1.10, R42.1, C32.2) - NET_C(XU1.12, C49.1, C31.1, R40.2, C61.1, C60.1) - NET_C(XU1.13, R27.1, R28.2) - NET_C(XU1.14, R28.1, R29.2, I_SINH0.Q) - NET_C(R48_2.1, C45.2, R54.1) - NET_C(C45.1, R55.1, Q7.B) - NET_C(R55.2, R90.2, C33.2, R37.1, Q3.E) - NET_C(R45.1, C44.2) - NET_C(C44.1, R66.2, Q4.B) - NET_C(Q4.C, C42.1, C43.1, R46.1, C35.2, D4.K, D5.K) - NET_C(R70.2, R69.2, Q7.C) - NET_C(R63.1, Q7.E) - NET_C(R69.1, C49.2) - NET_C(C42.2, R58.1, D5.A) - NET_C(R58.2, R57.1, C47.1) - NET_C(R57.2, Q6.E) - NET_C(Q6.B, R61.1) - NET_C(C50.1, R67.1, R61.2) - NET_C(C50.2, R72.1, I_OH0.Q) - NET_C(C51.1, R68.1, R62.2) - NET_C(C51.2, R71.1, I_CH0.Q) - NET_C(R62.1, Q5.B) - NET_C(Q5.E, R59.2) - NET_C(R60.1, C43.2, D4.A) - NET_C(R60.2, R59.1, C48.1) - NET_C(C35.1, C34.2, R39.2) - NET_C(R32.1, C31.2) - NET_C(R27.2, C28.2) - NET_C(R29.1, R31.1, R50.2, R49.1, RV1.1) - NET_C(R42.2, R51.1, C36.1) - NET_C(R51.2, C41.1) - NET_C(C41.2, R43.1, I_SOUNDIC0.Q) - NET_C(XU2.1, XU2.2, R73.1) - NET_C(XU2.3, R76.1, C200.2) - NET_C(XU2.5, C56.2, R75.1) - NET_C(XU2.6, XU2.7, R50.1, C53.2) - NET_C(R75.2, R74.1, C53.1) - NET_C(R74.2, C52.2, R73.2) - NET_C(R49.2, R48.1, I_SOUND0.Q) - NET_C(Q9.E, R81.1) - NET_C(Q9.C, R84.2, R83.2, R82.1, C59.1) - NET_C(Q9.B, R82.2, C62.1) - NET_C(Q10.E, R93.1) - NET_C(Q10.C, R87.2, R86.2, R85.1, C76.1) - NET_C(Q10.B, R85.2, C64.1) - NET_C(R84.1, C61.2) - NET_C(C60.2, R87.1) - NET_C(C64.2, C65.1, R94.1, D3.K) - NET_C(C65.2, C66.1, R119.1) - NET_C(C66.2, C76.2, R104.1) - NET_C(R53.1, R52.2, C37.1) - NET_C(R34.1, C37.2, I_BD0.Q) - NET_C(R52.1, D3.A) - NET_C(R92.1, C62.2, C57.1) - NET_C(R89.1, C57.2, C59.2, R90.1) - NET_C(Q3.B, R35.1) - NET_C(R35.2, R36.2, C70.1) - NET_C(R91.2, C70.2, I_SD0.Q) - NET_C(I_MSM3K0.Q, R200.2) - NET_C(I_MSM2K0.Q, R201.2) - NET_C(R200.1, R201.1, C200.1) -NETLIST_END() - -NETLIST_START(opamp) - - /* Opamp model from - * - * http://www.ecircuitcenter.com/Circuits/opmodel1/opmodel1.htm - * - * Bandwidth 1Mhz - * - */ - - /* Terminal definitions for calling netlists */ - - ALIAS(PLUS, G1.IP) // Positive input - ALIAS(MINUS, G1.IN) // Negative input - ALIAS(OUT, EBUF.OP) // Opamp output ... - - ALIAS(GND, EBUF.ON) // GND terminal - ALIAS(VCC, DUMMY.I) // VCC terminal - DUMMY_INPUT(DUMMY) - - /* The opamp model */ - - VCCS(G1) - PARAM(G1.RI, RES_K(1000)) -#if 1 - PARAM(G1.G, 100) // typical OP-AMP amplification 100 * 1000 = 100000 - RES(RP1, 1000) - CAP(CP1, 1.59e-5) // <== change to 1.59e-3 for 10Khz bandwidth -#else - PARAM(G1.G, 1) // typical OP-AMP amplification 100 * 1000 = 100000 - RES(RP1, 100000) - CAP(CP1, 1.59e-7) // <== change to 1.59e-3 for 10Khz bandwidth -#endif - VCVS(EBUF) - PARAM(EBUF.RO, 50) - PARAM(EBUF.G, 1) - -// PARAM(EBUF.RI, 1e20) -// NET_C(EBUF.ON, GND) - - NET_C(G1.ON, GND) - NET_C(RP1.2, GND) - NET_C(CP1.2, GND) - NET_C(EBUF.IN, GND) - - NET_C(RP1.1, G1.OP) - NET_C(CP1.1, RP1.1) - - DIODE(DP,"1N914") - DIODE(DN,"1N914") - - NET_C(DP.K, VCC) -#if 1 - NET_C(DP.A, DN.K, RP1.1) -#else - RES(RDP, 1000) - RES(RDN, 1000) - NET_C(RDP.1, DP.A) - NET_C(RDN.1, DN.K) - NET_C(RDP.2, RDN.2, RP1.1) -#endif - NET_C(DN.A, GND) - - NET_C(EBUF.IP, RP1.1) - -NETLIST_END() - -NETLIST_START(LM324_DIP) - SUBMODEL(opamp, op1) - SUBMODEL(opamp, op2) - SUBMODEL(opamp, op3) - SUBMODEL(opamp, op4) - - ALIAS( 1, op1.OUT) - ALIAS( 2, op1.MINUS) - ALIAS( 3, op1.PLUS) - - ALIAS( 7, op2.OUT) - ALIAS( 6, op2.MINUS) - ALIAS( 5, op2.PLUS) - - ALIAS( 8, op3.OUT) - ALIAS( 9, op3.MINUS) - ALIAS(10, op3.PLUS) - - ALIAS(14, op4.OUT) - ALIAS(13, op4.MINUS) - ALIAS(12, op4.PLUS) - - NET_C(op1.GND, op2.GND, op3.GND, op4.GND) - NET_C(op1.VCC, op2.VCC, op3.VCC, op4.VCC) - - ALIAS(11, op1.GND) - ALIAS( 4, op1.VCC) -NETLIST_END() - -NETLIST_START(LM358_DIP) - SUBMODEL(opamp, op1) - SUBMODEL(opamp, op2) - - ALIAS( 1, op1.OUT) - ALIAS( 2, op1.MINUS) - ALIAS( 3, op1.PLUS) - - ALIAS( 7, op2.OUT) - ALIAS( 6, op2.MINUS) - ALIAS( 5, op2.PLUS) - - - NET_C(op1.GND, op2.GND) - NET_C(op1.VCC, op2.VCC) - - ALIAS( 4, op1.GND) - ALIAS( 8, op1.VCC) -NETLIST_END() diff --git a/src/lib/netlist/examples/mm5837_noise.c b/src/lib/netlist/examples/mm5837_noise.c index c5237274af0..5a314335e15 100644 --- a/src/lib/netlist/examples/mm5837_noise.c +++ b/src/lib/netlist/examples/mm5837_noise.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * mm5837_noise.c diff --git a/src/lib/netlist/examples/msx_mixer_stage.c b/src/lib/netlist/examples/msx_mixer_stage.c index 413ad271e08..5e9b8c106be 100644 --- a/src/lib/netlist/examples/msx_mixer_stage.c +++ b/src/lib/netlist/examples/msx_mixer_stage.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * bjt.c diff --git a/src/lib/netlist/examples/ne555_astable.c b/src/lib/netlist/examples/ne555_astable.c index f71076b4e96..16290109261 100644 --- a/src/lib/netlist/examples/ne555_astable.c +++ b/src/lib/netlist/examples/ne555_astable.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* diff --git a/src/lib/netlist/examples/ne566.cpp b/src/lib/netlist/examples/ne566.cpp index 0fac07d9f0d..37bb2898f56 100644 --- a/src/lib/netlist/examples/ne566.cpp +++ b/src/lib/netlist/examples/ne566.cpp @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* @@ -9,6 +9,9 @@ //! [ne566_example] #include "netlist/devices/net_lib.h" +// ./nltool -t 1 -l X.3 -l X.4 -n oscillator src/lib/netlist/examples/ne566.cpp +// X.3 : Square out +// X.4 : Triangle out NETLIST_START(oscillator) diff --git a/src/lib/netlist/examples/nld_74393_test.c b/src/lib/netlist/examples/nld_74393_test.c index 0517150f7a5..d9d6a382ca4 100644 --- a/src/lib/netlist/examples/nld_74393_test.c +++ b/src/lib/netlist/examples/nld_74393_test.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * cdelay.c diff --git a/src/lib/netlist/examples/nmos_fet.cpp b/src/lib/netlist/examples/nmos_fet.cpp index 5bec1a97411..6746abce8e7 100644 --- a/src/lib/netlist/examples/nmos_fet.cpp +++ b/src/lib/netlist/examples/nmos_fet.cpp @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * nmos_fet.cpp diff --git a/src/lib/netlist/examples/opamp.c b/src/lib/netlist/examples/opamp.c index b3730b29b51..077cef5eeac 100644 --- a/src/lib/netlist/examples/opamp.c +++ b/src/lib/netlist/examples/opamp.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * opamp.c diff --git a/src/lib/netlist/examples/opamp_amplification_curve.cpp b/src/lib/netlist/examples/opamp_amplification_curve.cpp index ed5d1709985..063867926f3 100644 --- a/src/lib/netlist/examples/opamp_amplification_curve.cpp +++ b/src/lib/netlist/examples/opamp_amplification_curve.cpp @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * Script to analyze opamp amplification as a function of frequency. diff --git a/src/lib/netlist/examples/sn74ls629_osc.c b/src/lib/netlist/examples/sn74ls629_osc.c index 3f797d9474d..c51007a1bd3 100644 --- a/src/lib/netlist/examples/sn74ls629_osc.c +++ b/src/lib/netlist/examples/sn74ls629_osc.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * ne555_astable.c diff --git a/src/lib/netlist/examples/test.c b/src/lib/netlist/examples/test.c index bee32494710..9980e47ae74 100644 --- a/src/lib/netlist/examples/test.c +++ b/src/lib/netlist/examples/test.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * bjt.c diff --git a/src/lib/netlist/examples/todo.c b/src/lib/netlist/examples/todo.c index 6e9257f5410..ecf113d8ff6 100644 --- a/src/lib/netlist/examples/todo.c +++ b/src/lib/netlist/examples/todo.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * todo.c diff --git a/src/lib/netlist/examples/vccs.c b/src/lib/netlist/examples/vccs.c index 0e76ba6b219..a5e25588717 100644 --- a/src/lib/netlist/examples/vccs.c +++ b/src/lib/netlist/examples/vccs.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * vccs.c diff --git a/src/lib/netlist/examples/vccs1.c b/src/lib/netlist/examples/vccs1.c index b3513b325b7..89bd9c74ae7 100644 --- a/src/lib/netlist/examples/vccs1.c +++ b/src/lib/netlist/examples/vccs1.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * vccs.c diff --git a/src/lib/netlist/examples/vs.c b/src/lib/netlist/examples/vs.c index 583b94d7c4f..6dc3543df96 100644 --- a/src/lib/netlist/examples/vs.c +++ b/src/lib/netlist/examples/vs.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * vs_cs.c diff --git a/src/lib/netlist/examples/vs_cs.c b/src/lib/netlist/examples/vs_cs.c index 252eb9cad3f..b0c424abcb2 100644 --- a/src/lib/netlist/examples/vs_cs.c +++ b/src/lib/netlist/examples/vs_cs.c @@ -1,4 +1,4 @@ -// license:GPL-2.0+ +// license:CC0 // copyright-holders:Couriersud /* * vs_cs.c |