diff --git a/bin/History.txt b/bin/History.txt index c64fea08..7d65cb91 100644 --- a/bin/History.txt +++ b/bin/History.txt @@ -8,6 +8,15 @@ https://github.com/AppleWin/AppleWin/issues/new Tom Charlesworth +1.30.6.0 - 30 Oct 2021 +---------------------- +. [Bug #993] Fix Mousecard not persisting after a machine's hardware changes. (Regression at 1.30.5.0) +. [Bug #985] Fix one-shot paddle timers. [xotmatrix] +. [Bug #989] Debugger: Fix disassembly for NMOS 6502's JMP (Indirect) not showing correct target address. +. [Change #987] Debugger: Add 'lbr' command to show Last Branch Record for a change to the control-flow from an instruction or interrupt. + - NB. Bcc opcodes that aren't taken don't affect lbr. +. Debugger: Add 'brkint ' command to break at the instruction after an interrupt is taken. + 1.30.5.0 - 2 Oct 2021 --------------------- diff --git a/help/dbg-breakpoints.html b/help/dbg-breakpoints.html index 4acb47e5..f9eded3b 100644 --- a/help/dbg-breakpoints.html +++ b/help/dbg-breakpoints.html @@ -164,7 +164,7 @@ Note: The asterisk -

BRKINT [0|1]

+

BRKINT [on|off]

Break on Interrupt

@@ -380,7 +380,7 @@ Note: The asterisk

BPR A 0

-

Adds Breakpoint when Accumulator is zero.

+

Add Breakpoint when Accumulator is zero.

@@ -388,7 +388,7 @@ Note: The asterisk

BPR A ! 0

-

Adds Breakpoint when Accumulator is not zero.

+

Add Breakpoint when Accumulator is not zero.

@@ -396,7 +396,7 @@ Note: The asterisk

BPR S < 1FF

-

Adds Breakpoint when Stack has had something pushed onto it.

+

Add Breakpoint when Stack has had something pushed onto it.

@@ -404,7 +404,7 @@ Note: The asterisk

BRK ON

-

Adds Breakpoint to break when the opcode to be executed is $00 or BRK.

+

Break execution when the opcode to be executed is $00 or BRK.

@@ -412,15 +412,15 @@ Note: The asterisk

BRKOP 6C

-

Adds Breakpoint to break when the opcode to be executed is $6C or JMP (ABS).

+

Break execution when the opcode to be executed is $6C or JMP (ABS).

-

BRKINT 1

+

BRKINT ON

-

Adds Breakpoint to break just after an interrupt occurs.

+

Break execution just after an interrupt occurs.

diff --git a/resource/version.h b/resource/version.h index fce3a13d..0f2eb642 100644 --- a/resource/version.h +++ b/resource/version.h @@ -1,4 +1,4 @@ -#define APPLEWIN_VERSION 1,30,5,0 +#define APPLEWIN_VERSION 1,30,6,0 #define xstr(a) str(a) #define str(a) #a diff --git a/source/Debugger/Debug.cpp b/source/Debugger/Debug.cpp index d9a53857..3e68efab 100644 --- a/source/Debugger/Debug.cpp +++ b/source/Debugger/Debug.cpp @@ -993,20 +993,34 @@ Update_t CmdBreakOpcode (int nArgs) // Breakpoint IFF Full-speed! //=========================================================================== Update_t CmdBreakOnInterrupt(int nArgs) { - TCHAR sText[CONSOLE_WIDTH]; - if (nArgs > 1) return HelpLastCommand(); + int iParamArg = nArgs; + int iParam; + int nFound = FindParam(g_aArgs[iParamArg].sArg, MATCH_EXACT, iParam, _PARAM_GENERAL_BEGIN, _PARAM_GENERAL_END); + + int nActive = -1; + if (nFound) + { + if (iParam == PARAM_ON) + nActive = 1; + else if (iParam == PARAM_OFF) + nActive = 0; + } + + if (nArgs == 1 && nActive == -1) + return HelpLastCommand(); + + TCHAR sText[CONSOLE_WIDTH]; TCHAR sAction[CONSOLE_WIDTH] = TEXT("Current"); // default to display if (nArgs == 1) { - g_bDebugBreakOnInterrupt = g_aArgs[1].nValue ? true : false; + g_bDebugBreakOnInterrupt = (iParam == PARAM_ON) ? true : false; _tcscpy(sAction, TEXT("Setting")); } - // Show what the current break opcode is ConsoleBufferPushFormat(sText, TEXT("%s Break on Interrupt: %s") , sAction , g_bDebugBreakOnInterrupt ? "Enabled" : "Disabled"