void idsa_state::idsa(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, XTAL(8'000'000) / 2); m_maincpu->set_addrmap(AS_PROGRAM, &idsa_state::maincpu_map); m_maincpu->set_addrmap(AS_IO, &idsa_state::maincpu_io_map); clock_device &irqclock(CLOCK(config, "irqclock", XTAL(8'000'000) / 4)); irqclock.signal_handler().set(FUNC(idsa_state::clock_w)); /* video hardware */ //config.set_default_layout() /* sound hardware */ genpin_audio(config); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); SP0256(config, m_speech, 3120000); // unknown variant m_speech->add_route(ALL_OUTPUTS, "lspeaker", 1.5); ay8910_device &aysnd1(AY8910(config, "aysnd1", 2000000)); // 2Mhz according to pinmame, schematic omits the clock line aysnd1.port_a_write_callback().set(FUNC(idsa_state::ay1_a_w)); aysnd1.port_b_write_callback().set(FUNC(idsa_state::ay1_b_w)); aysnd1.add_route(ALL_OUTPUTS, "lspeaker", 0.75); ay8910_device &aysnd2(AY8910(config, "aysnd2", 2000000)); aysnd2.port_a_write_callback().set(FUNC(idsa_state::ay2_a_w)); aysnd2.port_b_write_callback().set(FUNC(idsa_state::ay2_b_w)); aysnd2.add_route(ALL_OUTPUTS, "rspeaker", 0.75); }
void de_3b_state::detest(machine_config &config) { /* basic machine hardware */ DECOCPU3B(config, "decocpu", XTAL(8'000'000) / 2, "maincpu"); genpin_audio(config); }
void s4_state::s4(machine_config &config) { /* basic machine hardware */ M6800(config, m_maincpu, 3580000); m_maincpu->set_addrmap(AS_PROGRAM, &s4_state::s4_main_map); TIMER(config, "irq").configure_periodic(FUNC(s4_state::irq), attotime::from_hz(250)); MCFG_MACHINE_RESET_OVERRIDE(s4_state, s4) /* Video */ config.set_default_layout(layout_s4); /* Sound */ genpin_audio(config); /* Devices */ PIA6821(config, m_pia22, 0); m_pia22->writepa_handler().set(FUNC(s4_state::sol0_w)); m_pia22->writepb_handler().set(FUNC(s4_state::sol1_w)); m_pia22->ca2_handler().set(FUNC(s4_state::pia22_ca2_w)); m_pia22->cb2_handler().set(FUNC(s4_state::pia22_cb2_w)); m_pia22->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia22->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); PIA6821(config, m_pia24, 0); m_pia24->writepa_handler().set(FUNC(s4_state::lamp0_w)); m_pia24->writepb_handler().set(FUNC(s4_state::lamp1_w)); m_pia24->ca2_handler().set(FUNC(s4_state::pia24_ca2_w)); m_pia24->cb2_handler().set(FUNC(s4_state::pia24_cb2_w)); m_pia24->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia24->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); PIA6821(config, m_pia28, 0); m_pia28->readpa_handler().set(FUNC(s4_state::dips_r)); m_pia28->readca1_handler().set(FUNC(s4_state::pia28_ca1_r)); m_pia28->readcb1_handler().set(FUNC(s4_state::pia28_cb1_r)); m_pia28->writepa_handler().set(FUNC(s4_state::dig0_w)); m_pia28->writepb_handler().set(FUNC(s4_state::dig1_w)); m_pia28->ca2_handler().set(FUNC(s4_state::pia28_ca2_w)); m_pia28->cb2_handler().set(FUNC(s4_state::pia28_cb2_w)); m_pia28->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia28->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); PIA6821(config, m_pia30, 0); m_pia30->readpa_handler().set(FUNC(s4_state::switch_r)); m_pia30->writepb_handler().set(FUNC(s4_state::switch_w)); m_pia30->ca2_handler().set(FUNC(s4_state::pia30_ca2_w)); m_pia30->cb2_handler().set(FUNC(s4_state::pia30_cb2_w)); m_pia30->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia30->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); }
INPUT_PORTS_END void macp_state::macp(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 2500000); m_maincpu->set_addrmap(AS_PROGRAM, &macp_state::macp_map); m_maincpu->set_addrmap(AS_IO, &macp_state::macp_io); /* video hardware */ //config.set_default_layout(); //I8279 /* sound hardware */ //2x AY8910 genpin_audio(config); }
void de_3b_state::de_3b(machine_config &config) { /* basic machine hardware */ decocpu_type3b_device &decocpu(DECOCPU3B(config, "decocpu", XTAL(8'000'000) / 2, "maincpu")); decocpu.display_read_callback().set(FUNC(de_3b_state::display_r)); decocpu.display_write_callback().set(FUNC(de_3b_state::display_w)); decocpu.soundlatch_write_callback().set(FUNC(de_3b_state::sound_w)); decocpu.switch_read_callback().set(FUNC(de_3b_state::switch_r)); decocpu.switch_write_callback().set(FUNC(de_3b_state::switch_w)); decocpu.lamp_write_callback().set(FUNC(de_3b_state::lamps_w)); decocpu.dmdstatus_read_callback().set(FUNC(de_3b_state::dmd_status_r)); genpin_audio(config); /* sound hardware */ DECOBSMT(config, m_decobsmt, 0); DECODMD3(config, m_dmdtype3, 0, "cpu3"); }
void stargame_state::stargame(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 15000000 / 4); // clock line marked as CK4 and derived from 15MHz crystal m_maincpu->set_addrmap(AS_PROGRAM, &stargame_state::maincpu_map); m_maincpu->set_addrmap(AS_IO, &stargame_state::maincpu_io); m_maincpu->set_daisy_config(daisy_chain); Z80(config, m_audiocpu, 15000000 / 3); // ? check divider - clock line marked as CK6 and derived from 15MHz crystal m_audiocpu->set_addrmap(AS_PROGRAM, &stargame_state::audiocpu_map); m_audiocpu->set_addrmap(AS_IO, &stargame_state::audiocpu_io); MCFG_MACHINE_RESET_OVERRIDE(stargame_state, stargame) /* video hardware */ //config.set_default_layout(); Z80CTC(config, m_ctc, 15000000 / 4); m_ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_ctc->zc_callback<0>().set_inputline(m_audiocpu, INPUT_LINE_IRQ0); // SINT - turn on interrupt of the audiocpu /* sound hardware */ genpin_audio(config); SPEAKER(config, "measnd").front_center(); MEA8000(config, "mea8000", 15000000 / 4).add_route(ALL_OUTPUTS, "measnd", 1.0); SPEAKER(config, "aysnd").front_center(); AY8910(config, "ay", 15000000 / 8).add_route(ALL_OUTPUTS, "aysnd", 0.25); // clock line marked as CK2 and derived from 15MHz crystal ls259_device &mainlatch(LS259(config, "mainlatch")); mainlatch.q_out_cb<0>().set_nop(); // DADIS mainlatch.q_out_cb<1>().set_nop(); // DAPRI mainlatch.q_out_cb<2>().set_nop(); // RJUEGO mainlatch.q_out_cb<3>().set_nop(); // RFLIPPER mainlatch.q_out_cb<4>().set_nop(); // to AUXILLIAR socket mainlatch.q_out_cb<5>().set_nop(); // RFDIS mainlatch.q_out_cb<6>().set_inputline(m_audiocpu, INPUT_LINE_RESET).invert(); // SRESET mainlatch.q_out_cb<7>().set_nop(); // MAKRES GENERIC_LATCH_8(config, "soundlatch").data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); WATCHDOG_TIMER(config, "watchdog"); }
void s6_state::s6(machine_config &config) { /* basic machine hardware */ M6808(config, m_maincpu, 3580000); // 6802 or 6808 could be used here m_maincpu->set_addrmap(AS_PROGRAM, &s6_state::s6_main_map); MCFG_MACHINE_RESET_OVERRIDE(s6_state, s6) /* Video */ config.set_default_layout(layout_s6); /* Sound */ genpin_audio(config); /* Devices */ PIA6821(config, m_pia22, 0); m_pia22->writepa_handler().set(FUNC(s6_state::sol0_w)); m_pia22->writepb_handler().set(FUNC(s6_state::sol1_w)); m_pia22->ca2_handler().set(FUNC(s6_state::pia22_ca2_w)); m_pia22->cb2_handler().set(FUNC(s6_state::pia22_cb2_w)); m_pia22->irqa_handler().set(FUNC(s6_state::pia_irq)); m_pia22->irqb_handler().set(FUNC(s6_state::pia_irq)); PIA6821(config, m_pia24, 0); m_pia24->writepa_handler().set(FUNC(s6_state::lamp0_w)); m_pia24->writepb_handler().set(FUNC(s6_state::lamp1_w)); m_pia24->ca2_handler().set(FUNC(s6_state::pia24_ca2_w)); m_pia24->cb2_handler().set(FUNC(s6_state::pia24_cb2_w)); m_pia24->irqa_handler().set(FUNC(s6_state::pia_irq)); m_pia24->irqb_handler().set(FUNC(s6_state::pia_irq)); PIA6821(config, m_pia28, 0); m_pia28->readpa_handler().set(FUNC(s6_state::dips_r)); m_pia28->writepa_handler().set(FUNC(s6_state::dig0_w)); m_pia28->writepb_handler().set(FUNC(s6_state::dig1_w)); m_pia28->ca2_handler().set(FUNC(s6_state::pia28_ca2_w)); m_pia28->cb2_handler().set(FUNC(s6_state::pia28_cb2_w)); m_pia28->irqa_handler().set(FUNC(s6_state::pia_irq)); m_pia28->irqb_handler().set(FUNC(s6_state::pia_irq)); PIA6821(config, m_pia30, 0); m_pia30->readpa_handler().set(FUNC(s6_state::switch_r)); m_pia30->writepb_handler().set(FUNC(s6_state::switch_w)); m_pia30->ca2_handler().set(FUNC(s6_state::pia30_ca2_w)); m_pia30->cb2_handler().set(FUNC(s6_state::pia30_cb2_w)); m_pia30->irqa_handler().set(FUNC(s6_state::pia_irq)); m_pia30->irqb_handler().set(FUNC(s6_state::pia_irq)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* Add the soundcard */ M6802(config, m_audiocpu, 3580000); m_audiocpu->set_addrmap(AS_PROGRAM, &s6_state::s6_audio_map); SPEAKER(config, "speaker").front_center(); MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); SPEAKER(config, "speech").front_center(); HC55516(config, m_hc55516, 0).add_route(ALL_OUTPUTS, "speech", 1.00); PIA6821(config, m_pias, 0); m_pias->readpb_handler().set(FUNC(s6_state::sound_r)); m_pias->writepa_handler().set("dac", FUNC(dac_byte_interface::data_w)); m_pias->ca2_handler().set(m_hc55516, FUNC(hc55516_device::digit_w)); m_pias->cb2_handler().set(m_hc55516, FUNC(hc55516_device::clock_w)); m_pias->irqa_handler().set_inputline(m_audiocpu, M6802_IRQ_LINE); // FIXME: needs an input merger m_pias->irqb_handler().set_inputline(m_audiocpu, M6802_IRQ_LINE); }
void spinb_state::spinb(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, XTAL(5'000'000) / 2); m_maincpu->set_addrmap(AS_PROGRAM, &spinb_state::spinb_map); m_maincpu->set_periodic_int(FUNC(spinb_state::irq0_line_hold), attotime::from_hz(160)); // NE556 adjustable (if faster, then jolypark has a stack problem) Z80(config, m_audiocpu, XTAL(5'000'000) / 2); m_audiocpu->set_addrmap(AS_PROGRAM, &spinb_state::spinb_audio_map); Z80(config, m_musiccpu, XTAL(5'000'000) / 2); m_musiccpu->set_addrmap(AS_PROGRAM, &spinb_state::spinb_music_map); I8031(config, m_dmdcpu, XTAL(16'000'000)); m_dmdcpu->set_addrmap(AS_PROGRAM, &spinb_state::dmd_mem); m_dmdcpu->set_addrmap(AS_IO, &spinb_state::dmd_io); m_dmdcpu->port_out_cb<1>().set(FUNC(spinb_state::p1_w)); m_dmdcpu->port_in_cb<3>().set(FUNC(spinb_state::p3_r)); m_dmdcpu->port_out_cb<3>().set(FUNC(spinb_state::p3_w)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); /* Video */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); screen.set_screen_update(FUNC(spinb_state::screen_update)); screen.set_size(128, 32); screen.set_visarea(0, 127, 0, 31); screen.set_palette("palette"); PALETTE(config, "palette", FUNC(spinb_state::spinb_palette), 3); /* Sound */ genpin_audio(config); SPEAKER(config, "msmavol").front_center(); MSM5205(config, m_msm_a, XTAL(384'000)); m_msm_a->vck_callback().set("ic5a", FUNC(ttl7474_device::clock_w)); m_msm_a->set_prescaler_selector(msm5205_device::S48_4B); /* 4KHz 4-bit */ m_msm_a->add_route(ALL_OUTPUTS, "msmavol", 1.0); SPEAKER(config, "msmmvol").front_center(); MSM5205(config, m_msm_m, XTAL(384'000)); m_msm_m->vck_callback().set("ic5m", FUNC(ttl7474_device::clock_w)); m_msm_m->set_prescaler_selector(msm5205_device::S48_4B); /* 4KHz 4-bit */ m_msm_m->add_route(ALL_OUTPUTS, "msmmvol", 1.0); /* Devices */ i8255_device &ppi60(I8255A(config, "ppi60")); //ppi60.in_pa_callback().set(FUNC(spinb_state::ppi60a_r)); ppi60.out_pa_callback().set(FUNC(spinb_state::ppi60a_w)); //ppi60.in_pb_callback().set(FUNC(spinb_state::ppi60b_r)); ppi60.out_pb_callback().set(FUNC(spinb_state::ppi60b_w)); ppi60.in_pc_callback().set(FUNC(spinb_state::sw_r)); //ppi60.out_pc_callback().set(FUNC(spinb_state::ppi60c_w)); i8255_device &ppi64(I8255A(config, "ppi64")); //ppi64.in_pa_callback().set(FUNC(spinb_state::ppi64a_r)); //ppi64.out_pa_callback().set(FUNC(spinb_state::ppi64a_w)); //ppi64.in_pb_callback().set(FUNC(spinb_state::ppi64b_r)); //ppi64.out_pb_callback().set(FUNC(spinb_state::ppi64b_w)); //ppi64.in_pc_callback().set(FUNC(spinb_state::ppi64c_r)); ppi64.out_pc_callback().set(FUNC(spinb_state::ppi64c_w)); I8255A(config, "ppi68"); //ppi68.in_pa_callback().set(FUNC(spinb_state::ppi68a_r)); //ppi68.out_pa_callback().set(FUNC(spinb_state::ppi68a_w)); //ppi68.in_pb_callback().set(FUNC(spinb_state::ppi68b_r)); //ppi68.out_pb_callback().set(FUNC(spinb_state::ppi68b_w)); //ppi68.in_pc_callback().set(FUNC(spinb_state::ppi68c_r)); //ppi68.out_pc_callback().set(FUNC(spinb_state::ppi68c_w)); I8255A(config, "ppi6c"); //ppi6c.in_pa_callback().set(FUNC(spinb_state::ppi6ca_r)); //ppi6c.out_pa_callback().set(FUNC(spinb_state::ppi6ca_w)); //ppi6c.in_pb_callback().set(FUNC(spinb_state::ppi6cb_r)); //ppi6c.out_pb_callback().set(FUNC(spinb_state::ppi6cb_w)); //ppi6c.in_pc_callback().set(FUNC(spinb_state::ppi6cc_r)); //ppi6c.out_pc_callback().set(FUNC(spinb_state::ppi6cc_w)); i8255_device &ppia(I8255A(config, "ppia")); ppia.out_pa_callback().set(FUNC(spinb_state::ppia_a_w)); ppia.out_pb_callback().set(FUNC(spinb_state::ppia_b_w)); ppia.in_pc_callback().set(FUNC(spinb_state::ppia_c_r)); ppia.out_pc_callback().set(FUNC(spinb_state::ppia_c_w)); i8255_device &ppim(I8255A(config, "ppim")); ppim.out_pa_callback().set(FUNC(spinb_state::ppim_a_w)); ppim.out_pb_callback().set(FUNC(spinb_state::ppim_b_w)); ppim.in_pc_callback().set(FUNC(spinb_state::ppim_c_r)); ppim.out_pc_callback().set(FUNC(spinb_state::ppim_c_w)); TTL7474(config, m_ic5a, 0); m_ic5a->comp_output_cb().set(FUNC(spinb_state::ic5a_w)); HC157(config, m_ic14a, 0); // actually IC15 on Jolly Park m_ic14a->out_callback().set("msm_a", FUNC(msm5205_device::data_w)); TTL7474(config, m_ic5m, 0); m_ic5m->comp_output_cb().set(FUNC(spinb_state::ic5m_w)); HC157(config, m_ic14m, 0); // actually IC15 on Jolly Park m_ic14m->out_callback().set("msm_m", FUNC(msm5205_device::data_w)); }