Added 'scanline' command to parser. Has similar function to 'frame'

command; no argument advances one scanline, else advances given #
of scanlines.

Made some methods in TIA inline.  Don't know if this will have any
effect, but we'll try to be as efficient as possible.

Bumped version for the next pending alpha release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@664 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2005-07-17 00:04:00 +00:00
parent 1861c790a6
commit c592a1e47b
4 changed files with 27 additions and 7 deletions

View File

@ -13,12 +13,12 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: Version.hxx,v 1.4 2005-07-03 01:54:46 stephena Exp $
// $Id: Version.hxx,v 1.5 2005-07-17 00:03:59 stephena Exp $
//============================================================================
#ifndef VERSION_HXX
#define VERSION_HXX
#define STELLA_VERSION "2.0alpha3"
#define STELLA_VERSION "2.0alpha4"
#endif

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: DebuggerParser.cxx,v 1.60 2005-07-16 23:46:36 urchlay Exp $
// $Id: DebuggerParser.cxx,v 1.61 2005-07-17 00:03:59 stephena Exp $
//============================================================================
#include "bspf.hxx"
@ -313,6 +313,14 @@ Command DebuggerParser::commands[] = {
&DebuggerParser::executeSavesym
},
{
"scanline",
"Advance emulation by xx scanlines (default=1)",
false,
{ kARG_WORD, kARG_END_ARGS },
&DebuggerParser::executeScanline
},
{
"step",
"Single step CPU (optionally, with count)",
@ -1316,6 +1324,17 @@ void DebuggerParser::executeSavesym() {
commandResult = red("I/O error");
}
// "scanline"
void DebuggerParser::executeScanline() {
int count = 1;
if(argCount != 0) count = args[0];
debugger->nextScanline(count);
commandResult = "advanced ";
commandResult += debugger->valueToString(count);
commandResult += " scanline";
if(count != 1) commandResult += "s";
}
// "step"
void DebuggerParser::executeStep() {
int cycles = debugger->step();

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: DebuggerParser.hxx,v 1.31 2005-07-14 11:51:03 stephena Exp $
// $Id: DebuggerParser.hxx,v 1.32 2005-07-17 00:04:00 stephena Exp $
//============================================================================
#ifndef DEBUGGER_PARSER_HXX
@ -127,6 +127,7 @@ class DebuggerParser
void executeSaveses();
void executeSavestate();
void executeSavesym();
void executeScanline();
void executeStep();
void executeTia();
void executeTrace();

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: TIA.cxx,v 1.52 2005-07-16 23:04:15 urchlay Exp $
// $Id: TIA.cxx,v 1.53 2005-07-17 00:04:00 stephena Exp $
//============================================================================
#include <cassert>
@ -514,7 +514,7 @@ void TIA::update()
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void TIA::startFrame() {
inline void TIA::startFrame() {
// This stuff should only happen at the beginning of a new frame.
uInt8* tmp = myCurrentFrameBuffer;
myCurrentFrameBuffer = myPreviousFrameBuffer;
@ -561,7 +561,7 @@ void TIA::startFrame() {
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void TIA::endFrame() {
inline void TIA::endFrame() {
// This stuff should only happen at the end of a frame
// Compute the number of scanlines in the frame
myScanlineCountForLastFrame = myCurrentScanline;