added halt to debugger state, so you can break out of a hlt instruction [smf]

This commit is contained in:
smf- 2016-12-03 01:55:00 +00:00
parent 43bf02b759
commit 9708183b46
5 changed files with 16 additions and 12 deletions

View File

@ -555,8 +555,9 @@ void i80186_cpu_device::device_start()
state_add( I8086_DS, "DS", m_sregs[DS] ).formatstr("%04X"); state_add( I8086_DS, "DS", m_sregs[DS] ).formatstr("%04X");
state_add( I8086_VECTOR, "V", m_int_vector).formatstr("%02X"); state_add( I8086_VECTOR, "V", m_int_vector).formatstr("%02X");
state_add(STATE_GENPC, "PC", m_pc).callimport().formatstr("%05X"); state_add( I8086_PC, "PC", m_pc ).callimport().formatstr("%05X");
state_add(STATE_GENPCBASE, "CURPC", m_pc).callimport().formatstr("%05X"); state_add( STATE_GENPCBASE, "CURPC", m_pc ).callimport().formatstr("%05X").noshow();
state_add( I8086_HALT, "HALT", m_halt ).mask(1);
// register for savestates // register for savestates
save_item(NAME(m_timer[0].control)); save_item(NAME(m_timer[0].control));

View File

@ -273,8 +273,10 @@ void i80286_cpu_device::device_start()
state_add( I286_MSW, "MSW", m_msw ).formatstr("%04X"); state_add( I286_MSW, "MSW", m_msw ).formatstr("%04X");
state_add( I286_VECTOR, "V", m_int_vector).formatstr("%02X"); state_add( I286_VECTOR, "V", m_int_vector).formatstr("%02X");
state_add(STATE_GENPC, "PC", m_pc).callimport().formatstr("%06X"); state_add( I286_PC, "PC", m_pc).callimport().formatstr("%06X");
state_add(STATE_GENPCBASE, "CURPC", m_pc).callimport().formatstr("%06X"); state_add( STATE_GENPCBASE, "CURPC", m_pc ).callimport().formatstr("%06X").noshow();
state_add( I8086_HALT, "HALT", m_halt ).mask(1);
m_out_shutdown_func.resolve_safe(); m_out_shutdown_func.resolve_safe();
} }

View File

@ -10,9 +10,9 @@ extern const device_type I80286;
enum enum
{ // same order as I8086 registers { // same order as I8086 registers
I286_PC = 0, I286_PC = STATE_GENPC,
I286_IP, I286_IP = 1,
I286_AX, I286_AX,
I286_CX, I286_CX,
I286_DX, I286_DX,
@ -29,7 +29,7 @@ enum
I286_DS, I286_DS,
I286_VECTOR, I286_VECTOR,
I286_PENDING, I286_HALT,
I286_ES_BASE, I286_ES_BASE,
I286_ES_LIMIT, I286_ES_LIMIT,

View File

@ -273,8 +273,9 @@ void i8086_cpu_device::device_start()
state_add( I8086_DS, "DS", m_sregs[DS] ).formatstr("%04X"); state_add( I8086_DS, "DS", m_sregs[DS] ).formatstr("%04X");
state_add( I8086_VECTOR, "V", m_int_vector).formatstr("%02X"); state_add( I8086_VECTOR, "V", m_int_vector).formatstr("%02X");
state_add(STATE_GENPC, "PC", m_pc).callimport().formatstr("%05X"); state_add( I8086_PC, "PC", m_pc ).callimport().formatstr("%05X");
state_add(STATE_GENPCBASE, "CURPC", m_pc).callimport().formatstr("%05X"); state_add( STATE_GENPCBASE, "CURPC", m_pc ).callimport().formatstr("%05X").noshow();
state_add( I8086_HALT, "HALT", m_halt ).mask(1);
} }
i8086_common_cpu_device::i8086_common_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) i8086_common_cpu_device::i8086_common_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source)

View File

@ -20,10 +20,10 @@ extern const device_type I8088;
enum enum
{ {
I8086_PC=0, I8086_PC = STATE_GENPC,
I8086_IP, I8086_AX, I8086_CX, I8086_DX, I8086_BX, I8086_SP, I8086_BP, I8086_SI, I8086_DI, I8086_IP = 1, I8086_AX, I8086_CX, I8086_DX, I8086_BX, I8086_SP, I8086_BP, I8086_SI, I8086_DI,
I8086_FLAGS, I8086_ES, I8086_CS, I8086_SS, I8086_DS, I8086_FLAGS, I8086_ES, I8086_CS, I8086_SS, I8086_DS,
I8086_VECTOR, I8086_PENDING I8086_VECTOR, I8086_HALT
}; };