//NETLIST_START(konami2x) void netlist_konami2x(netlist.nlparse_t setup) { netlist.helper h = new netlist.helper(); h.NETLIST_START(setup); h.SOLVER("Solver", 48000); throw new emu_unimplemented(); #if false ANALOG_INPUT("VP5", 5); ANALOG_INPUT("VM5", -5); #endif h.LOCAL_SOURCE("filter", netlist_filter); h.LOCAL_SOURCE("amp", netlist_amp); h.LOCAL_SOURCE("AY1", netlist_AY1); h.LOCAL_SOURCE("AY2", netlist_AY2); h.INCLUDE("AY1"); h.INCLUDE("AY2"); h.NET_C("FCHA1.O", "FCHB1.O", "FCHC1.O", "FCHA2.O", "FCHB2.O", "FCHC2.O"); h.SUBMODEL("amp", "AMP"); h.NET_C("VP5", "AMP.VP"); h.NET_C("GND", "AMP.GND"); h.NET_C("VM5", "AMP.VM"); h.NET_C("FCHA1.O", "AMP.OPAMP"); h.ALIAS("OUT", "AMP.OUT"); h.NETLIST_END(); }
//NETLIST_START(gunfight) public static void netlist_gunfight(netlist.nlparse_t setup) { netlist.helper h = new netlist.helper(); h.NETLIST_START(setup); h.SOLVER("Solver", 48000); h.PARAM("Solver.SORT_TYPE", "ASCENDING"); // For this netlist, ASCENDING turns out to be slightly faster than // the default sort type of PREFER_IDENTITY_TOP_LEFT, but the // difference when using static solvers is very small. h.LOCAL_SOURCE("gunfight_schematics", netlist_gunfight_schematics); h.INCLUDE("gunfight_schematics"); // The amplifying transistors all get 16-volt power. The raw AC power // input from the main power supply to the game logic board is 16.5 // volts, but this is rectified and regulated to about 16 volts via // TIP-31 power transistor Q301 and BZX61-C16 16-volt Zener diode // D304. h.ANALOG_INPUT("I_V16", 16); // 16-volt power for sound amplifiers h.ANALOG_INPUT("I_V5", 5); // 5-volt power for logic input devices h.LOGIC_INPUT("I_LEFT_SHOT", 0, "74XX"); h.LOGIC_INPUT("I_RIGHT_SHOT", 0, "74XX"); h.LOGIC_INPUT("I_LEFT_HIT", 0, "74XX"); h.LOGIC_INPUT("I_RIGHT_HIT", 0, "74XX"); // Power and ground connections for logic input devices: h.NET_C("I_V5.Q", "I_LEFT_SHOT.VCC", "I_RIGHT_SHOT.VCC", "I_LEFT_HIT.VCC", "I_RIGHT_HIT.VCC"); h.NET_C("GND", "I_LEFT_SHOT.GND", "I_RIGHT_SHOT.GND", "I_LEFT_HIT.GND", "I_RIGHT_HIT.GND"); h.ALIAS("IN_LS", "I_LEFT_SHOT.Q"); h.ALIAS("IN_RS", "I_RIGHT_SHOT.Q"); h.ALIAS("IN_LH", "I_LEFT_HIT.Q"); h.ALIAS("IN_RH", "I_RIGHT_HIT.Q"); #if USE_FRONTIERS // These frontiers keep the mostly independant halves of the circuit // (left channel and right channel) from affecting each other and the // noise generator, which speeds up processing substantially while // making no audible change in the output. These seem to be the only // frontiers which improve performance; I haven't been able to find // any additional beneficial ones from examining the circuit and // experimenting. h.OPTIMIZE_FRONTIER("C303.1", RES_M(1), 50); h.OPTIMIZE_FRONTIER("C306.1", RES_M(1), 50); h.OPTIMIZE_FRONTIER("C304.1", RES_M(1), 50); h.OPTIMIZE_FRONTIER("C305.1", RES_M(1), 50); #endif h.NETLIST_END(); }
//NETLIST_START(pong) void netlist_pong(netlist.nlparse_t setup) { netlist.helper h = new netlist.helper(); h.NETLIST_START(setup); h.MEMREGION_SOURCE(this, "maincpu"); h.PARAM("NETLIST.USE_DEACTIVATE", 1); h.INCLUDE("pong_schematics"); h.NETLIST_END(); }
//static NETLIST_START(UA741_DIP8) public static void netlist_UA741_DIP8(netlist.nlparse_t setup) { netlist.helper h = new netlist.helper(); h.NETLIST_START(setup); h.OPAMP("A", "UA741"); h.INCLUDE("opamp_layout_1_7_4"); h.NETLIST_END(); }
/* ---------------------------------------------------------------------------- * Always included * ---------------------------------------------------------------------------*/ //NETLIST_START(base_lib) public static void netlist_base_lib(netlist.nlparse_t setup) { netlist.helper h = new netlist.helper(); h.NETLIST_START(setup); h.NET_REGISTER_DEV("GNDA", "GND"); h.NET_REGISTER_DEV("PARAMETER", "NETLIST"); h.LOCAL_SOURCE("diode_models", netlist_diode_models); h.LOCAL_SOURCE("bjt_models", netlist_bjt_models); h.LOCAL_SOURCE("mosfet_models", netlist_mosfet_models); h.LOCAL_SOURCE("family_models", netlist_family_models); h.EXTERNAL_SOURCE("ttl74xx_lib", nlm_ttl74xx_global.netlist_ttl74xx_lib); h.EXTERNAL_SOURCE("cd4xxx_lib", nlm_cd4xxx_global.netlist_cd4xxx_lib); h.EXTERNAL_SOURCE("opamp_lib", nlm_opamp_global.netlist_opamp_lib); h.EXTERNAL_SOURCE("otheric_lib", nlm_otheric_global.netlist_otheric_lib); h.EXTERNAL_SOURCE("roms_lib", nlm_roms_global.netlist_roms_lib); h.EXTERNAL_SOURCE("modules_lib", nlm_modules_global.netlist_modules_lib); h.INCLUDE("diode_models"); h.INCLUDE("bjt_models"); h.INCLUDE("mosfet_models"); h.INCLUDE("family_models"); h.INCLUDE("ttl74xx_lib"); h.INCLUDE("cd4xxx_lib"); h.INCLUDE("opamp_lib"); h.INCLUDE("otheric_lib"); h.INCLUDE("roms_lib"); h.INCLUDE("modules_lib"); h.NETLIST_END(); }
//static NETLIST_START(UA741_DIP14) public static void netlist_UA741_DIP14(netlist.nlparse_t setup) { netlist.helper h = new netlist.helper(); h.NETLIST_START(setup); throw new emu_unimplemented(); #if false OPAMP(setup, "A", "UA741"); #endif h.INCLUDE("opamp_layout_1_11_6"); h.NETLIST_END(); }
//static NETLIST_START(LM358_DIP) public static void netlist_LM358_DIP(netlist.nlparse_t setup) { netlist.helper h = new netlist.helper(); h.NETLIST_START(setup); throw new emu_unimplemented(); #if false OPAMP(setup, "A", "LM358"); OPAMP(setup, "B", "LM358"); #endif h.INCLUDE("opamp_layout_2_8_4"); h.NETLIST_END(); }
//static NETLIST_START(LM2902_DIP) public static void netlist_LM2902_DIP(netlist.nlparse_t setup) { netlist.helper h = new netlist.helper(); h.NETLIST_START(setup); // Same datasheet and mostly same characteristics as LM324 throw new emu_unimplemented(); #if false OPAMP(setup, "A", "LM324"); OPAMP(setup, "B", "LM324"); OPAMP(setup, "C", "LM324"); OPAMP(setup, "D", "LM324"); #endif h.INCLUDE("opamp_layout_4_4_11"); h.NETLIST_END(); }