diff --git a/src/mame/drivers/altos5.cpp b/src/mame/drivers/altos5.cpp index e0fa933a54c..fa223a9f8a9 100644 --- a/src/mame/drivers/altos5.cpp +++ b/src/mame/drivers/altos5.cpp @@ -464,9 +464,9 @@ MACHINE_CONFIG_START(altos5_state::altos5) ctc.zc_callback<2>().set("dart", FUNC(z80dart_device::rxtxcb_w)); // Z80DART Ch B rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); - rs232.rxd_handler().set("sio", FUNC(z80dart_device::rxb_w)); - rs232.dcd_handler().set("sio", FUNC(z80dart_device::dcdb_w)); - rs232.cts_handler().set("sio", FUNC(z80dart_device::ctsb_w)); + rs232.rxd_handler().set("sio", FUNC(z80sio_device::rxb_w)); + rs232.dcd_handler().set("sio", FUNC(z80sio_device::dcdb_w)); + rs232.cts_handler().set("sio", FUNC(z80sio_device::ctsb_w)); FD1797(config, m_fdc, 8_MHz_XTAL / 8); m_fdc->intrq_wr_callback().set(FUNC(altos5_state::fdc_intrq_w)); diff --git a/src/mame/machine/apollo.cpp b/src/mame/machine/apollo.cpp index f67b2025425..a041fade651 100644 --- a/src/mame/machine/apollo.cpp +++ b/src/mame/machine/apollo.cpp @@ -1175,8 +1175,11 @@ MACHINE_CONFIG_START(apollo_state::apollo_terminal) MCFG_APOLLO_SIO_OUTPORT_CALLBACK(WRITE8(*this, apollo_state, sio_output)) MCFG_APOLLO_SIO_B_TX_CALLBACK(WRITELINE("rs232", rs232_port_device, write_txd)) - rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); - rs232.rxd_handler().set(APOLLO_SIO_TAG, FUNC(apollo_sio::rx_b_w)); + MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") + MCFG_RS232_RXD_HANDLER(WRITELINE(APOLLO_SIO_TAG, apollo_sio, rx_b_w)) + // this crashes validation with std::bad_cast + //rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + //rs232.rxd_handler().set(APOLLO_SIO_TAG, FUNC(apollo_sio::rx_b_w)); MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", apollo_terminal) MACHINE_CONFIG_END