mc68681: Use MCFG_DEVICE_ADD instead of custom macro; switch one more to SCN2681 (nw)

This commit is contained in:
AJR 2017-11-22 10:59:00 -05:00
parent 837b7b17b6
commit dce16721c9
22 changed files with 33 additions and 39 deletions

View File

@ -78,13 +78,13 @@ MACHINE_CONFIG_MEMBER( electron_m2105_device::device_add_mconfig )
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("irqs", input_merger_device, in_w<1>))
/* duart */
MCFG_MC68681_ADD("sc2681", XTAL_3_6864MHz)
MCFG_DEVICE_ADD("duart", SCN2681, XTAL_3_6864MHz)
MCFG_MC68681_IRQ_CALLBACK(DEVWRITELINE("irqs", input_merger_device, in_w<2>))
MCFG_MC68681_A_TX_CALLBACK(DEVWRITELINE("rs232", rs232_port_device, write_txd))
//MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(electron_m2105_device, sio_out_w))
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sc2681", mc68681_device, rx_a_w))
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("duart", scn2681_device, rx_a_w))
/* printer */
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
@ -117,7 +117,7 @@ electron_m2105_device::electron_m2105_device(const machine_config &mconfig, cons
, m_exp_rom(*this, "exp_rom")
, m_via6522_0(*this, "via6522_0")
, m_via6522_1(*this, "via6522_1")
, m_duart(*this, "sc2681")
, m_duart(*this, "duart")
, m_tms(*this, "tms5220")
, m_centronics(*this, "centronics")
, m_irqs(*this, "irqs")
@ -134,7 +134,7 @@ void electron_m2105_device::device_start()
m_slot = dynamic_cast<electron_expansion_slot_device *>(owner());
space.install_readwrite_handler(0xfc40, 0xfc5f, READ8_DEVICE_DELEGATE(m_via6522_1, via6522_device, read), WRITE8_DEVICE_DELEGATE(m_via6522_1, via6522_device, write));
space.install_readwrite_handler(0xfc60, 0xfc6f, READ8_DEVICE_DELEGATE(m_duart, mc68681_device, read), WRITE8_DEVICE_DELEGATE(m_duart, mc68681_device, write));
space.install_readwrite_handler(0xfc60, 0xfc6f, READ8_DEVICE_DELEGATE(m_duart, scn2681_device, read), WRITE8_DEVICE_DELEGATE(m_duart, scn2681_device, write));
space.install_readwrite_handler(0xfc70, 0xfc8f, READ8_DEVICE_DELEGATE(m_via6522_0, via6522_device, read), WRITE8_DEVICE_DELEGATE(m_via6522_0, via6522_device, write));
}

View File

@ -46,7 +46,7 @@ private:
required_memory_region m_exp_rom;
required_device<via6522_device> m_via6522_0;
required_device<via6522_device> m_via6522_1;
required_device<mc68681_device> m_duart;
required_device<scn2681_device> m_duart;
required_device<tms5220_device> m_tms;
required_device<centronics_device> m_centronics;
required_device<input_merger_device> m_irqs;

View File

@ -44,7 +44,7 @@ ADDRESS_MAP_END
MACHINE_CONFIG_MEMBER( m68307_cpu_device::device_add_mconfig )
MCFG_MC68681_ADD("internal68681", 16000000/4) // ?? Mhz - should be specified in inline config
MCFG_DEVICE_ADD("internal68681", MC68681, 16000000/4) // ?? Mhz - should be specified in inline config
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(m68307_cpu_device, m68307_duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(WRITELINE(m68307_cpu_device, m68307_duart_txa))
MCFG_MC68681_B_TX_CALLBACK(WRITELINE(m68307_cpu_device, m68307_duart_txb))

View File

@ -6,12 +6,6 @@
#pragma once
#define MCFG_MC68681_ADD(_tag, _clock) \
MCFG_DEVICE_ADD(_tag, MC68681, _clock)
#define MCFG_MC68681_REPLACE(_tag, _clock) \
MCFG_DEVICE_REPLACE(_tag, MC68681, _clock)
#define MCFG_MC68681_IRQ_CALLBACK(_cb) \
devcb = &duart_base_device::set_irq_cb(*device, DEVCB_##_cb);

View File

@ -276,7 +276,7 @@ MACHINE_CONFIG_MEMBER( taito_en_device::device_add_mconfig )
MCFG_CPU_ADD("audiocpu", M68000, XTAL_30_4761MHz / 2)
MCFG_CPU_PROGRAM_MAP(en_sound_map)
MCFG_MC68681_ADD("duart68681", XTAL_16MHz / 4)
MCFG_DEVICE_ADD("duart68681", MC68681, XTAL_16MHz / 4)
MCFG_MC68681_SET_EXTERNAL_CLOCKS(XTAL_16MHz/2/8, XTAL_16MHz/2/16, XTAL_16MHz/2/16, XTAL_16MHz/2/8)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(taito_en_device, duart_irq_handler))

View File

@ -542,7 +542,7 @@ static MACHINE_CONFIG_START( quickjac )
MCFG_MACHINE_START_OVERRIDE(adp_state,skattv)
MCFG_MACHINE_RESET_OVERRIDE(adp_state,skattv)
MCFG_MC68681_ADD( "duart68681", XTAL_8_664MHz / 2 )
MCFG_DEVICE_ADD( "duart68681", MC68681, XTAL_8_664MHz / 2 )
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(adp_state, duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(DEVWRITELINE("microtouch", microtouch_device, rx))
MCFG_MC68681_INPORT_CALLBACK(IOPORT("DSW1"))

View File

@ -905,7 +905,7 @@ MACHINE_CONFIG_START( sc4_common )
MCFG_NVRAM_ADD_1FILL("nvram")
MCFG_MC68681_ADD("duart68681", 16000000/4) // ?? Mhz
MCFG_DEVICE_ADD("duart68681", MC68681, 16000000/4) // ?? Mhz
MCFG_MC68681_SET_EXTERNAL_CLOCKS(XTAL_16MHz/2/8, XTAL_16MHz/2/16, XTAL_16MHz/2/16, XTAL_16MHz/2/8)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(sc4_state, bfm_sc4_duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(WRITELINE(sc4_state, bfm_sc4_duart_txa))

View File

@ -217,7 +217,7 @@ MACHINE_CONFIG_START( bfm_sc5 )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_MC68681_ADD("duart68681", 16000000/4) // ?? Mhz
MCFG_DEVICE_ADD("duart68681", MC68681, 16000000/4) // ?? Mhz
MCFG_MC68681_SET_EXTERNAL_CLOCKS(16000000/2/8, 16000000/2/16, 16000000/2/16, 16000000/2/8)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(bfm_sc5_state, bfm_sc5_duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(WRITELINE(bfm_sc5_state, bfm_sc5_duart_txa))

View File

@ -1070,7 +1070,7 @@ static MACHINE_CONFIG_START( cat )
MCFG_VIDEO_START_OVERRIDE(cat_state,cat)
MCFG_MC68681_ADD( "duartn68681", (XTAL_19_968MHz*2)/11 ) // duart is normally clocked by 3.6864mhz xtal, but cat seemingly uses a divider from the main xtal instead which probably yields 3.63054545Mhz. There is a trace to cut and a mounting area to allow using an actual 3.6864mhz xtal if you so desire
MCFG_DEVICE_ADD( "duartn68681", MC68681, (XTAL_19_968MHz*2)/11 ) // duart is normally clocked by 3.6864mhz xtal, but cat seemingly uses a divider from the main xtal instead which probably yields 3.63054545Mhz. There is a trace to cut and a mounting area to allow using an actual 3.6864mhz xtal if you so desire
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(cat_state, cat_duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(WRITELINE(cat_state, cat_duart_txa))
MCFG_MC68681_B_TX_CALLBACK(WRITELINE(cat_state, cat_duart_txb))

View File

@ -588,7 +588,7 @@ static MACHINE_CONFIG_START( esq1 )
MCFG_CPU_ADD("maincpu", M6809E, 4000000) // how fast is it?
MCFG_CPU_PROGRAM_MAP(esq1_map)
MCFG_MC68681_ADD("duart", 4000000)
MCFG_DEVICE_ADD("duart", MC68681, 4000000)
MCFG_MC68681_SET_EXTERNAL_CLOCKS(500000, 500000, 1000000, 1000000)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(esq1_state, duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(WRITELINE(esq1_state, duart_tx_a))

View File

@ -616,7 +616,7 @@ static MACHINE_CONFIG_START( vfx )
MCFG_ESQPANEL_TX_CALLBACK(DEVWRITELINE("duart", mc68681_device, rx_b_w))
MCFG_ESQPANEL_ANALOG_CALLBACK(WRITE16(esq5505_state, analog_w))
MCFG_MC68681_ADD("duart", 4000000)
MCFG_DEVICE_ADD("duart", MC68681, 4000000)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(esq5505_state, duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(WRITELINE(esq5505_state, duart_tx_a))
MCFG_MC68681_B_TX_CALLBACK(WRITELINE(esq5505_state, duart_tx_b))
@ -693,7 +693,7 @@ static MACHINE_CONFIG_START(vfx32)
MCFG_ESQPANEL_TX_CALLBACK(DEVWRITELINE("duart", mc68681_device, rx_b_w))
MCFG_ESQPANEL_ANALOG_CALLBACK(WRITE16(esq5505_state, analog_w))
MCFG_MC68681_ADD("duart", 4000000)
MCFG_DEVICE_ADD("duart", MC68681, 4000000)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(esq5505_state, duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(WRITELINE(esq5505_state, duart_tx_a))
MCFG_MC68681_B_TX_CALLBACK(WRITELINE(esq5505_state, duart_tx_b))

View File

@ -1446,7 +1446,7 @@ static MACHINE_CONFIG_START( driver_nomsp )
MCFG_M48T02_ADD("200e") // MK48T02
MCFG_EEPROM_2816_ADD("210e") // MK48Z02
MCFG_MC68681_ADD("duartn68681", XTAL_3_6864MHz)
MCFG_DEVICE_ADD("duartn68681", MC68681, XTAL_3_6864MHz)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(harddriv_state, harddriv_duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(DEVWRITELINE ("rs232", rs232_port_device, write_txd))

View File

@ -129,7 +129,7 @@ static MACHINE_CONFIG_START( ht68k )
MCFG_CPU_PROGRAM_MAP(ht68k_mem)
/* video hardware */
MCFG_MC68681_ADD( "duart68681", XTAL_8MHz / 2 )
MCFG_DEVICE_ADD( "duart68681", MC68681, XTAL_8MHz / 2 )
MCFG_MC68681_SET_EXTERNAL_CLOCKS(500000, 500000, 1000000, 1000000)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(ht68k_state, duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(DEVWRITELINE("rs232", rs232_port_device, write_txd))

View File

@ -423,11 +423,11 @@ static MACHINE_CONFIG_START( sgi_ip2 )
MCFG_CPU_ADD("maincpu", M68020, 16000000)
MCFG_CPU_PROGRAM_MAP(sgi_ip2_map)
MCFG_MC68681_ADD( "duart68681a", XTAL_3_6864MHz ) /* Y3 3.6864MHz Xtal ??? copy-over from dectalk */
MCFG_DEVICE_ADD( "duart68681a", MC68681, XTAL_3_6864MHz ) /* Y3 3.6864MHz Xtal ??? copy-over from dectalk */
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(sgi_ip2_state, duarta_irq_handler))
MCFG_MC68681_B_TX_CALLBACK(DEVWRITELINE("rs232", rs232_port_device, write_txd))
MCFG_MC68681_ADD( "duart68681b", XTAL_3_6864MHz ) /* Y3 3.6864MHz Xtal ??? copy-over from dectalk */
MCFG_DEVICE_ADD( "duart68681b", MC68681, XTAL_3_6864MHz ) /* Y3 3.6864MHz Xtal ??? copy-over from dectalk */
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(sgi_ip2_state, duartb_irq_handler))
MCFG_MC146818_ADD( "rtc", XTAL_4_194304Mhz )

View File

@ -776,7 +776,7 @@ MACHINE_CONFIG_START( maygay_m1 )
MCFG_CPU_IO_MAP(maygay_mcu_io)
MCFG_MC68681_ADD("duart68681", M1_DUART_CLOCK)
MCFG_DEVICE_ADD("duart68681", MC68681, M1_DUART_CLOCK)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(maygay1b_state, duart_irq_handler))
MCFG_MC68681_INPORT_CALLBACK(READ8(maygay1b_state, m1_duart_r))

View File

@ -897,7 +897,7 @@ static MACHINE_CONFIG_START( maygayv1 )
MCFG_PALETTE_ADD("palette", 16)
MCFG_MC68681_ADD("duart68681", DUART_CLOCK)
MCFG_DEVICE_ADD("duart68681", MC68681, DUART_CLOCK)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(maygayv1_state, duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(WRITELINE(maygayv1_state, duart_txa))

View File

@ -156,13 +156,13 @@ static MACHINE_CONFIG_START( micro20 )
MCFG_CPU_ADD(MAINCPU_TAG, M68020, XTAL_16_67MHz)
MCFG_CPU_PROGRAM_MAP(micro20_map)
MCFG_MC68681_ADD(DUART_A_TAG, XTAL_3_6864MHz)
MCFG_DEVICE_ADD(DUART_A_TAG, MC68681, XTAL_3_6864MHz)
MCFG_MC68681_A_TX_CALLBACK(DEVWRITELINE("rs232", rs232_port_device, write_txd))
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(DUART_A_TAG, mc68681_device, rx_a_w))
MCFG_MC68681_ADD(DUART_B_TAG, XTAL_3_6864MHz)
MCFG_DEVICE_ADD(DUART_B_TAG, MC68681, XTAL_3_6864MHz)
MCFG_WD1772_ADD(FDC_TAG, XTAL_16_67MHz / 2)

View File

@ -319,7 +319,7 @@ static MACHINE_CONFIG_START( micro3d )
MCFG_MCS51_SERIAL_TX_CB(WRITE8(micro3d_state, data_from_i8031))
MCFG_MCS51_SERIAL_RX_CB(READ8(micro3d_state, data_to_i8031))
MCFG_MC68681_ADD("duart", XTAL_3_6864MHz)
MCFG_DEVICE_ADD("duart", MC68681, XTAL_3_6864MHz)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(micro3d_state, duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(DEVWRITELINE("monitor", rs232_port_device, write_txd))
MCFG_MC68681_B_TX_CALLBACK(WRITELINE(micro3d_state, duart_txb))

View File

@ -399,11 +399,11 @@ static MACHINE_CONFIG_START( pt68k2 )
MCFG_CPU_ADD(M68K_TAG, M68000, XTAL_16MHz/2) // 68k2 came in 8, 10, and 12 MHz versions
MCFG_CPU_PROGRAM_MAP(pt68k2_mem)
MCFG_MC68681_ADD("duart1", XTAL_3_6864MHz)
MCFG_DEVICE_ADD("duart1", MC68681, XTAL_3_6864MHz)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(pt68k4_state, duart1_irq))
MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(pt68k4_state, duart1_out))
MCFG_MC68681_ADD("duart2", XTAL_3_6864MHz)
MCFG_DEVICE_ADD("duart2", MC68681, XTAL_3_6864MHz)
MCFG_DEVICE_ADD(KBDC_TAG, PC_KBDC, 0)
MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE(pt68k4_state, keyboard_clock_w))
@ -440,11 +440,11 @@ static MACHINE_CONFIG_START( pt68k4 )
MCFG_CPU_PROGRAM_MAP(pt68k4_mem)
// add the DUARTS. first one has the console on channel A at 19200.
MCFG_MC68681_ADD("duart1", XTAL_16MHz / 4)
MCFG_DEVICE_ADD("duart1", MC68681, XTAL_16MHz / 4)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(pt68k4_state, duart1_irq))
MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(pt68k4_state, duart1_out))
MCFG_MC68681_ADD("duart2", XTAL_16MHz / 4)
MCFG_DEVICE_ADD("duart2", MC68681, XTAL_16MHz / 4)
MCFG_DEVICE_ADD(KBDC_TAG, PC_KBDC, 0)
MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE(pt68k4_state, keyboard_clock_w))

View File

@ -364,7 +364,7 @@ static MACHINE_CONFIG_START( tm )
MCFG_CPU_PROGRAM_MAP(tmaster_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmaster_state, scanline_interrupt, "screen", 0, 1)
MCFG_MC68681_ADD( "duart68681", XTAL_8_664MHz / 2 /*??*/)
MCFG_DEVICE_ADD( "duart68681", MC68681, XTAL_8_664MHz / 2 /*??*/)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(tmaster_state, duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(DEVWRITELINE("microtouch", microtouch_device, rx))

View File

@ -624,15 +624,15 @@ static MACHINE_CONFIG_START( nevada )
MCFG_SOUND_ADD("aysnd", AY8912, SOUND_CLOCK)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
MCFG_MC68681_ADD( "duart18_68681", XTAL_3_6864MHz ) // UARTA = Modem 1200Baud
MCFG_DEVICE_ADD("duart18_68681", MC68681, XTAL_3_6864MHz) // UARTA = Modem 1200Baud
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(nevada_state, duart18_irq_handler))
MCFG_MC68681_INPORT_CALLBACK(IOPORT("DSW1"))
MCFG_MC68681_ADD( "duart39_68681", XTAL_3_6864MHz ) // UARTA = Printer
MCFG_DEVICE_ADD("duart39_68681", MC68681, XTAL_3_6864MHz) // UARTA = Printer
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(nevada_state, duart39_irq_handler))
MCFG_MC68681_INPORT_CALLBACK(IOPORT("DSW2"))
MCFG_MC68681_ADD( "duart40_68681", XTAL_3_6864MHz ) // UARTA = Touch , UARTB = Bill Acceptor
MCFG_DEVICE_ADD("duart40_68681", MC68681, XTAL_3_6864MHz) // UARTA = Touch , UARTB = Bill Acceptor
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(nevada_state, duart40_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(DEVWRITELINE("microtouch", microtouch_device, rx))
MCFG_MC68681_INPORT_CALLBACK(IOPORT("DSW3"))

View File

@ -456,7 +456,7 @@ static MACHINE_CONFIG_START( wildpkr )
MCFG_CPU_PROGRAM_MAP(wildpkr_map)
//MCFG_CPU_VBLANK_INT_DRIVER("screen", wildpkr_state, irq2_line_hold) // guess
MCFG_MC68681_ADD("duart", SEC_CLOCK)
MCFG_DEVICE_ADD("duart", MC68681, SEC_CLOCK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -490,7 +490,7 @@ static MACHINE_CONFIG_START( tabpkr )
MCFG_NVRAM_ADD_1FILL("nvram") // DS1220Y
MCFG_MC68681_ADD("duart", 3686400)
MCFG_DEVICE_ADD("duart", MC68681, 3686400)
MCFG_MC68681_IRQ_CALLBACK(ASSERTLINE("maincpu", M68K_IRQ_2))
MCFG_DEVICE_ADD("id", DS2401, 0)