mirror of
https://github.com/AppleWin/AppleWin.git
synced 2025-02-07 16:31:00 +00:00
2.7.0.33 Fixed ASC range, DW range to auto-define T_#### and W_####
This commit is contained in:
parent
be1ae810fc
commit
1b1009ee07
@ -2,7 +2,9 @@
|
||||
2.8.0.0 Released with AppleWin 1.25
|
||||
|
||||
2.7.0.#
|
||||
.31 Fixed: DB range -- autogenerate symbol name B_####
|
||||
.33 Fixed: ASC range -- auto-define symbol name: T_####
|
||||
.32 Fixed: DW range -- auto-define symbol name: W_####
|
||||
.31 Fixed: DB range -- auto-define symbol name B_####
|
||||
.30 Fixed: ASC overflowing sOpCodes in FormatOpcodeBytes()
|
||||
.29 Added: Help for DB and DW
|
||||
.28 Added: ASC so it disassemblies intertwined code and data correctly.
|
||||
|
@ -30,7 +30,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
// Disassembler Data ______________________________________________________________________________
|
||||
|
||||
// __ Debugger Interaface ____________________________________________________________________________
|
||||
// __ Debugger Interface ____________________________________________________________________________
|
||||
|
||||
//===========================================================================
|
||||
WORD _CmdDefineByteRange(int nArgs,int iArg,DisasmData_t & tData_)
|
||||
@ -68,14 +68,6 @@ WORD _CmdDefineByteRange(int nArgs,int iArg,DisasmData_t & tData_)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
// Removed so DW 801 works
|
||||
if (!nLen)
|
||||
{
|
||||
nLen = 1;
|
||||
}
|
||||
*/
|
||||
|
||||
tData_.nStartAddress = nAddress;
|
||||
tData_.nEndAddress = nAddress + nLen;
|
||||
// tData_.nArraySize = 0;
|
||||
@ -88,7 +80,13 @@ WORD _CmdDefineByteRange(int nArgs,int iArg,DisasmData_t & tData_)
|
||||
{
|
||||
if( g_aArgs[ 2 ].eToken == TOKEN_COLON ) // 2.7.0.31 Bug fix: DB range, i.e. DB 174E:174F
|
||||
{
|
||||
sprintf( aSymbolName, "B_%04X", tData_.nStartAddress );
|
||||
if( g_iCommand == CMD_DEFINE_DATA_STR )
|
||||
sprintf( aSymbolName, "T_%04X", tData_.nStartAddress ); // ASC range
|
||||
else
|
||||
if( g_iCommand == CMD_DEFINE_DATA_WORD1 )
|
||||
sprintf( aSymbolName, "W_%04X", tData_.nStartAddress ); // DW range
|
||||
else
|
||||
sprintf( aSymbolName, "B_%04X", tData_.nStartAddress ); // DB range
|
||||
pSymbolName = aSymbolName;
|
||||
}
|
||||
else
|
||||
@ -132,7 +130,7 @@ Update_t CmdDisasmDataDefCode (int nArgs)
|
||||
// DB TEST1 300:320
|
||||
// DB TEST2 310:330
|
||||
// DB TEST3 320:340
|
||||
// !DB 300
|
||||
// X TEST1
|
||||
|
||||
DisasmData_t *pData = Disassembly_IsDataAddress( nAddress );
|
||||
if( pData )
|
||||
@ -257,28 +255,36 @@ Update_t _CmdDisasmDataDefByteX (int nArgs)
|
||||
return UPDATE_DISASM | ConsoleUpdate();
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
Update_t _CmdDisasmDataDefWordX (int nArgs)
|
||||
{
|
||||
/*
|
||||
Usage:
|
||||
DW
|
||||
DW symbol
|
||||
DW symbol address
|
||||
DW symbol range:range
|
||||
DW address Auto-define D_#### where # is the address
|
||||
DW address Auto-define W_#### where # is the address
|
||||
DW range Auto-define W_#### where # is the address
|
||||
Examples:
|
||||
DW
|
||||
DW 3F2:3F3
|
||||
*/
|
||||
//===========================================================================
|
||||
Update_t _CmdDisasmDataDefWordX (int nArgs)
|
||||
{
|
||||
int iCmd = g_aArgs[0].nValue - NOP_WORD_1;
|
||||
|
||||
if (! ((nArgs <= 2) || (nArgs == 4)))
|
||||
if (nArgs > 4) // 2.7.0.31 Bug fix: DB range, i.e. DB 174E:174F
|
||||
{
|
||||
return Help_Arg_1( CMD_DEFINE_DATA_WORD1 + iCmd );
|
||||
}
|
||||
|
||||
DisasmData_t tData;
|
||||
int iArg = 2;
|
||||
|
||||
if (nArgs == 3 ) // 2.7.0.33 Bug fix: DW range, i.e. DW 3F2:3F3
|
||||
{
|
||||
if ( g_aArgs[ 2 ].eToken == TOKEN_COLON )
|
||||
iArg = 1;
|
||||
}
|
||||
|
||||
WORD nAddress = _CmdDefineByteRange( nArgs, iArg, tData );
|
||||
|
||||
// tData.iDirective = FIRST_M_DIRECTIVE + ASM_M_DEFINE_WORD;
|
||||
@ -392,12 +398,25 @@ Update_t CmdDisasmDataDefWord4 ( int nArgs )
|
||||
}
|
||||
|
||||
// Command: DS
|
||||
// ASC range Auto-define T_#### where # is the address
|
||||
Update_t CmdDisasmDataDefString ( int nArgs )
|
||||
{
|
||||
int iCmd = 0; // Define Ascii, AppleText, MixedText (DOS3.3)
|
||||
|
||||
if (nArgs > 4) // 2.7.0.31 Bug fix: DB range, i.e. DB 174E:174F
|
||||
{
|
||||
return Help_Arg_1( CMD_DEFINE_DATA_STR + iCmd );
|
||||
}
|
||||
|
||||
DisasmData_t tData;
|
||||
int iArg = 2;
|
||||
|
||||
if (nArgs == 3 ) // 2.7.0.32 Bug fix: ASC range, i.e. ASC 174E:175F
|
||||
{
|
||||
if ( g_aArgs[ 2 ].eToken == TOKEN_COLON )
|
||||
iArg = 1;
|
||||
}
|
||||
|
||||
WORD nAddress = _CmdDefineByteRange( nArgs, iArg, tData );
|
||||
|
||||
// tData.iDirective = g_aAssemblerFirstDirective[ g_iAssemblerSyntax ] + ASM_DEFINE_APPLE_TEXT;
|
||||
|
Loading…
x
Reference in New Issue
Block a user