|
|
| version 1.2, 2004/08/08 17:45:52 | version 1.3, 2004/08/11 12:08:17 |
|---|---|
| Line 144 _di: or byte [edi + R_Z80IFF], (1 << | Line 144 _di: or byte [edi + R_Z80IFF], (1 << |
| ret | ret |
| align 16 | align 16 |
| _ei: and byte [edi + R_Z80IFF], ~(1 << IFF_IFLAG) | _ei: mov al, [edi + R_Z80IFF] |
| movzx ecx, word [edi + R_Z80PC] | test al, (1 << IFF_IFLAG) |
| call memfetch | je short .ed |
| cmp al, 0fbh | and al, ~(1 << IFF_IFLAG) |
| je short .eiret | mov edx, [edi + z80core_t.remainclock] |
| inc byte [edi + R_Z80R] | mov [edi + R_Z80IFF], al |
| inc word [edi + R_Z80PC] | test al, ((1 << IFF_IRQ) | (1 << IFF_NMI)) |
| movzx edx, byte [_cycles_main + eax] | jne short .nextop |
| Z80WORK edx | cmp dword [edi + z80core_t.reqirq], byte 0 |
| jmp [opcode_main + eax*4] | jne short .eventexit |
| .eiret: ret | .nextop: cmp edx, byte 1 |
| jge short .ed | |
| .eventexit: dec edx | |
| mov dword [edi + z80core_t.remainclock], 1 | |
| sub [edi + z80core_t.baseclock], edx | |
| .ed: ret | |
| align 16 | align 16 |
| ld_nop: ret | ld_nop: ret |