|
|
| version 1.4, 2004/08/11 12:08:17 | version 1.8, 2004/08/20 23:01:16 |
|---|---|
| Line 2 | Line 2 |
| #define MCR_Z80INF(reg) { \ | #define MCR_Z80INF(reg) { \ |
| (reg) = iocore_inp(R_Z80BC); \ | (reg) = iocore_inp(R_Z80BC); \ |
| R_Z80F &= C_FLAG; \ | R_Z80F &= C_FLAG; \ |
| R_Z80F |= ZSPtable[(reg)]; \ | R_Z80F |= z80szp_flag[(reg)]; \ |
| } | } |
| #define MCR_Z80OUT(reg) { \ | #define MCR_Z80OUT(reg) { \ |
| Line 38 | Line 38 |
| } | } |
| #define MCR_RETN { \ | #define MCR_RETN { \ |
| Z80_IFF &= ~((1 << IFF_NMI) | (1 << IFF_IRQ)); \ | Z80_IFF &= ~(1 << IFF_NMI); \ |
| MCR_RET \ | MCR_RET \ |
| } | } |
| Line 58 | Line 58 |
| } \ | } \ |
| R_Z80F |= (((tmp ^ (reg)) & (tmp ^ R_Z80HL)) >> 13) & V_FLAG; \ | R_Z80F |= (((tmp ^ (reg)) & (tmp ^ R_Z80HL)) >> 13) & V_FLAG; \ |
| R_Z80F |= ((R_Z80HL ^ tmp ^ (reg)) >> 8) & H_FLAG; \ | R_Z80F |= ((R_Z80HL ^ tmp ^ (reg)) >> 8) & H_FLAG; \ |
| (reg) = (UINT16)tmp; \ | R_Z80HL = (UINT16)tmp; \ |
| } | } |
| #define MCR_RETI { \ | #define MCR_RETI { \ |
| REG8 iff; \ | ievent_eoi(); \ |
| 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 \ | MCR_RET \ |
| } | } |
| Line 106 | Line 97 |
| mem_write8(R_Z80HL, (REG8)((tmp >> 4) | (R_Z80A << 4))); \ | mem_write8(R_Z80HL, (REG8)((tmp >> 4) | (R_Z80A << 4))); \ |
| R_Z80A = (R_Z80A & 0xf0) | (tmp & 0x0f); \ | R_Z80A = (R_Z80A & 0xf0) | (tmp & 0x0f); \ |
| R_Z80F &= C_FLAG; \ | R_Z80F &= C_FLAG; \ |
| R_Z80F |= ZSPtable[R_Z80A]; \ | R_Z80F |= z80szp_flag[R_Z80A]; \ |
| } | } |
| #define MCR_RLD { \ | #define MCR_RLD { \ |
| Line 115 | Line 106 |
| mem_write8(R_Z80HL, (REG8)((tmp << 4) + (R_Z80A & 0x0f))); \ | mem_write8(R_Z80HL, (REG8)((tmp << 4) + (R_Z80A & 0x0f))); \ |
| R_Z80A = (R_Z80A & 0xf0) | (tmp >> 4); \ | R_Z80A = (R_Z80A & 0xf0) | (tmp >> 4); \ |
| R_Z80F &= C_FLAG; \ | R_Z80F &= C_FLAG; \ |
| R_Z80F |= ZSPtable[R_Z80A]; \ | R_Z80F |= z80szp_flag[R_Z80A]; \ |
| } | } |
| Line 123 | Line 114 |
| REG8 tmp; \ | REG8 tmp; \ |
| tmp = iocore_inp(R_Z80BC); \ | tmp = iocore_inp(R_Z80BC); \ |
| R_Z80F &= C_FLAG; \ | R_Z80F &= C_FLAG; \ |
| R_Z80F |= ZSPtable[tmp]; \ | R_Z80F |= z80szp_flag[tmp]; \ |
| } | } |