1 // license:CC0 2 // copyright-holders:Aaron Giles 3 4 // 5 // Netlist for Frogs 6 // 7 // Derived from the schematics in the Frogs manual. 8 // 9 // Known problems/issues: 10 // 11 // * Croak sound should have a little bit more tonality. 12 // 13 // * Performance work needed 14 // 15 16 #include "netlist/devices/net_lib.h" 17 #include "nl_frogs.h" 18 19 20 // 21 // Optimizations 22 // 23 24 #define ENABLE_FRONTIERS (1) 25 #define UNDERCLOCK_NOISE_GEN (1) 26 27 28 29 // 30 // Hacks 31 // 32 33 34 35 // 36 // Main netlist 37 // 38 39 #define D_1N914(name) DIODE(name, "1N914") 40 41 #define Q_2N4401(name) QBJT_EB(name, "2N4401") 42 #define Q_2N4403(name) QBJT_EB(name, "2N4403") 43 44 // JFET transistors not supported, but this should do the trick 45 #define Q_2N4093(name) MOSFET(name, "NMOS(VTO=-1 CAPMOD=0)") 46 47 #define LM741_DIP UA741_DIP8 48 49 NETLIST_START(frogs) 50 51 SOLVER(Solver, 1000) 52 PARAM(Solver.DYNAMIC_TS, 1) 53 PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 4e-6) 54 55 TTL_INPUT(I_SOUND_0, 0) 56 TTL_INPUT(I_SOUND_1, 0) 57 TTL_INPUT(I_SOUND_2, 0) 58 TTL_INPUT(I_SOUND_3, 0) 59 TTL_INPUT(I_SOUND_4, 0) 60 TTL_INPUT(I_SOUND_5, 0) 61 TTL_INPUT(I_SOUND_6, 0) 62 TTL_INPUT(I_SOUND_7, 0) 63 64 NET_C(GND, I_SOUND_0.GND, I_SOUND_1.GND, I_SOUND_2.GND, I_SOUND_3.GND, I_SOUND_4.GND, I_SOUND_5.GND, I_SOUND_6.GND, I_SOUND_7.GND) 65 NET_C(I_V5, I_SOUND_0.VCC, I_SOUND_1.VCC, I_SOUND_2.VCC, I_SOUND_3.VCC, I_SOUND_4.VCC, I_SOUND_5.VCC, I_SOUND_6.VCC, I_SOUND_7.VCC) 66 67 ALIAS(I_HOP, I_SOUND_0) 68 ALIAS(I_JUMP, I_SOUND_1) 69 ALIAS(I_TONGUE, I_SOUND_2) 70 ALIAS(I_CAPTURE, I_SOUND_3) 71 ALIAS(I_FLY, I_SOUND_4) 72 ALIAS(I_SPLASH, I_SOUND_7) 73 74 ANALOG_INPUT(I_V5, 5) 75 ANALOG_INPUT(I_V12, 12) 76 ANALOG_INPUT(I_VM12, -12) 77 78 RES(R1, RES_K(3.3)) // SPLASH 79 RES(R2, RES_K(3.3)) // SPLASH 80 RES(R3, RES_K(3.3)) // CAPTURE 81 RES(R4, RES_K(3.3)) // CAPTURE 82 RES(R5, RES_K(3.3)) // TONGUE 83 RES(R6, RES_K(3.3)) // TONGUE 84 RES(R7, RES_K(3.3)) // HOP 85 RES(R8, RES_K(3.3)) // HOP 86 RES(R9, RES_K(3.3)) // JUMP 87 RES(R10, RES_K(3.3)) // JUMP 88 RES(R11, RES_K(3.3)) // FLY 89 RES(R12, RES_K(10)) // FLY 90 RES(R13, RES_K(10)) // SPLASH 91 RES(R14, RES_K(4.7)) // SPLASH 92 RES(R15, RES_K(100)) // SPLASH 93 RES(R16, RES_K(4.7)) // CAPTURE 94 RES(R17, RES_K(330)) // CAPTURE 95 RES(R18, RES_K(4.7)) // TONGUE 96 RES(R19, RES_K(100)) // TONGUE 97 RES(R20, RES_K(4.7)) // HOP 98 RES(R21, RES_K(3.3)) // HOP 99 RES(R22, RES_K(4.7)) // JUMP 100 RES(R23, RES_K(150)) // JUMP 101 RES(R24, RES_K(4.7)) // FLY 102 RES(R25, RES_K(22)) // SPLASH 103 RES(R26, 51) // HOP 104 RES(R27, RES_K(10)) // FLY 105 RES(R28, RES_K(22)) // TONGUE 106 RES(R29, RES_K(100)) // TONGUE 107 RES(R30, RES_K(470)) // HOP 108 RES(R31, 220) // HOP 109 RES(R32, RES_K(33)) // HOP (mislabelled R22) 110 RES(R33, 330) // JUMP 111 RES(R34, 820) // JUMP 112 RES(R35, RES_K(100)) // FLY 113 RES(R36, RES_K(2.2)) // FLY 114 RES(R37, RES_K(2.2)) // SPLASH 115 RES(R38, RES_K(10)) // SPLASH 116 RES(R39, RES_K(10)) // SPLASH 117 RES(R40, RES_K(68)) // CAPTURE 118 RES(R41, RES_K(4.7)) // CAPTURE 119 RES(R42, RES_K(1)) // TONGUE 120 RES(R43, RES_K(82)) // HOP 121 RES(R44, RES_K(3.3)) // FLY 122 RES(R45, RES_K(100)) // FLY 123 RES(R46, RES_K(3.3)) // FLY 124 POT(R47, RES_K(50)) // SPLASH 125 RES(R48, RES_K(47)) // CAPTURE 126 RES(R49, RES_K(3.3)) // CAPTURE 127 RES(R50, RES_K(100)) // CAPTURE 128 RES(R51, RES_K(39)) // TONGUE 129 RES(R52, 51) // HOP 130 RES(R53, RES_K(62)) 131 RES(R54, 470) // JUMP 132 RES(R55, RES_K(22)) // JUMP 133 RES(R56, RES_M(2.2)) // JUMP 134 RES(R57, RES_K(22)) 135 RES(R58, RES_K(22)) 136 RES(R59, RES_K(3.3)) // FLY 137 // RES(R60, RES_K(10)) -- final amp 138 RES(R61, RES_K(100)) // SPLASH 139 RES(R62, RES_K(47)) // SPLASH 140 RES(R63, RES_K(33)) // SPLASH 141 RES(R64, RES_K(820)) // CAPTURE 142 RES(R65, RES_K(150)) // CAPTURE 143 RES(R66, 51) // CAPTURE 144 RES(R67, 51) // CAPTURE 145 RES(R68, RES_K(1)) // JUMP 146 RES(R69, RES_K(82)) // JUMP 147 RES(R70, 51) // JUMP 148 RES(R71, RES_K(4.7)) // JUMP 149 RES(R72, RES_K(27)) // FLY 150 RES(R73, RES_K(10)) // FLY 151 RES(R74, RES_K(1)) // FLY 152 RES(R75, RES_K(10)) // JUMP 153 RES(R76, RES_K(10)) // JUMP 154 RES(R77, 560) // JUMP 155 RES(R78, RES_K(10)) // JUMP 156 RES(R79, RES_K(10)) // JUMP 157 RES(R80, RES_K(39)) // FLY 158 RES(R81, RES_K(100)) // FLY 159 RES(R82, RES_K(10)) // FLY 160 RES(R83, RES_K(100)) // JUMP 161 RES(R84, RES_K(1)) // JUMP 162 RES(R85, RES_K(10)) // JUMP 163 RES(R86, RES_K(1)) // FLY 164 RES(R87, RES_K(100)) // FLY 165 RES(R88, RES_K(82)) // FLY 166 RES(R90, RES_K(56)) // MIXER 167 POT(R91, RES_K(100)) 168 POT(R92, RES_M(1)) 169 POT(R93, RES_M(1)) 170 POT(R94, RES_M(1)) 171 POT(R95, RES_M(1)) 172 POT(R96, RES_K(50)) 173 174 // CAP(C1, CAP_U(10)) 175 // CAP(C2, CAP_U(10)) 176 CAP(C3, CAP_U(0.047)) 177 CAP(C4, CAP_U(1)) 178 CAP(C5, CAP_U(1)) 179 CAP(C6, CAP_U(0.1)) 180 CAP(C7, CAP_U(0.1)) 181 CAP(C8, CAP_U(1)) 182 CAP(C9, CAP_U(0.1)) 183 CAP(C10, CAP_U(0.1)) 184 CAP(C11, CAP_U(0.05)) 185 CAP(C12, CAP_U(0.05)) 186 CAP(C13, CAP_U(0.05)) 187 CAP(C14, CAP_U(0.05)) 188 CAP(C15, CAP_U(0.05)) 189 CAP(C16, CAP_U(0.05)) 190 CAP(C17, CAP_U(0.05)) 191 CAP(C18, CAP_U(0.05)) 192 CAP(C19, CAP_U(0.05)) 193 CAP(C20, CAP_U(0.05)) 194 CAP(C21, CAP_U(0.05)) 195 CAP(C22, CAP_U(2.2)) 196 CAP(C23, CAP_U(10)) 197 CAP(C24, CAP_U(0.1)) 198 CAP(C25, CAP_U(4.7)) 199 CAP(C26, CAP_U(0.05)) 200 CAP(C27, CAP_U(1)) 201 CAP(C28, CAP_U(0.05)) 202 CAP(C29, CAP_U(0.047)) 203 CAP(C30, CAP_U(10)) 204 CAP(C31, CAP_U(0.47)) 205 CAP(C32, CAP_U(0.47)) 206 CAP(C33, CAP_U(0.05)) 207 // CAP(C34, CAP_U(0.05)) -- final amp 208 // CAP(C35, CAP_U(0.05)) -- final amp 209 CAP(C36, CAP_U(0.05)) 210 CAP(C37, CAP_U(0.05)) 211 CAP(C38, CAP_U(0.05)) 212 CAP(C39, CAP_U(0.1)) 213 CAP(C40, CAP_U(0.1)) 214 CAP(C41, CAP_U(0.05)) 215 CAP(C42, CAP_U(0.05)) 216 CAP(C43, CAP_U(0.05)) 217 CAP(C44, CAP_U(10)) 218 CAP(C45, CAP_U(0.01)) 219 CAP(C46, CAP_U(0.01)) 220 CAP(C47, CAP_U(1)) 221 CAP(C48, CAP_U(0.05)) 222 CAP(C49, CAP_U(0.1)) 223 CAP(C50, CAP_U(0.01)) 224 CAP(C51, CAP_U(0.01)) 225 CAP(C52, CAP_U(0.1)) 226 CAP(C53, CAP_U(0.05)) 227 CAP(C54, CAP_U(0.01)) 228 CAP(C55, CAP_U(0.05)) 229 CAP(C56, CAP_U(0.05)) 230 CAP(C57, CAP_U(2.2)) 231 // CAP(C58, CAP_U(0.1)) -- final amp 232 CAP(C59, CAP_U(0.05)) 233 CAP(C60, CAP_U(0.05)) 234 CAP(C61, CAP_U(0.05)) 235 CAP(C62, CAP_U(0.1)) 236 CAP(C63, CAP_U(0.05)) 237 CAP(C64, CAP_U(0.05)) 238 CAP(C65, CAP_U(0.1)) 239 CAP(C66, CAP_U(2.2)) 240 CAP(C67, CAP_U(0.05)) 241 CAP(C68, CAP_U(0.05)) 242 CAP(C69, CAP_U(0.05)) 243 CAP(C70, CAP_U(0.05)) 244 CAP(C71, CAP_U(0.05)) 245 CAP(C72, CAP_U(1)) 246 CAP(C73, CAP_U(0.047)) 247 CAP(C74, CAP_U(0.05)) 248 249 D_1N914(D1) 250 D_1N914(D2) 251 D_1N914(D3) 252 D_1N914(D4) 253 D_1N914(D5) 254 D_1N914(D6) 255 D_1N914(D7) 256 D_1N914(D8) 257 D_1N914(D9) 258 259 Q_2N4401(Q1) 260 Q_2N4401(Q2) 261 Q_2N4401(Q3) 262 Q_2N4401(Q4) 263 Q_2N4401(Q5) 264 Q_2N4401(Q6) 265 Q_2N4401(Q7) 266 Q_2N4403(Q8) 267 Q_2N4403(Q9) 268 Q_2N4093(Q10) 269 Q_2N4401(Q11) 270 Q_2N4401(Q12) 271 Q_2N4403(Q13) 272 Q_2N4401(Q14) 273 Q_2N4403(Q15) 274 Q_2N4401(Q16) 275 Q_2N4403(Q17) 276 Q_2N4093(Q18) 277 Q_2N4401(Q19) 278 Q_2N4401(Q20) 279 Q_2N4401(Q21) 280 281 MM5837_DIP(U1) // Noise Generator 282 #if (UNDERCLOCK_NOISE_GEN) 283 PARAM(U1.FREQ, 24000) 284 #endif 285 NE555_DIP(U2) // Timer 286 NE555_DIP(U3) // Timer 287 NE555_DIP(U4) // Timer 288 NE555_DIP(U5) // Timer 289 NE555_DIP(U6) // Timer 290 NE555_DIP(U7) // Timer 291 LM741_DIP(U8) // Op. Amp. 292 NE555_DIP(U9) // Timer 293 LM741_DIP(U10) // Op. Amp. 294 LM741_DIP(U11) // Op. Amp. 295 NE555_DIP(U12) // Timer 296 // LM741_DIP(U13) // Op. Amp. -- final amp 297 LM741_DIP(U14) // Op. Amp. 298 NE555_DIP(U15) // Timer 299 LM741_DIP(U16) // Op. Amp. 300 LM741_DIP(U17) // Op. Amp. 301 LM741_DIP(U18) // Op. Amp. 302 NE555_DIP(U19) // Timer 303 LM741_DIP(U20) // Op. Amp. 304 305 // 306 // JUMP 307 // 308 309 NET_C(I_V12, R22.2, U6.4, U6.8, C68.2, R23.2) 310 NET_C(GND, R10.1, Q2.E, C15.1, U6.1, C7.1, R34.1, U11.3, C71.1, C70.1, R54.1, Q19.B, D7.A, R84.1, R75.1, C64.1, R77.1, U19.1, C53.1, C52.1, U16.3) 311 NET_C(I_JUMP, R9.1) 312 NET_C(R9.2, R10.2, Q2.B) 313 NET_C(Q2.C, R22.1, U6.2) 314 NET_C(C15.2, U6.5) 315 NET_C(C68.1, GND) 316 NET_C(R23.1, U6.7, U6.6, C7.2) 317 NET_C(U6.3, C22.1, R33.1) 318 NET_C(R33.2, Q8.E) 319 NET_C(Q8.B, GND) 320 NET_C(Q8.C, C44.1, R57.1) 321 NET_C(C44.2, R70.1) 322 NET_C(R57.2, R58.2, Q16.B) 323 NET_C(Q16.E, R71.2) 324 NET_C(R71.1, R58.1, R70.2, I_VM12) 325 NET_C(R34.2, C22.2, C32.1, C31.1) 326 NET_C(C32.2, R56.1, U11.2) 327 NET_C(R56.2, C31.2, U11.6, R55.1) 328 NET_C(I_V12, C70.2, U11.7) 329 NET_C(I_VM12, U11.4, C71.2) 330 NET_C(R55.2, R54.2, Q21.B) 331 NET_C(Q21.E, D7.K, Q16.C) 332 NET_C(Q19.E, Q21.C, Q20.E) 333 NET_C(Q19.C, R76.1, R85.1, U20.2) 334 NET_C(I_V12, R76.2, R78.2) 335 NET_C(R78.1, Q20.C, U20.3, R75.2) 336 NET_C(Q20.B, R84.2, R83.1) 337 NET_C(R85.2, U20.6, R79.1) 338 NET_C(I_V12, U20.7, C63.2) 339 NET_C(C63.1, GND) 340 NET_C(I_VM12, U20.4, C64.2) 341 NET_C(R83.2, C62.1) 342 NET_C(R79.2, R77.2, C54.1, C51.1) 343 NET_C(C62.2, U19.3) 344 NET_C(I_V12, U19.4, C61.2, U19.8, R68.2) 345 NET_C(C61.1, GND) 346 NET_C(C53.2, U19.5) 347 NET_C(U19.2, U19.6, R69.1, C52.2) 348 NET_C(U19.7, R69.2, R68.1) 349 NET_C(C54.2, U16.2, R53.1) 350 NET_C(R53.2, U16.6, C51.2) 351 NET_C(I_V12, U16.7, C42.2) 352 NET_C(C42.1, GND) 353 NET_C(I_VM12, U16.4, C43.2) 354 NET_C(C43.1, GND) 355 ALIAS(BOING, U16.6) 356 357 // 358 // TONGUE 359 // 360 361 NET_C(I_V12, C20.2, R18.2, U4.4, U4.8, R19.2, Q11.C, R28.2, R42.2, U15.4, U15.8, C48.2) 362 NET_C(GND, R6.1, Q4.E, C13.1, U4.1, C5.2, R51.1, C49.1, U15.1, C41.1, C48.1) 363 NET_C(I_TONGUE, R5.1) 364 NET_C(R5.2, R6.2, Q4.B) 365 NET_C(C20.1, GND) 366 NET_C(Q4.C, R18.1, U4.2) 367 NET_C(C13.2, U4.5) 368 NET_C(C5.1, U4.7, U4.6, R19.1, R29.1) 369 RES(RU4, RES_K(100)) // netlist doesn't like unconnected 370 NET_C(RU4.1, U4.3) // 555 outputs, so run it through 371 NET_C(RU4.2, GND) // a 100k resistor to ground 372 NET_C(R29.2, Q11.B) 373 NET_C(Q11.E, Q12.B) 374 NET_C(Q12.E, R51.2) 375 NET_C(Q12.C, R28.1, Q13.B) 376 NET_C(Q13.E, R42.1) 377 NET_C(Q13.C, C49.2, U15.2, U15.6, U15.7, C50.1) 378 NET_C(U15.5, C41.2) 379 RES(RU15, RES_K(100)) // netlist doesn't like unconnected 380 NET_C(RU15.1, U15.3) // 555 outputs, so run it through 381 NET_C(RU15.2, GND) // a 100k resistor to ground 382 ALIAS(ZIP, C50.2) 383 384 // 385 // HOP 386 // 387 388 NET_C(I_V12, C69.2, R20.2, U5.4, U5.8, R21.2) 389 NET_C(GND, R8.1, Q3.E, C14.1, U5.1, C6.1, C30.2, Q9.B, R52.1, U10.3) 390 NET_C(I_HOP, R7.1) 391 NET_C(R7.2, R8.2, Q3.B) 392 NET_C(C69.1, GND) 393 NET_C(Q3.C, R20.1, U5.2) 394 NET_C(U5.5, C14.2) 395 NET_C(R21.1, U5.6, U5.7, C6.2) 396 NET_C(U5.3, D2.A, R31.1) 397 NET_C(D2.K, R32.2, C30.1) 398 NET_C(R32.1, Q9.E) 399 NET_C(Q9.C, C72.1, R43.2, Q10.G) 400 NET_C(C72.2, R26.2) 401 NET_C(I_VM12, R26.1, R43.1) 402 NET_C(R31.2, Q10.D, C29.1, C73.1) 403 NET_C(Q10.S, R52.2) 404 NET_C(C29.2, U10.2, R30.1) 405 NET_C(C73.2, R30.2, U10.6) 406 NET_C(I_V12, U10.7, C28.2) 407 NET_C(I_VM12, U10.4, C21.2) 408 NET_C(C21.1, GND) 409 NET_C(C28.1, GND) 410 ALIAS(HOP, U10.6) 411 412 // 413 // CAPTURE 414 // 415 416 NET_C(I_V12, R16.2, C18.2, U3.4, U3.8, R17.2, C74.2, U9.8, R41.2) 417 NET_C(GND, R4.1, Q5.E, C12.1, U3.1, C4.2, C19.1, U9.1, C27.2, R65.1, Q17.B, R66.1, U8.3, C18.1) 418 NET_C(I_CAPTURE, R3.1) 419 NET_C(R3.2, R4.2, Q5.B) 420 NET_C(Q5.C, R16.1, U3.2) 421 NET_C(U3.5, C12.2) 422 NET_C(R17.1, U3.6, U3.7, C4.1) 423 NET_C(U3.3, U9.4) 424 NET_C(C74.1, GND) 425 NET_C(C19.2, U9.5) 426 NET_C(R41.1, R48.2, D4.A, U9.7) 427 NET_C(U9.2, U9.6, R48.1, D4.K, C27.1) 428 NET_C(U9.3, R50.2, R49.1) 429 NET_C(R65.2, R64.2, C47.1, Q17.C, Q18.G) 430 NET_C(I_VM12, R64.1, R67.1) 431 NET_C(R67.2, C47.2) 432 NET_C(R50.1, Q17.E) 433 NET_C(R49.2, Q18.D, C39.1, C40.1) 434 NET_C(Q18.S, R66.2) 435 NET_C(C39.2, R40.1, U8.2) 436 NET_C(C40.2, R40.2, U8.6) 437 NET_C(I_V12, U8.7, C38.2) 438 NET_C(C38.1, GND) 439 NET_C(I_VM12, U8.4, C26.2) 440 NET_C(C26.1, GND) 441 ALIAS(CROAK, U8.6) 442 443 // 444 // SPLASH 445 // 446 447 NET_C(I_V12, R14.2, C17.2, U2.4, U2.8, R15.2, C25.1, R47.3, Q15.E, U1.4) 448 NET_C(GND, R2.1, Q6.E, C11.1, U2.1, C3.1, R38.1, Q14.E, U1.1, R62.1, R63.1, C37.1) 449 NET_C(I_SPLASH, R1.1) 450 NET_C(R1.2, R2.2, Q6.B) 451 NET_C(Q6.C, R14.1, U2.2) 452 NET_C(U2.5, C11.2) 453 NET_C(C17.1, GND) 454 NET_C(U2.6, U2.7, R15.1, C3.2) 455 NET_C(U2.3, R39.1) 456 NET_C(R39.2, R38.2, Q14.B) 457 NET_C(Q14.C, R37.1) 458 NET_C(R37.2, C25.2, R47.1, R25.1) 459 NET_C(R25.2, C10.1, R13.2, C9.1) 460 NET_C(Q15.C, C10.2) 461 NET_C(R13.1, D1.K) 462 NET_C(D1.A, D5.K) 463 NET_C(D5.A, U1.3) 464 NET_C(U1.2, I_VM12) 465 NET_C(C9.2, R63.2, U14.3) 466 NET_C(R62.2, U14.2, R61.1) 467 NET_C(R61.2, U14.6) 468 NET_C(I_V12, U14.7, C36.2) 469 NET_C(C36.1, GND) 470 NET_C(I_VM12, C37.2, U14.4) 471 ALIAS(SPLASH, U14.6) 472 473 // 474 // FLY 475 // 476 477 NET_C(I_V12, R12.2, R24.2, C67.2, U7.8, R35.2, C33.2, U12.8, R44.2, U17.7, C55.2, R87.2) 478 NET_C(GND, R11.1, C16.1, U7.1, C8.2, Q7.E, C23.2, U12.1, C24.1, R72.1, C56.1, R74.1, R88.1, C66.2, R86.1, U18.3, C60.1) 479 NET_C(I_FLY, Q1.E) 480 NET_C(R11.2, R12.1, Q1.B) 481 NET_C(Q1.C, R24.1, U7.2, U7.4, U12.4) 482 NET_C(C16.2, U7.5) 483 NET_C(C67.1, GND) 484 NET_C(R35.1, U7.6, U7.7, C8.1) 485 NET_C(U7.3, R27.1, D3.A) 486 NET_C(R27.2, Q7.B) 487 NET_C(Q7.C, R36.1) 488 NET_C(R36.2, C23.1, U12.5) 489 NET_C(C33.1, GND) 490 NET_C(U12.2, U12.6, D6.K, R45.1, C24.2) 491 NET_C(U12.7, D6.A, R45.2, R44.1) 492 NET_C(U12.3, C46.1) 493 NET_C(C46.2, C45.1, R59.1) 494 NET_C(C45.2, R72.2, U17.3) 495 NET_C(R59.2, U17.2, U17.6, C57.1) 496 NET_C(I_VM12, U17.4, C56.2) 497 NET_C(C55.1, GND) 498 NET_C(C57.2, R73.1) 499 NET_C(D3.K, R46.1) 500 NET_C(R46.2, R87.1, R80.2, R88.2, C66.1) 501 NET_C(R73.2, R74.2, D8.K) 502 NET_C(D8.A, R80.1, D9.A) 503 NET_C(D9.K, R86.2, C65.1) 504 NET_C(C65.2, R82.1) 505 NET_C(R82.2, U18.2, R81.1) 506 NET_C(R81.2, U18.6) 507 NET_C(I_V12, U18.7, C59.2) 508 NET_C(I_VM12, U18.4, C60.2) 509 NET_C(C59.1, GND) 510 ALIAS(BUZZZ, U18.6) 511 512 // 513 // Mixer 514 // 515 516 #if (ENABLE_FRONTIERS) 517 AFUNC(BOING_F, 1, "A0") 518 NET_C(BOING, BOING_F.A0) 519 NET_C(BOING_F.Q, R95.1) 520 521 AFUNC(ZIP_F, 1, "A0") 522 NET_C(ZIP, ZIP_F.A0) 523 NET_C(ZIP_F.Q, R93.1) 524 525 AFUNC(HOP_F, 1, "A0") 526 NET_C(HOP, HOP_F.A0) 527 NET_C(HOP_F.Q, R94.1) 528 529 AFUNC(CROAK_F, 1, "A0") 530 NET_C(CROAK, CROAK_F.A0) 531 NET_C(CROAK_F.Q, R92.1) 532 533 AFUNC(SPLASH_F, 1, "A0") 534 NET_C(SPLASH, SPLASH_F.A0) 535 NET_C(SPLASH_F.Q, R91.1) 536 537 AFUNC(BUZZZ_F, 1, "A0") 538 NET_C(BUZZZ, BUZZZ_F.A0) 539 NET_C(BUZZZ_F.Q, R96.1) 540 #else 541 NET_C(BOING, R95.1) 542 NET_C(ZIP, R93.1) 543 NET_C(HOP, R94.1) 544 NET_C(CROAK, R92.1) 545 NET_C(SPLASH, R91.1) 546 NET_C(BUZZZ, R96.1) 547 #endif 548 549 NET_C(R95.3, R93.3, R94.3, R92.3, R91.3, R96.3, R90.1) 550 ALIAS(OUTPUT, R90.1) 551 NET_C(R90.2, GND) 552 553 // 554 // Unconnected inputs 555 // 556 557 558 // 559 // Unconnected outputs 560 // 561 562 #if (ENABLE_FRONTIERS) 563 #define RXX 192 564 OPTIMIZE_FRONTIER(BOING, RES_M(1), RXX) 565 #endif 566 567 NETLIST_END() 568