mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
x68k: check for dma bus error first
This commit is contained in:
parent
6ab0eda653
commit
7200cca83a
@ -706,6 +706,12 @@ TIMER_CALLBACK_MEMBER(x68k_state::bus_error)
|
||||
|
||||
void x68k_state::set_bus_error(uint32_t address, bool rw, uint16_t mem_mask)
|
||||
{
|
||||
LOGMASKED(LOG_SYS, "%s: Bus error: Unused RAM access [%08x]\n", machine().describe_context(), address);
|
||||
if(!m_maincpu->executing())
|
||||
{
|
||||
m_hd63450->bec_w(0, hd63450_device::ERR_BUS);
|
||||
return;
|
||||
}
|
||||
if(m_maincpu->type() == M68000) {
|
||||
downcast<m68000_device *>(m_maincpu.target())->trigger_bus_error();
|
||||
return;
|
||||
@ -713,11 +719,6 @@ void x68k_state::set_bus_error(uint32_t address, bool rw, uint16_t mem_mask)
|
||||
|
||||
if(m_bus_error)
|
||||
return;
|
||||
else if(!m_maincpu->executing())
|
||||
{
|
||||
m_hd63450->bec_w(0, hd63450_device::ERR_BUS);
|
||||
return;
|
||||
}
|
||||
if(!ACCESSING_BITS_8_15)
|
||||
address++;
|
||||
m_bus_error = true;
|
||||
@ -727,7 +728,6 @@ void x68k_state::set_bus_error(uint32_t address, bool rw, uint16_t mem_mask)
|
||||
cpuptr->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE);
|
||||
cpuptr->set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE);
|
||||
m_bus_error_timer->adjust(cpuptr->cycles_to_attotime(16)); // let rmw cycles complete
|
||||
LOGMASKED(LOG_SYS, "%s: Bus error: Unused RAM access [%08x]\n", machine().describe_context(), address);
|
||||
}
|
||||
|
||||
uint16_t x68k_state::rom0_r(offs_t offset, uint16_t mem_mask)
|
||||
|
Loading…
Reference in New Issue
Block a user