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 wpcsnd_device::device_add_mconfig(machine_config &config) { MC6809E(config, m_cpu, XTAL(8'000'000) / 4); // MC68B09E m_cpu->set_addrmap(AS_PROGRAM, &wpcsnd_device::wpcsnd_map); config.m_minimum_quantum = attotime::from_hz(50); YM2151(config, m_ym2151, 3580000); m_ym2151->irq_handler().set(FUNC(wpcsnd_device::ym2151_irq_w)); m_ym2151->add_route(ALL_OUTPUTS, *this, 0.25); AD7524(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 0.25); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.set_output(5.0); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); HC55516(config, m_hc55516, 0).add_route(ALL_OUTPUTS, *this, 0.5); }
void redline_80186_sound_device::device_add_mconfig(machine_config &config) { I80186(config, m_audiocpu, 16_MHz_XTAL); m_audiocpu->set_addrmap(AS_PROGRAM, &redline_80186_sound_device::leland_80186_map_program); m_audiocpu->set_addrmap(AS_IO, &redline_80186_sound_device::redline_80186_map_io); m_audiocpu->chip_select_callback().set(FUNC(leland_80186_sound_device::peripheral_ctrl)); SPEAKER(config, "speaker").front_center(); for (int i = 0; i < 8; 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); } 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 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); // unknown DAC 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); // unknown DAC m_dacvol[6]->add_route(0, "dac7", 1.0, DAC_VREF_POS_INPUT); m_dacvol[6]->add_route(0, "dac7", -1.0, DAC_VREF_NEG_INPUT); // unknown DAC m_dacvol[7]->add_route(0, "dac8", 1.0, DAC_VREF_POS_INPUT); m_dacvol[7]->add_route(0, "dac8", -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, "dac5vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac6vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac7vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac8vol", 1.0, DAC_VREF_POS_INPUT); PIT8254(config, m_pit[0], 0); m_pit[0]->set_clk<0>(7000000); m_pit[0]->out_handler<0>().set(m_audiocpu, FUNC(i80186_cpu_device::drq0_w)); m_pit[0]->set_clk<1>(7000000); m_pit[0]->out_handler<1>().set(m_audiocpu, FUNC(i80186_cpu_device::drq1_w)); m_pit[0]->set_clk<2>(7000000); 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>(7000000); m_pit[1]->out_handler<0>().set(FUNC(leland_80186_sound_device::pit1_0_w)); m_pit[1]->set_clk<1>(7000000); m_pit[1]->out_handler<1>().set(FUNC(leland_80186_sound_device::pit1_1_w)); m_pit[1]->set_clk<2>(7000000); PIT8254(config, m_pit[2], 0); m_pit[2]->set_clk<0>(7000000); m_pit[2]->out_handler<0>().set(FUNC(leland_80186_sound_device::pit1_2_w)); m_pit[2]->set_clk<1>(7000000); m_pit[2]->set_clk<2>(7000000); GENERIC_LATCH_16(config, m_soundlatch); }