|
|
| version 1.6, 2004/08/11 13:53:54 | version 1.7, 2004/08/11 16:09:04 |
|---|---|
| Line 12 section .text | Line 12 section .text |
| global _z80x_step | global _z80x_step |
| extern _z80core | extern _z80core |
| extern _z80dmap | |
| extern memfetch | extern memfetch |
| extern memrd16_ecx_ax | extern memrd16_ecx_ax |
| extern memwr16_ecx_dx | extern memwr16_ecx_dx |
| extern _cycles_main | extern _cycles_main |
| extern opcode_main | extern opcode_main |
| extern _z80dmap | |
| extern _dma | |
| align 16 | align 16 |
| _z80x_ableinterrupt: | _z80x_ableinterrupt: |
| Line 95 _z80x_nonmaskedinterrupt: | Line 96 _z80x_nonmaskedinterrupt: |
| _z80x_execute push ebx | _z80x_execute push ebx |
| push edi | push edi |
| mov edi, _z80core | mov edi, _z80core |
| cmp byte [_dma], 0 | |
| 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] |
| inc word [edi + R_Z80PC] | inc word [edi + R_Z80PC] |
| Line 102 _z80x_execute push ebx | Line 105 _z80x_execute push ebx |
| movzx edx, byte [_cycles_main + eax] | movzx edx, byte [_cycles_main + eax] |
| Z80WORK edx | Z80WORK edx |
| call dword [opcode_main + eax*4] | call dword [opcode_main + eax*4] |
| call _z80dmap | |
| mov eax, [edi + z80core_t.remainclock] | mov eax, [edi + z80core_t.remainclock] |
| cmp eax, byte 0 | cmp eax, byte 0 |
| jg short .lp | jg short .lp |
| pop edi | .ed: pop edi |
| pop ebx | pop ebx |
| ret | ret |
| .dmalp: inc byte [edi + R_Z80R] | |
| movzx ecx, word [edi + R_Z80PC] | |
| inc word [edi + R_Z80PC] | |
| call memfetch | |
| movzx edx, byte [_cycles_main + eax] | |
| Z80WORK edx | |
| call dword [opcode_main + eax*4] | |
| call _z80dmap | |
| mov eax, [edi + z80core_t.remainclock] | |
| cmp eax, byte 0 | |
| jg short .dmalp | |
| jmp short .ed | |
| align 16 | align 16 |
| _z80x_step: push ebx | _z80x_step: push ebx |