diff options
Diffstat (limited to 'src/mame/drivers/pong.c')
-rw-r--r-- | src/mame/drivers/pong.c | 596 |
1 files changed, 298 insertions, 298 deletions
diff --git a/src/mame/drivers/pong.c b/src/mame/drivers/pong.c index c88c6e51bbd..272e6054e21 100644 --- a/src/mame/drivers/pong.c +++ b/src/mame/drivers/pong.c @@ -148,7 +148,7 @@ static NETLIST_START(pong_schematics) // ---------------------------------------------------------------------------------------- // horizontal counter - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_7493(ic_f8, clk, ic_f8.QA, ic_e7b.QQ, ic_e7b.QQ) // f8, f9, f6b TTL_7493(ic_f9, ic_f8.QD, ic_f9.QA, ic_e7b.QQ, ic_e7b.QQ) // f8, f9, f6b TTL_74107(ic_f6b, ic_f9.QD, high, high, ic_e7b.Q) @@ -166,9 +166,9 @@ static NETLIST_START(pong_schematics) NET_ALIAS(256H, ic_f6b.Q) NET_ALIAS(256HQ, ic_f6b.QQ) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // vertical counter - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_7493(ic_e8, hreset, ic_e8.QA, ic_e7a.QQ, ic_e7a.QQ) // e8, e9, d9b TTL_7493(ic_e9, ic_e8.QD,ic_e9.QA, ic_e7a.QQ, ic_e7a.QQ) // e8, e9, d9b TTL_74107(ic_d9b, ic_e9.QD, high, high, ic_e7a.Q) @@ -186,9 +186,9 @@ static NETLIST_START(pong_schematics) NET_ALIAS(256VQ, ic_d9b.QQ) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // hblank flip flop - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_7400_NAND(ic_g5b, 16H, 64H) @@ -200,9 +200,9 @@ static NETLIST_START(pong_schematics) NET_ALIAS(hblankQ, ic_h5b.Q) TTL_7400_NAND(hsyncQ, hblank, 32H) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // vblank flip flop - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_7402_NOR(ic_f5c, ic_f5d.Q, vreset) TTL_7402_NOR(ic_f5d, ic_f5c.Q, 16V) @@ -213,9 +213,9 @@ static NETLIST_START(pong_schematics) TTL_7410_NAND(ic_g5a, vblank, 4V, ic_h5a.Q) NET_ALIAS(vsyncQ, ic_g5a.Q) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // move logic - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_7400_NAND(ic_e1d, hit_sound, ic_e1c.Q) TTL_7400_NAND(ic_e1c, ic_f1.QC, ic_f1.QD) @@ -245,9 +245,9 @@ static NETLIST_START(pong_schematics) NET_ALIAS(Aa, ic_h4c.Q) NET_ALIAS(Ba, ic_h4b.Q) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // hvid circuit - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_7400_NAND(hball_resetQ, Serve, attractQ) @@ -258,9 +258,9 @@ static NETLIST_START(pong_schematics) TTL_7420_NAND(ic_h6b, ic_g6b.Q, ic_h7.RC, ic_g7.QC, ic_g7.QD) NET_ALIAS(hvidQ, ic_h6b.Q) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // vvid circuit - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_9316(ic_b3, hsyncQ, high, vblankQ, high, ic_b2b.Q, a6, b6, c6, d6) TTL_9316(ic_a3, hsyncQ, ic_b3.RC, high, high, ic_b2b.Q, low, low, low, low) @@ -272,9 +272,9 @@ static NETLIST_START(pong_schematics) NET_ALIAS(vpos32, ic_a3.QB) NET_ALIAS(vpos16, ic_a3.QA) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // vball ctrl circuit - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_7450_ANDORINVERT(ic_a6a, b1, 256HQ, b2, 256H) TTL_7450_ANDORINVERT(ic_a6b, c1, 256HQ, c2, 256H) @@ -298,64 +298,64 @@ static NETLIST_START(pong_schematics) NET_ALIAS(c6, ic_b4.SC) NET_ALIAS(d6, ic_b4.SD) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // serve monoflop - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_7404_INVERT(f4_trig, rstspeed) NETDEV_R(ic_f4_serve_R, RES_K(330)) - NETDEV_C(ic_f4_serve_C, CAP_U(4.7)) - NETDEV_NE555(ic_f4_serve) - - NET_C(ic_f4_serve.VCC, V5) - NET_C(ic_f4_serve.GND, GND) - NET_C(ic_f4_serve.RESET, V5) - NET_C(ic_f4_serve_R.1, V5) - NET_C(ic_f4_serve_R.2, ic_f4_serve.THRESH) - NET_C(ic_f4_serve_R.2, ic_f4_serve.DISCH) - NET_C(f4_trig, ic_f4_serve.TRIG) - NET_C(ic_f4_serve_R.2, ic_f4_serve_C.1) - NET_C(GND, ic_f4_serve_C.2) - - TTL_7427_NOR(ic_e5a, ic_f4_serve.OUT, StopG, runQ) + NETDEV_C(ic_f4_serve_C, CAP_U(4.7)) + NETDEV_NE555(ic_f4_serve) + + NET_C(ic_f4_serve.VCC, V5) + NET_C(ic_f4_serve.GND, GND) + NET_C(ic_f4_serve.RESET, V5) + NET_C(ic_f4_serve_R.1, V5) + NET_C(ic_f4_serve_R.2, ic_f4_serve.THRESH) + NET_C(ic_f4_serve_R.2, ic_f4_serve.DISCH) + NET_C(f4_trig, ic_f4_serve.TRIG) + NET_C(ic_f4_serve_R.2, ic_f4_serve_C.1) + NET_C(GND, ic_f4_serve_C.2) + + TTL_7427_NOR(ic_e5a, ic_f4_serve.OUT, StopG, runQ) TTL_7474(ic_b5b_serve, pad1, ic_e5a, ic_e5a, high) NET_ALIAS(Serve, ic_b5b_serve.QQ) NET_ALIAS(ServeQ, ic_b5b_serve.Q) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // score logic - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_7474(ic_h3a, 4H, 128H, high, attractQ) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // sound logic - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_7474(ic_c2a, vpos256, high, hitQ, high) TTL_74107(ic_f3_topbot, vblank, vvid, vvidQ, ServeQ) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // monoflop with NE555 determines duration of score sound - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- NETDEV_R(ic_g4_R, RES_K(220)) - NETDEV_C(ic_g4_C, CAP_U(1)) - NETDEV_NE555(ic_g4_sc) - NET_ALIAS(SC, ic_g4_sc.OUT) - - NET_C(ic_g4_sc.VCC, V5) - NET_C(ic_g4_sc.GND, GND) - NET_C(ic_g4_sc.RESET, V5) - NET_C(ic_g4_R.1, V5) - NET_C(ic_g4_R.2, ic_g4_sc.THRESH) - NET_C(ic_g4_R.2, ic_g4_sc.DISCH) - NET_C(MissQ, ic_g4_sc.TRIG) - NET_C(ic_g4_R.2, ic_g4_C.1) - NET_C(GND, ic_g4_C.2) - - NET_ALIAS(hit_sound_en, ic_c2a.QQ) + NETDEV_C(ic_g4_C, CAP_U(1)) + NETDEV_NE555(ic_g4_sc) + NET_ALIAS(SC, ic_g4_sc.OUT) + + NET_C(ic_g4_sc.VCC, V5) + NET_C(ic_g4_sc.GND, GND) + NET_C(ic_g4_sc.RESET, V5) + NET_C(ic_g4_R.1, V5) + NET_C(ic_g4_R.2, ic_g4_sc.THRESH) + NET_C(ic_g4_R.2, ic_g4_sc.DISCH) + NET_C(MissQ, ic_g4_sc.TRIG) + NET_C(ic_g4_R.2, ic_g4_C.1) + NET_C(GND, ic_g4_C.2) + + NET_ALIAS(hit_sound_en, ic_c2a.QQ) TTL_7400_NAND(hit_sound, hit_sound_en, vpos16) TTL_7400_NAND(score_sound, SC, vpos32) TTL_7400_NAND(topbothitsound, ic_f3_topbot.Q, vpos32) @@ -365,33 +365,33 @@ static NETLIST_START(pong_schematics) NET_ALIAS(sound, ic_c1b.Q) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // paddle1 logic 1 - // ---------------------------------------------------------------------------------------- - - NETDEV_POT(ic_b9_POT, RES_K(1)) // This is a guess!! - NETDEV_R(ic_b9_RPRE, 470) - - NET_C(ic_b9_POT.1, V5) - NET_C(ic_b9_POT.3, GND) - NET_C(ic_b9_POT.2, ic_b9_RPRE.1) - NET_C(ic_b9_RPRE.2, ic_b9.CONT) - - NETDEV_R(ic_b9_R, RES_K(71)) - NETDEV_C(ic_b9_C, CAP_U(.1)) - NETDEV_D(ic_b9_D, 1N914) - NETDEV_NE555(ic_b9) - - NET_C(ic_b9.VCC, V5) - NET_C(ic_b9.GND, GND) - NET_C(ic_b9.RESET, V5) - NET_C(ic_b9_R.1, V5) - NET_C(ic_b9_R.2, ic_b9.THRESH) - NET_C(ic_b9_R.2, ic_b9_D.A) - NET_C(ic_b9_D.K, ic_b9.DISCH) - NET_C(256VQ, ic_b9.TRIG) - NET_C(ic_b9_R.2, ic_b9_C.1) - NET_C(GND, ic_b9_C.2) + // ---------------------------------------------------------------------------------------- + + NETDEV_POT(ic_b9_POT, RES_K(1)) // This is a guess!! + NETDEV_R(ic_b9_RPRE, 470) + + NET_C(ic_b9_POT.1, V5) + NET_C(ic_b9_POT.3, GND) + NET_C(ic_b9_POT.2, ic_b9_RPRE.1) + NET_C(ic_b9_RPRE.2, ic_b9.CONT) + + NETDEV_R(ic_b9_R, RES_K(71)) + NETDEV_C(ic_b9_C, CAP_U(.1)) + NETDEV_D(ic_b9_D, 1N914) + NETDEV_NE555(ic_b9) + + NET_C(ic_b9.VCC, V5) + NET_C(ic_b9.GND, GND) + NET_C(ic_b9.RESET, V5) + NET_C(ic_b9_R.1, V5) + NET_C(ic_b9_R.2, ic_b9.THRESH) + NET_C(ic_b9_R.2, ic_b9_D.A) + NET_C(ic_b9_D.K, ic_b9.DISCH) + NET_C(256VQ, ic_b9.TRIG) + NET_C(ic_b9_R.2, ic_b9_C.1) + NET_C(GND, ic_b9_C.2) TTL_7404_INVERT(ic_c9b, ic_b9.OUT) TTL_7400_NAND(ic_b7b, ic_a7b.Q, hsyncQ) @@ -404,33 +404,33 @@ static NETLIST_START(pong_schematics) NET_ALIAS(c1, ic_b8.QC) NET_ALIAS(d1, ic_b8.QD) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // paddle1 logic 2 - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- NETDEV_POT(ic_a9_POT, RES_K(1)) // This is a guess!! - NETDEV_R(ic_a9_RPRE, 470) - - NET_C(ic_a9_POT.1, V5) - NET_C(ic_a9_POT.3, GND) - NET_C(ic_a9_POT.2, ic_a9_RPRE.1) - NET_C(ic_a9_RPRE.2, ic_a9.CONT) - - NETDEV_R(ic_a9_R, RES_K(71)) - NETDEV_C(ic_a9_C, CAP_U(.1)) - NETDEV_D(ic_a9_D, 1N914) - NETDEV_NE555(ic_a9) - - NET_C(ic_a9.VCC, V5) - NET_C(ic_a9.GND, GND) - NET_C(ic_a9.RESET, V5) - NET_C(ic_a9_R.1, V5) - NET_C(ic_a9_R.2, ic_a9.THRESH) - NET_C(ic_a9_R.2, ic_a9_D.A) - NET_C(ic_a9_D.K, ic_a9.DISCH) - NET_C(256VQ, ic_a9.TRIG) - NET_C(ic_a9_R.2, ic_a9_C.1) - NET_C(GND, ic_a9_C.2) + NETDEV_R(ic_a9_RPRE, 470) + + NET_C(ic_a9_POT.1, V5) + NET_C(ic_a9_POT.3, GND) + NET_C(ic_a9_POT.2, ic_a9_RPRE.1) + NET_C(ic_a9_RPRE.2, ic_a9.CONT) + + NETDEV_R(ic_a9_R, RES_K(71)) + NETDEV_C(ic_a9_C, CAP_U(.1)) + NETDEV_D(ic_a9_D, 1N914) + NETDEV_NE555(ic_a9) + + NET_C(ic_a9.VCC, V5) + NET_C(ic_a9.GND, GND) + NET_C(ic_a9.RESET, V5) + NET_C(ic_a9_R.1, V5) + NET_C(ic_a9_R.2, ic_a9.THRESH) + NET_C(ic_a9_R.2, ic_a9_D.A) + NET_C(ic_a9_D.K, ic_a9.DISCH) + NET_C(256VQ, ic_a9.TRIG) + NET_C(ic_a9_R.2, ic_a9_C.1) + NET_C(GND, ic_a9_C.2) TTL_7404_INVERT(ic_c9a, ic_a9.OUT) TTL_7400_NAND(ic_b7c, ic_a7a.Q, hsyncQ) @@ -443,9 +443,9 @@ static NETLIST_START(pong_schematics) NET_ALIAS(c2, ic_a8.QC) NET_ALIAS(d2, ic_a8.QD) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // C5-EN Logic - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_7404_INVERT(ic_e3a, 128H) TTL_7427_NOR( ic_e3b, 256H, 64H, ic_e3a.Q) @@ -456,9 +456,9 @@ static NETLIST_START(pong_schematics) TTL_7425_NOR(ic_f2a, ic_g1a.Q, 64V, 128V, ic_d2c.Q) NET_ALIAS(c5-en, ic_f2a.Q) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // Score logic ... - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_7402_NOR(ic_f5b, L, Missed) TTL_7490(ic_c7, ic_f5b, SRST, SRST, low, low) @@ -490,9 +490,9 @@ static NETLIST_START(pong_schematics) NET_ALIAS(score2_10, ic_c8b.Q) NET_ALIAS(score2_10Q, ic_c8b.QQ) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // Score display - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_74153(ic_d6a, score1_10Q, score1_4, score2_10Q, score2_4, 32H, 64H, low) TTL_74153(ic_d6b, score1_10Q, score1_8, score2_10Q, score2_8, 32H, 64H, low) @@ -537,9 +537,9 @@ static NETLIST_START(pong_schematics) TTL_7427_NOR(ic_g2b, ic_g3b.Q, vblank, 4V) NET_ALIAS(net, ic_g2b.Q) - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- // video - // ---------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------- TTL_7402_NOR(ic_g1b, hvidQ, vvidQ) TTL_7425_NOR(ic_f2b, ic_g1b.Q, pad1, pad2, net) @@ -550,46 +550,46 @@ static NETLIST_START(pong_schematics) TTL_7404_INVERT(ic_e4f, ic_a4d.Q) NETDEV_R(RV1, RES_K(1)) - NETDEV_R(RV2, RES_K(1.2)) - NETDEV_R(RV3, RES_K(22)) - NET_C(video, RV1.1) - NET_C(score, RV2.1) - NET_C(ic_e4f.Q, RV3.1) - NET_C(RV1.2, RV2.2) - NET_C(RV2.2, RV3.2) - - NET_ALIAS(videomix, RV3.2) - - NETDEV_SOLVER(Solver) - NETDEV_PARAM(Solver.FREQ, 48000) - NETDEV_ANALOG_CONST(V5, 5) - NETDEV_ANALOG_CONST(V1, 1) - NETDEV_ANALOG_CONST(GND, 0) + NETDEV_R(RV2, RES_K(1.2)) + NETDEV_R(RV3, RES_K(22)) + NET_C(video, RV1.1) + NET_C(score, RV2.1) + NET_C(ic_e4f.Q, RV3.1) + NET_C(RV1.2, RV2.2) + NET_C(RV2.2, RV3.2) + + NET_ALIAS(videomix, RV3.2) + + NETDEV_SOLVER(Solver) + NETDEV_PARAM(Solver.FREQ, 48000) + NETDEV_ANALOG_CONST(V5, 5) + NETDEV_ANALOG_CONST(V1, 1) + NETDEV_ANALOG_CONST(GND, 0) #if 0 - NETDEV_R(R1, 10) - NETDEV_R(R2, 10) - NETDEV_R(R3, 10) - NET_C(V5,R1.1) - NET_C(R1.2, R2.1) - NET_C(R2.2, R3.1) - NET_C(R3.2, GND) + NETDEV_R(R1, 10) + NETDEV_R(R2, 10) + NETDEV_R(R3, 10) + NET_C(V5,R1.1) + NET_C(R1.2, R2.1) + NET_C(R2.2, R3.1) + NET_C(R3.2, GND) #endif #if 0 - NETDEV_R(R4, 1000) - NETDEV_C(C1, 1e-6) - NET_C(V5,R4.1) - NET_C(R4.2, C1.1) - NET_C(C1.2, GND) - //NETDEV_LOG(log1, C1.1) + NETDEV_R(R4, 1000) + NETDEV_C(C1, 1e-6) + NET_C(V5,R4.1) + NET_C(R4.2, C1.1) + NET_C(C1.2, GND) + //NETDEV_LOG(log1, C1.1) #endif #define tt(_n) \ - NETDEV_R(R ## _n, 1000) \ + NETDEV_R(R ## _n, 1000) \ NETDEV_D(D ## _n) \ - NET_C(V5, R ## _n.1) \ - NET_C(R ## _n.2, D ## _n.A) \ - NET_C(D ## _n.K, GND) + NET_C(V5, R ## _n.1) \ + NET_C(R ## _n.2, D ## _n.A) \ + NET_C(D ## _n.K, GND) /* tt(20) tt(21) @@ -604,180 +604,180 @@ static NETLIST_START(pong_schematics) */ #if 0 - NETDEV_R(R5, 1000) - NETDEV_1N914(D1) - NET_C(V5, R5.1) - NET_C(R5.2, D1.A) - NET_C(D1.K, GND) - //NETDEV_LOG(log1, D1.A) + NETDEV_R(R5, 1000) + NETDEV_1N914(D1) + NET_C(V5, R5.1) + NET_C(R5.2, D1.A) + NET_C(D1.K, GND) + //NETDEV_LOG(log1, D1.A) #endif #if 0 - // astable NAND Multivibrator - NETDEV_R(R1, 1000) - NETDEV_C(C1, 1e-6) - TTL_7400_NAND(n1,R1.1,R1.1) - TTL_7400_NAND(n2,R1.2,R1.2) - NET_C(n1.Q, R1.2) - NET_C(n2.Q, C1.1) - NET_C(C1.2, R1.1) - //NETDEV_LOG(log2, C1.2) - //NETDEV_LOG(log2, n1.Q) - //NETDEV_LOG(log3, n2.Q) + // astable NAND Multivibrator + NETDEV_R(R1, 1000) + NETDEV_C(C1, 1e-6) + TTL_7400_NAND(n1,R1.1,R1.1) + TTL_7400_NAND(n2,R1.2,R1.2) + NET_C(n1.Q, R1.2) + NET_C(n2.Q, C1.1) + NET_C(C1.2, R1.1) + //NETDEV_LOG(log2, C1.2) + //NETDEV_LOG(log2, n1.Q) + //NETDEV_LOG(log3, n2.Q) #endif #if 0 - // astable NE555, 1.13 ms period - NETDEV_R(RA, 5000) - NETDEV_R(RB, 3000) - NETDEV_C(C, 0.15e-6) - NETDEV_NE555(555) + // astable NE555, 1.13 ms period + NETDEV_R(RA, 5000) + NETDEV_R(RB, 3000) + NETDEV_C(C, 0.15e-6) + NETDEV_NE555(555) - NET_C(GND, 555.GND) - NET_C(V5, 555.VCC) + NET_C(GND, 555.GND) + NET_C(V5, 555.VCC) - NET_C(RA.1, 555.VCC) - NET_C(RA.2, 555.DISCH) + NET_C(RA.1, 555.VCC) + NET_C(RA.2, 555.DISCH) - NET_C(RB.1, 555.DISCH) - NET_C(RB.2, 555.TRIG) + NET_C(RB.1, 555.DISCH) + NET_C(RB.2, 555.TRIG) - NET_C(RB.2, 555.THRESH) + NET_C(RB.2, 555.THRESH) - NET_C(555.TRIG, C.1) - NET_C(C.2, GND) - //NETDEV_LOG(log2, C.1) - //NETDEV_LOG(log3, 555.OUT) + NET_C(555.TRIG, C.1) + NET_C(C.2, GND) + //NETDEV_LOG(log2, C.1) + //NETDEV_LOG(log3, 555.OUT) #endif #if 0 - NETDEV_BC238B(Q) - NETDEV_R(RB, 1000) - NETDEV_R(RC, 1000) - - NET_C(RC.1, V5) - NET_C(RC.2, Q.C) - NET_C(RB.1, 128H) - NET_C(RB.2, Q.B) - NET_C(Q.E, GND) - //NETDEV_LOG(logB, Q.B) - //NETDEV_LOG(logC, Q.C) + NETDEV_BC238B(Q) + NETDEV_R(RB, 1000) + NETDEV_R(RC, 1000) + + NET_C(RC.1, V5) + NET_C(RC.2, Q.C) + NET_C(RB.1, 128H) + NET_C(RB.2, Q.B) + NET_C(Q.E, GND) + //NETDEV_LOG(logB, Q.B) + //NETDEV_LOG(logC, Q.C) #endif #if 0 - NETDEV_VCVS(VV) - NETDEV_R(R1, 1000) - NETDEV_R(R2, 10000) - - NET_C(V5, R1.1) - NET_C(R1.2, VV.IN) - NET_C(R2.1, VV.OP) - NET_C(R2.2, VV.IN) - NET_C(VV.ON, GND) - NET_C(VV.IP, GND) - NETDEV_LOG(logX, VV.OP) + NETDEV_VCVS(VV) + NETDEV_R(R1, 1000) + NETDEV_R(R2, 10000) + + NET_C(V5, R1.1) + NET_C(R1.2, VV.IN) + NET_C(R2.1, VV.OP) + NET_C(R2.2, VV.IN) + NET_C(VV.ON, GND) + NET_C(VV.IP, GND) + NETDEV_LOG(logX, VV.OP) #endif #if 0 - NETDEV_VCCS(VV) - NETDEV_PARAM(VV.G, 100000) // typical OP-AMP amplification - NETDEV_R(R1, 1000) - NETDEV_R(R2, 1) - NETDEV_R(R3, 10000) - - NET_C(4V, R1.1) - NET_C(R1.2, VV.IN) - NET_C(R2.1, VV.OP) - NET_C(R3.1, VV.IN) - NET_C(R3.2, VV.OP) - NET_C(R2.2, GND) - NET_C(VV.ON, GND) - NET_C(VV.IP, GND) - //NETDEV_LOG(logX, VV.OP) - //NETDEV_LOG(logY, 4V) + NETDEV_VCCS(VV) + NETDEV_PARAM(VV.G, 100000) // typical OP-AMP amplification + NETDEV_R(R1, 1000) + NETDEV_R(R2, 1) + NETDEV_R(R3, 10000) + + NET_C(4V, R1.1) + NET_C(R1.2, VV.IN) + NET_C(R2.1, VV.OP) + NET_C(R3.1, VV.IN) + NET_C(R3.2, VV.OP) + NET_C(R2.2, GND) + NET_C(VV.ON, GND) + NET_C(VV.IP, GND) + //NETDEV_LOG(logX, VV.OP) + //NETDEV_LOG(logY, 4V) #endif #if 0 - NETDEV_VCVS(VV) - NETDEV_PARAM(VV.G, 100000) // typical OP-AMP amplification - NETDEV_PARAM(VV.RO, 50) // typical OP-AMP amplification - NETDEV_R(R1, 1000) - NETDEV_R(R3, 10000) // ==> 10x amplification (inverting) - - NET_C(4V, R1.1) - NET_C(R1.2, VV.IN) - NET_C(R3.1, VV.IN) - NET_C(R3.2, VV.OP) - NET_C(VV.ON, GND) - NET_C(VV.IP, GND) - NETDEV_LOG(logX, VV.OP) - NETDEV_LOG(logY, 4V) + NETDEV_VCVS(VV) + NETDEV_PARAM(VV.G, 100000) // typical OP-AMP amplification + NETDEV_PARAM(VV.RO, 50) // typical OP-AMP amplification + NETDEV_R(R1, 1000) + NETDEV_R(R3, 10000) // ==> 10x amplification (inverting) + + NET_C(4V, R1.1) + NET_C(R1.2, VV.IN) + NET_C(R3.1, VV.IN) + NET_C(R3.2, VV.OP) + NET_C(VV.ON, GND) + NET_C(VV.IP, GND) + NETDEV_LOG(logX, VV.OP) + NETDEV_LOG(logY, 4V) #endif #if 0 - // Impedance converter with resistor - NETDEV_VCVS(VV) - NETDEV_PARAM(VV.G, 100000) // typical OP-AMP amplification - NETDEV_PARAM(VV.RO, 50) // typical OP-AMP amplification - NETDEV_R(R3, 10000) - - NET_C(4V, VV.IP) - NET_C(R3.1, VV.IN) - NET_C(R3.2, VV.OP) - NET_C(VV.ON, GND) - NETDEV_LOG(logX, VV.OP) - NETDEV_LOG(logY, 4V) + // Impedance converter with resistor + NETDEV_VCVS(VV) + NETDEV_PARAM(VV.G, 100000) // typical OP-AMP amplification + NETDEV_PARAM(VV.RO, 50) // typical OP-AMP amplification + NETDEV_R(R3, 10000) + + NET_C(4V, VV.IP) + NET_C(R3.1, VV.IN) + NET_C(R3.2, VV.OP) + NET_C(VV.ON, GND) + NETDEV_LOG(logX, VV.OP) + NETDEV_LOG(logY, 4V) #endif #if 0 - // Impedance converter without resistor - NETDEV_VCVS(VV) - NETDEV_PARAM(VV.G, 100000) // typical OP-AMP amplification - NETDEV_PARAM(VV.RO, 50) // typical OP-AMP amplification + // Impedance converter without resistor + NETDEV_VCVS(VV) + NETDEV_PARAM(VV.G, 100000) // typical OP-AMP amplification + NETDEV_PARAM(VV.RO, 50) // typical OP-AMP amplification - NET_C(4V, VV.IP) - NET_C(VV.IN, VV.OP) - NET_C(VV.ON, GND) - NETDEV_LOG(logX, VV.OP) - NETDEV_LOG(logY, 4V) + NET_C(4V, VV.IP) + NET_C(VV.IN, VV.OP) + NET_C(VV.ON, GND) + NETDEV_LOG(logX, VV.OP) + NETDEV_LOG(logY, 4V) #endif #if 0 - /* Impedance converter current source opamp model from - * - * http://www.ecircuitcenter.com/Circuits/opmodel1/opmodel1.htm - * - * Bandwidth 10Mhz - * - */ - NETDEV_VCCS(G1) - NETDEV_PARAM(G1.G, 100) // typical OP-AMP amplification 100 * 1000 = 100000 - NETDEV_R(RP1, 1000) - NETDEV_C(CP1, 1.59e-6) // <== change to 1.59e-3 for 10Khz bandwidth - NETDEV_VCVS(EBUF) - NETDEV_PARAM(EBUF.RO, 50) - NETDEV_PARAM(EBUF.G, 1) - - NET_C(G1.IP, 4V) - NET_C(G1.IN, EBUF.OP) - 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) - NET_C(EBUF.IP, RP1.1) - - //NETDEV_LOG(logX, EBUF.OP) - //NETDEV_LOG(logY, 4V) + /* Impedance converter current source opamp model from + * + * http://www.ecircuitcenter.com/Circuits/opmodel1/opmodel1.htm + * + * Bandwidth 10Mhz + * + */ + NETDEV_VCCS(G1) + NETDEV_PARAM(G1.G, 100) // typical OP-AMP amplification 100 * 1000 = 100000 + NETDEV_R(RP1, 1000) + NETDEV_C(CP1, 1.59e-6) // <== change to 1.59e-3 for 10Khz bandwidth + NETDEV_VCVS(EBUF) + NETDEV_PARAM(EBUF.RO, 50) + NETDEV_PARAM(EBUF.G, 1) + + NET_C(G1.IP, 4V) + NET_C(G1.IN, EBUF.OP) + 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) + NET_C(EBUF.IP, RP1.1) + + //NETDEV_LOG(logX, EBUF.OP) + //NETDEV_LOG(logY, 4V) #endif @@ -794,7 +794,7 @@ public: m_dac(*this, "dac"), /* just to have a sound device */ m_srst(*this, "maincpu", "SRST"), m_p_P0(*this, "maincpu", "ic_b9_POT.DIAL"), - m_p_P1(*this, "maincpu", "ic_a9_POT.DIAL"), + m_p_P1(*this, "maincpu", "ic_a9_POT.DIAL"), m_sw1a(*this, "maincpu", "sw1a.POS"), m_sw1b(*this, "maincpu", "sw1b.POS"), m_p_R0(*this, "maincpu", "ic_a9_R.R"), @@ -809,8 +809,8 @@ public: // sub devices netlist_mame_device::required_output<netlist_logic_output_t> m_srst; - netlist_mame_device::required_param<netlist_param_double_t> m_p_P0; - netlist_mame_device::required_param<netlist_param_double_t> m_p_P1; + netlist_mame_device::required_param<netlist_param_double_t> m_p_P0; + netlist_mame_device::required_param<netlist_param_double_t> m_p_P1; netlist_mame_device::required_param<netlist_param_int_t> m_sw1a; netlist_mame_device::required_param<netlist_param_int_t> m_sw1b; netlist_mame_device::required_param<netlist_param_double_t> m_p_R0; @@ -847,19 +847,19 @@ private: static NETLIST_START(pong) - //NETLIST_INCLUDE(pong_schematics) - NETLIST_MEMREGION("maincpu") + //NETLIST_INCLUDE(pong_schematics) + NETLIST_MEMREGION("maincpu") - NETDEV_ANALOG_CALLBACK(sound_cb, sound, pong_state, sound_cb, "") - NETDEV_ANALOG_CALLBACK(video_cb, videomix, pong_state, video_cb, "") + NETDEV_ANALOG_CALLBACK(sound_cb, sound, pong_state, sound_cb, "") + NETDEV_ANALOG_CALLBACK(video_cb, videomix, pong_state, video_cb, "") NETLIST_END static NETLIST_START(pong_fast) - NETLIST_INCLUDE(pong_schematics) + NETLIST_INCLUDE(pong_schematics) - NETDEV_ANALOG_CALLBACK(sound_cb, sound, pong_state, sound_cb, "") - NETDEV_ANALOG_CALLBACK(video_cb, videomix, pong_state, video_cb, "") + NETDEV_ANALOG_CALLBACK(sound_cb, sound, pong_state, sound_cb, "") + NETDEV_ANALOG_CALLBACK(video_cb, videomix, pong_state, video_cb, "") NETLIST_END @@ -891,11 +891,11 @@ INPUT_CHANGED_MEMBER(pong_state::input_changed) double fac = (double) newval / (double) 256; fac = (exp(fac) - 1.0) / (exp(1.0) -1.0) ; - switch (numpad) - { - case IC_PADDLE1: m_p_P0->setTo(fac); break; - case IC_PADDLE2: m_p_P1->setTo(fac); break; - } + switch (numpad) + { + case IC_PADDLE1: m_p_P0->setTo(fac); break; + case IC_PADDLE2: m_p_P1->setTo(fac); break; + } break; } case IC_SWITCH: @@ -908,11 +908,11 @@ INPUT_CHANGED_MEMBER(pong_state::input_changed) case IC_VR1: case IC_VR2: pad = (double) newval / (double) 100 * RES_K(50) + RES_K(56); - switch (numpad) - { - case IC_VR1: m_p_R0->setTo(pad); break; - case IC_VR2: m_p_R1->setTo(pad); break; - } + switch (numpad) + { + case IC_VR1: m_p_R0->setTo(pad); break; + case IC_VR2: m_p_R1->setTo(pad); break; + } break; } |