Updated 'Fixed Debug Colors' for PAL mode to more closely match the ones

in NTSC.

First pass at disassembly of ZP RAM in the debugger UI.  For now, the
entire range is disassembled, with no regard for alignment (so the PC
won't necessarily always line up with the disassembly).  Also, changes
to RAM don't yet trigger a re-disassembly.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1867 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2009-08-30 19:37:10 +00:00
parent 8f8095073b
commit 33130a78f0
6 changed files with 19 additions and 16 deletions

View File

@ -608,8 +608,11 @@ const string& Debugger::disassemble(int start, int lines)
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void Debugger::disassemble(IntArray& addr, StringList& addrLabel,
StringList& bytes, StringList& data,
int start, int lines)
int start, int end)
{
if(start < 0x80 || end > 0xffff)
return;
string cpubuf, tmp;
char buf[255];
@ -630,7 +633,7 @@ void Debugger::disassemble(IntArray& addr, StringList& addrLabel,
data.push_back(cpubuf);
}
while(--lines > 0 && start <= 0xffff);
while(start <= end);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -177,12 +177,12 @@ class Debugger : public DialogContainer
const string& disassemble(int start, int lines);
/**
Disassemble from the starting address the specified number of lines
Disassemble from the starting address to the ending address
and place addresses, bytes and data in given arrays.
*/
void disassemble(IntArray& addr, StringList& addrLabel,
StringList& bytes, StringList& data,
int start, int lines);
int start, int end);
void autoExec();

View File

@ -27,8 +27,7 @@
RomListWidget::RomListWidget(GuiObject* boss, const GUI::Font& font,
int x, int y, int w, int h)
: CheckListWidget(boss, font, x, y, w, h),
myMenu(NULL),
myHighlightedItem(-1)
myMenu(NULL)
{
_type = kRomListWidget;

View File

@ -53,7 +53,6 @@ class RomListWidget : public CheckListWidget
private:
ContextMenu* myMenu;
int myHighlightedItem;
int myLabelWidth;
int myBytesWidth;

View File

@ -179,8 +179,9 @@ void RomWidget::loadConfig()
myCurrentBank = dbg.getBank();
// Update romlist to point to current PC
// Take mirroring of PC into account
int pc = dbg.cpuDebug().pc() | 0xe000;
// Take mirroring of PC into account, as well as zero-page RAM
int pc = dbg.cpuDebug().pc();
if(pc & 0x1000) pc |= 0xe000;
AddrToLine::iterator iter = myLineList.find(pc);
// if current PC not found, do an update (we're executing what
@ -232,8 +233,9 @@ void RomWidget::initialUpdate()
StringList label, data, disasm;
BoolArray state;
// Disassemble entire bank (up to 4096 lines) and reset breakpoints
dbg.disassemble(myAddrList, label, data, disasm, 0xf000, 4096);
// Disassemble zero-page RAM and entire bank and reset breakpoints
dbg.disassemble(myAddrList, label, data, disasm, 0x80, 0xff);
dbg.disassemble(myAddrList, label, data, disasm, 0xf000, 0xffff);
for(unsigned int i = 0; i < data.size(); ++i)
{
if(bp.isSet(myAddrList[i]))

View File

@ -176,10 +176,10 @@ void TIA::reset()
}
else
{
myFixedColor[_P0] = 0x30303030; // TODO - fix these for PAL
myFixedColor[_P1] = 0x16161616;
myFixedColor[_PF] = 0x76767676;
myFixedColor[_BK] = 0x0a0a0a0a;
myFixedColor[_P0] = 0x62626262;
myFixedColor[_P1] = 0x26262626;
myFixedColor[_PF] = 0xd8d8d8d8;
myFixedColor[_BK] = 0x1c1c1c1c;
myFixedColor[_HBLANK] = 0x0e0e0e0e;
myColorLossEnabled = true;
myMaximumNumberOfScanlines = 342;
@ -1583,7 +1583,7 @@ void TIA::greyOutFrame()
if(c > (myFrameHeight + myFrameYStart))
return;
cerr << "greying frame from scanline " << c << endl;
//cerr << "greying frame from scanline " << c << endl;
uInt8* buffer = myCurrentFrameBuffer + myFramePointerOffset;
for(uInt32 s = c; s < (myFrameHeight + myFrameYStart); ++s)