mirror of
https://github.com/holub/mame
synced 2025-05-25 07:15:25 +03:00
am9517a: sync with MESS changes (nw)
This commit is contained in:
parent
a664ac2015
commit
2c437a6d66
@ -118,6 +118,7 @@ inline void am9517a_device::dma_request(int channel, int state)
|
|||||||
{
|
{
|
||||||
m_status &= ~(1 << (channel + 4));
|
m_status &= ~(1 << (channel + 4));
|
||||||
}
|
}
|
||||||
|
trigger(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -142,7 +143,7 @@ inline bool am9517a_device::is_software_request_active(int channel)
|
|||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// set_hreq -
|
// set_hreq
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
inline void am9517a_device::set_hreq(int state)
|
inline void am9517a_device::set_hreq(int state)
|
||||||
@ -498,6 +499,11 @@ void am9517a_device::execute_run()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(m_state == STATE_SI)
|
||||||
|
{
|
||||||
|
suspend_until_trigger(1, true);
|
||||||
|
m_icount = 0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE_S0:
|
case STATE_S0:
|
||||||
@ -507,14 +513,25 @@ void am9517a_device::execute_run()
|
|||||||
{
|
{
|
||||||
m_state = (MODE_MASK == MODE_CASCADE) ? STATE_SC : get_state1(true);
|
m_state = (MODE_MASK == MODE_CASCADE) ? STATE_SC : get_state1(true);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
suspend_until_trigger(1, true);
|
||||||
|
m_icount = 0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE_SC:
|
case STATE_SC:
|
||||||
if (!is_request_active(m_current_channel))
|
if (!is_request_active(m_current_channel))
|
||||||
{
|
{
|
||||||
|
set_hreq(0);
|
||||||
m_current_channel = -1;
|
m_current_channel = -1;
|
||||||
m_state = STATE_SI;
|
m_state = STATE_SI;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
suspend_until_trigger(1, true);
|
||||||
|
m_icount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
set_dack();
|
set_dack();
|
||||||
break;
|
break;
|
||||||
@ -649,7 +666,7 @@ READ8_MEMBER( am9517a_device::read )
|
|||||||
data = m_status;
|
data = m_status;
|
||||||
|
|
||||||
// clear TC bits
|
// clear TC bits
|
||||||
m_status &= 0x0f;
|
m_status &= 0xf0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REGISTER_TEMPORARY:
|
case REGISTER_TEMPORARY:
|
||||||
@ -793,6 +810,7 @@ WRITE8_MEMBER( am9517a_device::write )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
trigger(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -805,6 +823,7 @@ WRITE_LINE_MEMBER( am9517a_device::hack_w )
|
|||||||
if (LOG) logerror("AM9517A '%s' Hold Acknowledge: %u\n", tag(), state);
|
if (LOG) logerror("AM9517A '%s' Hold Acknowledge: %u\n", tag(), state);
|
||||||
|
|
||||||
m_hack = state;
|
m_hack = state;
|
||||||
|
trigger(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user