summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-09-10 17:36:13 -0400
committer AJR <ajrhacker@users.noreply.github.com>2019-09-10 17:36:13 -0400
commit286b34a24c17a235b00a6288d27fc1ed94638e02 (patch)
tree59e77e5ea2663f19417b8a7491e9650416449088
parentec4e6bdf0fc42c64eea2ec3fe1e63bb3db9bbe53 (diff)
rii: Add standard status flag display (nw)
-rw-r--r--src/devices/cpu/rii/riscii.cpp23
-rw-r--r--src/devices/cpu/rii/riscii.h3
2 files changed, 24 insertions, 2 deletions
diff --git a/src/devices/cpu/rii/riscii.cpp b/src/devices/cpu/rii/riscii.cpp
index 96a5cd99430..11978351072 100644
--- a/src/devices/cpu/rii/riscii.cpp
+++ b/src/devices/cpu/rii/riscii.cpp
@@ -111,8 +111,8 @@ void riscii_series_device::device_start()
set_icountptr(m_icount);
state_add(RII_PC, "PC", m_pc).mask((1 << m_prgbits) - 1);
- state_add(STATE_GENPC, "GENPC", m_pc).callimport().noshow();
- state_add(STATE_GENPCBASE, "CURPC", m_ppc).callimport().noshow();
+ state_add(STATE_GENPC, "GENPC", m_pc).mask((1 << m_prgbits) - 1).noshow();
+ state_add(STATE_GENPCBASE, "CURPC", m_ppc).mask((1 << m_prgbits) - 1).noshow();
state_add(RII_REPEAT, "REPEAT", m_repeat);
state_add(RII_ACC, "ACC", m_acc);
state_add(RII_BSR, "BSR", m_bsr[0]).mask(m_bankmask);
@@ -123,6 +123,7 @@ void riscii_series_device::device_start()
state_add(RII_STKPTR, "STKPTR", m_stkptr);
state_add(RII_CPUCON, "CPUCON", m_cpucon).mask(0x9f);
state_add(RII_STATUS, "STATUS", m_status);
+ state_add(STATE_GENFLAGS, "CURFLAGS", m_status).noshow().formatstr("%8s");
state_add(RII_PROD, "PROD", m_prod);
state_add(RII_POST_ID, "POST_ID", m_post_id);
@@ -1122,3 +1123,21 @@ void riscii_series_device::execute_set_input(int inputnum, int state)
{
// TODO
}
+
+void riscii_series_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%c%c%c%c%c",
+ BIT(m_status, 7) ? 'T' : '.', // /TO
+ BIT(m_status, 6) ? 'P' : '.', // /PD
+ BIT(m_status, 5) ? 'G' : '.', // SGE
+ BIT(m_status, 4) ? 'L' : '.', // SLE
+ BIT(m_status, 3) ? 'V' : '.', // OV
+ BIT(m_status, 2) ? 'Z' : '.',
+ BIT(m_status, 1) ? 'D' : '.', // auxiliary carry
+ BIT(m_status, 0) ? 'C' : '.');
+ break;
+ }
+}
diff --git a/src/devices/cpu/rii/riscii.h b/src/devices/cpu/rii/riscii.h
index 7f812eab920..f00b378fd5b 100644
--- a/src/devices/cpu/rii/riscii.h
+++ b/src/devices/cpu/rii/riscii.h
@@ -53,6 +53,9 @@ protected:
// device_memory_interface overrides
virtual space_config_vector memory_space_config() const override;
+ // device_state_interface overrides
+ virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
+
private:
// register handlers
u8 fsr0_r();