diff options
Diffstat (limited to 'src/devices/cpu/mn1400/mn1400base.cpp')
| -rw-r--r-- | src/devices/cpu/mn1400/mn1400base.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/devices/cpu/mn1400/mn1400base.cpp b/src/devices/cpu/mn1400/mn1400base.cpp index 01543bd4ae3..2877e750a55 100644 --- a/src/devices/cpu/mn1400/mn1400base.cpp +++ b/src/devices/cpu/mn1400/mn1400base.cpp @@ -63,6 +63,8 @@ void mn1400_base_device::device_start() m_a = 0; m_x = 0; m_y = 0; + m_status = 0; + m_counter = 0; // register for savestates save_item(NAME(m_pc)); @@ -74,16 +76,20 @@ void mn1400_base_device::device_start() save_item(NAME(m_a)); save_item(NAME(m_x)); save_item(NAME(m_y)); + save_item(NAME(m_status)); + save_item(NAME(m_counter)); // register state for debugger state_add(STATE_GENPC, "GENPC", m_pc).formatstr("%03X").noshow(); state_add(STATE_GENPCBASE, "CURPC", m_prev_pc).formatstr("%03X").noshow(); + state_add(STATE_GENFLAGS, "GENFLAGS", m_status).formatstr("%3s").noshow(); m_state_count = 0; state_add(++m_state_count, "PC", m_pc).formatstr("%03X"); // 1 state_add(++m_state_count, "A", m_a).formatstr("%01X"); // 2 state_add(++m_state_count, "X", m_x).formatstr("%01X"); // 3 state_add(++m_state_count, "Y", m_y).formatstr("%01X"); // 4 + state_add(++m_state_count, "CNT", m_y).formatstr("%02X"); // 5 set_icountptr(m_icount); } @@ -96,6 +102,20 @@ device_memory_interface::space_config_vector mn1400_base_device::memory_space_co }; } +void mn1400_base_device::state_string_export(const device_state_entry &entry, std::string &str) const +{ + switch (entry.index()) + { + case STATE_GENFLAGS: + str = string_format("%c%c%c", + (m_status & FLAG_P) ? 'P' : 'p', + (m_status & FLAG_C) ? 'C' : 'c', + (m_status & FLAG_Z) ? 'Z' : 'z' + ); + break; + } +} + //------------------------------------------------- // device_reset - device-specific reset |
