diff options
Diffstat (limited to 'src/devices/cpu/nec/necpriv.h')
-rw-r--r-- | src/devices/cpu/nec/necpriv.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/devices/cpu/nec/necpriv.h b/src/devices/cpu/nec/necpriv.h index 459fa5017b4..08ce013f891 100644 --- a/src/devices/cpu/nec/necpriv.h +++ b/src/devices/cpu/nec/necpriv.h @@ -52,10 +52,10 @@ enum BREGS { /************************************************************************/ -#define read_mem_byte(a) m_program->read_byte(a) -#define read_mem_word(a) m_program->read_word_unaligned(a) -#define write_mem_byte(a,d) m_program->write_byte((a),(d)) -#define write_mem_word(a,d) m_program->write_word_unaligned((a),(d)) +#define read_mem_byte(a) m_program->read_byte(m_chip_type == V33_TYPE ? v33_translate(a) : (a)) +#define read_mem_word(a) m_program->read_word_unaligned(m_chip_type == V33_TYPE ? v33_translate(a) : (a)) +#define write_mem_byte(a,d) m_program->write_byte(m_chip_type == V33_TYPE ? v33_translate(a) : (a), (d)) +#define write_mem_word(a,d) m_program->write_word_unaligned(m_chip_type == V33_TYPE ? v33_translate(a) : (a), (d)) #define read_port_byte(a) m_io->read_byte(a) #define read_port_word(a) m_io->read_word_unaligned(a) @@ -84,6 +84,8 @@ enum BREGS { #define PUSH(val) { Wreg(SP) -= 2; write_mem_word(((Sreg(SS)<<4)+Wreg(SP)), val); } #define POP(var) { Wreg(SP) += 2; var = read_mem_word(((Sreg(SS)<<4) + ((Wreg(SP)-2) & 0xffff))); } +#define BRKXA(aex) { if (m_chip_type == V33_TYPE) { nec_brk(fetch()); m_aex = aex; } else logerror("%06x: %sXA instruction is V33 exclusive\n", PC(), aex ? "BRK" : "RET"); } + #define GetModRM uint32_t ModRM=fetch() /* Cycle count macros: |