2.6.2.10 Added: Pretty printing 'B' of all bytes treated as data.

This commit is contained in:
mpohoreski
2010-12-16 07:32:59 +00:00
parent 3b28e5552f
commit d49b4cbfea

View File

@@ -105,25 +105,57 @@ Update_t CmdDisasmDataDefCode (int nArgs)
return UPDATE_DISASM | ConsoleUpdate(); return UPDATE_DISASM | ConsoleUpdate();
} }
char* g_aNopcodeTypes[ NUM_NOPCODE_TYPES ] =
{
"-n/a-"
,"byte1"
,"byte2"
,"byte4"
,"byte8"
,"word1"
,"word2"
,"word4"
,"addr "
,"hex "
,"char "
,"ascii"
,"apple"
,"mixed"
,"FAC "
,"bmp "
};
// List the data blocks // List the data blocks
//=========================================================================== //===========================================================================
Update_t CmdDisasmDataList (int nArgs) Update_t CmdDisasmDataList (int nArgs)
{ {
// Need to iterate through all blocks // Need to iterate through all blocks
DisasmData_t* pData = NULL; DisasmData_t* pData = NULL;
char sText[ CONSOLE_WIDTH ]; char sText[ CONSOLE_WIDTH * 2 ];
while( pData = Disassembly_Enumerate( pData ) ) while( pData = Disassembly_Enumerate( pData ) )
{ {
// `TEST `300`:`320 if (pData->iDirective != _NOP_REMOVED)
sprintf( sText, "%s%s %s%04X%s:%s%04X\n" {
, CHC_SYMBOL int nLen = strlen( pData->sSymbol );
, pData->sSymbol // TODO:
, CHC_ADDRESS // <smbol> <type> <start>:<end>
, pData->nStartAddress
, CHC_ARG_SEP
, pData->nEndAddress // `TEST `300`:`320
); sprintf( sText, "%s%s %s%s %s%04X%s:%s%04X"
ConsolePrint( sText ); , CHC_CATEGORY
, g_aNopcodeTypes[ pData->eElementType ]
, (nLen > 0) ? CHC_SYMBOL : CHC_DEFAULT
, (nLen > 0) ? pData->sSymbol : "???"
, CHC_ADDRESS
, pData->nStartAddress
, CHC_ARG_SEP
, CHC_ADDRESS
, pData->nEndAddress
);
ConsolePrint( sText );
}
} }
return UPDATE_DISASM | ConsoleUpdate(); return UPDATE_DISASM | ConsoleUpdate();
@@ -280,23 +312,21 @@ DisasmData_t* Disassembly_Enumerate( DisasmData_t *pCurrent )
DisasmData_t *pData = NULL; // bIsNopcode = false DisasmData_t *pData = NULL; // bIsNopcode = false
int nDataTargets = g_aDisassemblerData.size(); int nDataTargets = g_aDisassemblerData.size();
if( pCurrent ) if( nDataTargets )
{ {
pCurrent++; DisasmData_t *pBegin = & g_aDisassemblerData[ 0 ];
pData = & g_aDisassemblerData[ nDataTargets ]; DisasmData_t *pEnd = & g_aDisassemblerData[ nDataTargets - 1 ];
if( pCurrent < pData )
return pCurrent; if( pCurrent )
else {
return NULL; pCurrent++;
} if (pCurrent <= pEnd)
else pData = pCurrent;
{ } else {
pData = & g_aDisassemblerData[ 0 ]; pData = pBegin;
if( nDataTargets ) }
return pData;
else
return NULL;
} }
return pData;
} }
// returns NULL if address has no data associated with it // returns NULL if address has no data associated with it