nevermind previous commit :) the other way around makes more sense, since konami's TFR works like that.

Also changed konami's exchange mask globally to 7
This commit is contained in:
Michaël Banaan Ananas 2013-03-17 13:40:40 +00:00
parent 6a450af069
commit fb25423e7a
2 changed files with 7 additions and 7 deletions

View File

@ -197,7 +197,7 @@ ATTR_FORCE_INLINE m6809_base_device::exgtfr_register konami_cpu_device::read_exg
exgtfr_register result;
result.word_value = 0x00FF;
switch(reg & 0x0F)
switch(reg & 0x07)
{
case 0: result.word_value = m_d.b.h; break; // A
case 1: result.word_value = m_d.b.l; break; // B
@ -217,7 +217,7 @@ ATTR_FORCE_INLINE m6809_base_device::exgtfr_register konami_cpu_device::read_exg
ATTR_FORCE_INLINE void konami_cpu_device::write_exgtfr_register(UINT8 reg, m6809_base_device::exgtfr_register value)
{
switch(reg & 0x0F)
switch(reg & 0x07)
{
case 0: m_d.b.h = value.byte_value; break; // A
case 1: m_d.b.l = value.byte_value; break; // B

View File

@ -431,10 +431,10 @@ EXG:
{
// konami's EXG instruction differs enough from 6809 to fork the code
UINT8 param = read_opcode_arg();
exgtfr_register reg1 = read_exgtfr_register(param >> 4);
exgtfr_register reg2 = read_exgtfr_register(param >> 0);
write_exgtfr_register(param >> 4, reg2);
write_exgtfr_register(param >> 0, reg1);
exgtfr_register reg1 = read_exgtfr_register(param >> 0);
exgtfr_register reg2 = read_exgtfr_register(param >> 4);
write_exgtfr_register(param >> 0, reg2);
write_exgtfr_register(param >> 4, reg1);
}
eat(hd6309_native_mode() ? 3 : 6);
return;
@ -444,7 +444,7 @@ TFR:
// konami's TFR instruction differs enough from 6809 to fork the code
UINT8 param = read_opcode_arg();
exgtfr_register reg = read_exgtfr_register(param >> 0);
write_exgtfr_register((param >> 4) & 0x07, reg);
write_exgtfr_register(param >> 4, reg);
}
eat(hd6309_native_mode() ? 2 : 4);
return;