upd765: drop the polling irq when anything is written to the controller in command mode (verified on actual hardware) (nw)

This commit is contained in:
cracyc 2014-06-11 15:32:08 +00:00
parent f2b2974176
commit 051634cccc
2 changed files with 4 additions and 2 deletions

View File

@ -400,6 +400,8 @@ WRITE8_MEMBER(upd765_family_device::fifo_w)
switch(main_phase) { switch(main_phase) {
case PHASE_CMD: { case PHASE_CMD: {
command[command_pos++] = data; command[command_pos++] = data;
other_irq = false;
check_irq();
int cmd = check_command(); int cmd = check_command();
if(cmd == C_INCOMPLETE) if(cmd == C_INCOMPLETE)
break; break;
@ -1283,8 +1285,6 @@ void upd765_family_device::start_command(int cmd)
break; break;
case C_SEEK: case C_SEEK:
other_irq = false;
check_irq();
seek_start(flopi[command[1] & 3]); seek_start(flopi[command[1] & 3]);
main_phase = PHASE_CMD; main_phase = PHASE_CMD;
break; break;

View File

@ -705,6 +705,8 @@ WRITE_LINE_MEMBER( x68k_state::fdc_irq )
logerror("FDC: IRQ triggered\n"); logerror("FDC: IRQ triggered\n");
m_maincpu->set_input_line_and_vector(1, ASSERT_LINE, m_current_vector[1]); 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) WRITE16_MEMBER(x68k_state::x68k_fm_w)