|
|
| version 1.2, 2004/08/08 14:00:56 | version 1.3, 2004/08/11 12:08:17 |
|---|---|
| Line 9 | Line 9 |
| #define Z80_COUNT(clock) \ | #define Z80_COUNT(clock) \ |
| do { \ | do { \ |
| Z80_ICOUNT += (clock); \ | CPU_REMCLOCK -= (clock); \ |
| } while (/*CONSTCOND*/ 0) | } while (/*CONSTCOND*/ 0) |
| #define Z80IRQCHECKTERM \ | #define Z80IRQCHECKTERM \ |
| Line 566 | Line 566 |
| } | } |
| #define MCR_EI { \ | #define MCR_EI { \ |
| UINT op; \ | REG8 iff; \ |
| Z80_IFF &= ~(1 << IFF_IFLAG); \ | SINT32 rem; \ |
| op = mem_read8(R_Z80PC); \ | iff = Z80_IFF; \ |
| if (op != 0xfb) { \ | if (iff & (1 << IFF_IFLAG)) { \ |
| R_Z80PC++; \ | Z80_IFF = (UINT8)(iff & (~(1 << IFF_IFLAG))); \ |
| R_Z80R++; \ | rem = CPU_REMCLOCK - 1; \ |
| Z80_COUNT(cycles_main[op]); \ | if ((rem < 0) || \ |
| z80c_mainop[op](); \ | ((!(iff & ((1 << IFF_IRQ) | (1 << IFF_NMI)))) && \ |
| (CPU_REQIRQ != 0))) { \ | |
| CPU_BASECLOCK -= rem; \ | |
| CPU_REMCLOCK = 1; \ | |
| } \ | |
| } \ | } \ |
| } | } |