From 01d8c298aef4bed63e5fcc3e16842b455654f3ec Mon Sep 17 00:00:00 2001 From: stephena Date: Sun, 27 May 2012 19:27:55 +0000 Subject: [PATCH] Added 'dis.relocate' commandline argument, which passes the Distella '-r' option (Relocate calls out of address range) to the disassembler core. Also added UI item to dynamically change the setting. Renamed 'resolvedata', 'showaddr' and 'gfxformat' commandline arguments to start with 'dis', indicating that they're part of the disassembler. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2504 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba --- Changes.txt | 9 +++++++-- docs/debugger.html | 5 ++++- docs/graphics/debugger_romcmenu.png | Bin 7051 -> 6874 bytes docs/index.html | 11 ++++++++--- src/debugger/CartDebug.cxx | 6 +++--- src/debugger/gui/RomListWidget.cxx | 3 ++- src/debugger/gui/RomWidget.cxx | 20 ++++++++++++++------ src/emucore/Settings.cxx | 20 ++++++++++++-------- 8 files changed, 50 insertions(+), 24 deletions(-) diff --git a/Changes.txt b/Changes.txt index a5f5a3abd..e046fe833 100644 --- a/Changes.txt +++ b/Changes.txt @@ -40,13 +40,18 @@ a multi-file archive before using each ROM. Thanks go to Roland Schabenberger (webOS maintainer) for this idea and sample code. - * Fixed several bugs in debugger disassembly: + * Several improvements to the debugger/disassembler: + - The 'resolvedata', 'showaddr' and 'gfxformat' commandline + arguments are renamed to start with 'dis', indicating that + they're used with the built-in disassembler. - Zero-page code addresses no longer have their high-byte truncated, and system equates (TIA and I/O registers) are now properly marked as such. - The Distella '-r' option (Relocate calls out of address range) is no longer the default, resulting in output more consistent - with normal usage of Distella. + with normal usage of Distella. Related to this, added the + '-dis.relocate' commandline argument (and associated UI item) + to toggle this dynamically. * Fixed bug in EFSC bankswitch scheme state saving; the Superchip RAM wasn't actually being loaded and saved to state files. diff --git a/docs/debugger.html b/docs/debugger.html index 154859c82..b53eeeb8d 100644 --- a/docs/debugger.html +++ b/docs/debugger.html @@ -1084,7 +1084,7 @@ graphically differentiate between RAM and ROM areas.

The ROM listing also contains a context menu, accessible by right-clicking anywhere in the listing:

-

Currently, there are three options:

+

The following options are available:

diff --git a/docs/graphics/debugger_romcmenu.png b/docs/graphics/debugger_romcmenu.png index 6003a9fb7d9258bd8df224f4ab7452214bada60f..cb161acd7f9f72b74e89f7cd39befae0818e33e5 100644 GIT binary patch literal 6874 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 HZRGy}&QQFY literal 7051 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 diff --git a/docs/index.html b/docs/index.html index 77413ca9a..2daabb677 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2251,22 +2251,27 @@ -
-resolvedata <never|always|auto>
+
-dis.resolvedata <never|always|auto>
Try to differentiate between code vs. data sections in the disassembler. See the Debugger section for more information. -
-gfxformat <2|16>
+
-dis.gfxformat <2|16>
Sets the base to use for displaying GFX sections in the disassembler. -
-showaddr <1|0>
+
-dis.showaddr <1|0>
Shows/hides opcode addresses in the disassembler. + +
-dis.relocate <1|0>
+ Relocate calls out of address range. + +
-debuggerres <WxH>
Set the size of the debugger window. diff --git a/src/debugger/CartDebug.cxx b/src/debugger/CartDebug.cxx index 18dbcf956..587f6a254 100644 --- a/src/debugger/CartDebug.cxx +++ b/src/debugger/CartDebug.cxx @@ -69,11 +69,11 @@ CartDebug::CartDebug(Debugger& dbg, Console& console, const OSystem& osystem) // Add settings for Distella DiStella::settings.gfx_format = - myOSystem.settings().getInt("gfxformat") == 16 ? kBASE_16 : kBASE_2; + myOSystem.settings().getInt("dis.gfxformat") == 16 ? kBASE_16 : kBASE_2; DiStella::settings.show_addresses = - myOSystem.settings().getBool("showaddr"); + myOSystem.settings().getBool("dis.showaddr"); + DiStella::settings.rflag = myOSystem.settings().getBool("dis.relocate"); DiStella::settings.fflag = true; // Not currently configurable - DiStella::settings.rflag = false; // Not currently configurable } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/debugger/gui/RomListWidget.cxx b/src/debugger/gui/RomListWidget.cxx index 0eef06c65..c8636f49c 100644 --- a/src/debugger/gui/RomListWidget.cxx +++ b/src/debugger/gui/RomListWidget.cxx @@ -65,9 +65,10 @@ RomListWidget::RomListWidget(GuiObject* boss, const GUI::Font& font, l.push_back("Save ROM", "saverom"); l.push_back("Set PC", "setpc"); l.push_back("RunTo PC", "runtopc"); - l.push_back("---------------------", ""); + l.push_back("-------------------------", ""); l.push_back("Toggle PC addresses", "pcaddr"); l.push_back("Toggle GFX binary/hex", "gfx"); + l.push_back("Toggle address relocation", "relocate"); l.push_back("Re-disassemble", "disasm"); myMenu = new ContextMenu(this, font, l); diff --git a/src/debugger/gui/RomWidget.cxx b/src/debugger/gui/RomWidget.cxx index 0cc8c0e63..473f2a278 100644 --- a/src/debugger/gui/RomWidget.cxx +++ b/src/debugger/gui/RomWidget.cxx @@ -104,7 +104,8 @@ RomWidget::RomWidget(GuiObject* boss, const GUI::Font& font, int x, int y) mySaveRom->setTarget(this); // By default, we try to automatically determine code vs. data sections - myResolveData->setSelected(instance().settings().getString("resolvedata"), "auto"); + myResolveData->setSelected( + instance().settings().getString("dis.resolvedata"), "auto"); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -178,8 +179,8 @@ void RomWidget::handleCommand(CommandSender* sender, int cmd, int data, int id) else if(rmb == "pcaddr") { DiStella::settings.show_addresses = !DiStella::settings.show_addresses; - instance().settings().setString("showaddr", - DiStella::settings.show_addresses ? "true" : "false"); + instance().settings().setBool("dis.showaddr", + DiStella::settings.show_addresses); invalidate(); } else if(rmb == "gfx") @@ -187,15 +188,22 @@ void RomWidget::handleCommand(CommandSender* sender, int cmd, int data, int id) if(DiStella::settings.gfx_format == kBASE_16) { DiStella::settings.gfx_format = kBASE_2; - instance().settings().setString("gfxformat", "2"); + instance().settings().setString("dis.gfxformat", "2"); } else { DiStella::settings.gfx_format = kBASE_16; - instance().settings().setString("gfxformat", "16"); + instance().settings().setString("dis.gfxformat", "16"); } invalidate(); } + else if(rmb == "relocate") + { + DiStella::settings.rflag = !DiStella::settings.rflag; + instance().settings().setBool("dis.relocate", + DiStella::settings.rflag); + invalidate(); + } break; // kCMenuItemSelectedCmd } @@ -204,7 +212,7 @@ void RomWidget::handleCommand(CommandSender* sender, int cmd, int data, int id) break; case kResolveDataChanged: - instance().settings().setString("resolvedata", myResolveData->getSelectedTag()); + instance().settings().setString("dis.resolvedata", myResolveData->getSelectedTag()); invalidate(); loadConfig(); break; diff --git a/src/emucore/Settings.cxx b/src/emucore/Settings.cxx index b3cac06e8..539691213 100644 --- a/src/emucore/Settings.cxx +++ b/src/emucore/Settings.cxx @@ -136,10 +136,11 @@ Settings::Settings(OSystem* osystem) setExternal("romloadcount", "0"); setExternal("maxres", ""); - // Debugger options - setInternal("resolvedata", "auto"); - setInternal("gfxformat", "2"); - setInternal("showaddr", "true"); + // Debugger disassembly options + setInternal("dis.resolvedata", "auto"); + setInternal("dis.gfxformat", "2"); + setInternal("dis.showaddr", "true"); + setInternal("dis.relocate", "false"); // Thumb ARM emulation options setInternal("thumb.trapfatal", "true"); @@ -438,10 +439,13 @@ void Settings::usage() << " The following options are meant for developers\n" << " Arguments are more fully explained in the manual\n" << endl - << " -resolvedata \n" - << " -gfxformat <2|16> Set base to use for displaying GFX sections in the disassembler\n" - << " -showaddr <1|0> Show opcode addresses in the disassembler\n" + << " -dis.resolvedata \n" + << " -dis.gfxformat <2|16> Set base to use for displaying GFX sections in disassembler\n" + << " -dis.showaddr <1|0> Show opcode addresses in disassembler\n" + << " -dis.relocate <1|0> Relocate calls out of address range in disassembler\n" + << endl << " -debuggerres The resolution to use in debugger mode\n" << " -break
Set a breakpoint at 'address'\n" << " -debug Start in debugger mode\n"