diff --git a/src/debugger/gui/Cart2KWidget.cxx b/src/debugger/gui/Cart2KWidget.cxx index 9b70fb85e..a36da741b 100644 --- a/src/debugger/gui/Cart2KWidget.cxx +++ b/src/debugger/gui/Cart2KWidget.cxx @@ -26,6 +26,13 @@ Cartridge2KWidget::Cartridge2KWidget( int x, int y, int w, int h, Cartridge2K& cart) : CartDebugWidget(boss, font, x, y, w, h) { - addBaseInformation(2048, "Atari", "Standard 2K cartridge, non-bankswitched\n" - "Accessible @ $1000 - $1FFF"); + // Eventually, we should query this from the debugger/disassembler + uInt16 size = cart.mySize; + uInt16 start = (cart.myImage[size-3] << 8) | cart.myImage[size-2]; + start -= start % size; + + ostringstream info; + info << "Standard 2K cartridge, non-bankswitched\n" + << "Accessible @ $" << HEX4 << start << " - " << "$" << (start + size - 1); + addBaseInformation(size, "Atari", info.str()); } diff --git a/src/debugger/gui/Cart4KWidget.cxx b/src/debugger/gui/Cart4KWidget.cxx index 149b95ca9..209da55da 100644 --- a/src/debugger/gui/Cart4KWidget.cxx +++ b/src/debugger/gui/Cart4KWidget.cxx @@ -26,7 +26,12 @@ Cartridge4KWidget::Cartridge4KWidget( int x, int y, int w, int h, Cartridge4K& cart) : CartDebugWidget(boss, font, x, y, w, h) { - uInt16 offset = (cart.myImage[0xFFD] << 8) | cart.myImage[0xFFC]; - addBaseInformation(4096, "Atari", "Standard 4K cartridge, non-bankswitched\n" - "Accessible @ $1000 - $1FFF"); + // Eventually, we should query this from the debugger/disassembler + uInt16 start = (cart.myImage[0xFFD] << 8) | cart.myImage[0xFFC]; + start -= start % 0x1000; + + ostringstream info; + info << "Standard 4K cartridge, non-bankswitched\n" + << "Accessible @ $" << HEX4 << start << " - " << "$" << (start + 0xFFF); + addBaseInformation(4096, "Atari", info.str()); } diff --git a/src/debugger/gui/CartDebugWidget.hxx b/src/debugger/gui/CartDebugWidget.hxx index 8bd04c61a..5cd4a7cb2 100644 --- a/src/debugger/gui/CartDebugWidget.hxx +++ b/src/debugger/gui/CartDebugWidget.hxx @@ -54,15 +54,19 @@ class CartDebugWidget : public Widget, public CommandSender fwidth = _w - lwidth - 30; EditTextWidget* w = 0; StringListWidget* sw = 0; + ostringstream buf; int x = 10, y = 10; // Add ROM size, manufacturer and bankswitch info new StaticTextWidget(_boss, _font, x, y, lwidth, myFontHeight, "ROM Size: ", kTextAlignLeft); + buf << bytes << " bytes"; + if(bytes >= 1024) + buf << " / " << (bytes/1024) << "KB"; + w = new EditTextWidget(_boss, _font, x+lwidth, y, - fwidth, myFontHeight, BSPF_toString(bytes) + " bytes / " + - BSPF_toString((bytes/1024)) + "KB"); + fwidth, myFontHeight, buf.str()); w->setEditable(false); y += myLineHeight + 4; diff --git a/src/emucore/Cart2K.hxx b/src/emucore/Cart2K.hxx index 9392972a9..d69ab9606 100644 --- a/src/emucore/Cart2K.hxx +++ b/src/emucore/Cart2K.hxx @@ -38,7 +38,7 @@ class System; */ class Cartridge2K : public Cartridge { - friend class Cart2KWidget; + friend class Cartridge2KWidget; public: /**