summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/isa/fdc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/isa/fdc.cpp')
-rw-r--r--src/devices/bus/isa/fdc.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/devices/bus/isa/fdc.cpp b/src/devices/bus/isa/fdc.cpp
index 0648a16a6e3..aab99b12ed5 100644
--- a/src/devices/bus/isa/fdc.cpp
+++ b/src/devices/bus/isa/fdc.cpp
@@ -45,10 +45,6 @@ isa8_fdc_device::isa8_fdc_device(const machine_config &mconfig, device_type type
{
}
-void isa8_fdc_device::device_reset()
-{
-}
-
WRITE_LINE_MEMBER( isa8_fdc_device::irq_w )
{
m_isa->irq6_w(state ? ASSERT_LINE : CLEAR_LINE);
@@ -80,7 +76,9 @@ void isa8_fdc_device::eop_w(int state)
}
-isa8_upd765_fdc_device::isa8_upd765_fdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, type, tag, owner, clock)
+isa8_upd765_fdc_device::isa8_upd765_fdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
+ : isa8_fdc_device(mconfig, type, tag, owner, clock)
+ , dor(0x00)
{
}
@@ -94,7 +92,11 @@ void isa8_upd765_fdc_device::device_start()
irq = drq = false;
fdc_irq = fdc_drq = false;
- dor = 0x00;
+}
+
+void isa8_upd765_fdc_device::device_reset()
+{
+ dor_w(0x00);
}
// Bits 0-1 select one of the 4 drives, but only if the associated
@@ -109,7 +111,6 @@ void isa8_upd765_fdc_device::device_start()
void isa8_upd765_fdc_device::dor_w(uint8_t data)
{
LOG("dor = %02x\n", data);
- uint8_t pdor = dor;
dor = data;
for(int i=0; i<4; i++)
@@ -124,8 +125,7 @@ void isa8_upd765_fdc_device::dor_w(uint8_t data)
check_irq();
check_drq();
- if((pdor^dor) & 4)
- m_fdc->soft_reset();
+ m_fdc->reset_w(!BIT(dor, 2));
}
uint8_t isa8_upd765_fdc_device::dor_r()