diff --git a/source/Debugger/Debug.cpp b/source/Debugger/Debug.cpp index 6e05af2f..e4a9cb2a 100644 --- a/source/Debugger/Debug.cpp +++ b/source/Debugger/Debug.cpp @@ -6110,6 +6110,11 @@ _Help: //=========================================================================== Update_t CmdOutputRun (int nArgs) { + if (g_iCommand == CMD_SYMBOLS_APPLESOFT) // Debugger Startup: Run at debugger startup + { + nArgs = 1; + } + if (! nArgs) return Help_Arg_1( CMD_OUTPUT_RUN ); @@ -6134,13 +6139,21 @@ Update_t CmdOutputRun (int nArgs) sMiniFileName = pFileName.substr(0, MIN(pFileName.size(), CONSOLE_WIDTH)); // strcat( sMiniFileName, ".aws" ); // HACK: MAGIC STRING - if (pFileName[0] == PATH_SEPARATOR || pFileName[1] == ':') // NB. Any prefix quote has already been stripped + size_t nFileName = pFileName.length(); + if (nFileName && (pFileName[0] == PATH_SEPARATOR || pFileName[1] == ':')) // NB. Any prefix quote has already been stripped { // Abs pathname sFileName = sMiniFileName; } else { + // Debugger Startup: HACK + if (g_iCommand == CMD_SYMBOLS_APPLESOFT) + { + int iSymbolTable = CMD_SYMBOLS_APPLESOFT - CMD_SYMBOLS_ROM; + sFileName = g_sProgramDir + g_sFileNameScripts[ iSymbolTable ]; + } + else // Rel pathname sFileName = g_sCurrentDir + sMiniFileName; } @@ -8641,6 +8654,8 @@ void DebugInitialize () g_iCommand = CMD_SYMBOLS_APPLESOFT; CmdSymbolsLoad(0); + CmdOutputRun(0); // Load g_sFileNameScripts[] "A2_BASIC.A2D" + // ,0x7,0xFF // Treat zero-page as data // $00 GOWARM JSR ... // $01 LOC1 DW diff --git a/source/Debugger/Debugger_Symbols.cpp b/source/Debugger/Debugger_Symbols.cpp index a5f53145..c1642cfc 100644 --- a/source/Debugger/Debugger_Symbols.cpp +++ b/source/Debugger/Debugger_Symbols.cpp @@ -42,7 +42,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // Symbols ________________________________________________________________________________________ - const char* g_sFileNameSymbols[ NUM_SYMBOL_TABLES ] = { + // TODO: Does this order need to match CMD_SYMBOLS_ROM ? + const char* g_sFileNameSymbols[ NUM_SYMBOL_TABLES ] = + { "APPLE2E.SYM" ,"A2_BASIC.SYM" ,"A2_ASM.SYM" @@ -53,6 +55,20 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ,"A2_DOS33.SYM" ,"A2_PRODOS.SYM" }; + + const char* g_sFileNameScripts[ NUM_SYMBOL_TABLES ] = + { + NULL // SYMBOLS_MAIN + , "A2_BASIC.A2D" // SYMBOLS_APPLESOFT + , NULL // SYMBOLS_ASSEMBLY + , NULL // SYMBOLS_USER_1 + , NULL // SYMBOLS_USER_2 + , NULL // SYMBOLS_SRC_1 + , NULL // SYMBOLS_SRC_2 + , NULL // SYMBOLS_DOS33 + , NULL // SYMBOLS_PRODOS + }; + std::string g_sFileNameSymbolsUser; const char * g_aSymbolTableNames[ NUM_SYMBOL_TABLES ] = @@ -774,7 +790,7 @@ Update_t CmdSymbolsLoad (int nArgs) int nSymbols = 0; - // Debugger will call us with 0 args on startup as a way to pre-load symbol tables + // Debugger Startup: Debugger will call us with 0 args on startup as a way to pre-load symbol tables if (! nArgs) { sFileName += g_sFileNameSymbols[ iSymbolTable ]; diff --git a/source/Debugger/Debugger_Symbols.h b/source/Debugger/Debugger_Symbols.h index 0481434b..d4fe6d2c 100644 --- a/source/Debugger/Debugger_Symbols.h +++ b/source/Debugger/Debugger_Symbols.h @@ -1,6 +1,7 @@ // Variables extern SymbolTable_t g_aSymbols[ NUM_SYMBOL_TABLES ]; + extern const char* g_sFileNameScripts[ NUM_SYMBOL_TABLES ]; extern bool g_bSymbolsDisplayMissingFile; // Prototypes