amiga/amiga_m.cpp: move CIA A TOD writes to vblank end, make Logica CIA Alarm test to work reliably

This commit is contained in:
angelosa 2023-12-27 00:11:30 +01:00
parent 46d6655ca2
commit 8c217d0deb
2 changed files with 3 additions and 9 deletions

View File

@ -1174,11 +1174,6 @@ void mos6526_device::tod_w(int state)
if (m_tod == m_alarm)
{
m_icr |= ICR_ALARM;
if (IMR_ALARM)
{
m_write_irq(ASSERT_LINE);
m_irq = true;
}
}
}
}

View File

@ -237,7 +237,7 @@ void amiga_state::vblank()
{
}
// todo: cia a clock can be connected to either a fixed 50/60hz signal from the power supply, or the vblank
// TODO: CIA A clock can be connected to either a fixed 50/60hz signal from the power supply, or the vblank
TIMER_CALLBACK_MEMBER( amiga_state::scanline_callback )
{
int scanline = param;
@ -248,9 +248,6 @@ TIMER_CALLBACK_MEMBER( amiga_state::scanline_callback )
// signal vblank irq
set_interrupt(INTENA_SETCLR | INTENA_VERTB);
// clock tod
m_cia_0->tod_w(1);
// additional bookkeeping by drivers
vblank();
}
@ -258,6 +255,8 @@ TIMER_CALLBACK_MEMBER( amiga_state::scanline_callback )
// vblank end
if (scanline == m_screen->visible_area().top())
{
// clock tod
m_cia_0->tod_w(1);
m_cia_0->tod_w(0);
}