diff options
author | holub <andrei.holub@gmail.com> | 2022-05-13 03:21:15 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-13 17:21:15 +1000 |
commit | 51a0b7020883510300296cf77e3c8c22f70a6a02 (patch) | |
tree | d125288fea5d49dc5432f434c694af9253780975 /src/mame/machine | |
parent | 98b14fa8ae8451ccf1bb6ff6b82c1db775b9d8cf (diff) |
zx spectrum drivers: Restore irq length == 32 / border timings. (#9711)
Diffstat (limited to 'src/mame/machine')
-rw-r--r-- | src/mame/machine/tsconf.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mame/machine/tsconf.cpp b/src/mame/machine/tsconf.cpp index 99bcb99c8c3..3540708fbf8 100644 --- a/src/mame/machine/tsconf.cpp +++ b/src/mame/machine/tsconf.cpp @@ -755,7 +755,7 @@ void tsconf_state::update_frame_timer() INTERRUPT_GEN_MEMBER(tsconf_state::tsconf_vblank_interrupt) { update_frame_timer(); - m_line_irq_timer->adjust(m_screen->time_until_pos(0)); + m_line_irq_timer->adjust(attotime::zero); } void tsconf_state::dma_ready(int line) @@ -763,7 +763,7 @@ void tsconf_state::dma_ready(int line) if (BIT(m_regs[INT_MASK], 4)) { m_maincpu->set_input_line_and_vector(line, ASSERT_LINE, 0xfb); - timer_set(m_maincpu->clocks_to_attotime(32 * (1 << (m_regs[SYS_CONFIG] & 0x03))), TIMER_IRQ_OFF, 0); + m_irq_off_timer->adjust(m_maincpu->clocks_to_attotime(32 * (1 << (m_regs[SYS_CONFIG] & 0x03)))); } } @@ -776,7 +776,7 @@ void tsconf_state::device_timer(emu_timer &timer, device_timer_id id, int param) if (BIT(m_regs[INT_MASK], 0)) { m_maincpu->set_input_line_and_vector(0, ASSERT_LINE, 0xff); - timer_set(m_maincpu->clocks_to_attotime(32 * (1 << (m_regs[SYS_CONFIG] & 0x03))), TIMER_IRQ_OFF, 0); + m_irq_off_timer->adjust(m_maincpu->clocks_to_attotime(32 * (1 << (m_regs[SYS_CONFIG] & 0x03)))); } break; } @@ -788,12 +788,12 @@ void tsconf_state::device_timer(emu_timer &timer, device_timer_id id, int param) { m_maincpu->set_input_line_and_vector(0, ASSERT_LINE, 0xfd); // Not quite precise. Scanline can't be skipped. - timer_set(m_maincpu->clocks_to_attotime(32 * (1 << (m_regs[SYS_CONFIG] & 0x03))), TIMER_IRQ_OFF, 0); + m_irq_off_timer->adjust(m_maincpu->clocks_to_attotime(32 * (1 << (m_regs[SYS_CONFIG] & 0x03)))); } if (BIT(m_regs[INT_MASK], 0) && OFFS_512(VS_INT_L) == screen_vpos && m_regs[HS_INT] == 0) { m_maincpu->set_input_line_and_vector(0, ASSERT_LINE, 0xff); - timer_set(m_maincpu->clocks_to_attotime(32 * (1 << (m_regs[SYS_CONFIG] & 0x03))), TIMER_IRQ_OFF, 0); + m_irq_off_timer->adjust(m_maincpu->clocks_to_attotime(32 * (1 << (m_regs[SYS_CONFIG] & 0x03)))); } m_screen->update_now(); |