summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/m6502
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2013-05-24 06:20:32 +0000
committer Olivier Galibert <galibert@pobox.com>2013-05-24 06:20:32 +0000
commit740e7df6ab9b2bb45d93d0656e93134ee6b6de4e (patch)
treee61fd50ace0142b3187c7cc7bc57b6f59202a07a /src/emu/cpu/m6502
parentb1bbce2a7bb6deab52f214e185a7507314265523 (diff)
m6502: Redo the prefetch and reset the state on debugger PC change [O. Galibert]
Diffstat (limited to 'src/emu/cpu/m6502')
-rw-r--r--src/emu/cpu/m6502/m6502.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/emu/cpu/m6502/m6502.c b/src/emu/cpu/m6502/m6502.c
index 8ffcf19b3a0..a6652aecb4a 100644
--- a/src/emu/cpu/m6502/m6502.c
+++ b/src/emu/cpu/m6502/m6502.c
@@ -76,7 +76,7 @@ void m6502_device::init()
state_add(STATE_GENPCBASE, "GENPCBASE", PPC).noshow();
state_add(STATE_GENSP, "GENSP", SP).noshow();
state_add(STATE_GENFLAGS, "GENFLAGS", P).callimport().formatstr("%6s").noshow();
- state_add(M6502_PC, "PC", NPC);
+ state_add(M6502_PC, "PC", NPC).callimport();
state_add(M6502_A, "A", A);
state_add(M6502_X, "X", X);
state_add(M6502_Y, "Y", Y);
@@ -446,6 +446,13 @@ void m6502_device::state_import(const device_state_entry &entry)
case M6502_P:
P = P | (F_B|F_E);
break;
+ case M6502_PC:
+ PC = NPC;
+ irq_taken = false;
+ prefetch();
+ PPC = NPC;
+ inst_state = IR | inst_state_base;
+ break;
}
}