void leland_80186_sound_device::device_add_mconfig(machine_config &config) { I80186(config, m_audiocpu, 16_MHz_XTAL); m_audiocpu->set_addrmap(AS_PROGRAM, &leland_80186_sound_device::leland_80186_map_program); m_audiocpu->set_addrmap(AS_IO, &leland_80186_sound_device::leland_80186_map_io); m_audiocpu->chip_select_callback().set(FUNC(leland_80186_sound_device::peripheral_ctrl)); m_audiocpu->tmrout0_handler().set(FUNC(leland_80186_sound_device::i80186_tmr0_w)); SPEAKER(config, "speaker").front_center(); for (int i = 0; i < 6; i++) { AD7524(config, m_dac[i], 0).add_route(ALL_OUTPUTS, "speaker", 0.2); // 74hc374.u31..6 + ad7524.u46..51 DAC_8BIT_BINARY_WEIGHTED(config, m_dacvol[i], 0); // 74hc374.u17..22 + rX2-rX9 (24k,12k,6.2k,3k,1.5k,750,360,160) where X is 0..5 } AD7533(config, "dac9", 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // ad7533.u64 m_dacvol[0]->add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); m_dacvol[0]->add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); m_dacvol[1]->add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); m_dacvol[1]->add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); m_dacvol[2]->add_route(0, "dac3", 1.0, DAC_VREF_POS_INPUT); m_dacvol[2]->add_route(0, "dac3", -1.0, DAC_VREF_NEG_INPUT); m_dacvol[3]->add_route(0, "dac4", 1.0, DAC_VREF_POS_INPUT); m_dacvol[3]->add_route(0, "dac4", -1.0, DAC_VREF_NEG_INPUT); m_dacvol[4]->add_route(0, "dac5", 1.0, DAC_VREF_POS_INPUT); m_dacvol[4]->add_route(0, "dac5", -1.0, DAC_VREF_NEG_INPUT); m_dacvol[5]->add_route(0, "dac6", 1.0, DAC_VREF_POS_INPUT); m_dacvol[5]->add_route(0, "dac6", -1.0, DAC_VREF_NEG_INPUT); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); vref.set_output(5.0); vref.add_route(0, "dac1vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac3vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac4vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac5vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac6vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac9", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac9", -1.0, DAC_VREF_NEG_INPUT); PIT8254(config, m_pit[0], 0); m_pit[0]->set_clk<0>(4000000); m_pit[0]->out_handler<0>().set(m_audiocpu, FUNC(i80186_cpu_device::drq0_w)); m_pit[0]->set_clk<1>(4000000); m_pit[0]->out_handler<1>().set(m_audiocpu, FUNC(i80186_cpu_device::drq1_w)); m_pit[0]->set_clk<2>(4000000); m_pit[0]->out_handler<2>().set(FUNC(leland_80186_sound_device::pit0_2_w)); PIT8254(config, m_pit[1], 0); m_pit[1]->set_clk<0>(4000000); m_pit[1]->out_handler<0>().set(FUNC(leland_80186_sound_device::pit1_0_w)); m_pit[1]->set_clk<1>(4000000); m_pit[1]->out_handler<1>().set(FUNC(leland_80186_sound_device::pit1_1_w)); m_pit[1]->set_clk<2>(4000000); m_pit[1]->out_handler<2>().set(FUNC(leland_80186_sound_device::pit1_2_w)); GENERIC_LATCH_16(config, m_soundlatch); }
void wsf_80186_sound_device::device_add_mconfig(machine_config &config) { I80186(config, m_audiocpu, 16_MHz_XTAL); m_audiocpu->set_addrmap(AS_PROGRAM, &wsf_80186_sound_device::leland_80186_map_program); m_audiocpu->set_addrmap(AS_IO, &wsf_80186_sound_device::ataxx_80186_map_io); m_audiocpu->chip_select_callback().set(FUNC(leland_80186_sound_device::peripheral_ctrl)); m_audiocpu->tmrout0_handler().set(FUNC(leland_80186_sound_device::i80186_tmr0_w)); m_audiocpu->tmrout1_handler().set(FUNC(leland_80186_sound_device::i80186_tmr1_w)); SPEAKER(config, "speaker").front_center(); for (int i = 0; i < 4; i++) { AD7524(config, m_dac[i], 0).add_route(ALL_OUTPUTS, "speaker", 0.2); // unknown DAC DAC_8BIT_BINARY_WEIGHTED(config, m_dacvol[i], 0); // unknown DAC } AD7533(config, "dac9", 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // unknown DAC m_dacvol[0]->add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); m_dacvol[0]->add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); // unknown DAC m_dacvol[1]->add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); m_dacvol[1]->add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); // unknown DAC m_dacvol[2]->add_route(0, "dac3", 1.0, DAC_VREF_POS_INPUT); m_dacvol[2]->add_route(0, "dac3", -1.0, DAC_VREF_NEG_INPUT); // unknown DAC m_dacvol[3]->add_route(0, "dac4", 1.0, DAC_VREF_POS_INPUT); m_dacvol[3]->add_route(0, "dac4", -1.0, DAC_VREF_NEG_INPUT); // unknown DAC voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); vref.set_output(5.0); vref.add_route(0, "dac1vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac3vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac4vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac9", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac9", -1.0, DAC_VREF_NEG_INPUT); /* sound hardware */ YM2151(config, m_ymsnd, 4000000); m_ymsnd->add_route(0, "speaker", 0.40); m_ymsnd->add_route(1, "speaker", 0.40); PIT8254(config, m_pit[0], 0); m_pit[0]->set_clk<0>(4000000); m_pit[0]->out_handler<0>().set(m_audiocpu, FUNC(i80186_cpu_device::drq0_w)); m_pit[0]->set_clk<1>(4000000); m_pit[0]->out_handler<1>().set(m_audiocpu, FUNC(i80186_cpu_device::drq1_w)); m_pit[0]->set_clk<2>(4000000); m_pit[0]->out_handler<2>().set(FUNC(leland_80186_sound_device::pit0_2_w)); GENERIC_LATCH_16(config, m_soundlatch); }
void midway_cheap_squeak_deluxe_device::device_add_mconfig(machine_config &config) { M68000(config, m_cpu, DERIVED_CLOCK(1, 2)); m_cpu->set_addrmap(AS_PROGRAM, &midway_cheap_squeak_deluxe_device::csdeluxe_map); PIA6821(config, m_pia, 0); m_pia->writepa_handler().set(FUNC(midway_cheap_squeak_deluxe_device::porta_w)); m_pia->writepb_handler().set(FUNC(midway_cheap_squeak_deluxe_device::portb_w)); m_pia->irqa_handler().set(FUNC(midway_cheap_squeak_deluxe_device::irq_w)); m_pia->irqb_handler().set(FUNC(midway_cheap_squeak_deluxe_device::irq_w)); AD7533(config, m_dac, 0).add_route(ALL_OUTPUTS, *this, 1.0); 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); }