diff options
Diffstat (limited to 'src/devices/bus/isa/fdc.cpp')
-rw-r--r-- | src/devices/bus/isa/fdc.cpp | 18 |
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() |