Merge pull request #4112 from hp9k/tms9914_feoi_fix

tms9914: latch EOI flag until next byte is sent
This commit is contained in:
R. Belmont 2018-10-10 17:18:38 -04:00 committed by GitHub
commit 73cc342529
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 8 deletions

View File

@ -285,6 +285,19 @@ WRITE8_MEMBER(tms9914_device::reg8_w)
case REG_W_DO:
m_reg_do = data;
if (m_next_eoi) {
m_next_eoi = false;
if (!m_swrst) {
if (m_t_eoi_state == FSM_T_ENIS) {
m_t_eoi_state = FSM_T_ENRS;
} else if (m_t_eoi_state == FSM_T_ENAS) {
m_t_eoi_state = FSM_T_ERAS;
}
}
}
set_accrq(false);
if (!m_swrst) {
BIT_CLR(m_reg_int0_status , REG_INT0_BO_BIT);
@ -1131,6 +1144,7 @@ void tms9914_device::if_cmd_received(uint8_t if_cmd)
void tms9914_device::dab_received(uint8_t dab , bool eoi)
{
LOG("%.6f RX DAB:%02x/%d\n" , machine().time().as_double() , dab , eoi);
m_reg_di = dab;
if (!m_shdw) {
m_ah_anhs = true;
set_int0_bit(REG_INT0_BI_BIT);
@ -1141,7 +1155,6 @@ void tms9914_device::dab_received(uint8_t dab , bool eoi)
if (m_hdfe && eoi) {
m_ah_aehs = true;
}
m_reg_di = dab;
}
void tms9914_device::do_aux_cmd(unsigned cmd , bool set_bit)
@ -1219,13 +1232,7 @@ void tms9914_device::do_aux_cmd(unsigned cmd , bool set_bit)
break;
case AUXCMD_FEOI:
if (!m_swrst) {
if (m_t_eoi_state == FSM_T_ENIS) {
m_t_eoi_state = FSM_T_ENRS;
} else if (m_t_eoi_state == FSM_T_ENAS) {
m_t_eoi_state = FSM_T_ERAS;
}
}
m_next_eoi = true;
break;
case AUXCMD_LON:

View File

@ -317,6 +317,7 @@ private:
void update_ifc();
void update_ren();
void set_accrq(bool state);
bool m_next_eoi;
};
// device type definition