diff options
Diffstat (limited to 'src/mame/drivers/dectalk.cpp')
-rw-r--r-- | src/mame/drivers/dectalk.cpp | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/src/mame/drivers/dectalk.cpp b/src/mame/drivers/dectalk.cpp index ee03a4ed2f3..4805da6c6bf 100644 --- a/src/mame/drivers/dectalk.cpp +++ b/src/mame/drivers/dectalk.cpp @@ -876,18 +876,16 @@ TIMER_CALLBACK_MEMBER(dectalk_state::outfifo_read_cb) m_duart->duart_rx_break(1, 0);*/ } -void dectalk_state::dectalk(machine_config &config) -{ +MACHINE_CONFIG_START(dectalk_state::dectalk) /* basic machine hardware */ - M68000(config, m_maincpu, XTAL(20'000'000)/2); /* E74 20MHz OSC (/2) */ - m_maincpu->set_addrmap(AS_PROGRAM, &dectalk_state::m68k_mem); - - SCN2681(config, m_duart, XTAL(3'686'400)); // MC2681 DUART ; Y3 3.6864MHz xtal */ - m_duart->irq_cb().set(FUNC(dectalk_state::duart_irq_handler)); - m_duart->a_tx_cb().set(FUNC(dectalk_state::duart_txa)); - m_duart->b_tx_cb().set("rs232", FUNC(rs232_port_device::write_txd)); - m_duart->inport_cb().set(FUNC(dectalk_state::duart_input)); - m_duart->outport_cb().set(FUNC(dectalk_state::duart_output)); + MCFG_DEVICE_ADD("maincpu", M68000, XTAL(20'000'000)/2) /* E74 20MHz OSC (/2) */ + MCFG_DEVICE_PROGRAM_MAP(m68k_mem) + MCFG_DEVICE_ADD(m_duart, SCN2681, XTAL(3'686'400)) // MC2681 DUART ; Y3 3.6864MHz xtal */ + MCFG_MC68681_IRQ_CALLBACK(WRITELINE(*this, dectalk_state, duart_irq_handler)) + MCFG_MC68681_A_TX_CALLBACK(WRITELINE(*this, dectalk_state, duart_txa)) + MCFG_MC68681_B_TX_CALLBACK(WRITELINE("rs232", rs232_port_device, write_txd)) + MCFG_MC68681_INPORT_CALLBACK(READ8(*this, dectalk_state, duart_input)) + MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(*this, dectalk_state, duart_output)) TMS32010(config, m_dsp, XTAL(20'000'000)); /* Y1 20MHz xtal */ m_dsp->set_addrmap(AS_PROGRAM, &dectalk_state::tms32010_mem); @@ -895,9 +893,9 @@ void dectalk_state::dectalk(machine_config &config) m_dsp->bio().set(FUNC(dectalk_state::spc_semaphore_r)); //read infifo-has-data-in-it fifo readable status #ifdef USE_LOOSE_TIMING - config.m_minimum_quantum = attotime::from_hz(100); + MCFG_QUANTUM_TIME(attotime::from_hz(100)) #else - config.m_perfect_cpu_quantum = subtag("dsp"); + MCFG_QUANTUM_PERFECT_CPU("dsp") #endif X2212(config, "x2212"); @@ -906,16 +904,15 @@ void dectalk_state::dectalk(machine_config &config) /* sound hardware */ SPEAKER(config, "speaker").front_center(); - AD7541(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.9); // ad7541.e107 (E88 10KHz OSC, handled by timer) - 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); + MCFG_DEVICE_ADD("dac", AD7541, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.9) // ad7541.e107 (E88 10KHz OSC, handled by timer) + MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) + MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) /* Y2 is a 3.579545 MHz xtal for the dtmf decoder chip */ rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); rs232.rxd_handler().set(m_duart, FUNC(scn2681_device::rx_b_w)); -} +MACHINE_CONFIG_END |