diff --git a/src/emu/machine/upd765.c b/src/emu/machine/upd765.c index 2091485641b..685d2b4239a 100644 --- a/src/emu/machine/upd765.c +++ b/src/emu/machine/upd765.c @@ -400,6 +400,8 @@ WRITE8_MEMBER(upd765_family_device::fifo_w) switch(main_phase) { case PHASE_CMD: { command[command_pos++] = data; + other_irq = false; + check_irq(); int cmd = check_command(); if(cmd == C_INCOMPLETE) break; @@ -1283,8 +1285,6 @@ void upd765_family_device::start_command(int cmd) break; case C_SEEK: - other_irq = false; - check_irq(); seek_start(flopi[command[1] & 3]); main_phase = PHASE_CMD; break; diff --git a/src/mess/drivers/x68k.c b/src/mess/drivers/x68k.c index 467bdb33255..e6bc729af16 100644 --- a/src/mess/drivers/x68k.c +++ b/src/mess/drivers/x68k.c @@ -705,6 +705,8 @@ WRITE_LINE_MEMBER( x68k_state::fdc_irq ) logerror("FDC: IRQ triggered\n"); m_maincpu->set_input_line_and_vector(1, ASSERT_LINE, m_current_vector[1]); } + else + m_maincpu->set_input_line(1, CLEAR_LINE); } WRITE16_MEMBER(x68k_state::x68k_fm_w)