--- xmil/z80c/z80c.c 2004/08/01 05:31:32 1.1 +++ xmil/z80c/z80c.c 2004/08/11 12:08:17 1.4 @@ -11,7 +11,6 @@ #include "parts.h" #include "z80core.h" #include "z80c.h" -#include "x1_io.h" #include "z80c.mcr" @@ -149,14 +148,14 @@ void CPUCALL z80c_interrupt(REG8 vect) { case 1: Z80_COUNT(11); R_Z80SP -= 2; - Z80_WRMEM_W(R_Z80SP, R_Z80PC); + mem_write16(R_Z80SP, R_Z80PC); R_Z80PC = 0x38; break; case 2: - pc = Z80_RDMEM_W((R_Z80I << 8) + vect); + pc = mem_read16((R_Z80I << 8) + vect); R_Z80SP -= 2; - Z80_WRMEM_W(R_Z80SP, R_Z80PC); + mem_write16(R_Z80SP, R_Z80PC); R_Z80PC = pc; break; } @@ -182,14 +181,14 @@ void CPUCALL z80c_interrupt2(REG8 vect) case 1: Z80_COUNT(11); R_Z80SP -= 2; - Z80_WRMEM_W(R_Z80SP, R_Z80PC); + mem_write16(R_Z80SP, R_Z80PC); R_Z80PC = 0x38; break; case 2: - pc = Z80_RDMEM_W((R_Z80I << 8) + vect); + pc = mem_read16((R_Z80I << 8) + vect); R_Z80SP -= 2; - Z80_WRMEM_W(R_Z80SP, R_Z80PC); + mem_write16(R_Z80SP, R_Z80PC); R_Z80PC = pc; break; } @@ -204,7 +203,7 @@ void CPUCALL z80c_nonmaskedinterrupt(voi R_Z80PC++; } R_Z80SP -= 2; - Z80_WRMEM_W(R_Z80SP, R_Z80PC); + mem_write16(R_Z80SP, R_Z80PC); R_Z80PC = 0x66; } } @@ -213,14 +212,23 @@ void CPUCALL z80c_execute(void) { UINT op; - R_Z80R++; - GET_PC_BYTE(op); - Z80_COUNT(cycles_main[op]); - z80c_mainop[op](); + do { + R_Z80R++; + GET_PC_BYTE(op); + Z80_COUNT(cycles_main[op]); + z80c_mainop[op](); + z80dmap(); + } while(CPU_REMCLOCK > 0); +} + +void CPUCALL z80c_step(void) { + + UINT op; R_Z80R++; GET_PC_BYTE(op); Z80_COUNT(cycles_main[op]); z80c_mainop[op](); + z80dmap(); }