From 98100d8e1740b0173276dd99350180c3f274b314 Mon Sep 17 00:00:00 2001 From: "K.Ohta" Date: Mon, 16 Mar 2015 02:47:39 +0900 Subject: [PATCH] [VM][MC6809] Re-implement correct BUSREQ. --- source/src/vm/mc6809.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/source/src/vm/mc6809.cpp b/source/src/vm/mc6809.cpp index 03e7ddd1d..2b86c8c26 100644 --- a/source/src/vm/mc6809.cpp +++ b/source/src/vm/mc6809.cpp @@ -385,12 +385,7 @@ void MC6809::cpu_irq(void) int MC6809::run(int clock) { - if ((int_state & MC6809_HALT_BIT) != 0) { // 0x80 - icount -= 2; - icount -= extra_icount; - extra_icount = 0; - return icount; - } else if((int_state & MC6809_INSN_HALT) != 0) { // 0x80 + if((int_state & MC6809_INSN_HALT) != 0) { // 0x80 uint8 dmy = RM(PCD); icount -= 2; icount -= extra_icount; @@ -420,7 +415,11 @@ int MC6809::run(int clock) void MC6809::run_one_opecode() { - if(int_state & MC6809_NMI_BIT) { + if ((int_state & MC6809_HALT_BIT) != 0) { // 0x80 + icount = 0; + extra_icount = 0; + return icount; + } else if(int_state & MC6809_NMI_BIT) { int_state &= ~MC6809_NMI_BIT; int_state &= ~MC6809_SYNC_IN; /* clear SYNC flag */ int_state |= MC6809_SYNC_OUT; /* clear SYNC flag */ -- 2.11.0