mirror of https://github.com/stella-emu/stella.git
RomWidget now saves cart bankswitch state before disassembly and
restores it afterwards. Also, fixed the debugger "bank" command. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@827 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
dbf97c41c6
commit
4233fa3ae4
|
@ -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.98 2005-10-12 03:32:28 urchlay Exp $
|
// $Id: Debugger.cxx,v 1.99 2005-10-13 00:59:30 urchlay Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include "bspf.hxx"
|
#include "bspf.hxx"
|
||||||
|
@ -916,7 +916,9 @@ void Debugger::reloadROM() {
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
bool Debugger::setBank(int bank) {
|
bool Debugger::setBank(int bank) {
|
||||||
if(myConsole->cartridge().bankCount() > 1) {
|
if(myConsole->cartridge().bankCount() > 1) {
|
||||||
|
myConsole->cartridge().unlockBank();
|
||||||
myConsole->cartridge().bank(bank);
|
myConsole->cartridge().bank(bank);
|
||||||
|
myConsole->cartridge().lockBank();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -953,6 +955,7 @@ void Debugger::saveOldState()
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Debugger::setStartState()
|
void Debugger::setStartState()
|
||||||
{
|
{
|
||||||
|
cerr << "Debugger::setStartState()" << endl;
|
||||||
// Lock the bus each time the debugger is entered, so we don't disturb anything
|
// Lock the bus each time the debugger is entered, so we don't disturb anything
|
||||||
// mySystem->lockDataBus();
|
// mySystem->lockDataBus();
|
||||||
lockState();
|
lockState();
|
||||||
|
|
|
@ -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.9 2005-10-12 03:32:28 urchlay Exp $
|
// $Id: RomWidget.cxx,v 1.10 2005-10-13 00:59:30 urchlay 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
|
||||||
|
@ -43,6 +43,8 @@ RomWidget::RomWidget(GuiObject* boss, const GUI::Font& font, int x, int y)
|
||||||
mySourceAvailable(false),
|
mySourceAvailable(false),
|
||||||
myCurrentBank(-1)
|
myCurrentBank(-1)
|
||||||
{
|
{
|
||||||
|
cerr << "new RomWidget()" << endl;
|
||||||
|
|
||||||
int w = 58 * font.getMaxCharWidth(),
|
int w = 58 * font.getMaxCharWidth(),
|
||||||
h = 31 * font.getLineHeight();
|
h = 31 * font.getLineHeight();
|
||||||
|
|
||||||
|
@ -160,6 +162,9 @@ void RomWidget::initialUpdate()
|
||||||
Debugger& dbg = instance()->debugger();
|
Debugger& dbg = instance()->debugger();
|
||||||
PackedBitArray* bp = dbg.breakpoints();
|
PackedBitArray* bp = dbg.breakpoints();
|
||||||
|
|
||||||
|
// Reading from ROM might trigger a bankswitch, so save the current bank
|
||||||
|
myCurrentBank = dbg.getBank();
|
||||||
|
|
||||||
// Fill romlist the current bank of source or disassembly
|
// Fill romlist the current bank of source or disassembly
|
||||||
if(mySourceAvailable)
|
if(mySourceAvailable)
|
||||||
; // TODO - actually implement this
|
; // TODO - actually implement this
|
||||||
|
@ -189,6 +194,9 @@ void RomWidget::initialUpdate()
|
||||||
|
|
||||||
myRomList->setList(label, data, disasm, state);
|
myRomList->setList(label, data, disasm, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Restore the old bank, in case we inadvertently switched while reading.
|
||||||
|
dbg.setBank(myCurrentBank);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
Loading…
Reference in New Issue