mirror of
https://github.com/holub/mame
synced 2025-07-03 17:08:39 +03:00
latching of external_input makes previous revert to work by Juergen(nw)
This commit is contained in:
parent
603dfb67c4
commit
52e5987dcb
@ -121,6 +121,7 @@ void ccpu_cpu_device::device_start()
|
|||||||
save_item(NAME(m_drflag));
|
save_item(NAME(m_drflag));
|
||||||
save_item(NAME(m_waiting));
|
save_item(NAME(m_waiting));
|
||||||
save_item(NAME(m_watchdog));
|
save_item(NAME(m_watchdog));
|
||||||
|
save_item(NAME(m_extinput));
|
||||||
|
|
||||||
// Register state for debugger
|
// Register state for debugger
|
||||||
state_add( CCPU_PC, "PC", m_PC).formatstr("%04X");
|
state_add( CCPU_PC, "PC", m_PC).formatstr("%04X");
|
||||||
@ -149,7 +150,7 @@ void ccpu_cpu_device::state_string_export(const device_state_entry &entry, std::
|
|||||||
TEST_NC ? 'N' : 'n',
|
TEST_NC ? 'N' : 'n',
|
||||||
TEST_LT ? 'L' : 'l',
|
TEST_LT ? 'L' : 'l',
|
||||||
TEST_EQ ? 'E' : 'e',
|
TEST_EQ ? 'E' : 'e',
|
||||||
m_external_input() ? 'M' : 'm',
|
m_extinput ? 'M' : 'm',
|
||||||
TEST_DR ? 'D' : 'd');
|
TEST_DR ? 'D' : 'd');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -206,8 +207,11 @@ void ccpu_cpu_device::execute_run()
|
|||||||
m_nextmiflag = m_nextnextmiflag;
|
m_nextmiflag = m_nextnextmiflag;
|
||||||
|
|
||||||
/* fetch the opcode */
|
/* fetch the opcode */
|
||||||
|
opcode = READOP(m_PC);
|
||||||
|
if (opcode == 0x51 || opcode == 0x59)
|
||||||
|
m_extinput = m_external_input();
|
||||||
debugger_instruction_hook(this, m_PC);
|
debugger_instruction_hook(this, m_PC);
|
||||||
opcode = READOP(m_PC++);
|
m_PC++;
|
||||||
|
|
||||||
switch (opcode)
|
switch (opcode)
|
||||||
{
|
{
|
||||||
@ -286,7 +290,7 @@ void ccpu_cpu_device::execute_run()
|
|||||||
|
|
||||||
/* JMIB/JEHB */
|
/* JMIB/JEHB */
|
||||||
case 0x51:
|
case 0x51:
|
||||||
if (m_external_input()) { m_PC = ((m_PC - 1) & 0xf000) + m_J; CYCLES(2); }
|
if (m_extinput) { m_PC = ((m_PC - 1) & 0xf000) + m_J; CYCLES(2); }
|
||||||
NEXT_ACC_B; CYCLES(2);
|
NEXT_ACC_B; CYCLES(2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -333,7 +337,7 @@ void ccpu_cpu_device::execute_run()
|
|||||||
|
|
||||||
/* JMI/JEH */
|
/* JMI/JEH */
|
||||||
case 0x59:
|
case 0x59:
|
||||||
if (m_external_input()) { m_PC = ((m_PC - 1) & 0xf000) + m_J; CYCLES(2); }
|
if (m_extinput) { m_PC = ((m_PC - 1) & 0xf000) + m_J; CYCLES(2); }
|
||||||
NEXT_ACC_A; CYCLES(2);
|
NEXT_ACC_A; CYCLES(2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -113,6 +113,7 @@ protected:
|
|||||||
|
|
||||||
UINT8 m_waiting;
|
UINT8 m_waiting;
|
||||||
UINT8 m_watchdog;
|
UINT8 m_watchdog;
|
||||||
|
UINT8 m_extinput;
|
||||||
|
|
||||||
int m_icount;
|
int m_icount;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user