diff options
Diffstat (limited to 'src/devices/bus/epson_sio/pf10.cpp')
-rw-r--r-- | src/devices/bus/epson_sio/pf10.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/devices/bus/epson_sio/pf10.cpp b/src/devices/bus/epson_sio/pf10.cpp index 462de5ecaa3..f986bb5d4c2 100644 --- a/src/devices/bus/epson_sio/pf10.cpp +++ b/src/devices/bus/epson_sio/pf10.cpp @@ -12,7 +12,6 @@ #include "emu.h" #include "pf10.h" -#include "imagedev/floppy.h" //************************************************************************** @@ -61,7 +60,8 @@ static void pf10_floppies(device_slot_interface &device) device.option_add("smd165", EPSON_SMD_165); } -MACHINE_CONFIG_START(epson_pf10_device::device_add_mconfig) +void epson_pf10_device::device_add_mconfig(machine_config &config) +{ HD6303Y(config, m_cpu, XTAL(4'915'200)); // HD63A03XF m_cpu->set_addrmap(AS_PROGRAM, &epson_pf10_device::cpu_mem); m_cpu->in_p1_cb().set(FUNC(epson_pf10_device::port1_r)); @@ -71,12 +71,12 @@ MACHINE_CONFIG_START(epson_pf10_device::device_add_mconfig) m_cpu->out_ser_tx_cb().set(FUNC(epson_pf10_device::hd6303_tx_w)); UPD765A(config, m_fdc, 4'000'000, false, true); - MCFG_FLOPPY_DRIVE_ADD("upd765a:0", pf10_floppies, "smd165", floppy_image_device::default_floppy_formats) + FLOPPY_CONNECTOR(config, m_floppy, pf10_floppies, "smd165", floppy_image_device::default_floppy_formats); - MCFG_EPSON_SIO_ADD("sio", nullptr) - MCFG_EPSON_SIO_RX(WRITELINE(DEVICE_SELF, epson_pf10_device, rxc_w)) - MCFG_EPSON_SIO_PIN(WRITELINE(DEVICE_SELF, epson_pf10_device, pinc_w)) -MACHINE_CONFIG_END + EPSON_SIO(config, m_sio_output, nullptr); + m_sio_output->rx_callback().set(DEVICE_SELF, FUNC(epson_pf10_device::rxc_w)); + m_sio_output->pin_callback().set(DEVICE_SELF, FUNC(epson_pf10_device::pinc_w)); +} //************************************************************************** @@ -92,7 +92,9 @@ epson_pf10_device::epson_pf10_device(const machine_config &mconfig, const char * device_epson_sio_interface(mconfig, *this), m_cpu(*this, "maincpu"), m_fdc(*this, "upd765a"), - m_sio_output(*this, "sio"), m_floppy(nullptr), m_timer(nullptr), + m_sio_output(*this, "sio"), + m_floppy(*this, "upd765a:0"), + m_timer(nullptr), m_port1(0xff), m_port2(0xff), m_rxc(1), m_hd6303_tx(0), m_pinc(0) @@ -108,7 +110,6 @@ epson_pf10_device::epson_pf10_device(const machine_config &mconfig, const char * void epson_pf10_device::device_start() { m_timer = timer_alloc(0, nullptr); - m_floppy = subdevice<floppy_connector>("upd765a:0")->get_device(); } //------------------------------------------------- @@ -158,7 +159,8 @@ READ8_MEMBER( epson_pf10_device::port2_r ) WRITE8_MEMBER( epson_pf10_device::port2_w ) { - m_floppy->mon_w(data & PORT2_MON); + if (m_floppy->get_device() != nullptr) + m_floppy->get_device()->mon_w(data & PORT2_MON); logerror("%s: port2_w(%02x)\n", tag(), data); } |