|
|
| version 1.7, 2004/08/11 16:09:04 | version 1.9, 2005/02/04 06:42:14 |
|---|---|
| Line 21 section .text | Line 21 section .text |
| extern _z80dmap | extern _z80dmap |
| extern _dma | extern _dma |
| align 16 | |
| _z80x_ableinterrupt: | |
| test byte [_z80core + R_Z80IFF], ((1 << IFF_IFLAG) | (1 << IFF_IRQ) | (1 << IFF_NMI)) | |
| setz al | |
| ret | |
| align 16 | align 16 |
| @z80x_interrupt@4: | @z80x_interrupt@4: |
| Line 36 _z80x_ableinterrupt: | Line 30 _z80x_ableinterrupt: |
| je short .setintr | je short .setintr |
| inc word [edx + R_Z80PC] | inc word [edx + R_Z80PC] |
| and al, ~(1 << IFF_HALT) | and al, ~(1 << IFF_HALT) |
| .setintr: or al, ((1 << IFF_IRQ) | (1 << IFF_IFLAG)) | .setintr: or al, (1 << IFF_IFLAG) |
| cmp byte [edx + R_Z80IM], 1 | cmp byte [edx + R_Z80IM], 1 |
| mov [edx + R_Z80IFF], al | mov [edx + R_Z80IFF], al |
| je short .im1 | je short .im1 |
| Line 96 _z80x_nonmaskedinterrupt: | Line 90 _z80x_nonmaskedinterrupt: |
| _z80x_execute push ebx | _z80x_execute push ebx |
| push edi | push edi |
| mov edi, _z80core | mov edi, _z80core |
| cmp byte [_dma], 0 | test byte [_dma], 1 |
| jne short .dmalp | jne short .dmalp |
| .lp: inc byte [edi + R_Z80R] | .lp: inc byte [edi + R_Z80R] |
| movzx ecx, word [edi + R_Z80PC] | movzx ecx, word [edi + R_Z80PC] |