mirror of
https://github.com/holub/mame
synced 2025-04-09 18:17:44 +03:00
konami cpu: set EXG/TFR reg A high byte to 0x10
This commit is contained in:
parent
b1c09f02b4
commit
950b396e53
@ -442,7 +442,7 @@ inline void hd6309_device::bittest_set(bool result)
|
||||
|
||||
inline uint16_t hd6309_device::read_exgtfr_register(uint8_t reg)
|
||||
{
|
||||
uint16_t result;
|
||||
uint16_t result = 0;
|
||||
|
||||
switch(reg & 0x0F)
|
||||
{
|
||||
@ -462,8 +462,6 @@ inline uint16_t hd6309_device::read_exgtfr_register(uint8_t reg)
|
||||
case 13: result = 0; break; // 0
|
||||
case 14: result = ((uint16_t) m_q.r.e) << 8 | m_q.r.e; break; // E
|
||||
case 15: result = ((uint16_t) m_q.r.f) << 8 | m_q.r.f; break; // F
|
||||
default:
|
||||
fatalerror("Should not reach here");
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -495,8 +493,6 @@ inline void hd6309_device::write_exgtfr_register(uint8_t reg, uint16_t value)
|
||||
case 13: break; // 0
|
||||
case 14: m_q.r.e = (uint8_t) (value >> 8); break; // E
|
||||
case 15: m_q.r.f = (uint8_t) (value >> 0); break; // F
|
||||
default:
|
||||
fatalerror("Should not reach here");
|
||||
}
|
||||
}
|
||||
|
||||
@ -601,8 +597,6 @@ void hd6309_device::register_register_op()
|
||||
case 13: if (promote) set_regop16(m_temp); else set_regop8(m_temp.b.l); break; // 0
|
||||
case 14: if (promote) set_regop16(m_q.p.w); else set_regop8(m_q.r.e); break; // E
|
||||
case 15: if (promote) set_regop16(m_q.p.w); else set_regop8(m_q.r.f); break; // F
|
||||
default:
|
||||
fatalerror("Should not reach here");
|
||||
}
|
||||
|
||||
// set source
|
||||
@ -624,8 +618,6 @@ void hd6309_device::register_register_op()
|
||||
case 13: m_addressing_mode = ADDRESSING_MODE_ZERO; break; // 0
|
||||
case 14: m_addressing_mode = promote ? ADDRESSING_MODE_REGISTER_W : ADDRESSING_MODE_REGISTER_E; break; // E
|
||||
case 15: m_addressing_mode = promote ? ADDRESSING_MODE_REGISTER_W : ADDRESSING_MODE_REGISTER_F; break; // F
|
||||
default:
|
||||
fatalerror("Should not reach here");
|
||||
}
|
||||
|
||||
// eat a single CPU cycle
|
||||
|
@ -206,12 +206,12 @@ inline uint16_t &konami_cpu_device::ireg()
|
||||
|
||||
inline uint16_t konami_cpu_device::read_exgtfr_register(uint8_t reg)
|
||||
{
|
||||
uint16_t result = 0x00FF;
|
||||
uint16_t result = 0;
|
||||
|
||||
switch(reg & 0x07)
|
||||
{
|
||||
case 0: result = m_q.r.a; break; // A
|
||||
case 1: result = m_q.r.d; break; // D
|
||||
case 0: result = m_q.r.a | 0x1000; break; // A (high byte is always 0x10)
|
||||
case 1: result = m_q.r.d; break; // D!
|
||||
case 2: result = m_x.w; break; // X
|
||||
case 3: result = m_y.w; break; // Y
|
||||
case 4: logerror("EXG/TFR unemulated DP reg\n"); break; // DP
|
||||
|
Loading…
Reference in New Issue
Block a user