public void CountVIATimers(int cycles)
{
UInt32 tmp;
via1_t1c = (UInt16)(tmp = (UInt32)(via1_t1c - cycles));
if (tmp > 0xffff)
{
if ((via1_acr & 0x40) != 0) // Reload from latch in free-run mode
via1_t1c = via1_t1l;
via1_ifr |= 0x40;
}
if ((via1_acr & 0x20) == 0)
{
// Only count in one-shot mode
via1_t2c = (UInt16)(tmp = (UInt32)(via1_t2c - cycles));
if (tmp > 0xffff)
via1_ifr |= 0x20;
}
via2_t1c = (UInt16)(tmp = (UInt32)(via2_t1c - cycles));
if (tmp > 0xffff)
{
if ((via2_acr & 0x40) != 0) // Reload from latch in free-run mode
via2_t1c = via2_t1l;
via2_ifr |= 0x40;
if ((via2_ier & 0x40) != 0)
TriggerJobIRQ();
}
if ((via2_acr & 0x20) == 0)
{ // Only count in one-shot mode
via2_t2c = (UInt16)(tmp = (UInt32)(via2_t2c - cycles));
if (tmp > 0xffff)
via2_ifr |= 0x20;
}
}