Debugger: Format changes only (PR #1076)

This commit is contained in:
Kelvin Lee 2022-04-04 03:15:22 +10:00 committed by GitHub
parent b6404e7d96
commit 1bcf371309
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 166 additions and 158 deletions

View File

@ -786,7 +786,6 @@ Update_t CmdProfile (int nArgs)
// Dump to console
if (iParam == PARAM_LIST)
{
char *pText;
char sText[ CONSOLE_WIDTH ];
@ -5061,11 +5060,11 @@ Update_t CmdNTSC (int nArgs)
uint32_t* pChromaTable = NTSC_VideoGetChromaTable( false, bColorTV );
char aStatusText[ CONSOLE_WIDTH*2 ] = "Loaded";
//uint8_t* pTmp = (uint8_t*) pChromaTable;
//*pTmp++ = 0xFF; // b
//*pTmp++ = 0x00; // g
//*pTmp++ = 0x00; // r
//*pTmp++ = 0xFF; // a
//uint8_t* pTmp = (uint8_t*) pChromaTable;
//*pTmp++ = 0xFF; // b
//*pTmp++ = 0x00; // g
//*pTmp++ = 0x00; // r
//*pTmp++ = 0xFF; // a
if (nFound)
{
@ -5168,8 +5167,8 @@ Update_t CmdNTSC (int nArgs)
if ( pBmp->nCompression == 3 ) // BI_BITFIELDS
{
if ((pBmp->nRedMask == 0xFF000000 ) // Gimp writes in ABGR order
&& (pBmp->nGreenMask == 0x00FF0000 )
&& (pBmp->nBlueMask == 0x0000FF00 ))
&& (pBmp->nGreenMask == 0x00FF0000 )
&& (pBmp->nBlueMask == 0x0000FF00 ))
bSwizzle = true;
}
}
@ -5192,7 +5191,7 @@ Update_t CmdNTSC (int nArgs)
uint8_t *pTemp64x256 = new uint8_t[ 64 * 256 * 4 ];
memset( pTemp64x256, 0, g_nChromaSize );
//Transpose16x1::transposeFrom16x1( pSwizzled, (uint8_t*) pChromaTable );
//Transpose16x1::transposeFrom16x1( pSwizzled, (uint8_t*) pChromaTable );
if (pBmp->nWidthPixels == 16)
{
@ -5317,7 +5316,7 @@ int _SearchMemoryFind(
WORD nAddress2 = nAddress;
int nMemBlocks = vMemorySearchValues.size();
for (int iBlock = 0; iBlock < nMemBlocks; iBlock++, nAddress2++ )
for ( int iBlock = 0; iBlock < nMemBlocks; iBlock++, nAddress2++ )
{
MemorySearch_t ms = vMemorySearchValues.at( iBlock );
ms.m_bFound = false;
@ -7940,9 +7939,9 @@ void ProfileFormat( bool bExport, ProfileFormat_e eFormatMode )
pColorMnemonic = CHC_COMMAND; // green
pColorOpmode = CHC_USAGE ; // yellow
pColorTotal = CHC_DEFAULT; // white
}
}
// Opcode
// Opcode
if (bExport) // Export = SeperateColumns
sprintf( pText
, "\"Percent\"" DELIM "\"Count\"" DELIM "\"Opcode\"" DELIM "\"Mnemonic\"" DELIM "\"Addressing Mode\"\n"
@ -8659,7 +8658,7 @@ void DebugInitialize ()
}
#if _DEBUG
//g_bConsoleBufferPaused = true;
//g_bConsoleBufferPaused = true;
#endif
_Bookmark_Reset();

View File

@ -326,7 +326,7 @@ int GetDisassemblyLine(WORD nBaseAddress, DisasmLine_t& line_)
pTarget = &strAddressBuf;
}
// sprintf( sTarget, g_aOpmodes[ iOpmode ]._sFormat, pTarget );
//sprintf( sTarget, g_aOpmodes[ iOpmode ]._sFormat, pTarget );
if (bDisasmFormatFlags & DISASM_FORMAT_OFFSET)
{
int nAbsTargetOffset = (line_.nTargetOffset > 0) ? line_.nTargetOffset : -line_.nTargetOffset;
@ -348,8 +348,8 @@ int GetDisassemblyLine(WORD nBaseAddress, DisasmLine_t& line_)
nTargetValue = *(mem + nTargetPointer) | (*(mem + ((nTargetPointer + 1) & 0xffff)) << 8);
// if (((iOpmode >= AM_A) && (iOpmode <= AM_NZ)) && (iOpmode != AM_R))
// sprintf( sTargetValue_, "%04X", nTargetValue ); // & 0xFFFF
//if (((iOpmode >= AM_A) && (iOpmode <= AM_NZ)) && (iOpmode != AM_R))
// sprintf( sTargetValue_, "%04X", nTargetValue ); // & 0xFFFF
if (g_iConfigDisasmTargets & DISASM_TARGET_ADDR)
sprintf(line_.sTargetPointer, "%04X", nTargetPointer & 0xFFFF);
@ -366,7 +366,7 @@ int GetDisassemblyLine(WORD nBaseAddress, DisasmLine_t& line_)
unsigned _char = FormatCharTxtCtrl(FormatCharTxtHigh(line_.nImmediate, NULL), NULL);
sprintf(line_.sImmediate, "%c", _char);
// if (ConsoleColorIsEscapeMeta( nImmediate_ ))
//if (ConsoleColorIsEscapeMeta( nImmediate_ ))
#if OLD_CONSOLE_COLOR
if (ConsoleColorIsEscapeMeta(_char))
sprintf(line_.sImmediate, "%c%c", _char, _char);
@ -375,17 +375,18 @@ int GetDisassemblyLine(WORD nBaseAddress, DisasmLine_t& line_)
#endif
}
// if (iOpmode == AM_NA ) // Indirect Absolute
// sprintf( sTargetValue_, "%04X", nTargetPointer & 0xFFFF );
// else
// // sprintf( sTargetValue_, "%02X", nTargetValue & 0xFF );
// sprintf( sTargetValue_, "%04X:%02X", nTargetPointer & 0xFFFF, nTargetValue & 0xFF );
//if (iOpmode == AM_NA ) // Indirect Absolute
// sprintf( sTargetValue_, "%04X", nTargetPointer & 0xFFFF );
//else
// //sprintf( sTargetValue_, "%02X", nTargetValue & 0xFF );
// sprintf( sTargetValue_, "%04X:%02X", nTargetPointer & 0xFFFF, nTargetValue & 0xFF );
}
}
else
{
if (iOpmode == AM_M)
{
// sprintf( sTarget, g_aOpmodes[ iOpmode ]._sFormat, (unsigned)nTarget );
//sprintf( sTarget, g_aOpmodes[ iOpmode ]._sFormat, (unsigned)nTarget );
sprintf(line_.sTarget , "%02X", (unsigned)nTarget);
if (nTarget == 0)
@ -399,8 +400,8 @@ int GetDisassemblyLine(WORD nBaseAddress, DisasmLine_t& line_)
bDisasmFormatFlags |= DISASM_FORMAT_CHAR;
line_.nImmediate = (BYTE)nTarget;
unsigned _char = FormatCharTxtCtrl(FormatCharTxtHigh(line_.nImmediate, NULL), NULL);
unsigned _char = FormatCharTxtCtrl(FormatCharTxtHigh(line_.nImmediate, NULL), NULL);
sprintf(line_.sImmediate, "%c", _char);
#if OLD_CONSOLE_COLOR
if (ConsoleColorIsEscapeMeta(_char))
@ -409,6 +410,7 @@ int GetDisassemblyLine(WORD nBaseAddress, DisasmLine_t& line_)
sprintf(line_.sImmediate, "%c", _char);
#endif
}
}
}
sprintf(line_.sAddress, "%04X", nBaseAddress);
@ -466,8 +468,8 @@ void FormatOpcodeBytes(WORD nBaseAddress, DisasmLine_t& line_)
struct FAC_t
{
uint8_t negative;
int8_t exponent;
uint8_t negative;
int8_t exponent;
uint32_t mantissa;
bool isZero;
@ -575,6 +577,8 @@ void FormatNopcodeBytes(WORD nBaseAddress, DisasmLine_t& line_)
strncpy(pDst, (const char*)(mem + nBaseAddress), iByte);
pDst += iByte;
*pDst = 0;
break;
case NOP_STRING_APPLE:
iByte = line_.nOpbyte; // handle all bytes of text
pSrc = (const char*)mem + nStartAddress;
@ -604,10 +608,10 @@ void FormatNopcodeBytes(WORD nBaseAddress, DisasmLine_t& line_)
break;
default:
#if _DEBUG // Unhandled data disassembly!
#if _DEBUG // Unhandled data disassembly!
int* FATAL = 0;
*FATAL = 0xDEADC0DE;
#endif
#endif
iByte++;
break;
}
@ -630,43 +634,47 @@ void FormatDisassemblyLine(const DisasmLine_t& line, char* sDisassembly, const i
);
/*
if (line.bTargetIndexed || line.bTargetIndirect)
{
strcat( sDisassembly, "(" );
}
if (line.bTargetIndexed || line.bTargetIndirect)
{
strcat( sDisassembly, "(" );
}
if (line.bTargetImmediate)
strcat( sDisassembly, "#$" );
if (line.bTargetImmediate)
strcat( sDisassembly, "#$" );
if (line.bTargetValue)
strcat( sDisassembly, line.sTarget );
if (line.bTargetValue)
strcat( sDisassembly, line.sTarget );
if (line.bTargetIndirect)
{
if (line.bTargetX)
strcat( sDisassembly, ", X" );
if (line.bTargetY)
strcat( sDisassembly, ", Y" );
}
if (line.bTargetIndirect)
{
if (line.bTargetX)
strcat( sDisassembly, ", X" );
if (line.bTargetY)
strcat( sDisassembly, ", Y" );
}
if (line.bTargetIndexed || line.bTargetIndirect)
{
strcat( sDisassembly, ")" );
}
if (line.bTargetIndexed || line.bTargetIndirect)
{
strcat( sDisassembly, ")" );
}
if (line.bTargetIndirect)
{
if (line.bTargetY)
strcat( sDisassembly, ", Y" );
}
if (line.bTargetIndirect)
{
if (line.bTargetY)
strcat( sDisassembly, ", Y" );
}
*/
char sTarget[32];
if (line.bTargetValue || line.bTargetRelative || line.bTargetImmediate)
{
if (line.bTargetRelative)
{
strcpy(sTarget, line.sTargetValue);
}
else
{
if (line.bTargetImmediate)
{
strcat(sDisassembly, "#");
@ -675,6 +683,7 @@ void FormatDisassemblyLine(const DisasmLine_t& line, char* sDisassembly, const i
}
else
sprintf(sTarget, g_aOpmodes[line.iOpmode].m_sFormat, line.nTarget);
}
strcat(sDisassembly, "$");
strcat(sDisassembly, sTarget);

View File

@ -162,23 +162,23 @@ WORD _CmdDefineByteRange(int nArgs,int iArg,DisasmData_t & tData_)
// Old name: auto define D_# DB $XX
// Example 'DB' or 'DW' with 1 arg
// DB 801
Nopcode_e nopcode = NOP_BYTE_1;
Nopcode_e nopcode = NOP_BYTE_1;
bool isFloat = (g_iCommand == CMD_DEFINE_DATA_FLOAT);
if ( isFloat )
nopcode = NOP_FAC;
bool isFloat = (g_iCommand == CMD_DEFINE_DATA_FLOAT);
if ( isFloat )
nopcode = NOP_FAC;
bool isString = (g_iCommand == CMD_DEFINE_DATA_STR);
if ( isString )
nopcode = NOP_STRING_ASCII;
bool isString = (g_iCommand == CMD_DEFINE_DATA_STR);
if ( isString )
nopcode = NOP_STRING_ASCII;
bool isWord1 = (g_iCommand == CMD_DEFINE_DATA_WORD1);
if ( isWord1 )
nopcode = NOP_WORD_1;
bool isWord1 = (g_iCommand == CMD_DEFINE_DATA_WORD1);
if ( isWord1 )
nopcode = NOP_WORD_1;
bool isAddr = (g_iCommand == CMD_DEFINE_ADDR_WORD);
if ( isAddr )
nopcode = NOP_ADDRESS;
bool isAddr = (g_iCommand == CMD_DEFINE_ADDR_WORD);
if ( isAddr )
nopcode = NOP_ADDRESS;
if ( bAutoDefineName )
{

View File

@ -2523,125 +2523,125 @@ void DrawSoftSwitches( int iSoftSwitch )
RECT temp;
int nFontWidth = g_aFontConfig[ FONT_INFO ]._nFontWidthAvg;
rect.left = DISPLAY_SOFTSWITCH_COLUMN;
rect.top = iSoftSwitch * g_nFontHeight;
rect.right = rect.left + (10 * nFontWidth) + 1;
rect.bottom = rect.top + g_nFontHeight;
temp = rect;
rect.left = DISPLAY_SOFTSWITCH_COLUMN;
rect.top = iSoftSwitch * g_nFontHeight;
rect.right = rect.left + (10 * nFontWidth) + 1;
rect.bottom = rect.top + g_nFontHeight;
temp = rect;
DebuggerSetColorBG( DebuggerGetColor( BG_INFO ));
DebuggerSetColorFG( DebuggerGetColor( FG_INFO_TITLE ));
DebuggerSetColorBG( DebuggerGetColor( BG_INFO ));
DebuggerSetColorFG( DebuggerGetColor( FG_INFO_TITLE ));
#if SOFTSWITCH_OLD
char sText[16] = "";
// $C050 / $C051 = TEXTOFF/TEXTON = SW.TXTCLR/SW.TXTSET
// GR / TEXT
// GRAPH/TEXT
// TEXT ON/OFF
sprintf( sText, !VideoGetSWTEXT() ? "GR / ----" : "-- / TEXT" );
PrintTextCursorY( sText, rect );
char sText[16] = "";
// $C050 / $C051 = TEXTOFF/TEXTON = SW.TXTCLR/SW.TXTSET
// GR / TEXT
// GRAPH/TEXT
// TEXT ON/OFF
sprintf( sText, !VideoGetSWTEXT() ? "GR / ----" : "-- / TEXT" );
PrintTextCursorY( sText, rect );
// $C052 / $C053 = MIXEDOFF/MIXEDON = SW.MIXCLR/SW.MIXSET
// FULL/MIXED
// MIX OFF/ON
sprintf( sText, !VideoGetSWMIXED() ? "FULL/-----" : "----/MIXED" );
PrintTextCursorY( sText, rect );
// $C052 / $C053 = MIXEDOFF/MIXEDON = SW.MIXCLR/SW.MIXSET
// FULL/MIXED
// MIX OFF/ON
sprintf( sText, !VideoGetSWMIXED() ? "FULL/-----" : "----/MIXED" );
PrintTextCursorY( sText, rect );
// $C054 / $C055 = PAGE1/PAGE2 = PAGE2OFF/PAGE2ON = SW.LOWSCR/SW.HISCR
// PAGE 1 / 2
sprintf( sText, !VideoGetSWPAGE2() ? "PAGE 1 / -" : "PAGE - / 2" );
PrintTextCursorY( sText, rect );
// $C056 / $C057 LORES/HIRES = HIRESOFF/HIRESON = SW.LORES/SW.HIRES
// LO / HIRES
// LO / -----
// -- / HIRES
sprintf( sText, !VideoGetSWHIRES() ? "LO /-- RES" : "---/HI RES" );
PrintTextCursorY( sText, rect );
// $C054 / $C055 = PAGE1/PAGE2 = PAGE2OFF/PAGE2ON = SW.LOWSCR/SW.HISCR
// PAGE 1 / 2
sprintf( sText, !VideoGetSWPAGE2() ? "PAGE 1 / -" : "PAGE - / 2" );
PrintTextCursorY( sText, rect );
// $C056 / $C057 LORES/HIRES = HIRESOFF/HIRESON = SW.LORES/SW.HIRES
// LO / HIRES
// LO / -----
// -- / HIRES
sprintf( sText, !VideoGetSWHIRES() ? "LO /-- RES" : "---/HI RES" );
PrintTextCursorY( sText, rect );
PrintTextCursorY( "", rect );
PrintTextCursorY( "", rect );
// Extended soft switches
sprintf( sText, !VideoGetSW80COL() ? "40 / -- COL" : "-- / 80 COL" );
PrintTextCursorY( sText, rect );
// Extended soft switches
sprintf( sText, !VideoGetSW80COL() ? "40 / -- COL" : "-- / 80 COL" );
PrintTextCursorY( sText, rect );
sprintf(sText, VideoGetSWAltCharSet() ? "ASCII/-----" : "-----/MOUSE" );
PrintTextCursorY( sText, rect );
sprintf(sText, VideoGetSWAltCharSet() ? "ASCII/-----" : "-----/MOUSE" );
PrintTextCursorY( sText, rect );
// 280/560 HGR
sprintf(sText, !VideoGetSWDHIRES() ? "HGR / ----" : "--- / DHGR" );
PrintTextCursorY( sText, rect );
// 280/560 HGR
sprintf(sText, !VideoGetSWDHIRES() ? "HGR / ----" : "--- / DHGR" );
PrintTextCursorY( sText, rect );
#else //SOFTSWITCH_OLD
// See: VideoSetMode()
// See: VideoSetMode()
// $C050 / $C051 = TEXTOFF/TEXTON = SW.TXTCLR/SW.TXTSET
// GR / TEXT
// GRAPH/TEXT
// TEXT ON/OFF
bool bSet;
// $C050 / $C051 = TEXTOFF/TEXTON = SW.TXTCLR/SW.TXTSET
// GR / TEXT
// GRAPH/TEXT
// TEXT ON/OFF
bool bSet;
// $C050 / $C051 = TEXTOFF/TEXTON = SW.TXTCLR/SW.TXTSET
bSet = !GetVideo().VideoGetSWTEXT();
_DrawSoftSwitch( rect, 0xC050, bSet, NULL, "GR.", "TEXT" );
// $C050 / $C051 = TEXTOFF/TEXTON = SW.TXTCLR/SW.TXTSET
bSet = !GetVideo().VideoGetSWTEXT();
_DrawSoftSwitch( rect, 0xC050, bSet, NULL, "GR.", "TEXT" );
// $C052 / $C053 = MIXEDOFF/MIXEDON = SW.MIXCLR/SW.MIXSET
// FULL/MIXED
// MIX OFF/ON
bSet = !GetVideo().VideoGetSWMIXED();
_DrawSoftSwitch( rect, 0xC052, bSet, NULL, "FULL", "MIX" );
// $C052 / $C053 = MIXEDOFF/MIXEDON = SW.MIXCLR/SW.MIXSET
// FULL/MIXED
// MIX OFF/ON
bSet = !GetVideo().VideoGetSWMIXED();
_DrawSoftSwitch( rect, 0xC052, bSet, NULL, "FULL", "MIX" );
// $C054 / $C055 = PAGE1/PAGE2 = PAGE2OFF/PAGE2ON = SW.LOWSCR/SW.HISCR
// PAGE 1 / 2
bSet = !GetVideo().VideoGetSWPAGE2();
_DrawSoftSwitch( rect, 0xC054, bSet, "PAGE ", "1", "2" );
// $C056 / $C057 LORES/HIRES = HIRESOFF/HIRESON = SW.LORES/SW.HIRES
// LO / HIRES
// LO / -----
// -- / HIRES
bSet = !GetVideo().VideoGetSWHIRES();
_DrawSoftSwitch( rect, 0xC056, bSet, NULL, "LO", "HI", "RES" );
// $C054 / $C055 = PAGE1/PAGE2 = PAGE2OFF/PAGE2ON = SW.LOWSCR/SW.HISCR
// PAGE 1 / 2
bSet = !GetVideo().VideoGetSWPAGE2();
_DrawSoftSwitch( rect, 0xC054, bSet, "PAGE ", "1", "2" );
// $C056 / $C057 LORES/HIRES = HIRESOFF/HIRESON = SW.LORES/SW.HIRES
// LO / HIRES
// LO / -----
// -- / HIRES
bSet = !GetVideo().VideoGetSWHIRES();
_DrawSoftSwitch( rect, 0xC056, bSet, NULL, "LO", "HI", "RES" );
DebuggerSetColorBG( DebuggerGetColor( BG_INFO ));
DebuggerSetColorFG( DebuggerGetColor( FG_INFO_TITLE ));
DebuggerSetColorBG( DebuggerGetColor( BG_INFO ));
DebuggerSetColorFG( DebuggerGetColor( FG_INFO_TITLE ));
// 280/560 HGR
// C05E = ON, C05F = OFF
bSet = GetVideo().VideoGetSWDHIRES();
_DrawSoftSwitch( rect, 0xC05E, bSet, NULL, "DHGR", "HGR" );
// 280/560 HGR
// C05E = ON, C05F = OFF
bSet = GetVideo().VideoGetSWDHIRES();
_DrawSoftSwitch( rect, 0xC05E, bSet, NULL, "DHGR", "HGR" );
// Extended soft switches
int bgMemory = BG_DATA_2;
// Extended soft switches
int bgMemory = BG_DATA_2;
// C000 = 80STOREOFF, C001 = 80STOREON
bSet = !GetVideo().VideoGetSW80STORE();
_DrawSoftSwitch( rect, 0xC000, bSet, "80Sto", "0", "1", NULL, bgMemory );
// C000 = 80STOREOFF, C001 = 80STOREON
bSet = !GetVideo().VideoGetSW80STORE();
_DrawSoftSwitch( rect, 0xC000, bSet, "80Sto", "0", "1", NULL, bgMemory );
// C002 .. C005
_DrawSoftSwitchMainAuxBanks( rect, bgMemory );
// C002 .. C005
_DrawSoftSwitchMainAuxBanks( rect, bgMemory );
// C00C = off, C00D = on
bSet = !GetVideo().VideoGetSW80COL();
_DrawSoftSwitch( rect, 0xC00C, bSet, "Col", "40", "80", NULL, bgMemory );
// C00C = off, C00D = on
bSet = !GetVideo().VideoGetSW80COL();
_DrawSoftSwitch( rect, 0xC00C, bSet, "Col", "40", "80", NULL, bgMemory );
// C00E = off, C00F = on
bSet = !GetVideo().VideoGetSWAltCharSet();
_DrawSoftSwitch( rect, 0xC00E, bSet, NULL, "ASC", "MOUS", NULL, bgMemory ); // ASCII/MouseText
// C00E = off, C00F = on
bSet = !GetVideo().VideoGetSWAltCharSet();
_DrawSoftSwitch( rect, 0xC00E, bSet, NULL, "ASC", "MOUS", NULL, bgMemory ); // ASCII/MouseText
#if SOFTSWITCH_LANGCARD
// GH#406 https://github.com/AppleWin/AppleWin/issues/406
// 2.9.0.4
// Language Card Bank 1/2
// See: MemSetPaging()
// GH#406 https://github.com/AppleWin/AppleWin/issues/406
// 2.9.0.4
// Language Card Bank 1/2
// See: MemSetPaging()
// LC2 & C008/C009 (ALTZP & ALT-LC)
DebuggerSetColorBG( DebuggerGetColor( bgMemory )); // BG_INFO_2 -> BG_DATA_2
_DrawSoftSwitchLanguageCardBank( rect, 2, bgMemory );
DebuggerSetColorBG( DebuggerGetColor( bgMemory )); // BG_INFO_2 -> BG_DATA_2
_DrawSoftSwitchLanguageCardBank( rect, 2, bgMemory );
// LC1
rect.left = DISPLAY_SOFTSWITCH_COLUMN; // INFO_COL_2;
_DrawSoftSwitchLanguageCardBank( rect, 1, bgMemory );
rect.left = DISPLAY_SOFTSWITCH_COLUMN; // INFO_COL_2;
_DrawSoftSwitchLanguageCardBank( rect, 1, bgMemory );
#endif
#endif // SOFTSWITCH_OLD
@ -3192,7 +3192,7 @@ void DrawSubWindow_Data (Update_t bUpdate)
nAddress += nMaxOpcodes;
rect.top += nFontHeight;
rect.top += nFontHeight;
}
}