summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/epson_sio/tf20.cpp
diff options
context:
space:
mode:
author andreasnaive <andreasnaive@gmail.com>2019-03-25 23:13:40 +0100
committer andreasnaive <andreasnaive@gmail.com>2019-03-25 23:13:40 +0100
commitb380514764cf857469bae61c11143a19f79a74c5 (patch)
tree63c8012e262618f08a332da31dd714281aa2c5ed /src/devices/bus/epson_sio/tf20.cpp
parentc24473ddff715ecec2e258a6eb38960cf8c8e98e (diff)
Revert "conflict resolution (nw)"
This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
Diffstat (limited to 'src/devices/bus/epson_sio/tf20.cpp')
-rw-r--r--src/devices/bus/epson_sio/tf20.cpp36
1 files changed, 18 insertions, 18 deletions
diff --git a/src/devices/bus/epson_sio/tf20.cpp b/src/devices/bus/epson_sio/tf20.cpp
index 1fb12a66c0e..22959af2730 100644
--- a/src/devices/bus/epson_sio/tf20.cpp
+++ b/src/devices/bus/epson_sio/tf20.cpp
@@ -14,6 +14,7 @@
#include "emu.h"
#include "tf20.h"
+#include "imagedev/floppy.h"
#define XTAL_CR1 XTAL(8'000'000)
#define XTAL_CR2 XTAL(4'915'200)
@@ -86,12 +87,11 @@ static void tf20_floppies(device_slot_interface &device)
device.option_add("sd320", EPSON_SD_320);
}
-void epson_tf20_device::device_add_mconfig(machine_config &config)
-{
- Z80(config, m_cpu, XTAL_CR1 / 2); /* uPD780C */
- m_cpu->set_addrmap(AS_PROGRAM, &epson_tf20_device::cpu_mem);
- m_cpu->set_addrmap(AS_IO, &epson_tf20_device::cpu_io);
- m_cpu->set_irq_acknowledge_callback(FUNC(epson_tf20_device::irq_callback));
+MACHINE_CONFIG_START(epson_tf20_device::device_add_mconfig)
+ MCFG_DEVICE_ADD("19b", Z80, XTAL_CR1 / 2) /* uPD780C */
+ MCFG_DEVICE_PROGRAM_MAP(cpu_mem)
+ MCFG_DEVICE_IO_MAP(cpu_io)
+ MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(DEVICE_SELF, epson_tf20_device, irq_callback)
// 64k internal ram
RAM(config, "ram").set_default_size("64K");
@@ -106,14 +106,14 @@ void epson_tf20_device::device_add_mconfig(machine_config &config)
m_fdc->intrq_wr_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0);
// floppy drives
- for (auto &fd : m_fd)
- FLOPPY_CONNECTOR(config, fd, tf20_floppies, "sd320", floppy_image_device::default_floppy_formats);
+ MCFG_FLOPPY_DRIVE_ADD("5a:0", tf20_floppies, "sd320", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("5a:1", tf20_floppies, "sd320", floppy_image_device::default_floppy_formats)
// serial interface to another device
- EPSON_SIO(config, m_sio_output, nullptr);
- m_sio_output->rx_callback().set(DEVICE_SELF, FUNC(epson_tf20_device::rxc_w));
- m_sio_output->pin_callback().set(DEVICE_SELF, FUNC(epson_tf20_device::pinc_w));
-}
+ MCFG_EPSON_SIO_ADD("sio", nullptr)
+ MCFG_EPSON_SIO_RX(WRITELINE(DEVICE_SELF, epson_tf20_device, rxc_w))
+ MCFG_EPSON_SIO_PIN(WRITELINE(DEVICE_SELF, epson_tf20_device, pinc_w))
+MACHINE_CONFIG_END
//**************************************************************************
@@ -131,9 +131,7 @@ epson_tf20_device::epson_tf20_device(const machine_config &mconfig, const char *
m_ram(*this, "ram"),
m_fdc(*this, "5a"),
m_mpsc(*this, "3a"),
- m_sio_output(*this, "sio"),
- m_fd(*this, "5a:%u", 0U),
- m_timer_serial(nullptr), m_timer_tc(nullptr),
+ m_sio_output(*this, "sio"), m_fd0(nullptr), m_fd1(nullptr), m_timer_serial(nullptr), m_timer_tc(nullptr),
m_rxc(1), m_txda(0), m_dtra(0), m_pinc(0)
{
m_sio_input = dynamic_cast<epson_sio_device *>(owner);
@@ -152,6 +150,9 @@ void epson_tf20_device::device_start()
m_timer_serial = timer_alloc(0, nullptr);
m_timer_tc = timer_alloc(1, nullptr);
+ m_fd0 = subdevice<floppy_connector>("5a:0")->get_device();
+ m_fd1 = subdevice<floppy_connector>("5a:1")->get_device();
+
// enable second half of ram
m_cpu->space(AS_PROGRAM).install_ram(0x8000, 0xffff, m_ram->pointer() + 0x8000);
@@ -247,9 +248,8 @@ WRITE8_MEMBER( epson_tf20_device::fdc_control_w )
logerror("%s: tf20_fdc_control_w(%02x)\n", machine().describe_context(), data);
// bit 0, motor on signal
- for (auto &fd : m_fd)
- if (fd->get_device() != nullptr)
- fd->get_device()->mon_w(!BIT(data, 0));
+ m_fd0->mon_w(!BIT(data, 0));
+ m_fd1->mon_w(!BIT(data, 0));
}