mirror of
https://github.com/holub/mame
synced 2025-05-22 13:48:55 +03:00
tms9914: fixed handling of GTS aux command.
This commit is contained in:
parent
923933efcb
commit
743b0a9c83
@ -547,6 +547,7 @@ void tms9914_device::do_swrst()
|
|||||||
m_rl_state = FSM_RL_LOCS;
|
m_rl_state = FSM_RL_LOCS;
|
||||||
m_pp_ppas = false;
|
m_pp_ppas = false;
|
||||||
m_c_state = FSM_C_CIDS;
|
m_c_state = FSM_C_CIDS;
|
||||||
|
m_gts = false;
|
||||||
|
|
||||||
update_int();
|
update_int();
|
||||||
set_accrq(false);
|
set_accrq(false);
|
||||||
@ -847,6 +848,7 @@ void tms9914_device::update_fsm()
|
|||||||
prev_state = m_c_state;
|
prev_state = m_c_state;
|
||||||
if (controller_reset()) {
|
if (controller_reset()) {
|
||||||
m_c_state = FSM_C_CIDS;
|
m_c_state = FSM_C_CIDS;
|
||||||
|
m_gts = false;
|
||||||
m_c_dly_timer->reset();
|
m_c_dly_timer->reset();
|
||||||
} else {
|
} else {
|
||||||
switch (m_c_state) {
|
switch (m_c_state) {
|
||||||
@ -863,8 +865,13 @@ void tms9914_device::update_fsm()
|
|||||||
case FSM_C_CACS:
|
case FSM_C_CACS:
|
||||||
if (m_rpp) {
|
if (m_rpp) {
|
||||||
m_c_state = FSM_C_CPWS;
|
m_c_state = FSM_C_CPWS;
|
||||||
|
m_gts = false;
|
||||||
|
} else if (m_gts && !sh_active()) {
|
||||||
|
m_c_state = FSM_C_CSBS;
|
||||||
|
m_gts = false;
|
||||||
|
// This ensures a BO interrupt is generated if TACS is active
|
||||||
|
m_sh_state = FSM_SH_SIDS;
|
||||||
}
|
}
|
||||||
// gts -> CSBS
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FSM_C_CSBS:
|
case FSM_C_CSBS:
|
||||||
@ -1246,11 +1253,8 @@ void tms9914_device::do_aux_cmd(unsigned cmd , bool set_bit)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case AUXCMD_GTS:
|
case AUXCMD_GTS:
|
||||||
if (m_c_state == FSM_C_CACS && !sh_active()) {
|
if (m_c_state == FSM_C_CACS) {
|
||||||
m_c_state = FSM_C_CSBS;
|
m_gts = true;
|
||||||
m_ext_state_change = true;
|
|
||||||
// This ensures a BO interrupt is generated if TACS is active
|
|
||||||
m_sh_state = FSM_SH_SIDS;
|
|
||||||
update_fsm();
|
update_fsm();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -160,6 +160,7 @@ private:
|
|||||||
bool m_hdfa;
|
bool m_hdfa;
|
||||||
bool m_hdfe;
|
bool m_hdfe;
|
||||||
bool m_rtl;
|
bool m_rtl;
|
||||||
|
bool m_gts;
|
||||||
bool m_rpp;
|
bool m_rpp;
|
||||||
bool m_sic;
|
bool m_sic;
|
||||||
bool m_sre;
|
bool m_sre;
|
||||||
|
Loading…
Reference in New Issue
Block a user