--- xmil/z80x/z80x_sb.x86 2004/08/11 12:08:17 1.2 +++ xmil/z80x/z80x_sb.x86 2004/08/15 17:51:53 1.4 @@ -18,6 +18,7 @@ section .text extern memfetch extern _cycles_main extern opcode_main + extern _ievent_eoi align 16 @@ -34,22 +35,11 @@ im_2: mov byte [edi + R_Z80IM], 2 align 16 -_retn: and byte [edi + R_Z80IFF], ~((1 << IFF_NMI) | (1 << IFF_IRQ)) +_retn: and byte [edi + R_Z80IFF], ~(1 << IFF_NMI) MRET align 16 -_reti: mov dl, [edi + R_Z80IFF] - test dl, ((1 << IFF_IFLAG) | (1 << IFF_NMI)) - jne short .mn - cmp dword [edi + z80core_t.reqirq], byte 0 - je short .mn - mov eax, [edi + z80core_t.remainclock] - cmp eax, byte 0 - jle short .mn - sub [edi + z80core_t.remainclock], eax - sub [edi + z80core_t.baseclock], eax -.mn: and dl, ~(1 << IFF_IRQ) - mov [edi + R_Z80IFF], dl +_reti: call _ievent_eoi MRET align 16