1 // license:GPL-2.0+ 2 // copyright-holders: Couriersud 3 4 /*************************************************************************** 5 6 Netlist (pong) included from pong.c 7 8 ***************************************************************************/ 9 10 //#ifndef __PLIB_PREPROCESSOR__ 11 #define NL_PROHIBIT_BASEH_INCLUDE 1 12 #include "netlist/devices/net_lib.h" 13 //#endif 14 15 #define FAST_CLOCK (1) 16 17 NETLIST_START(pongf) 18 19 SOLVER(Solver, 5000) 20 PARAM(Solver.PARALLEL, 0) // Don't do parallel solvers 21 PARAM(Solver.VNTOL, 1e-4) // works and is sufficient 22 PARAM(Solver.DYNAMIC_LTE, 1e-1) // Aggressive timestepping 23 PARAM(Solver.METHOD, "MAT_CR") 24 PARAM(Solver.DYNAMIC_TS, 1) 25 PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 2e-5) 26 PARAM(NETLIST.USE_DEACTIVATE, 1) 27 28 ANALOG_INPUT(V5, 5) 29 ALIAS(VCC, V5) // we need VCC for TTL chips 30 31 TTL_INPUT(high, 1) 32 TTL_INPUT(low, 0) 33 34 #if (FAST_CLOCK) 35 /* abstracting this, performance increases by 60% 36 * No surprise, the clock is extremely expensive */ 37 MAINCLOCK(clk, 7159000.0) 38 #else 39 /* this is the clock circuit in schematics. */ 40 MAINCLOCK(xclk, 14318000.0) //7159000.0*2 41 TTL_74107(ic_f6a, xclk, high, high, high) 42 ALIAS(clk, ic_f6a.Q) 43 #endif 44 45 /* 3V Logic - Just a resistor - the value is not given in schematics */ 46 47 RES(R3V, 50) // Works ... 48 NET_C(R3V.1, V5) 49 ALIAS(V3, R3V.2) 50 51 /* Coin, antenna and startup circuit */ 52 53 ANALOG_INPUT(STOPG, 0) 54 55 ALIAS(SRSTQ, c9f.Q) 56 ALIAS(SRST, c9c.Q) 57 58 /* SRSTQ has a diode to +3V to protect against overvoltage - omitted */ 59 60 TTL_INPUT(antenna, 0) 61 62 ALIAS(runQ, Q1.C) 63 64 TTL_7404_INVERT(e4d, STOPG) 65 66 TTL_7404_INVERT(c9f, c9c.Q) 67 TTL_7404_INVERT(c9c, c9f.Q) 68 69 SWITCH2(coinsw) 70 NET_C(c9c.Q, coinsw.1) 71 NET_C(c9f.Q, coinsw.2) 72 73 NET_C(coinsw.Q, GND) 74 75 /* Antenna circuit */ 76 /* Has a diode to clamp negative voltages - omitted here */ 77 78 QBJT_SW(Q3, "BC237B") 79 NET_C(antenna, Q3.B) 80 NET_C(GND, Q3.E) 81 RES(RX5, 100) 82 CAP(CX1, CAP_U(0.1)) 83 84 NET_C(RX5.1, CX1.1) 85 NET_C(RX5.1, Q3.C) 86 NET_C(RX5.2, GND) 87 NET_C(CX1.2, GND) 88 QBJT_SW(Q1, "BC237B") 89 NET_C(Q1.B, RX5.1) 90 NET_C(Q1.E, GND) 91 92 DIODE(D3, "1N914") 93 NET_C(D3.A, Q1.C) 94 NET_C(D3.K, SRSTQ) 95 96 DIODE(D2, "1N914") 97 RES(RX4, 220) 98 NET_C(D2.K, e4d.Q) 99 NET_C(D2.A, RX4.1) 100 NET_C(RX4.2, Q3.C) 101 102 RES(RX1, 100) 103 RES(RX2, 100) 104 RES(RX3, 330) 105 CAP(CX2, CAP_U(0.1)) 106 107 NET_C(RX3.2, D3.A) 108 NET_C(RX3.1, RX1.2) 109 NET_C(RX1.1, V3) 110 111 NET_C(RX1.1, CX2.1) 112 NET_C(RX1.2, CX2.2) 113 114 QBJT_SW(Q2, "BC556B") 115 NET_C(Q2.E, V3) 116 NET_C(Q2.B, RX1.2) 117 NET_C(Q2.C, RX2.2) 118 119 NET_C(RX2.1, D2.A) 120 121 /* hit logic */ 122 123 TTL_7404_INVERT(hitQ, hit) 124 TTL_7400_NAND(hit, hit1Q, hit2Q) 125 126 TTL_7402_NOR(attractQ, StopG, runQ) 127 TTL_7404_INVERT(attract, attractQ) 128 129 TTL_7420_NAND(ic_h6a, hvidQ, hvidQ, hvidQ, hvidQ) 130 ALIAS(hvid, ic_h6a.Q) 131 132 TTL_7400_NAND(ic_e6c, hvid, hblank) 133 ALIAS(MissQ, ic_e6c.Q) 134 135 TTL_7404_INVERT(ic_d1e, MissQ) 136 TTL_7400_NAND(ic_e1a, ic_d1e.Q, attractQ) 137 ALIAS(Missed, ic_e1a.Q) 138 139 TTL_7400_NAND(rstspeed, SRSTQ, MissQ) 140 TTL_7400_NAND(StopG, StopG1Q, StopG2Q) 141 ALIAS(L, ic_h3b.Q) 142 ALIAS(R, ic_h3b.QQ) 143 144 TTL_7400_NAND(hit1Q, pad1, ic_g1b.Q) 145 TTL_7400_NAND(hit2Q, pad2, ic_g1b.Q) 146 147 TTL_7400_NAND(ic_g3c, 128H, ic_h3a.QQ) 148 TTL_7427_NOR(ic_g2c, ic_g3c.Q, 256H, vpad1Q) 149 ALIAS(pad1, ic_g2c.Q) 150 TTL_7427_NOR(ic_g2a, ic_g3c.Q, 256HQ, vpad2Q) 151 ALIAS(pad2, ic_g2a.Q) 152 153 // ---------------------------------------------------------------------------------------- 154 // horizontal counter 155 // ---------------------------------------------------------------------------------------- 156 TTL_7493(ic_f8, clk, ic_f8.QA, ic_e7b.QQ, ic_e7b.QQ) // f8, f9, f6b 157 TTL_7493(ic_f9, ic_f8.QD, ic_f9.QA, ic_e7b.QQ, ic_e7b.QQ) // f8, f9, f6b 158 TTL_74107(ic_f6b, ic_f9.QD, high, high, ic_e7b.Q) 159 TTL_7430_NAND(ic_f7, ic_f8.QB, ic_f8.QC, ic_f9.QC, ic_f9.QD, ic_f6b.Q, high, high, high) 160 TTL_7474(ic_e7b, clk, ic_f7, high, high) 161 162 ALIAS(hreset, ic_e7b.QQ) 163 ALIAS(hresetQ, ic_e7b.Q) 164 ALIAS( 4H, ic_f8.QC) 165 ALIAS( 8H, ic_f8.QD) 166 ALIAS( 16H, ic_f9.QA) 167 ALIAS( 32H, ic_f9.QB) 168 ALIAS( 64H, ic_f9.QC) 169 ALIAS(128H, ic_f9.QD) 170 ALIAS(256H, ic_f6b.Q) 171 ALIAS(256HQ, ic_f6b.QQ) 172 173 // ---------------------------------------------------------------------------------------- 174 // vertical counter 175 // ---------------------------------------------------------------------------------------- 176 TTL_7493(ic_e8, hreset, ic_e8.QA, ic_e7a.QQ, ic_e7a.QQ) // e8, e9, d9b 177 TTL_7493(ic_e9, ic_e8.QD,ic_e9.QA, ic_e7a.QQ, ic_e7a.QQ) // e8, e9, d9b 178 TTL_74107(ic_d9b, ic_e9.QD, high, high, ic_e7a.Q) 179 TTL_7474(ic_e7a, hreset, e7a_data, high, high) 180 TTL_7410_NAND(e7a_data, ic_e8.QA, ic_e8.QC, ic_d9b.Q) 181 182 ALIAS(vreset, ic_e7a.QQ) 183 ALIAS( 4V, ic_e8.QC) 184 ALIAS( 8V, ic_e8.QD) 185 ALIAS( 16V, ic_e9.QA) 186 ALIAS( 32V, ic_e9.QB) 187 ALIAS( 64V, ic_e9.QC) 188 ALIAS(128V, ic_e9.QD) 189 ALIAS(256V, ic_d9b.Q) 190 ALIAS(256VQ, ic_d9b.QQ) 191 192 193 // ---------------------------------------------------------------------------------------- 194 // hblank flip flop 195 // ---------------------------------------------------------------------------------------- 196 197 TTL_7400_NAND(ic_g5b, 16H, 64H) 198 199 // the time critical one 200 TTL_7400_NAND(ic_h5c, ic_h5b.Q, hresetQ) 201 TTL_7400_NAND(ic_h5b, ic_h5c.Q, ic_g5b.Q) 202 203 ALIAS(hblank, ic_h5c.Q) 204 ALIAS(hblankQ, ic_h5b.Q) 205 TTL_7400_NAND(hsyncQ, hblank, 32H) 206 207 // ---------------------------------------------------------------------------------------- 208 // vblank flip flop 209 // ---------------------------------------------------------------------------------------- 210 TTL_7402_NOR(ic_f5c, ic_f5d.Q, vreset) 211 TTL_7402_NOR(ic_f5d, ic_f5c.Q, 16V) 212 213 ALIAS(vblank, ic_f5d.Q) 214 ALIAS(vblankQ, ic_f5c.Q) 215 216 TTL_7400_NAND(ic_h5a, 8V, 8V) 217 TTL_7410_NAND(ic_g5a, vblank, 4V, ic_h5a.Q) 218 ALIAS(vsyncQ, ic_g5a.Q) 219 220 // ---------------------------------------------------------------------------------------- 221 // move logic 222 // ---------------------------------------------------------------------------------------- 223 224 TTL_7400_NAND(ic_e1d, hit_sound, ic_e1c.Q) 225 TTL_7400_NAND(ic_e1c, ic_f1.QC, ic_f1.QD) 226 TTL_7493(ic_f1, ic_e1d.Q, ic_f1.QA, rstspeed, rstspeed) 227 228 TTL_7402_NOR(ic_g1d, ic_f1.QC, ic_f1.QD) 229 TTL_7400_NAND(ic_h1a, ic_g1d.Q, ic_g1d.Q) 230 TTL_7400_NAND(ic_h1d, ic_e1c.Q, ic_h1a.Q) 231 232 TTL_7400_NAND(ic_h1c, ic_h1d.Q, vreset) 233 TTL_7400_NAND(ic_h1b, ic_h1a.Q, vreset) 234 TTL_7402_NOR(ic_g1c, 256HQ, vreset) 235 236 TTL_74107(ic_h2a, ic_g1c.Q, ic_h2b.Q, low, ic_h1b.Q) 237 TTL_74107(ic_h2b, ic_g1c.Q, high, move, ic_h1c.Q) 238 239 TTL_7400_NAND(ic_h4a, ic_h2b.Q, ic_h2a.Q) 240 ALIAS(move, ic_h4a.Q) 241 242 TTL_7400_NAND(ic_c1d, SC, attract) 243 TTL_7404_INVERT(ic_d1a, ic_c1d.Q) 244 TTL_7474(ic_h3b, ic_d1a.Q, ic_h3b.QQ, hit1Q, hit2Q) 245 246 TTL_7400_NAND(ic_h4d, ic_h3b.Q, move) 247 TTL_7400_NAND(ic_h4b, ic_h3b.QQ, move) 248 TTL_7400_NAND(ic_h4c, ic_h4d.Q, ic_h4b.Q) 249 ALIAS(Aa, ic_h4c.Q) 250 ALIAS(Ba, ic_h4b.Q) 251 252 // ---------------------------------------------------------------------------------------- 253 // hvid circuit 254 // ---------------------------------------------------------------------------------------- 255 256 TTL_7400_NAND(hball_resetQ, Serve, attractQ) 257 258 TTL_9316(ic_g7, clk, high, hblankQ, hball_resetQ, ic_g5c.Q, Aa, Ba, low, high) 259 TTL_9316(ic_h7, clk, ic_g7.RC, high, hball_resetQ, ic_g5c.Q, low, low, low, high) 260 TTL_74107(ic_g6b, ic_h7.RC, high, high, hball_resetQ) 261 TTL_7410_NAND(ic_g5c, ic_g6b.Q, ic_h7.RC, ic_g7.RC) 262 TTL_7420_NAND(ic_h6b, ic_g6b.Q, ic_h7.RC, ic_g7.QC, ic_g7.QD) 263 ALIAS(hvidQ, ic_h6b.Q) 264 265 // ---------------------------------------------------------------------------------------- 266 // vvid circuit 267 // ---------------------------------------------------------------------------------------- 268 269 TTL_9316(ic_b3, hsyncQ, high, vblankQ, high, ic_b2b.Q, a6, b6, c6, d6) 270 TTL_9316(ic_a3, hsyncQ, ic_b3.RC, high, high, ic_b2b.Q, low, low, low, low) 271 TTL_7400_NAND(ic_b2b, ic_a3.RC, ic_b3.RC) 272 TTL_7410_NAND(ic_e2b, ic_a3.RC, ic_b3.QC, ic_b3.QD) 273 ALIAS(vvidQ, ic_e2b.Q) 274 TTL_7404_INVERT(vvid, vvidQ) // D2D 275 ALIAS(vpos256, ic_a3.RC) 276 ALIAS(vpos32, ic_a3.QB) 277 ALIAS(vpos16, ic_a3.QA) 278 279 // ---------------------------------------------------------------------------------------- 280 // vball ctrl circuit 281 // ---------------------------------------------------------------------------------------- 282 283 TTL_7450_ANDORINVERT(ic_a6a, b1, 256HQ, b2, 256H) 284 TTL_7450_ANDORINVERT(ic_a6b, c1, 256HQ, c2, 256H) 285 TTL_7450_ANDORINVERT(ic_b6b, d1, 256HQ, d2, 256H) 286 287 TTL_7474(ic_a5b, hit, ic_a6a, attractQ, high) 288 TTL_7474(ic_a5a, hit, ic_a6b, attractQ, high) 289 TTL_7474(ic_b5a, hit, ic_b6b, attractQ, high) 290 TTL_74107(ic_h2x, vblank, vvid, vvid, hitQ) // two marked at position h2a ==> this h2x 291 292 TTL_7486_XOR(ic_a4c, ic_a5b.Q, ic_h2x.Q) 293 TTL_7486_XOR(ic_a4b, ic_a5a.Q, ic_h2x.Q) 294 295 TTL_7450_ANDORINVERT(ic_b6a, ic_b5a.Q, ic_h2x.Q, ic_b5a.QQ, ic_h2x.QQ) 296 297 TTL_7404_INVERT(ic_c4a, ic_b6a) 298 299 TTL_7483(ic_b4, ic_a4c, ic_a4b, ic_b6a, low, ic_c4a, high, high, low, low) 300 ALIAS(a6, ic_b4.S1) 301 ALIAS(b6, ic_b4.S2) 302 ALIAS(c6, ic_b4.S3) 303 ALIAS(d6, ic_b4.S4) 304 305 // ---------------------------------------------------------------------------------------- 306 // serve monoflop 307 // ---------------------------------------------------------------------------------------- 308 309 TTL_7404_INVERT(f4_trig, rstspeed) 310 311 RES(ic_f4_serve_R, RES_K(330)) 312 CAP(ic_f4_serve_C, CAP_U(4.7)) 313 NE555(ic_f4_serve) 314 315 NET_C(ic_f4_serve.VCC, V5) 316 NET_C(ic_f4_serve.GND, GND) 317 NET_C(ic_f4_serve.RESET, V5) 318 NET_C(ic_f4_serve_R.1, V5) 319 NET_C(ic_f4_serve_R.2, ic_f4_serve.THRESH) 320 NET_C(ic_f4_serve_R.2, ic_f4_serve.DISCH) 321 NET_C(f4_trig, ic_f4_serve.TRIG) 322 NET_C(ic_f4_serve_R.2, ic_f4_serve_C.1) 323 NET_C(GND, ic_f4_serve_C.2) 324 325 TTL_7427_NOR(ic_e5a, ic_f4_serve.OUT, StopG, runQ) 326 TTL_7474(ic_b5b_serve, pad1, ic_e5a, ic_e5a, high) 327 328 ALIAS(Serve, ic_b5b_serve.QQ) 329 ALIAS(ServeQ, ic_b5b_serve.Q) 330 331 // ---------------------------------------------------------------------------------------- 332 // score logic 333 // ---------------------------------------------------------------------------------------- 334 335 TTL_7474(ic_h3a, 4H, 128H, high, attractQ) 336 337 // ---------------------------------------------------------------------------------------- 338 // sound logic 339 // ---------------------------------------------------------------------------------------- 340 TTL_7474(ic_c2a, vpos256, high, hitQ, high) 341 TTL_74107(ic_f3_topbot, vblank, vvid, vvidQ, ServeQ) 342 343 // ---------------------------------------------------------------------------------------- 344 // monoflop with NE555 determines duration of score sound 345 // ---------------------------------------------------------------------------------------- 346 347 RES(ic_g4_R, RES_K(220)) 348 CAP(ic_g4_C, CAP_U(1)) 349 NE555(ic_g4_sc) 350 ALIAS(SC, ic_g4_sc.OUT) 351 352 NET_C(ic_g4_sc.VCC, V5) 353 NET_C(ic_g4_sc.GND, GND) 354 NET_C(ic_g4_sc.RESET, V5) 355 NET_C(ic_g4_R.1, V5) 356 NET_C(ic_g4_R.2, ic_g4_sc.THRESH) 357 NET_C(ic_g4_R.2, ic_g4_sc.DISCH) 358 NET_C(MissQ, ic_g4_sc.TRIG) 359 NET_C(ic_g4_R.2, ic_g4_C.1) 360 NET_C(GND, ic_g4_C.2) 361 362 ALIAS(hit_sound_en, ic_c2a.QQ) 363 TTL_7400_NAND(hit_sound, hit_sound_en, vpos16) 364 TTL_7400_NAND(score_sound, SC, vpos32) 365 TTL_7400_NAND(topbothitsound, ic_f3_topbot.Q, vpos32) 366 367 TTL_7410_NAND(ic_c4b, topbothitsound, hit_sound, score_sound) 368 TTL_7400_NAND(ic_c1b, ic_c4b.Q, attractQ) 369 ALIAS(sound, ic_c1b.Q) 370 371 372 // ---------------------------------------------------------------------------------------- 373 // paddle1 logic 1 374 // ---------------------------------------------------------------------------------------- 375 376 POT(ic_b9_POT, RES_K(1)) // This is a guess!! 377 PARAM(ic_b9_POT.DIALLOG, 1) // Log Dial ... 378 RES(ic_b9_RPRE, 470) 379 380 NET_C(ic_b9_POT.1, V5) 381 NET_C(ic_b9_POT.3, GND) 382 NET_C(ic_b9_POT.2, ic_b9_RPRE.1) 383 NET_C(ic_b9_RPRE.2, ic_b9.CONT) 384 385 RES(ic_b9_R, RES_K(81)) // Adjustment pot 386 CAP(ic_b9_C, CAP_U(0.1)) 387 DIODE(ic_b9_D, "1N914") 388 NE555(ic_b9) 389 390 NET_C(ic_b9.VCC, V5) 391 NET_C(ic_b9.GND, GND) 392 NET_C(ic_b9.RESET, V5) 393 NET_C(ic_b9_R.1, V5) 394 NET_C(ic_b9_R.2, ic_b9.THRESH) 395 NET_C(ic_b9_R.2, ic_b9_D.A) 396 NET_C(ic_b9_D.K, ic_b9.DISCH) 397 NET_C(256VQ, ic_b9.TRIG) 398 NET_C(ic_b9_R.2, ic_b9_C.1) 399 NET_C(GND, ic_b9_C.2) 400 401 TTL_7404_INVERT(ic_c9b, ic_b9.OUT) 402 TTL_7400_NAND(ic_b7b, ic_a7b.Q, hsyncQ) 403 TTL_7493(ic_b8, ic_b7b.Q, ic_b8.QA, ic_b9.OUT, ic_b9.OUT) 404 TTL_7400_NAND(ic_b7a, ic_c9b.Q, ic_a7b.Q) 405 TTL_7420_NAND(ic_a7b, ic_b8.QA, ic_b8.QB, ic_b8.QC, ic_b8.QD) 406 ALIAS(vpad1Q, ic_b7a.Q) 407 408 ALIAS(b1, ic_b8.QB) 409 ALIAS(c1, ic_b8.QC) 410 ALIAS(d1, ic_b8.QD) 411 412 // ---------------------------------------------------------------------------------------- 413 // paddle1 logic 2 414 // ---------------------------------------------------------------------------------------- 415 416 POT(ic_a9_POT, RES_K(1)) // This is a guess!! 417 PARAM(ic_a9_POT.DIALLOG, 1) // Log Dial ... 418 RES(ic_a9_RPRE, 470) 419 420 NET_C(ic_a9_POT.1, V5) 421 NET_C(ic_a9_POT.3, GND) 422 NET_C(ic_a9_POT.2, ic_a9_RPRE.1) 423 NET_C(ic_a9_RPRE.2, ic_a9.CONT) 424 425 RES(ic_a9_R, RES_K(81)) // Adjustment pot 426 CAP(ic_a9_C, CAP_U(0.1)) 427 DIODE(ic_a9_D, "1N914") 428 NE555(ic_a9) 429 430 NET_C(ic_a9.VCC, V5) 431 NET_C(ic_a9.GND, GND) 432 NET_C(ic_a9.RESET, V5) 433 NET_C(ic_a9_R.1, V5) 434 NET_C(ic_a9_R.2, ic_a9.THRESH) 435 NET_C(ic_a9_R.2, ic_a9_D.A) 436 NET_C(ic_a9_D.K, ic_a9.DISCH) 437 NET_C(256VQ, ic_a9.TRIG) 438 NET_C(ic_a9_R.2, ic_a9_C.1) 439 NET_C(GND, ic_a9_C.2) 440 441 TTL_7404_INVERT(ic_c9a, ic_a9.OUT) 442 TTL_7400_NAND(ic_b7c, ic_a7a.Q, hsyncQ) 443 TTL_7493(ic_a8, ic_b7c.Q, ic_a8.QA, ic_a9.OUT, ic_a9.OUT) 444 TTL_7400_NAND(ic_b7d, ic_c9a.Q, ic_a7a.Q) 445 TTL_7420_NAND(ic_a7a, ic_a8.QA, ic_a8.QB, ic_a8.QC, ic_a8.QD) 446 ALIAS(vpad2Q, ic_b7d.Q) 447 448 ALIAS(b2, ic_a8.QB) 449 ALIAS(c2, ic_a8.QC) 450 ALIAS(d2, ic_a8.QD) 451 452 // ---------------------------------------------------------------------------------------- 453 // C5-EN Logic 454 // ---------------------------------------------------------------------------------------- 455 456 TTL_7404_INVERT(ic_e3a, 128H) 457 TTL_7427_NOR( ic_e3b, 256H, 64H, ic_e3a.Q) 458 TTL_7410_NAND(ic_e2c, 256H, 64H, ic_e3a.Q) 459 TTL_7404_INVERT(ic_e3c, ic_e2c.Q) 460 TTL_7402_NOR(ic_d2c, ic_e3c.Q, ic_e3b.Q) 461 TTL_7404_INVERT(ic_g1a, 32V) 462 TTL_7425_NOR(ic_f2a, ic_g1a.Q, 64V, 128V, ic_d2c.Q) 463 ALIAS(c5_en, ic_f2a.Q) 464 465 // ---------------------------------------------------------------------------------------- 466 // Score logic ... 467 // ---------------------------------------------------------------------------------------- 468 469 TTL_7402_NOR(ic_f5b, L, Missed) 470 TTL_7490(ic_c7, ic_f5b, ic_c7.QA, SRST, SRST, low, low) 471 TTL_74107(ic_c8a, ic_c7.QD, high, high, SRSTQ) 472 SWITCH2(sw1a) 473 PARAM(sw1a.POS, 0) 474 475 NET_C(sw1a.1, V5) 476 NET_C(sw1a.2, ic_c7.QC) 477 478 TTL_7410_NAND(ic_d8a, ic_c7.QA, sw1a.Q, ic_c8a.Q) // would be nand2 for 11 instead of 15 points, need a switch dev! 479 480 ALIAS(StopG1Q, ic_d8a.Q) 481 ALIAS(score1_1, ic_c7.QA) 482 ALIAS(score1_2, ic_c7.QB) 483 ALIAS(score1_4, ic_c7.QC) 484 ALIAS(score1_8, ic_c7.QD) 485 ALIAS(score1_10, ic_c8a.Q) 486 ALIAS(score1_10Q, ic_c8a.QQ) 487 488 TTL_7402_NOR(ic_f5a, R, Missed) 489 TTL_7490(ic_d7, ic_f5a, ic_d7.QA, SRST, SRST, low, low) 490 TTL_74107(ic_c8b, ic_d7.QD, high, high, SRSTQ) 491 SWITCH2(sw1b) 492 PARAM(sw1b.POS, 0) 493 494 NET_C(sw1b.1, V5) 495 NET_C(sw1b.2, ic_d7.QC) 496 497 498 TTL_7410_NAND(ic_d8b, ic_d7.QA, sw1b.Q, ic_c8b.Q) // would be nand2 for 11 instead of 15 points, need a switch dev! 499 500 ALIAS(StopG2Q, ic_d8b.Q) 501 ALIAS(score2_1, ic_d7.QA) 502 ALIAS(score2_2, ic_d7.QB) 503 ALIAS(score2_4, ic_d7.QC) 504 ALIAS(score2_8, ic_d7.QD) 505 ALIAS(score2_10, ic_c8b.Q) 506 ALIAS(score2_10Q, ic_c8b.QQ) 507 508 // ---------------------------------------------------------------------------------------- 509 // Score display 510 // ---------------------------------------------------------------------------------------- 511 512 TTL_74153(ic_d6a, score1_10Q, score1_4, score2_10Q, score2_4, 32H, 64H, low) 513 TTL_74153(ic_d6b, score1_10Q, score1_8, score2_10Q, score2_8, 32H, 64H, low) 514 515 TTL_74153(ic_c6a, high, score1_1, high, score2_1, 32H, 64H, low) 516 TTL_74153(ic_c6b, score1_10Q, score1_2, score2_10Q, score2_2, 32H, 64H, low) 517 518 TTL_7448(ic_c5, ic_c6a.AY, ic_c6b.AY, ic_d6a.AY, ic_d6b.AY, high, c5_en, high) 519 520 TTL_7404_INVERT(ic_e4b, 16H) 521 TTL_7427_NOR(ic_e5c, ic_e4b.Q, 8H, 4H) 522 ALIAS(scoreFE, ic_e5c.Q) 523 524 TTL_7400_NAND(ic_c3d, 8H, 4H) 525 //TTL_7400_NAND(ic_c3d, 4H, 8H) 526 TTL_7402_NOR(ic_d2b, ic_e4b.Q, ic_c3d.Q) 527 ALIAS(scoreBC, ic_d2b.Q) 528 529 TTL_7427_NOR(ic_e5b, ic_e4b.Q, 8V, 4V) 530 ALIAS(scoreA, ic_e5b.Q) 531 532 TTL_7410_NAND(ic_e2a, 16H, 8V, 4V) 533 TTL_7404_INVERT(ic_e4a, ic_e2a.Q) 534 ALIAS(scoreGD, ic_e4a.Q) 535 536 TTL_7404_INVERT(ic_e4c, 16V) 537 538 TTL_7410_NAND(ic_d4a, ic_e4c.Q, ic_c5.f, scoreFE) 539 TTL_7410_NAND(ic_d5c, 16V, ic_c5.e, scoreFE) 540 TTL_7410_NAND(ic_c4c, ic_e4c.Q, ic_c5.b, scoreBC) 541 TTL_7410_NAND(ic_d5a, 16V, ic_c5.c, scoreBC) 542 TTL_7410_NAND(ic_d4c, ic_e4c.Q, ic_c5.a, scoreA) 543 TTL_7410_NAND(ic_d4b, ic_e4c.Q, ic_c5.g, scoreGD) 544 TTL_7410_NAND(ic_d5b, 16V, ic_c5.d, scoreGD) 545 546 TTL_7430_NAND(ic_d3, ic_d4a, ic_d5c, ic_c4c, ic_d5a, ic_d4c, ic_d4b, ic_d5b, high) 547 ALIAS(score, ic_d3.Q) //FIXME 548 549 // net 550 TTL_74107(ic_f3b, clk, 256H, 256HQ, high) 551 TTL_7400_NAND(ic_g3b, ic_f3b.QQ, 256H) 552 TTL_7427_NOR(ic_g2b, ic_g3b.Q, vblank, 4V) 553 ALIAS(net, ic_g2b.Q) 554 555 // ---------------------------------------------------------------------------------------- 556 // video 557 // ---------------------------------------------------------------------------------------- 558 559 TTL_7402_NOR(ic_g1b, hvidQ, vvidQ) 560 TTL_7425_NOR(ic_f2b, ic_g1b.Q, pad1, pad2, net) 561 TTL_7404_INVERT(ic_e4e, ic_f2b.Q) 562 ALIAS(video, ic_e4e.Q) 563 564 TTL_7486_XOR(ic_a4d, hsyncQ, vsyncQ) 565 TTL_7404_INVERT(ic_e4f, ic_a4d.Q) 566 567 RES(RV1, RES_K(1)) 568 RES(RV2, RES_K(1.2)) 569 RES(RV3, RES_K(22)) 570 NET_C(video, RV1.1) 571 NET_C(score, RV2.1) 572 NET_C(ic_e4f.Q, RV3.1) 573 NET_C(RV1.2, RV2.2) 574 NET_C(RV2.2, RV3.2) 575 576 ALIAS(videomix, RV3.2) 577 578 // ---------------------------------------------------------------------------------------- 579 // power terminals 580 // ---------------------------------------------------------------------------------------- 581 582 NET_C(VCC, high.VCC, low.VCC, antenna.VCC) 583 NET_C(GND, high.GND, low.GND, antenna.GND) 584 585 NETLIST_END() 586