From fb3859f6daa586863f78102d01133b4b43f521a9 Mon Sep 17 00:00:00 2001 From: mpohoreski Date: Tue, 13 Jun 2006 01:21:45 +0000 Subject: [PATCH] added DISASM to print current status added DISASM TARGET [#] --- source/Debug.cpp | 135 ++++++++++++++++++++++++++---------- source/Debug.h | 10 +-- source/Debugger_Display.cpp | 95 +++++++++++++------------ source/Debugger_Help.cpp | 16 ++++- source/Debugger_Types.h | 46 ++++++++---- 5 files changed, 199 insertions(+), 103 deletions(-) diff --git a/source/Debug.cpp b/source/Debug.cpp index e803be0d..06821aba 100644 --- a/source/Debug.cpp +++ b/source/Debug.cpp @@ -43,7 +43,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // TODO: COLOR LOAD ["filename"] // See Debugger_Changelong.txt for full details - const int DEBUGGER_VERSION = MAKE_VERSION(2,5,3,6); + const int DEBUGGER_VERSION = MAKE_VERSION(2,5,3,8); // Public _________________________________________________________________________________________ @@ -527,10 +527,12 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // Disassembly - bool g_bConfigDisasmOpcodesView = true; - bool g_bConfigDisasmOpcodeSpaces = true; - bool g_bConfigDisasmAddressColon = true; - int g_iConfigDisasmBranchType = DISASM_BRANCH_FANCY; + bool g_bConfigDisasmAddressColon = true; + bool g_bConfigDisasmOpcodesView = true; + bool g_bConfigDisasmOpcodeSpaces = true; + int g_iConfigDisasmTargets = DISASM_TARGET_BOTH; + int g_iConfigDisasmBranchType = DISASM_BRANCH_FANCY; + int g_bConfigDisasmImmediateChar = DISASM_IMMED_BOTH; // Display ____________________________________________________________________ @@ -591,6 +593,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA {TEXT("COLON") , NULL, PARAM_CONFIG_COLON }, {TEXT("OPCODE") , NULL, PARAM_CONFIG_OPCODE }, {TEXT("SPACES") , NULL, PARAM_CONFIG_SPACES }, + {TEXT("TARGET") , NULL, PARAM_CONFIG_TARGET }, // Disk {TEXT("EJECT") , NULL, PARAM_DISK_EJECT }, {TEXT("PROTECT") , NULL, PARAM_DISK_PROTECT }, @@ -2232,60 +2235,122 @@ Update_t CmdConfigSave (int nArgs) Update_t CmdConfigDisasm( int nArgs ) { int iParam = 0; + TCHAR sText[ CONSOLE_WIDTH ]; + + bool bDisplayCurrentSettings = false; + +// if (_tcscmp( g_aArgs[ 1 ].sArg, g_aParameters[ PARAM_WILDSTAR ].m_sName ) == 0) + + if (! nArgs) + { + bDisplayCurrentSettings = true; + nArgs = PARAM_CONFIG_NUM; + } + else + { + if (nArgs > 2) + return Help_Arg_1( CMD_CONFIG_DISASM ); + } for (int iArg = 1; iArg <= nArgs; iArg++ ) { + if (bDisplayCurrentSettings) + iParam = _PARAM_CONFIG_BEGIN + iArg - 1; + else if (FindParam( g_aArgs[iArg].sArg, MATCH_FUZZY, iParam )) { - -// if (_tcscmp( g_aArgs[ iArg ].sArg, g_aParameters[ PARAM_WILDSTAR ].m_sName ) == 0) - // All -- for saving -// g_aArgs[ iArg ] + } switch (iParam) { case PARAM_CONFIG_BRANCH: - iArg++; - if (iArg > 2) - return Help_Arg_1( CMD_CONFIG_DISASM ); // CMD_CONFIG_DISASM_BRANCH ); - - - g_iConfigDisasmBranchType = g_aArgs[ iArg ].nVal1; - if (g_iConfigDisasmBranchType < 0) - g_iConfigDisasmBranchType = 0; - if (g_iConfigDisasmBranchType >= NUM_DISASM_BRANCH_TYPES) - g_iConfigDisasmBranchType = NUM_DISASM_BRANCH_TYPES - 1; + if ((nArgs > 1) && (! bDisplayCurrentSettings)) // set + { + iArg++; + g_iConfigDisasmBranchType = g_aArgs[ iArg ].nVal1; + if (g_iConfigDisasmBranchType < 0) + g_iConfigDisasmBranchType = 0; + if (g_iConfigDisasmBranchType >= NUM_DISASM_BRANCH_TYPES) + g_iConfigDisasmBranchType = NUM_DISASM_BRANCH_TYPES - 1; + + } + else // show current setting + { + wsprintf( sText, TEXT( "Branch Type: %d" ), g_iConfigDisasmBranchType ); + ConsoleBufferPush( sText ); + ConsoleBufferToDisplay(); + } break; case PARAM_CONFIG_COLON: - iArg++; - if (iArg > 2) - return Help_Arg_1( CMD_CONFIG_DISASM ); // CMD_CONFIG_DISASM_COLON ); - - g_bConfigDisasmAddressColon = (g_aArgs[ iArg ].nVal1 & 1); + if ((nArgs > 1) && (! bDisplayCurrentSettings)) // set + { + iArg++; + g_bConfigDisasmAddressColon = (g_aArgs[ iArg ].nVal1) ? true : false; + } + else // show current setting + { + int iState = g_bConfigDisasmAddressColon ? PARAM_ON : PARAM_OFF; + wsprintf( sText, TEXT( "Colon: %s" ), g_aParameters[ iState ].m_sName ); + ConsoleBufferPush( sText ); + ConsoleBufferToDisplay(); + } break; case PARAM_CONFIG_OPCODE: - iArg++; - if (iArg > 2) - return Help_Arg_1( CMD_CONFIG_DISASM ); // CMD_CONFIG_DISASM_OPCODE ); - - g_bConfigDisasmOpcodesView = (g_aArgs[ iArg ].nVal1 & 1); + if ((nArgs > 1) && (! bDisplayCurrentSettings)) // set + { + iArg++; + g_bConfigDisasmOpcodesView = (g_aArgs[ iArg ].nVal1) ? true : false; + } + else + { + int iState = g_bConfigDisasmOpcodeSpaces ? PARAM_ON : PARAM_OFF; + wsprintf( sText, TEXT( "Opcodes: %s" ), g_aParameters[ iState ].m_sName ); + ConsoleBufferPush( sText ); + ConsoleBufferToDisplay(); + } break; case PARAM_CONFIG_SPACES: - iArg++; - if (iArg > 2) - return Help_Arg_1( CMD_CONFIG_DISASM ); // CMD_CONFIG_DISASM_SPACES ); - - g_bConfigDisasmOpcodeSpaces = (g_aArgs[ iArg ].nVal1 & 1); + if ((nArgs > 1) && (! bDisplayCurrentSettings)) // set + { + iArg++; + g_bConfigDisasmOpcodeSpaces = (g_aArgs[ iArg ].nVal1) ? true : false; + } + else + { + int iState = g_bConfigDisasmOpcodeSpaces ? PARAM_ON : PARAM_OFF; + wsprintf( sText, TEXT( "Opcode spaces: %s" ), g_aParameters[ iState ].m_sName ); + ConsoleBufferPush( sText ); + ConsoleBufferToDisplay(); + } break; + case PARAM_CONFIG_TARGET: + if ((nArgs > 1) && (! bDisplayCurrentSettings)) // set + { + iArg++; + g_iConfigDisasmTargets = g_aArgs[ iArg ].nVal1; + if (g_iConfigDisasmTargets < 0) + g_iConfigDisasmTargets = 0; + if (g_iConfigDisasmTargets >= NUM_DISASM_TARGET_TYPES) + g_iConfigDisasmTargets = NUM_DISASM_TARGET_TYPES - 1; + } + else // show current setting + { + wsprintf( sText, TEXT( "Target: %d" ), g_iConfigDisasmTargets ); + ConsoleBufferPush( sText ); + ConsoleBufferToDisplay(); + } + break; default: return Help_Arg_1( CMD_CONFIG_DISASM ); // CMD_CONFIG_DISASM_OPCODE ); } - } +// } +// else +// return Help_Arg_1( CMD_CONFIG_DISASM ); } return UPDATE_CONSOLE_DISPLAY | UPDATE_DISASM; } diff --git a/source/Debug.h b/source/Debug.h index 49333fe2..1e05c8c1 100644 --- a/source/Debug.h +++ b/source/Debug.h @@ -51,10 +51,12 @@ using namespace std; extern const int WINDOW_DATA_BYTES_PER_LINE; // Disassembly - extern bool g_bConfigDisasmOpcodesView ;//= true; // TODO: CONFIG {DISASM} OPCODES [0|1] - extern bool g_bConfigDisasmOpcodeSpaces ;//= true; // TODO: CONFIG {DISASM} SPACE [0|1] - extern bool g_bConfigDisasmAddressColon ;//= true; // TODO: CONFIG {DISASM} COLON [0|1] - extern int g_iConfigDisasmBranchType ;//DISASM_BRANCH_FANCY; // TODO: CONFIG {DISASM} BRANCH [0|1|2] + extern bool g_bConfigDisasmAddressColon ; + extern bool g_bConfigDisasmOpcodesView ; + extern bool g_bConfigDisasmOpcodeSpaces ; + extern int g_iConfigDisasmTargets ; + extern int g_iConfigDisasmBranchType ; + extern int g_bConfigDisasmImmediateChar; // Display extern bool g_bDebuggerViewingAppleOutput; diff --git a/source/Debugger_Display.cpp b/source/Debugger_Display.cpp index d5d18cca..93aea703 100644 --- a/source/Debugger_Display.cpp +++ b/source/Debugger_Display.cpp @@ -287,7 +287,7 @@ int FormatDisassemblyLine( WORD nBaseAddress, int iOpcode, int iOpmode, int nOpB // Always show branch indicators // if ((nBaseAddress == regs.pc) && CheckJump(nAddress)) - bDisasmFormatFlags |= DISASM_BRANCH_INDICATOR; + bDisasmFormatFlags |= DISASM_FORMAT_BRANCH; if (nTarget < nBaseAddress) { @@ -323,41 +323,41 @@ int FormatDisassemblyLine( WORD nBaseAddress, int iOpcode, int iOpmode, int nOpB LPCTSTR pSymbol = FindSymbolFromAddress( nTarget ); if (pSymbol) { - bDisasmFormatFlags |= DISASM_TARGET_SYMBOL; + bDisasmFormatFlags |= DISASM_FORMAT_SYMBOL; pTarget = pSymbol; } - if (! (bDisasmFormatFlags & DISASM_TARGET_SYMBOL)) + if (! (bDisasmFormatFlags & DISASM_FORMAT_SYMBOL)) { pSymbol = FindSymbolFromAddress( nTarget - 1 ); if (pSymbol) { - bDisasmFormatFlags |= DISASM_TARGET_SYMBOL; - bDisasmFormatFlags |= DISASM_TARGET_OFFSET; + bDisasmFormatFlags |= DISASM_FORMAT_SYMBOL; + bDisasmFormatFlags |= DISASM_FORMAT_OFFSET; pTarget = pSymbol; nTargetOffset_ = +1; // U FA82 LDA #3F1 BREAK+1 } } - if (! (bDisasmFormatFlags & DISASM_TARGET_SYMBOL)) + if (! (bDisasmFormatFlags & DISASM_FORMAT_SYMBOL)) { pSymbol = FindSymbolFromAddress( nTarget + 1 ); if (pSymbol) { - bDisasmFormatFlags |= DISASM_TARGET_SYMBOL; - bDisasmFormatFlags |= DISASM_TARGET_OFFSET; + bDisasmFormatFlags |= DISASM_FORMAT_SYMBOL; + bDisasmFormatFlags |= DISASM_FORMAT_OFFSET; pTarget = pSymbol; nTargetOffset_ = -1; // U FA82 LDA #3F3 BREAK-1 } } - if (! (bDisasmFormatFlags & DISASM_TARGET_SYMBOL)) + if (! (bDisasmFormatFlags & DISASM_FORMAT_SYMBOL)) { pTarget = FormatAddress( nTarget, nOpBytes ); } // wsprintf( sTarget, g_aOpmodes[ iOpmode ]._sFormat, pTarget ); - if (bDisasmFormatFlags & DISASM_TARGET_OFFSET) + if (bDisasmFormatFlags & DISASM_FORMAT_OFFSET) { int nAbsTargetOffset = (nTargetOffset_ > 0) ? nTargetOffset_ : -nTargetOffset_; wsprintf( sTargetOffset_, "%d", nAbsTargetOffset ); @@ -374,7 +374,7 @@ int FormatDisassemblyLine( WORD nBaseAddress, int iOpcode, int iOpmode, int nOpB if (nTargetPointer != NO_6502_TARGET) { - bDisasmFormatFlags |= DISASM_TARGET_POINTER; + bDisasmFormatFlags |= DISASM_FORMAT_TARGET_POINTER; nTargetValue = *(LPWORD)(mem+nTargetPointer); @@ -382,15 +382,16 @@ int FormatDisassemblyLine( WORD nBaseAddress, int iOpcode, int iOpmode, int nOpB // nTargetBytes refers to size of pointer, not size of value // wsprintf( sTargetValue_, "%04X", nTargetValue ); // & 0xFFFF - wsprintf( sTargetPointer_, "%04X", nTargetPointer & 0xFFFF ); + if (g_iConfigDisasmTargets & DISASM_TARGET_ADDR) + wsprintf( sTargetPointer_, "%04X", nTargetPointer & 0xFFFF ); if (iOpmode != AM_NA ) // Indirect Absolute { - bDisasmFormatFlags |= DISASM_TARGET_VALUE; + bDisasmFormatFlags |= DISASM_FORMAT_TARGET_VALUE; + if (g_iConfigDisasmTargets & DISASM_TARGET_VAL) + wsprintf( sTargetValue_, "%02X", nTargetValue & 0xFF ); - wsprintf( sTargetValue_, "%02X", nTargetValue & 0xFF ); - - bDisasmFormatFlags |= DISASM_IMMEDIATE_CHAR; + bDisasmFormatFlags |= DISASM_FORMAT_CHAR; nImmediate_ = (BYTE) nTargetValue; wsprintf( sImmediate_, "%c", FormatCharTxtCtrl( FormatCharTxtHigh( nImmediate_, NULL ), NULL ) ); } @@ -410,7 +411,7 @@ int FormatDisassemblyLine( WORD nBaseAddress, int iOpcode, int iOpmode, int nOpB if (iOpmode == AM_M) { - bDisasmFormatFlags |= DISASM_IMMEDIATE_CHAR; + bDisasmFormatFlags |= DISASM_FORMAT_CHAR; nImmediate_ = (BYTE) nTarget; wsprintf( sImmediate_, "%c", FormatCharTxtCtrl( FormatCharTxtHigh( nImmediate_, NULL ), NULL ) ); } @@ -831,11 +832,13 @@ WORD DrawDisassemblyLine (HDC dc, int iLine, WORD nBaseAddress, LPTSTR text) , TS_INSTRUCTION , TS_IMMEDIATE , TS_BRANCH + , TS_CHAR , _NUM_TAB_STOPS }; - int aTabs[ _NUM_TAB_STOPS ] = - { 6, 16, 26, 40, 46 }; // 17, 27, 41 + float aTabs[ _NUM_TAB_STOPS ] = +// { 6, 16, 26, 41, 46, 49 }; // 17, 27, 41 + { 5.75, 15.5, 25, 40.5, 45.5, 48.5 }; if (! g_bConfigDisasmAddressColon) { @@ -849,7 +852,7 @@ WORD DrawDisassemblyLine (HDC dc, int iLine, WORD nBaseAddress, LPTSTR text) aTabs[ TS_IMMEDIATE ] -= 1; } - const int OPCODE_TO_LABEL_SPACE = aTabs[ TS_INSTRUCTION ] - aTabs[ TS_LABEL ]; + const int OPCODE_TO_LABEL_SPACE = static_cast( aTabs[ TS_INSTRUCTION ] - aTabs[ TS_LABEL ] ); int iTab = 0; int nSpacer = 9; @@ -972,7 +975,7 @@ WORD DrawDisassemblyLine (HDC dc, int iLine, WORD nBaseAddress, LPTSTR text) DebugDrawTextHorz( TEXT(":"), linerect ); // Opcodes - linerect.left = aTabs[ TS_OPCODE ]; + linerect.left = (int) aTabs[ TS_OPCODE ]; if (! bCursorLine) SetTextColor( dc, DebuggerGetColor( FG_DISASM_OPCODE ) ); @@ -983,7 +986,7 @@ WORD DrawDisassemblyLine (HDC dc, int iLine, WORD nBaseAddress, LPTSTR text) // DebugDrawTextHorz( TEXT(" "), linerect ); // Label - linerect.left = aTabs[ TS_LABEL ]; + linerect.left = (int) aTabs[ TS_LABEL ]; LPCSTR pSymbol = FindSymbolFromAddress( nBaseAddress ); if (pSymbol) @@ -996,7 +999,7 @@ WORD DrawDisassemblyLine (HDC dc, int iLine, WORD nBaseAddress, LPTSTR text) // DebugDrawTextHorz( TEXT(" "), linerect ); // Instruction - linerect.left = aTabs[ TS_INSTRUCTION ]; + linerect.left = (int) aTabs[ TS_INSTRUCTION ]; if (! bCursorLine) SetTextColor( dc, DebuggerGetColor( iForeground ) ); @@ -1032,14 +1035,14 @@ WORD DrawDisassemblyLine (HDC dc, int iLine, WORD nBaseAddress, LPTSTR text) if (! bCursorLine) { - if (bDisasmFormatFlags & DISASM_TARGET_SYMBOL) + if (bDisasmFormatFlags & DISASM_FORMAT_SYMBOL) { SetTextColor( dc, DebuggerGetColor( FG_DISASM_SYMBOL ) ); } else { if (iOpmode == AM_M) -// if (bDisasmFormatFlags & DISASM_IMMEDIATE_CHAR) +// if (bDisasmFormatFlags & DISASM_FORMAT_CHAR) { SetTextColor( dc, DebuggerGetColor( FG_DISASM_OPCODE ) ); } @@ -1053,7 +1056,7 @@ WORD DrawDisassemblyLine (HDC dc, int iLine, WORD nBaseAddress, LPTSTR text) // DebugDrawTextHorz( TEXT(" "), linerect ); // Target Offset +/- - if (bDisasmFormatFlags & DISASM_TARGET_OFFSET) + if (bDisasmFormatFlags & DISASM_FORMAT_OFFSET) { if (! bCursorLine) SetTextColor( dc, DebuggerGetColor( FG_DISASM_OPERATOR )); @@ -1088,27 +1091,25 @@ WORD DrawDisassemblyLine (HDC dc, int iLine, WORD nBaseAddress, LPTSTR text) DebugDrawTextHorz( TEXT(",Y"), linerect ); } - // Immediate Char - linerect.left = aTabs[ TS_IMMEDIATE ]; - // Memory Pointer and Value - if (bDisasmFormatFlags & DISASM_TARGET_POINTER) // (bTargetValue) + if (bDisasmFormatFlags & DISASM_FORMAT_TARGET_POINTER) // (bTargetValue) { + linerect.left = (int) aTabs[ TS_IMMEDIATE ]; // TS_IMMEDIATE ]; + // DebugDrawTextHorz( TEXT(" "), linerect ); - // FG_DISASM_TARGET - // FG_DISASM_OPERATOR - // FG_DISASM_OPCODE if (! bCursorLine) SetTextColor( dc, DebuggerGetColor( FG_DISASM_ADDRESS )); DebugDrawTextHorz( sTargetPointer, linerect ); - if (bDisasmFormatFlags & DISASM_TARGET_VALUE) + if (bDisasmFormatFlags & DISASM_FORMAT_TARGET_VALUE) { if (! bCursorLine) SetTextColor( dc, DebuggerGetColor( FG_DISASM_OPERATOR )); - DebugDrawTextHorz( TEXT(":"), linerect ); + + if (g_iConfigDisasmTargets & DISASM_TARGET_BOTH) + DebugDrawTextHorz( TEXT(":"), linerect ); if (! bCursorLine) SetTextColor( dc, DebuggerGetColor( FG_DISASM_OPCODE )); @@ -1118,15 +1119,18 @@ WORD DrawDisassemblyLine (HDC dc, int iLine, WORD nBaseAddress, LPTSTR text) } } - if (bDisasmFormatFlags & DISASM_IMMEDIATE_CHAR) + // Immediate Char + if (bDisasmFormatFlags & DISASM_FORMAT_CHAR) { + linerect.left = (int) aTabs[ TS_CHAR ]; // TS_IMMEDIATE ]; + if (! bCursorLine) { SetTextColor( dc, DebuggerGetColor( FG_DISASM_OPERATOR ) ); } - if (! (bDisasmFormatFlags & DISASM_TARGET_POINTER)) - DebugDrawTextHorz( TEXT("'"), linerect ); // TEXT(" '") +// if (! (bDisasmFormatFlags & DISASM_FORMAT_TARGET_POINTER)) +// DebugDrawTextHorz( TEXT("'"), linerect ); // TEXT(" '") if (! bCursorLine) { @@ -1141,20 +1145,15 @@ WORD DrawDisassemblyLine (HDC dc, int iLine, WORD nBaseAddress, LPTSTR text) SetTextColor( dc, DebuggerGetColor( FG_DISASM_OPERATOR ) ); } - if (! (bDisasmFormatFlags & DISASM_TARGET_POINTER)) - DebugDrawTextHorz( TEXT("'"), linerect ); +// if (! (bDisasmFormatFlags & DISASM_FORMAT_TARGET_POINTER)) +// DebugDrawTextHorz( TEXT("'"), linerect ); } -// else -// if (bTargetIndirect) -// { -// // Follow indirect targets -// } // Branch Indicator - linerect.left = aTabs[ TS_BRANCH ]; - - if (bDisasmFormatFlags & DISASM_BRANCH_INDICATOR) + if (bDisasmFormatFlags & DISASM_FORMAT_BRANCH) { + linerect.left = (int) aTabs[ TS_BRANCH ]; + if (! bCursorLine) { SetTextColor( dc, DebuggerGetColor( FG_DISASM_BRANCH ) ); diff --git a/source/Debugger_Help.cpp b/source/Debugger_Help.cpp index e30808c6..3ef98000 100644 --- a/source/Debugger_Help.cpp +++ b/source/Debugger_Help.cpp @@ -478,10 +478,10 @@ Update_t CmdHelpSpecific (int nArgs) wsprintf( sText, TEXT(" Usage: %s [#]" ), g_aParameters[ PARAM_CONFIG_BRANCH ].m_sName ); ConsoleBufferPush( sText ); - wsprintf( sText, TEXT(" # is from 0 to %d\n"), NUM_DISASM_BRANCH_TYPES - 1 ); - ConsoleBufferPush( sText ); ConsoleBufferPush( TEXT(" Set the type of branch character:" ) ); - ConsoleBufferPush( TEXT(" 0 none, 1 = plain, 2 = fancy" ) ); + wsprintf( sText, TEXT(" %d off, %d plain, %d fancy" ), + DISASM_BRANCH_OFF, DISASM_BRANCH_PLAIN, DISASM_BRANCH_FANCY ); + ConsoleBufferPush( sText ); wsprintf( sText, TEXT(" Usage: %s [0|1]" ), g_aParameters[ PARAM_CONFIG_COLON ].m_sName ); ConsoleBufferPush( sText ); @@ -494,6 +494,16 @@ Update_t CmdHelpSpecific (int nArgs) wsprintf( sText, TEXT(" Usage: %s [0|1]" ), g_aParameters[ PARAM_CONFIG_SPACES ].m_sName ); ConsoleBufferPush( sText ); ConsoleBufferPush( TEXT(" Display spaces between opcodes" ) ); + + wsprintf( sText, TEXT(" Usage: %s [#]" ), g_aParameters[ PARAM_CONFIG_TARGET ].m_sName ); + ConsoleBufferPush( sText ); + ConsoleBufferPush( TEXT(" Set the type of target address/value displayed:" ) ); + wsprintf( sText, TEXT(" %d off, %d value only, %d address only, %d both" ), + DISASM_TARGET_OFF, DISASM_TARGET_VAL, DISASM_TARGET_ADDR, DISASM_TARGET_BOTH ); + ConsoleBufferPush( sText ); + +// ZZZ - CHAR + break; // Config - Font diff --git a/source/Debugger_Types.h b/source/Debugger_Types.h index e1829591..690ed342 100644 --- a/source/Debugger_Types.h +++ b/source/Debugger_Types.h @@ -787,22 +787,41 @@ // Disassembly ____________________________________________________________________________________ - enum FormatDisasm_e - { - DISASM_IMMEDIATE_CHAR = (1 << 0), - DISASM_TARGET_SYMBOL = (1 << 1), - DISASM_TARGET_OFFSET = (1 << 2), - DISASM_BRANCH_INDICATOR = (1 << 3), - DISASM_TARGET_POINTER = (1 << 4), - DISASM_TARGET_VALUE = (1 << 5), - }; enum DisasmBranch_e { - DISASM_BRANCH_OFF = 0, - DISASM_BRANCH_PLAIN = 1, - DISASM_BRANCH_FANCY = 2, - NUM_DISASM_BRANCH_TYPES + DISASM_BRANCH_OFF = 0 + , DISASM_BRANCH_PLAIN + , DISASM_BRANCH_FANCY + , NUM_DISASM_BRANCH_TYPES + }; + + enum DisasmFormat_e + { + DISASM_FORMAT_CHAR = (1 << 0), + DISASM_FORMAT_SYMBOL = (1 << 1), + DISASM_FORMAT_OFFSET = (1 << 2), + DISASM_FORMAT_BRANCH = (1 << 3), + DISASM_FORMAT_TARGET_POINTER = (1 << 4), + DISASM_FORMAT_TARGET_VALUE = (1 << 5), + }; + + enum DisasmImmediate_e + { + DISASM_IMMED_OFF = 0 + , DISASM_IMMED_TARGET + , DISASM_IMMED_MODE + , DISASM_IMMED_BOTH + , NUM_DISASM_IMMED_TYPES + }; + + enum DisasmTargets_e + { + DISASM_TARGET_OFF = 0 + , DISASM_TARGET_VAL // Note: Also treated as bit flag !! + , DISASM_TARGET_ADDR // Note: Also treated as bit flag !! + , DISASM_TARGET_BOTH // Note: Also treated as bit flag !! + , NUM_DISASM_TARGET_TYPES }; // Font ___________________________________________________________________________________________ @@ -1145,6 +1164,7 @@ , PARAM_CONFIG_COLON // g_bConfigDisasmAddressColon [0|1] , PARAM_CONFIG_OPCODE // g_bConfigDisasmOpcodesView [0|1] , PARAM_CONFIG_SPACES // g_bConfigDisasmOpcodeSpaces [0|1] + , PARAM_CONFIG_TARGET // g_iConfigDisasmTargets [0 | 1 | 2] , _PARAM_CONFIG_END , PARAM_CONFIG_NUM = _PARAM_CONFIG_END - _PARAM_CONFIG_BEGIN