mirror of https://github.com/stella-emu/stella.git
Added loading of a banks worth of data to RomWidget, from addresses
$F000 to $FFFF. Updated both debugger disassemble() methods to never pass $FFFF when disassembling data. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@739 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
9d0060a6ac
commit
2370bb9764
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: Debugger.cxx,v 1.86 2005-08-24 13:18:02 stephena Exp $
|
// $Id: Debugger.cxx,v 1.87 2005-08-24 22:01:45 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include "bspf.hxx"
|
#include "bspf.hxx"
|
||||||
|
@ -772,14 +772,15 @@ const string& Debugger::disassemble(int start, int lines) {
|
||||||
|
|
||||||
result += " ";
|
result += " ";
|
||||||
result += buf;
|
result += buf;
|
||||||
result += "\n";
|
result += "\n";
|
||||||
} while(--lines > 0);
|
} while(--lines > 0 && start <= 0xffff);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Debugger::disassemble(StringList& list, int start, int lines)
|
void Debugger::disassemble(StringList& addr, StringList& data,
|
||||||
|
int start, int lines)
|
||||||
{
|
{
|
||||||
char buf[255], bbuf[255];
|
char buf[255], bbuf[255];
|
||||||
string result;
|
string result;
|
||||||
|
@ -805,9 +806,10 @@ void Debugger::disassemble(StringList& list, int start, int lines)
|
||||||
result += " ";
|
result += " ";
|
||||||
result += buf;
|
result += buf;
|
||||||
|
|
||||||
list.push_back(result);
|
addr.push_back(label);
|
||||||
|
data.push_back(result);
|
||||||
|
|
||||||
} while(--lines > 0);
|
} while(--lines > 0 && start <= 0xffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: Debugger.hxx,v 1.70 2005-08-24 13:18:02 stephena Exp $
|
// $Id: Debugger.hxx,v 1.71 2005-08-24 22:01:45 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef DEBUGGER_HXX
|
#ifndef DEBUGGER_HXX
|
||||||
|
@ -76,7 +76,7 @@ typedef uInt16 (Debugger::*DEBUGGER_WORD_METHOD)();
|
||||||
for all debugging operations in Stella (parser, 6502 debugger, etc).
|
for all debugging operations in Stella (parser, 6502 debugger, etc).
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: Debugger.hxx,v 1.70 2005-08-24 13:18:02 stephena Exp $
|
@version $Id: Debugger.hxx,v 1.71 2005-08-24 22:01:45 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class Debugger : public DialogContainer
|
class Debugger : public DialogContainer
|
||||||
{
|
{
|
||||||
|
@ -185,9 +185,9 @@ class Debugger : public DialogContainer
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Disassemble from the starting address the specified number of lines
|
Disassemble from the starting address the specified number of lines
|
||||||
and place result in given stringlist.
|
and place addresses and data in given arrays.
|
||||||
*/
|
*/
|
||||||
void disassemble(StringList& list, int start, int lines);
|
void disassemble(StringList& addr, StringList& data, int start, int lines);
|
||||||
|
|
||||||
int step();
|
int step();
|
||||||
int trace();
|
int trace();
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: RomWidget.cxx,v 1.4 2005-08-24 13:18:02 stephena Exp $
|
// $Id: RomWidget.cxx,v 1.5 2005-08-24 22:01:45 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -31,7 +31,8 @@ RomWidget::RomWidget(GuiObject* boss, const GUI::Font& font, int x, int y)
|
||||||
: Widget(boss, x, y, 16, 16),
|
: Widget(boss, x, y, 16, 16),
|
||||||
CommandSender(boss),
|
CommandSender(boss),
|
||||||
myFirstLoad(true),
|
myFirstLoad(true),
|
||||||
mySourceAvailable(false)
|
mySourceAvailable(false),
|
||||||
|
myCurrentBank(-1)
|
||||||
{
|
{
|
||||||
int w = 58 * font.getMaxCharWidth(),
|
int w = 58 * font.getMaxCharWidth(),
|
||||||
h = 31 * font.getLineHeight();
|
h = 31 * font.getLineHeight();
|
||||||
|
@ -76,7 +77,8 @@ void RomWidget::loadConfig()
|
||||||
should be filled with new data.
|
should be filled with new data.
|
||||||
*/
|
*/
|
||||||
cerr << "RomWidget::loadConfig()\n";
|
cerr << "RomWidget::loadConfig()\n";
|
||||||
if(myFirstLoad) // load the whole bank
|
// Only reload full bank when necessary
|
||||||
|
if(myFirstLoad || myCurrentBank != instance()->debugger().getBank())
|
||||||
{
|
{
|
||||||
initialUpdate();
|
initialUpdate();
|
||||||
myFirstLoad = false;
|
myFirstLoad = false;
|
||||||
|
@ -92,19 +94,22 @@ void RomWidget::initialUpdate()
|
||||||
{
|
{
|
||||||
Debugger& dbg = instance()->debugger();
|
Debugger& dbg = instance()->debugger();
|
||||||
|
|
||||||
|
myCurrentBank = dbg.getBank();
|
||||||
|
|
||||||
// Fill romlist with entire ROM (FIXME - only fill with current bank)
|
// Fill romlist with entire ROM (FIXME - only fill with current bank)
|
||||||
if(mySourceAvailable)
|
if(mySourceAvailable)
|
||||||
; // FIXME
|
; // FIXME
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
StringList l;
|
StringList addr, data;
|
||||||
BoolArray b;
|
BoolArray state;
|
||||||
|
|
||||||
dbg.disassemble(l, 0, 2048); // FIXME - use bank size
|
// Disassemble entire bank (up to 4096 lines)
|
||||||
for(int i = 0; i < 2048; ++i)
|
dbg.disassemble(addr, data, 0xf000, 4096);
|
||||||
b.push_back(false);
|
for(unsigned int i = 0; i < data.size(); ++i)
|
||||||
|
state.push_back(false);
|
||||||
|
|
||||||
myRomList->setList(l, b);
|
myRomList->setList(data, state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: RomWidget.hxx,v 1.2 2005-08-24 13:18:02 stephena Exp $
|
// $Id: RomWidget.hxx,v 1.3 2005-08-24 22:01:45 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -25,10 +25,13 @@
|
||||||
class GuiObject;
|
class GuiObject;
|
||||||
class CheckListWidget;
|
class CheckListWidget;
|
||||||
|
|
||||||
|
#include <map>
|
||||||
|
|
||||||
#include "Array.hxx"
|
#include "Array.hxx"
|
||||||
#include "Widget.hxx"
|
#include "Widget.hxx"
|
||||||
#include "Command.hxx"
|
#include "Command.hxx"
|
||||||
|
|
||||||
|
typedef multimap<int,int> LinePCMapping;
|
||||||
|
|
||||||
class RomWidget : public Widget, public CommandSender
|
class RomWidget : public Widget, public CommandSender
|
||||||
{
|
{
|
||||||
|
@ -47,8 +50,11 @@ class RomWidget : public Widget, public CommandSender
|
||||||
private:
|
private:
|
||||||
CheckListWidget* myRomList;
|
CheckListWidget* myRomList;
|
||||||
|
|
||||||
|
LinePCMapping myLinePCMapping;
|
||||||
|
|
||||||
bool myFirstLoad;
|
bool myFirstLoad;
|
||||||
bool mySourceAvailable;
|
bool mySourceAvailable;
|
||||||
|
int myCurrentBank;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -12,7 +12,6 @@ MODULE_OBJS := \
|
||||||
src/gui/DialogContainer.o \
|
src/gui/DialogContainer.o \
|
||||||
src/gui/Dialog.o \
|
src/gui/Dialog.o \
|
||||||
src/gui/EditableWidget.o \
|
src/gui/EditableWidget.o \
|
||||||
src/gui/EditNumWidget.o \
|
|
||||||
src/gui/EditTextWidget.o \
|
src/gui/EditTextWidget.o \
|
||||||
src/gui/EventMappingDialog.o \
|
src/gui/EventMappingDialog.o \
|
||||||
src/gui/Font.o \
|
src/gui/Font.o \
|
||||||
|
|
Loading…
Reference in New Issue