|
|
| version 1.2, 2004/08/08 17:45:52 | version 1.5, 2005/02/04 06:42:14 |
|---|---|
| Line 137 _scf: and byte [edi + R_Z80F], ~(H_FL | Line 137 _scf: and byte [edi + R_Z80F], ~(H_FL |
| align 16 | align 16 |
| _halt: dec word [edi + R_Z80PC] | _halt: dec word [edi + R_Z80PC] |
| or byte [edi + R_Z80IFF], (1 << IFF_HALT) | or byte [edi + R_Z80IFF], (1 << IFF_HALT) |
| mov dword [edi + z80core_t.remainclock], 0 | |
| ret | ret |
| align 16 | align 16 |
| Line 144 _di: or byte [edi + R_Z80IFF], (1 << | Line 145 _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_NMI) |
| movzx edx, byte [_cycles_main + eax] | jne short .nextop |
| Z80WORK edx | cmp dword [edi + R_Z80REQIRQ], 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 |