From 9708183b4606621079e12cc40ea3370cfc7ab642 Mon Sep 17 00:00:00 2001 From: smf- Date: Sat, 3 Dec 2016 01:55:00 +0000 Subject: [PATCH] added halt to debugger state, so you can break out of a hlt instruction [smf] --- src/devices/cpu/i86/i186.cpp | 5 +++-- src/devices/cpu/i86/i286.cpp | 6 ++++-- src/devices/cpu/i86/i286.h | 6 +++--- src/devices/cpu/i86/i86.cpp | 5 +++-- src/devices/cpu/i86/i86.h | 6 +++--- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/devices/cpu/i86/i186.cpp b/src/devices/cpu/i86/i186.cpp index 67c61a695db..e923c131b0c 100644 --- a/src/devices/cpu/i86/i186.cpp +++ b/src/devices/cpu/i86/i186.cpp @@ -555,8 +555,9 @@ void i80186_cpu_device::device_start() state_add( I8086_DS, "DS", m_sregs[DS] ).formatstr("%04X"); state_add( I8086_VECTOR, "V", m_int_vector).formatstr("%02X"); - state_add(STATE_GENPC, "PC", m_pc).callimport().formatstr("%05X"); - state_add(STATE_GENPCBASE, "CURPC", 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").noshow(); + state_add( I8086_HALT, "HALT", m_halt ).mask(1); // register for savestates save_item(NAME(m_timer[0].control)); diff --git a/src/devices/cpu/i86/i286.cpp b/src/devices/cpu/i86/i286.cpp index 77b2e0513cc..d8cea213c9d 100644 --- a/src/devices/cpu/i86/i286.cpp +++ b/src/devices/cpu/i86/i286.cpp @@ -273,8 +273,10 @@ void i80286_cpu_device::device_start() state_add( I286_MSW, "MSW", m_msw ).formatstr("%04X"); state_add( I286_VECTOR, "V", m_int_vector).formatstr("%02X"); - state_add(STATE_GENPC, "PC", m_pc).callimport().formatstr("%06X"); - state_add(STATE_GENPCBASE, "CURPC", 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").noshow(); + state_add( I8086_HALT, "HALT", m_halt ).mask(1); + m_out_shutdown_func.resolve_safe(); } diff --git a/src/devices/cpu/i86/i286.h b/src/devices/cpu/i86/i286.h index 862f33ae13d..f61793f2e6e 100644 --- a/src/devices/cpu/i86/i286.h +++ b/src/devices/cpu/i86/i286.h @@ -10,9 +10,9 @@ extern const device_type I80286; enum { // same order as I8086 registers - I286_PC = 0, + I286_PC = STATE_GENPC, - I286_IP, + I286_IP = 1, I286_AX, I286_CX, I286_DX, @@ -29,7 +29,7 @@ enum I286_DS, I286_VECTOR, - I286_PENDING, + I286_HALT, I286_ES_BASE, I286_ES_LIMIT, diff --git a/src/devices/cpu/i86/i86.cpp b/src/devices/cpu/i86/i86.cpp index 4d78a8fc405..2f21f5d0d4c 100644 --- a/src/devices/cpu/i86/i86.cpp +++ b/src/devices/cpu/i86/i86.cpp @@ -273,8 +273,9 @@ void i8086_cpu_device::device_start() state_add( I8086_DS, "DS", m_sregs[DS] ).formatstr("%04X"); state_add( I8086_VECTOR, "V", m_int_vector).formatstr("%02X"); - state_add(STATE_GENPC, "PC", m_pc).callimport().formatstr("%05X"); - state_add(STATE_GENPCBASE, "CURPC", 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").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) diff --git a/src/devices/cpu/i86/i86.h b/src/devices/cpu/i86/i86.h index f874b0b8437..ecdf97ae2b2 100644 --- a/src/devices/cpu/i86/i86.h +++ b/src/devices/cpu/i86/i86.h @@ -20,10 +20,10 @@ extern const device_type I8088; enum { - I8086_PC=0, - I8086_IP, I8086_AX, I8086_CX, I8086_DX, I8086_BX, I8086_SP, I8086_BP, I8086_SI, I8086_DI, + I8086_PC = STATE_GENPC, + 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_VECTOR, I8086_PENDING + I8086_VECTOR, I8086_HALT };