mirror of https://github.com/stella-emu/stella.git
Some work on the 'height' command. It isn't working correctly yet,
but at least Stella doesn't crash. I have to implement dialog resizing to take care of the remaining problem (vs. just deleting and re-creating the debugger dialog). git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@639 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
7c675fdc36
commit
d5e7de306e
|
@ -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.60 2005-07-12 02:27:04 urchlay Exp $
|
// $Id: Debugger.cxx,v 1.61 2005-07-14 00:54:27 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include "bspf.hxx"
|
#include "bspf.hxx"
|
||||||
|
@ -77,12 +77,16 @@ Debugger::~Debugger()
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Debugger::initialize()
|
void Debugger::initialize()
|
||||||
{
|
{
|
||||||
|
cerr << "Debugger::initialize()\n";
|
||||||
// Calculate the actual pixels required for the # of lines
|
// Calculate the actual pixels required for the # of lines
|
||||||
// This is currently a bit of a hack, since it uses pixel
|
// This is currently a bit of a hack, since it uses pixel
|
||||||
// values that it shouldn't know about (font and tab height, etc)
|
// values that it shouldn't know about (font and tab height, etc)
|
||||||
int userHeight = myOSystem->settings().getInt("debugheight");
|
int userHeight = myOSystem->settings().getInt("debugheight");
|
||||||
if(userHeight < kDebuggerLines)
|
if(userHeight < kDebuggerLines)
|
||||||
|
{
|
||||||
userHeight = kDebuggerLines;
|
userHeight = kDebuggerLines;
|
||||||
|
myOSystem->settings().setInt("debugheight", userHeight);
|
||||||
|
}
|
||||||
userHeight = (userHeight + 3) * kDebuggerLineHeight - 8;
|
userHeight = (userHeight + 3) * kDebuggerLineHeight - 8;
|
||||||
|
|
||||||
int x = 0,
|
int x = 0,
|
||||||
|
@ -90,6 +94,12 @@ void Debugger::initialize()
|
||||||
w = kDebuggerWidth,
|
w = kDebuggerWidth,
|
||||||
h = userHeight;
|
h = userHeight;
|
||||||
|
|
||||||
|
cerr << "x = " << x << endl
|
||||||
|
<< "y = " << y << endl
|
||||||
|
<< "w = " << w << endl
|
||||||
|
<< "h = " << h << endl
|
||||||
|
<< endl;
|
||||||
|
|
||||||
delete myBaseDialog;
|
delete myBaseDialog;
|
||||||
DebuggerDialog *dd = new DebuggerDialog(myOSystem, this, x, y, w, h);
|
DebuggerDialog *dd = new DebuggerDialog(myOSystem, this, x, y, w, h);
|
||||||
myPrompt = dd->prompt();
|
myPrompt = dd->prompt();
|
||||||
|
@ -105,6 +115,8 @@ void Debugger::initialize()
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Debugger::initializeVideo()
|
void Debugger::initializeVideo()
|
||||||
{
|
{
|
||||||
|
cerr << "Debugger::initializeVideo()\n";
|
||||||
|
|
||||||
// Calculate the actual pixels required for entire screen
|
// Calculate the actual pixels required for entire screen
|
||||||
// This is currently a bit of a hack, since it uses pixel
|
// This is currently a bit of a hack, since it uses pixel
|
||||||
// values that it shouldn't know about (font and tab height, etc)
|
// values that it shouldn't know about (font and tab height, etc)
|
||||||
|
@ -114,6 +126,10 @@ void Debugger::initializeVideo()
|
||||||
userHeight = (userHeight + 3) * kDebuggerLineHeight - 8 +
|
userHeight = (userHeight + 3) * kDebuggerLineHeight - 8 +
|
||||||
myConsole->mediaSource().height();
|
myConsole->mediaSource().height();
|
||||||
|
|
||||||
|
cerr << "w = " << kDebuggerWidth << endl
|
||||||
|
<< "h = " << userHeight << endl
|
||||||
|
<< endl;
|
||||||
|
|
||||||
string title = string("Stella ") + STELLA_VERSION + ": Debugger mode";
|
string title = string("Stella ") + STELLA_VERSION + ": Debugger mode";
|
||||||
myOSystem->frameBuffer().initialize(title, kDebuggerWidth, userHeight, false);
|
myOSystem->frameBuffer().initialize(title, kDebuggerWidth, userHeight, false);
|
||||||
}
|
}
|
||||||
|
@ -671,24 +687,28 @@ int Debugger::dpeek(int addr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
bool Debugger::setHeight(int height)
|
int Debugger::setHeight(int height)
|
||||||
{
|
{
|
||||||
// FIXME - this doesn't seem to work ...
|
// FIXME - this doesn't seem to work ...
|
||||||
|
|
||||||
myOSystem->settings().getInt("debugheight");
|
cerr << "debugheight: " <<
|
||||||
|
myOSystem->settings().getInt("debugheight")
|
||||||
if(height == 0)
|
<< endl;
|
||||||
height = kDebuggerLines;
|
|
||||||
|
|
||||||
if(height < kDebuggerLines)
|
if(height < kDebuggerLines)
|
||||||
return false;
|
height = kDebuggerLines;
|
||||||
|
|
||||||
myOSystem->settings().setInt("debugheight", height);
|
myOSystem->settings().setInt("debugheight", height);
|
||||||
|
|
||||||
// Restart the debugger subsystem
|
cerr << "height: " << height << endl;
|
||||||
myOSystem->resetDebugger();
|
|
||||||
|
|
||||||
return true;
|
quit();
|
||||||
|
|
||||||
|
// FIXME - implement ScummVM resize code
|
||||||
|
|
||||||
|
start();
|
||||||
|
|
||||||
|
return height;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -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.48 2005-07-12 02:27:05 urchlay Exp $
|
// $Id: Debugger.hxx,v 1.49 2005-07-14 00:54:28 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef DEBUGGER_HXX
|
#ifndef DEBUGGER_HXX
|
||||||
|
@ -38,7 +38,7 @@ class TIADebug;
|
||||||
enum {
|
enum {
|
||||||
kDebuggerWidth = 639,
|
kDebuggerWidth = 639,
|
||||||
kDebuggerLineHeight = 12, // based on the height of the console font
|
kDebuggerLineHeight = 12, // based on the height of the console font
|
||||||
kDebuggerLines = 15,
|
kDebuggerLines = 20,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Constants for RAM area
|
// Constants for RAM area
|
||||||
|
@ -52,7 +52,7 @@ enum {
|
||||||
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.48 2005-07-12 02:27:05 urchlay Exp $
|
@version $Id: Debugger.hxx,v 1.49 2005-07-14 00:54:28 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class Debugger : public DialogContainer
|
class Debugger : public DialogContainer
|
||||||
{
|
{
|
||||||
|
@ -232,7 +232,7 @@ class Debugger : public DialogContainer
|
||||||
bool writeTrap(int t);
|
bool writeTrap(int t);
|
||||||
void clearAllTraps();
|
void clearAllTraps();
|
||||||
|
|
||||||
bool setHeight(int height);
|
int setHeight(int height);
|
||||||
|
|
||||||
void reloadROM();
|
void reloadROM();
|
||||||
|
|
||||||
|
|
|
@ -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: DebuggerParser.cxx,v 1.52 2005-07-13 02:54:13 urchlay Exp $
|
// $Id: DebuggerParser.cxx,v 1.53 2005-07-14 00:54:28 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include "bspf.hxx"
|
#include "bspf.hxx"
|
||||||
|
@ -145,7 +145,13 @@ Command DebuggerParser::commands[] = {
|
||||||
&DebuggerParser::executeFrame
|
&DebuggerParser::executeFrame
|
||||||
},
|
},
|
||||||
|
|
||||||
// TODO: height command
|
{
|
||||||
|
"height",
|
||||||
|
"Change height of debugger window",
|
||||||
|
true,
|
||||||
|
{ kARG_WORD, kARG_END_ARGS },
|
||||||
|
&DebuggerParser::executeHeight
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"help",
|
"help",
|
||||||
|
@ -1096,6 +1102,12 @@ void DebuggerParser::executeDump() {
|
||||||
commandResult = dump();
|
commandResult = dump();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// "height"
|
||||||
|
void DebuggerParser::executeHeight() {
|
||||||
|
int height = debugger->setHeight(args[0]);
|
||||||
|
commandResult = "height set to " + debugger->valueToString(height, kBASE_10);
|
||||||
|
}
|
||||||
|
|
||||||
// "help"
|
// "help"
|
||||||
void DebuggerParser::executeHelp() {
|
void DebuggerParser::executeHelp() {
|
||||||
static char buf[256];
|
static char buf[256];
|
||||||
|
|
|
@ -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: DebuggerParser.hxx,v 1.28 2005-07-11 18:56:27 urchlay Exp $
|
// $Id: DebuggerParser.hxx,v 1.29 2005-07-14 00:54:28 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef DEBUGGER_PARSER_HXX
|
#ifndef DEBUGGER_PARSER_HXX
|
||||||
|
@ -107,6 +107,7 @@ class DebuggerParser
|
||||||
void executeDisasm();
|
void executeDisasm();
|
||||||
void executeDump();
|
void executeDump();
|
||||||
void executeFrame();
|
void executeFrame();
|
||||||
|
void executeHeight();
|
||||||
void executeHelp();
|
void executeHelp();
|
||||||
void executeListbreaks();
|
void executeListbreaks();
|
||||||
void executeListtraps();
|
void executeListtraps();
|
||||||
|
|
|
@ -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: OSystem.cxx,v 1.27 2005-06-23 14:33:11 stephena Exp $
|
// $Id: OSystem.cxx,v 1.28 2005-07-14 00:54:28 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
@ -344,16 +344,6 @@ void OSystem::createLauncher()
|
||||||
mySound->mute(true);
|
mySound->mute(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
void OSystem::resetDebugger()
|
|
||||||
{
|
|
||||||
// FIXME - this isn't working yet
|
|
||||||
myDebugger->quit();
|
|
||||||
myDebugger->setConsole(myConsole);
|
|
||||||
myDebugger->initialize();
|
|
||||||
myDebugger->start();
|
|
||||||
}
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
bool OSystem::openROM(const string& rom, uInt8** image, int* size)
|
bool OSystem::openROM(const string& rom, uInt8** image, int* size)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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: OSystem.hxx,v 1.24 2005-07-07 02:30:48 urchlay Exp $
|
// $Id: OSystem.hxx,v 1.25 2005-07-14 00:54:28 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef OSYSTEM_HXX
|
#ifndef OSYSTEM_HXX
|
||||||
|
@ -44,7 +44,7 @@ class Debugger;
|
||||||
other objects belong.
|
other objects belong.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: OSystem.hxx,v 1.24 2005-07-07 02:30:48 urchlay Exp $
|
@version $Id: OSystem.hxx,v 1.25 2005-07-14 00:54:28 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class OSystem
|
class OSystem
|
||||||
{
|
{
|
||||||
|
@ -265,11 +265,6 @@ class OSystem
|
||||||
*/
|
*/
|
||||||
void createLauncher();
|
void createLauncher();
|
||||||
|
|
||||||
/**
|
|
||||||
Restarts the debugger subsystem.
|
|
||||||
*/
|
|
||||||
void resetDebugger();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The features which are conditionally compiled into Stella.
|
The features which are conditionally compiled into Stella.
|
||||||
|
|
||||||
|
|
|
@ -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: Settings.cxx,v 1.53 2005-06-28 23:18:16 stephena Exp $
|
// $Id: Settings.cxx,v 1.54 2005-07-14 00:54:28 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
@ -50,7 +50,7 @@ Settings::Settings(OSystem* osystem)
|
||||||
set("grabmouse", "false");
|
set("grabmouse", "false");
|
||||||
set("center", "true");
|
set("center", "true");
|
||||||
set("palette", "standard");
|
set("palette", "standard");
|
||||||
set("debugheight", "15");
|
set("debugheight", "0");
|
||||||
|
|
||||||
set("sound", "true");
|
set("sound", "true");
|
||||||
set("fragsize", "512");
|
set("fragsize", "512");
|
||||||
|
|
Loading…
Reference in New Issue