summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/i8271.cpp
diff options
context:
space:
mode:
author Nigel Barnes <Pernod70@users.noreply.github.com>2020-06-15 17:10:48 +0100
committer Nigel Barnes <Pernod70@users.noreply.github.com>2020-06-15 17:12:06 +0100
commit19437e461e209e4158af436555b6dbdcdaae5d2a (patch)
tree3d4f573680c9011e13fdf3aab641b3f42ae764a1 /src/devices/machine/i8271.cpp
parent351479f33f298ecfe98bfbd8f6e0eea92e06ff72 (diff)
bus/bbc/fdc: Added Solidisk DDFS Issues 1/2 and DFDC disk controller boards.
Diffstat (limited to 'src/devices/machine/i8271.cpp')
-rw-r--r--src/devices/machine/i8271.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/devices/machine/i8271.cpp b/src/devices/machine/i8271.cpp
index 7d11e3aa26a..f70f1395f66 100644
--- a/src/devices/machine/i8271.cpp
+++ b/src/devices/machine/i8271.cpp
@@ -3,7 +3,6 @@
#include "emu.h"
#include "i8271.h"
-#include "imagedev/floppy.h"
DEFINE_DEVICE_TYPE(I8271, i8271_device, "i8271", "Intel 8271 FDC")
@@ -121,15 +120,23 @@ bool i8271_device::get_ready(int fid)
return !external_ready;
}
-void i8271_device::set_floppy(floppy_image_device *flop)
+void i8271_device::set_floppies(floppy_connector *f0, floppy_connector *f1)
{
- for(auto & elem : flopi) {
- if(elem.dev)
- elem.dev->setup_index_pulse_cb(floppy_image_device::index_pulse_cb());
- elem.dev = flop;
+ if (f0) {
+ flopi[0].dev = f0->get_device();
+ if (flopi[0].dev != nullptr)
+ flopi[0].dev->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(&i8271_device::index_callback, this));
}
- if(flop)
- flop->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(&i8271_device::index_callback, this));
+ else
+ flopi[0].dev = nullptr;
+
+ if (f1) {
+ flopi[1].dev = f0->get_device();
+ if (flopi[1].dev != nullptr)
+ flopi[1].dev->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(&i8271_device::index_callback, this));
+ }
+ else
+ flopi[1].dev = nullptr;
}
uint8_t i8271_device::sr_r()