mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
m6809: Remove fake SWI interrupt line, replacing interrupt callback with exception hook for debugging
This commit is contained in:
parent
8d41e6f920
commit
17f6f0f07d
@ -672,7 +672,7 @@ SWI:
|
||||
// doesn't use SOFTWARE_INTERRUPT label because SWI will
|
||||
// inhibit IRQ/FIRQ
|
||||
set_ea(VECTOR_SWI);
|
||||
standard_irq_callback(M6809_SWI, m_pc.w);
|
||||
debugger_exception_hook(EXCEPTION_SWI);
|
||||
m_cc |= CC_E;
|
||||
set_regop16(m_s);
|
||||
m_temp.w = entire_state_registers();
|
||||
@ -684,12 +684,12 @@ SWI:
|
||||
|
||||
SWI2:
|
||||
set_ea(VECTOR_SWI2);
|
||||
standard_irq_callback(M6809_SWI, m_pc.w);
|
||||
debugger_exception_hook(EXCEPTION_SWI2);
|
||||
goto SOFTWARE_INTERRUPT;
|
||||
|
||||
SWI3:
|
||||
set_ea(VECTOR_SWI3);
|
||||
standard_irq_callback(M6809_SWI, m_pc.w);
|
||||
debugger_exception_hook(EXCEPTION_SWI3);
|
||||
goto SOFTWARE_INTERRUPT;
|
||||
|
||||
SOFTWARE_INTERRUPT:
|
||||
|
@ -128,6 +128,16 @@ protected:
|
||||
VECTOR_RESET_FFFE = 0xFFFE
|
||||
};
|
||||
|
||||
// exception numbers for debugger
|
||||
enum
|
||||
{
|
||||
EXCEPTION_SWI = 1,
|
||||
EXCEPTION_SWI2 = 2,
|
||||
EXCEPTION_SWI3 = 3,
|
||||
EXCEPTION_XFIRQ = 4,
|
||||
EXCEPTION_XRES = 5
|
||||
};
|
||||
|
||||
union M6809Q
|
||||
{
|
||||
#ifdef LSB_FIRST
|
||||
@ -332,6 +342,5 @@ enum
|
||||
|
||||
#define M6809_IRQ_LINE 0 /* IRQ line number */
|
||||
#define M6809_FIRQ_LINE 1 /* FIRQ line number */
|
||||
#define M6809_SWI 2 /* Virtual SWI line to be used during SWI acknowledge cycle */
|
||||
|
||||
#endif // MAME_CPU_M6809_M6809_H
|
||||
|
@ -663,7 +663,7 @@ XANDCC:
|
||||
|
||||
XRES:
|
||||
set_ea(VECTOR_RESET_FFFE);
|
||||
standard_irq_callback(M6809_SWI, m_pc.w);
|
||||
debugger_exception_hook(EXCEPTION_XRES);
|
||||
set_regop16(m_s);
|
||||
m_temp.w = entire_state_registers();
|
||||
@dummy_read_opcode_arg(0);
|
||||
@ -724,7 +724,7 @@ XST16:
|
||||
|
||||
XSWI2:
|
||||
set_ea(VECTOR_SWI2);
|
||||
standard_irq_callback(M6809_SWI, m_pc.w);
|
||||
debugger_exception_hook(EXCEPTION_SWI2);
|
||||
set_regop16(m_s);
|
||||
m_temp.w = entire_state_registers();
|
||||
@dummy_read_opcode_arg(0);
|
||||
@ -745,7 +745,7 @@ XADD16:
|
||||
|
||||
XFIRQ:
|
||||
set_ea(VECTOR_FIRQ);
|
||||
standard_irq_callback(M6809_SWI, m_pc.w);
|
||||
debugger_exception_hook(EXCEPTION_XFIRQ);
|
||||
set_regop16(m_s);
|
||||
m_temp.w = entire_state_registers();
|
||||
@dummy_read_opcode_arg(0);
|
||||
|
Loading…
Reference in New Issue
Block a user