|
|
| version 1.2, 2004/08/11 12:08:17 | version 1.3, 2004/08/14 12:16:18 |
|---|---|
| Line 34 im_2: mov byte [edi + R_Z80IM], 2 | Line 34 im_2: mov byte [edi + R_Z80IM], 2 |
| align 16 | align 16 |
| _retn: and byte [edi + R_Z80IFF], ~((1 << IFF_NMI) | (1 << IFF_IRQ)) | _retn: and byte [edi + R_Z80IFF], ~(1 << IFF_NMI) |
| MRET | MRET |
| align 16 | align 16 |
| _reti: mov dl, [edi + R_Z80IFF] | _reti: mov eax, [edi + R_Z80IRQ] |
| test dl, ((1 << IFF_IFLAG) | (1 << IFF_NMI)) | lea edx, [eax - 1] |
| and eax, edx | |
| test byte [edi + R_Z80IFF], ((1 << IFF_IFLAG) | (1 << IFF_NMI)) | |
| mov [edi + R_Z80IRQ], eax | |
| jne short .mn | jne short .mn |
| cmp dword [edi + z80core_t.reqirq], byte 0 | cmp dword [edi + R_Z80REQIRQ], byte 0 |
| je short .mn | je short .mn |
| mov eax, [edi + z80core_t.remainclock] | mov eax, [edi + z80core_t.remainclock] |
| cmp eax, byte 0 | cmp eax, byte 0 |
| jle short .mn | jle short .mn |
| sub [edi + z80core_t.remainclock], eax | sub [edi + z80core_t.remainclock], eax |
| sub [edi + z80core_t.baseclock], eax | sub [edi + z80core_t.baseclock], eax |
| .mn: and dl, ~(1 << IFF_IRQ) | .mn: MRET |
| mov [edi + R_Z80IFF], dl | |
| MRET | |
| align 16 | align 16 |
| adc_hl_bc: ADCR16 R_Z80BC | adc_hl_bc: ADCR16 R_Z80BC |