summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Curt Coder <curtcoder@mail.com>2009-01-12 14:26:56 +0000
committer Curt Coder <curtcoder@mail.com>2009-01-12 14:26:56 +0000
commitbd0d0269ff6b10dad1af5be04ce6d36ff1a8284c (patch)
tree09033181627da698af557fa3538bb4e923cbf724
parentde81d24aabab83a32d3ee724845b5e53d0108b69 (diff)
CDP1802 cpu core:
- improved register layout - randomized register contents on initialization
-rw-r--r--src/emu/cpu/cdp1802/cdp1802.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/emu/cpu/cdp1802/cdp1802.c b/src/emu/cpu/cdp1802/cdp1802.c
index c4a7f61df4c..7142bd89c75 100644
--- a/src/emu/cpu/cdp1802/cdp1802.c
+++ b/src/emu/cpu/cdp1802/cdp1802.c
@@ -71,14 +71,14 @@ static const cpu_state_entry state_array[] =
{
CDP1802_STATE_ENTRY(GENPC, "%04X", fake_pc, 0xffff, CPUSTATE_NOSHOW | CPUSTATE_IMPORT | CPUSTATE_EXPORT)
- CDP1802_STATE_ENTRY(P, "%02X", p, 0xff, 0)
- CDP1802_STATE_ENTRY(X, "%02X", x, 0xff, 0)
+ CDP1802_STATE_ENTRY(P, "%01X", p, 0xf, 0)
+ CDP1802_STATE_ENTRY(X, "%01X", x, 0xf, 0)
CDP1802_STATE_ENTRY(D, "%02X", d, 0xff, 0)
CDP1802_STATE_ENTRY(B, "%02X", b, 0xff, 0)
CDP1802_STATE_ENTRY(T, "%02X", t, 0xff, 0)
- CDP1802_STATE_ENTRY(N, "%01X", n, 0xf, 0)
CDP1802_STATE_ENTRY(I, "%01X", i, 0xf, 0)
+ CDP1802_STATE_ENTRY(N, "%01X", n, 0xf, 0)
CDP1802_STATE_ENTRY(R0, "%04X", r[0], 0xffff, 0)
CDP1802_STATE_ENTRY(R1, "%04X", r[1], 0xffff, 0)
@@ -941,6 +941,7 @@ static CPU_RESET( cdp1802 )
static CPU_INIT( cdp1802 )
{
cdp1802_state *cpustate = device->token;
+ int i;
cpustate->intf = (cdp1802_interface *) device->static_config;
@@ -957,6 +958,19 @@ static CPU_INIT( cdp1802 )
/* set initial values */
+ cpustate->p = mame_rand(device->machine) & 0x0f;
+ cpustate->x = mame_rand(device->machine) & 0x0f;
+ cpustate->d = mame_rand(device->machine);
+ cpustate->b = mame_rand(device->machine);
+ cpustate->t = mame_rand(device->machine);
+ cpustate->n = mame_rand(device->machine) & 0x0f;
+ cpustate->i = mame_rand(device->machine) & 0x0f;
+
+ for (i = 0; i < 16; i++)
+ {
+ cpustate->r[i] = mame_rand(device->machine);
+ }
+
cpustate->mode = CDP1802_MODE_RESET;
cpustate->prevmode = cpustate->mode;
cpustate->irq = CLEAR_LINE;