--- xmil/z80c/z80c_s.mcr 2004/08/08 14:00:56 1.3 +++ xmil/z80c/z80c_s.mcr 2004/08/11 12:08:17 1.4 @@ -62,7 +62,16 @@ } #define MCR_RETI { \ - Z80_IFF &= ~(1 << IFF_IRQ); \ + REG8 iff; \ + iff = Z80_IFF; \ + if (iff & (1 << IFF_IRQ)) { \ + Z80_IFF = (UINT8)(iff & (~(1 << IFF_IRQ))); \ + if ((!(iff & ((1 << IFF_IFLAG) | (1 << IFF_NMI)))) && \ + (CPU_REQIRQ != 0)) { \ + CPU_BASECLOCK -= CPU_REMCLOCK; \ + CPU_REMCLOCK = 0; \ + } \ + } \ MCR_RET \ }