INPUT_PORTS_END void superga2_state::kuzmich(machine_config &config) { /* basic machine hardware */ M6502(config, m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &superga2_state::kuzmich_map); APPLE2_VIDEO(config, m_video, XTAL(14'318'181)); APPLE2_COMMON(config, m_a2common, XTAL(14'318'181)); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(1021800*14, (65*7)*2, 0, (40*7)*2, 262, 0, 192); m_screen->set_screen_update(FUNC(superga2_state::screen_update)); m_screen->set_palette(m_video); /* sound hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, A2_SPEAKER_TAG).add_route(ALL_OUTPUTS, "mono", 1.00); /* soft switches */ F9334(config, m_softlatch); // F14 (labeled 74LS259 on some boards and in the Apple ][ Reference Manual) m_softlatch->q_out_cb<0>().set(FUNC(superga2_state::txt_w)); m_softlatch->q_out_cb<1>().set(FUNC(superga2_state::mix_w)); m_softlatch->q_out_cb<2>().set(FUNC(superga2_state::scr_w)); m_softlatch->q_out_cb<3>().set(FUNC(superga2_state::res_w)); m_softlatch->q_out_cb<6>().set(FUNC(superga2_state::an2_w)); RAM(config, RAM_TAG).set_default_size("48K").set_default_value(0x00); }
GFXDECODE_END void starshp1_state::starshp1(machine_config &config) { /* basic machine hardware */ M6502(config, m_maincpu, STARSHP1_CPU_CLOCK); m_maincpu->set_addrmap(AS_PROGRAM, &starshp1_state::starshp1_map); m_maincpu->set_vblank_int("screen", FUNC(starshp1_state::starshp1_interrupt)); f9334_device &misclatch(F9334(config, "misclatch")); // C8 misclatch.q_out_cb<0>().set(FUNC(starshp1_state::ship_explode_w)); misclatch.q_out_cb<1>().set(FUNC(starshp1_state::circle_mod_w)); misclatch.q_out_cb<2>().set(FUNC(starshp1_state::circle_kill_w)); misclatch.q_out_cb<3>().set(FUNC(starshp1_state::starfield_kill_w)); misclatch.q_out_cb<4>().set(FUNC(starshp1_state::inverse_w)); misclatch.q_out_cb<5>().set_nop(); // BLACK HOLE, not used misclatch.q_out_cb<6>().set(FUNC(starshp1_state::mux_w)); misclatch.q_out_cb<7>().set(FUNC(starshp1_state::led_w)); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(STARSHP1_PIXEL_CLOCK, STARSHP1_HTOTAL, STARSHP1_HBEND, STARSHP1_HBSTART, STARSHP1_VTOTAL, STARSHP1_VBEND, STARSHP1_VBSTART); m_screen->set_screen_update(FUNC(starshp1_state::screen_update_starshp1)); m_screen->screen_vblank().set(FUNC(starshp1_state::screen_vblank_starshp1)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_starshp1); PALETTE(config, m_palette, FUNC(starshp1_state::starshp1_palette), 19, 8); /* sound hardware */ SPEAKER(config, "mono").front_center(); DISCRETE(config, m_discrete, starshp1_discrete).add_route(ALL_OUTPUTS, "mono", 1.0); f9334_device &audiolatch(F9334(config, "audiolatch")); // D9 audiolatch.q_out_cb<0>().set(FUNC(starshp1_state::attract_w)); audiolatch.q_out_cb<1>().set(FUNC(starshp1_state::phasor_w)); audiolatch.q_out_cb<2>().set("discrete", FUNC(discrete_device::write_line<STARSHP1_KICKER>)); audiolatch.q_out_cb<3>().set("discrete", FUNC(discrete_device::write_line<STARSHP1_SL1>)); audiolatch.q_out_cb<4>().set("discrete", FUNC(discrete_device::write_line<STARSHP1_SL2>)); audiolatch.q_out_cb<5>().set("discrete", FUNC(discrete_device::write_line<STARSHP1_MOLVL>)); audiolatch.q_out_cb<6>().set("discrete", FUNC(discrete_device::write_line<STARSHP1_NOISE_FREQ>)); }
void avalnche_state::avalnche_base(machine_config &config) { /* basic machine hardware */ M6502(config, m_maincpu, 12.096_MHz_XTAL / 16); /* clock input is the "2H" signal divided by two */ m_maincpu->set_addrmap(AS_PROGRAM, &avalnche_state::main_map); m_maincpu->set_periodic_int(FUNC(avalnche_state::nmi_line_pulse), attotime::from_hz(8*60)); F9334(config, m_latch); // F8 m_latch->q_out_cb<0>().set_output("led0"); // 1 CREDIT LAMP m_latch->q_out_cb<2>().set(FUNC(avalnche_state::video_invert_w)); m_latch->q_out_cb<3>().set_output("led1"); // 2 CREDIT LAMP m_latch->q_out_cb<7>().set_output("led2"); // START LAMP // Q1, Q4, Q5, Q6 are configured in audio/avalnche.cpp WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(12.096_MHz_XTAL / 2, 384, 0, 256, 262, 16, 256); screen.set_screen_update(FUNC(avalnche_state::screen_update_avalnche)); }
MCFG_SCREEN_UPDATE_DRIVER(dragrace_state, screen_update_dragrace) MCFG_SCREEN_PALETTE("palette") MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_dragrace) MCFG_PALETTE_ADD("palette", 16) MCFG_PALETTE_INIT_OWNER(dragrace_state, dragrace) /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); MCFG_DEVICE_ADD("discrete", DISCRETE, dragrace_discrete) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) f9334_device &latch_f5(F9334(config, "latch_f5")); // F5 latch_f5.parallel_out_cb().set(FUNC(dragrace_state::speed1_w)).mask(0x1f); // set 3SPEED1-7SPEED1 latch_f5.q_out_cb<5>().set(m_discrete, FUNC(discrete_device::write_line<DRAGRACE_EXPLODE1_EN>)); // Explosion1 enable latch_f5.q_out_cb<6>().set(m_discrete, FUNC(discrete_device::write_line<DRAGRACE_SCREECH1_EN>)); // Screech1 enable f9334_device &latch_a5(F9334(config, "latch_a5")); // A5 latch_a5.q_out_cb<1>().set(m_discrete, FUNC(discrete_device::write_line<DRAGRACE_KLEXPL1_EN>)); // KLEXPL1 enable latch_a5.q_out_cb<3>().set(m_discrete, FUNC(discrete_device::write_line<DRAGRACE_MOTOR1_EN>)); // Motor1 enable latch_a5.q_out_cb<4>().set(m_discrete, FUNC(discrete_device::write_line<DRAGRACE_ATTRACT_EN>)); // Attract enable latch_a5.q_out_cb<5>().set(m_discrete, FUNC(discrete_device::write_line<DRAGRACE_LOTONE_EN>)); // LoTone enable latch_a5.q_out_cb<7>().set_output("led0"); // Player 1 Start Lamp f9334_device &latch_h5(F9334(config, "latch_h5")); // H5 latch_h5.parallel_out_cb().set(FUNC(dragrace_state::speed2_w)).mask(0x1f); // set 3SPEED2-7SPEED2 latch_h5.q_out_cb<5>().set(m_discrete, FUNC(discrete_device::write_line<DRAGRACE_EXPLODE2_EN>)); // Explosion2 enable latch_h5.q_out_cb<6>().set(m_discrete, FUNC(discrete_device::write_line<DRAGRACE_SCREECH2_EN>)); // Screech2 enable
static GFXDECODE_START( gfx_starshp1 ) GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0, 1 ) GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 2, 2 ) GFXDECODE_ENTRY( "gfx3", 0, shiplayout, 6, 2 ) GFXDECODE_END MACHINE_CONFIG_START(starshp1_state::starshp1) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M6502, STARSHP1_CPU_CLOCK) MCFG_DEVICE_PROGRAM_MAP(starshp1_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", starshp1_state, starshp1_interrupt) f9334_device &misclatch(F9334(config, "misclatch")); // C8 misclatch.q_out_cb<0>().set(FUNC(starshp1_state::ship_explode_w)); misclatch.q_out_cb<1>().set(FUNC(starshp1_state::circle_mod_w)); misclatch.q_out_cb<2>().set(FUNC(starshp1_state::circle_kill_w)); misclatch.q_out_cb<3>().set(FUNC(starshp1_state::starfield_kill_w)); misclatch.q_out_cb<4>().set(FUNC(starshp1_state::inverse_w)); misclatch.q_out_cb<5>().set_nop(); // BLACK HOLE, not used misclatch.q_out_cb<6>().set(FUNC(starshp1_state::mux_w)); misclatch.q_out_cb<7>().set(FUNC(starshp1_state::led_w)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(STARSHP1_PIXEL_CLOCK, STARSHP1_HTOTAL, STARSHP1_HBEND, STARSHP1_HBSTART, STARSHP1_VTOTAL, STARSHP1_VBEND, STARSHP1_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(starshp1_state, screen_update_starshp1)