public override void ClockCPU() { if ((timerreg & 2) != 0) // && timervalue > 0) { if (timervalue != 0) { timervalue--; } if (timervalue == 0) { /* * if ((timerreg & 1) != 0) * { * timervalue = timerlatch; * //timervalue = 0xFFFF; * } * else * { * timerreg &= unchecked((byte)~2); * timervalue = 0; * timerlatch = 0; * } */ timervalue = timerlatch; timerirq = true; } } audio.Clock(); }
public override void ClockCPU() { if ((timerreg & 2) != 0 && diskenable) { if (timervalue != 0) { timervalue--; } if (timervalue == 0) { timervalue = timerlatch; timerirq = true; if ((timerreg & 1) == 0) { timerreg -= 2; } } } audio.Clock(); }
public override void ClockCPU() { if ((timerreg & 2) != 0 && timervalue > 0) { timervalue--; if (timervalue == 0) { if ((timerreg & 1) != 0) { timervalue = timerlatch; } else { timerreg &= unchecked ((byte)~2); timervalue = 0; timerlatch = 0; } timerirq = true; } } audio.Clock(); }
public override void ClockCPU() { if ((timerreg & 2) != 0 && diskenable) { if (timervalue != 0) { timervalue--; } else { timervalue = timerlatch; //timerirq = true; if ((timerreg & 1) == 0) { timerreg -= 2; } if (!timer_irq_active) { timer_irq_active = true; timerirq_cd = 3; } } } if (timerirq_cd > 0) { timerirq_cd--; } if ((timerirq_cd == 0) && (timer_irq_active)) { timerirq = true; } audio.Clock(); }