diff options
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 |
commit | bd0d0269ff6b10dad1af5be04ce6d36ff1a8284c (patch) | |
tree | 09033181627da698af557fa3538bb4e923cbf724 | |
parent | de81d24aabab83a32d3ee724845b5e53d0108b69 (diff) |
CDP1802 cpu core:
- improved register layout
- randomized register contents on initialization
-rw-r--r-- | src/emu/cpu/cdp1802/cdp1802.c | 20 |
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; |