mirror of https://github.com/stella-emu/stella.git
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:
parent
8f8095073b
commit
33130a78f0
|
@ -608,8 +608,11 @@ const string& Debugger::disassemble(int start, int lines)
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Debugger::disassemble(IntArray& addr, StringList& addrLabel,
|
void Debugger::disassemble(IntArray& addr, StringList& addrLabel,
|
||||||
StringList& bytes, StringList& data,
|
StringList& bytes, StringList& data,
|
||||||
int start, int lines)
|
int start, int end)
|
||||||
{
|
{
|
||||||
|
if(start < 0x80 || end > 0xffff)
|
||||||
|
return;
|
||||||
|
|
||||||
string cpubuf, tmp;
|
string cpubuf, tmp;
|
||||||
char buf[255];
|
char buf[255];
|
||||||
|
|
||||||
|
@ -630,7 +633,7 @@ void Debugger::disassemble(IntArray& addr, StringList& addrLabel,
|
||||||
|
|
||||||
data.push_back(cpubuf);
|
data.push_back(cpubuf);
|
||||||
}
|
}
|
||||||
while(--lines > 0 && start <= 0xffff);
|
while(start <= end);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -177,12 +177,12 @@ class Debugger : public DialogContainer
|
||||||
const string& disassemble(int start, int lines);
|
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.
|
and place addresses, bytes and data in given arrays.
|
||||||
*/
|
*/
|
||||||
void disassemble(IntArray& addr, StringList& addrLabel,
|
void disassemble(IntArray& addr, StringList& addrLabel,
|
||||||
StringList& bytes, StringList& data,
|
StringList& bytes, StringList& data,
|
||||||
int start, int lines);
|
int start, int end);
|
||||||
|
|
||||||
void autoExec();
|
void autoExec();
|
||||||
|
|
||||||
|
|
|
@ -27,8 +27,7 @@
|
||||||
RomListWidget::RomListWidget(GuiObject* boss, const GUI::Font& font,
|
RomListWidget::RomListWidget(GuiObject* boss, const GUI::Font& font,
|
||||||
int x, int y, int w, int h)
|
int x, int y, int w, int h)
|
||||||
: CheckListWidget(boss, font, x, y, w, h),
|
: CheckListWidget(boss, font, x, y, w, h),
|
||||||
myMenu(NULL),
|
myMenu(NULL)
|
||||||
myHighlightedItem(-1)
|
|
||||||
{
|
{
|
||||||
_type = kRomListWidget;
|
_type = kRomListWidget;
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,6 @@ class RomListWidget : public CheckListWidget
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ContextMenu* myMenu;
|
ContextMenu* myMenu;
|
||||||
int myHighlightedItem;
|
|
||||||
int myLabelWidth;
|
int myLabelWidth;
|
||||||
int myBytesWidth;
|
int myBytesWidth;
|
||||||
|
|
||||||
|
|
|
@ -179,8 +179,9 @@ void RomWidget::loadConfig()
|
||||||
myCurrentBank = dbg.getBank();
|
myCurrentBank = dbg.getBank();
|
||||||
|
|
||||||
// Update romlist to point to current PC
|
// Update romlist to point to current PC
|
||||||
// Take mirroring of PC into account
|
// Take mirroring of PC into account, as well as zero-page RAM
|
||||||
int pc = dbg.cpuDebug().pc() | 0xe000;
|
int pc = dbg.cpuDebug().pc();
|
||||||
|
if(pc & 0x1000) pc |= 0xe000;
|
||||||
AddrToLine::iterator iter = myLineList.find(pc);
|
AddrToLine::iterator iter = myLineList.find(pc);
|
||||||
|
|
||||||
// if current PC not found, do an update (we're executing what
|
// if current PC not found, do an update (we're executing what
|
||||||
|
@ -232,8 +233,9 @@ void RomWidget::initialUpdate()
|
||||||
StringList label, data, disasm;
|
StringList label, data, disasm;
|
||||||
BoolArray state;
|
BoolArray state;
|
||||||
|
|
||||||
// Disassemble entire bank (up to 4096 lines) and reset breakpoints
|
// Disassemble zero-page RAM and entire bank and reset breakpoints
|
||||||
dbg.disassemble(myAddrList, label, data, disasm, 0xf000, 4096);
|
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)
|
for(unsigned int i = 0; i < data.size(); ++i)
|
||||||
{
|
{
|
||||||
if(bp.isSet(myAddrList[i]))
|
if(bp.isSet(myAddrList[i]))
|
||||||
|
|
|
@ -176,10 +176,10 @@ void TIA::reset()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
myFixedColor[_P0] = 0x30303030; // TODO - fix these for PAL
|
myFixedColor[_P0] = 0x62626262;
|
||||||
myFixedColor[_P1] = 0x16161616;
|
myFixedColor[_P1] = 0x26262626;
|
||||||
myFixedColor[_PF] = 0x76767676;
|
myFixedColor[_PF] = 0xd8d8d8d8;
|
||||||
myFixedColor[_BK] = 0x0a0a0a0a;
|
myFixedColor[_BK] = 0x1c1c1c1c;
|
||||||
myFixedColor[_HBLANK] = 0x0e0e0e0e;
|
myFixedColor[_HBLANK] = 0x0e0e0e0e;
|
||||||
myColorLossEnabled = true;
|
myColorLossEnabled = true;
|
||||||
myMaximumNumberOfScanlines = 342;
|
myMaximumNumberOfScanlines = 342;
|
||||||
|
@ -1583,7 +1583,7 @@ void TIA::greyOutFrame()
|
||||||
if(c > (myFrameHeight + myFrameYStart))
|
if(c > (myFrameHeight + myFrameYStart))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
cerr << "greying frame from scanline " << c << endl;
|
//cerr << "greying frame from scanline " << c << endl;
|
||||||
|
|
||||||
uInt8* buffer = myCurrentFrameBuffer + myFramePointerOffset;
|
uInt8* buffer = myCurrentFrameBuffer + myFramePointerOffset;
|
||||||
for(uInt32 s = c; s < (myFrameHeight + myFrameYStart); ++s)
|
for(uInt32 s = c; s < (myFrameHeight + myFrameYStart); ++s)
|
||||||
|
|
Loading…
Reference in New Issue