diff --git a/src/debugger/gui/CartBUSWidget.cxx b/src/debugger/gui/CartBUSWidget.cxx index 903bd3d42..c9b6eb3f3 100644 --- a/src/debugger/gui/CartBUSWidget.cxx +++ b/src/debugger/gui/CartBUSWidget.cxx @@ -250,6 +250,8 @@ void CartridgeBUSWidget::saveOldState() myOldState.mwavesizes.clear(); myOldState.internalram.clear(); myOldState.samplepointer.clear(); + myOldState.armStats.clear(); + myOldState.armPrevStats.clear(); for(uInt32 i = 0; i < 18; ++i) { @@ -290,6 +292,18 @@ void CartridgeBUSWidget::saveOldState() myOldState.internalram.push_back(myCart.myRAM[i]); myOldState.samplepointer.push_back(myCart.getSample()); + + myOldState.armStats.push_back(myCart.stats().fetches + + myCart.stats().reads + myCart.stats().writes); + myOldState.armStats.push_back(myCart.stats().fetches); + myOldState.armStats.push_back(myCart.stats().reads); + myOldState.armStats.push_back(myCart.stats().writes); + + myOldState.armPrevStats.push_back(myCart.prevStats().fetches + + myCart.prevStats().reads + myCart.prevStats().writes); + myOldState.armPrevStats.push_back(myCart.prevStats().fetches); + myOldState.armPrevStats.push_back(myCart.prevStats().reads); + myOldState.armPrevStats.push_back(myCart.prevStats().writes); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -416,25 +430,37 @@ void CartridgeBUSWidget::loadConfig() mySamplePointer->setCrossed(true); } + bool isChanged; + + isChanged = myCart.prevStats().fetches + myCart.prevStats().reads + myCart.prevStats().writes + != myOldState.armPrevStats[0]; myPrevThumbMemCycles->setText(Common::Base::toString(myCart.prevStats().fetches + myCart.prevStats().reads + myCart.prevStats().writes, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.prevStats().fetches != myOldState.armPrevStats[1]; myPrevThumbFetches->setText(Common::Base::toString(myCart.prevStats().fetches, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.prevStats().reads != myOldState.armPrevStats[2]; myPrevThumbReads->setText(Common::Base::toString(myCart.prevStats().reads, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.prevStats().writes != myOldState.armPrevStats[3]; myPrevThumbWrites->setText(Common::Base::toString(myCart.prevStats().writes, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.stats().fetches + myCart.stats().reads + myCart.stats().writes + != myOldState.armStats[0]; myThumbMemCycles->setText(Common::Base::toString(myCart.stats().fetches + myCart.stats().reads + myCart.stats().writes, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.stats().fetches != myOldState.armStats[1]; myThumbFetches->setText(Common::Base::toString(myCart.stats().fetches, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.stats().reads != myOldState.armStats[2]; myThumbReads->setText(Common::Base::toString(myCart.stats().reads, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.stats().writes != myOldState.armStats[3]; myThumbWrites->setText(Common::Base::toString(myCart.stats().writes, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); CartDebugWidget::loadConfig(); } diff --git a/src/debugger/gui/CartBUSWidget.hxx b/src/debugger/gui/CartBUSWidget.hxx index 72fb6ffd3..493c6488c 100644 --- a/src/debugger/gui/CartBUSWidget.hxx +++ b/src/debugger/gui/CartBUSWidget.hxx @@ -47,6 +47,8 @@ class CartridgeBUSWidget : public CartDebugWidget IntArray mwaves; IntArray mwavesizes; IntArray samplepointer; + uIntArray armStats; + uIntArray armPrevStats; uInt32 random{0}; ByteArray internalram; }; diff --git a/src/debugger/gui/CartCDFWidget.cxx b/src/debugger/gui/CartCDFWidget.cxx index 78748c442..a26923d92 100644 --- a/src/debugger/gui/CartCDFWidget.cxx +++ b/src/debugger/gui/CartCDFWidget.cxx @@ -266,6 +266,8 @@ void CartridgeCDFWidget::saveOldState() myOldState.mwavesizes.clear(); myOldState.internalram.clear(); myOldState.samplepointer.clear(); + myOldState.armStats.clear(); + myOldState.armPrevStats.clear(); for(uInt32 i = 0; i < static_cast((isCDFJ() || isCDFJplus()) ? 35 : 34); ++i) { @@ -297,6 +299,18 @@ void CartridgeCDFWidget::saveOldState() myOldState.internalram.push_back(myCart.myRAM[i]); myOldState.samplepointer.push_back(myCart.getSample()); + + myOldState.armStats.push_back(myCart.stats().fetches + + myCart.stats().reads + myCart.stats().writes); + myOldState.armStats.push_back(myCart.stats().fetches); + myOldState.armStats.push_back(myCart.stats().reads); + myOldState.armStats.push_back(myCart.stats().writes); + + myOldState.armPrevStats.push_back(myCart.prevStats().fetches + + myCart.prevStats().reads + myCart.prevStats().writes); + myOldState.armPrevStats.push_back(myCart.prevStats().fetches); + myOldState.armPrevStats.push_back(myCart.prevStats().reads); + myOldState.armPrevStats.push_back(myCart.prevStats().writes); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -428,25 +442,37 @@ void CartridgeCDFWidget::loadConfig() mySamplePointer->setCrossed(true); } + bool isChanged; + + isChanged = myCart.prevStats().fetches + myCart.prevStats().reads + myCart.prevStats().writes + != myOldState.armPrevStats[0]; myPrevThumbMemCycles->setText(Common::Base::toString(myCart.prevStats().fetches + myCart.prevStats().reads + myCart.prevStats().writes, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.prevStats().fetches != myOldState.armPrevStats[1]; myPrevThumbFetches->setText(Common::Base::toString(myCart.prevStats().fetches, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.prevStats().reads != myOldState.armPrevStats[2]; myPrevThumbReads->setText(Common::Base::toString(myCart.prevStats().reads, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.prevStats().writes != myOldState.armPrevStats[3]; myPrevThumbWrites->setText(Common::Base::toString(myCart.prevStats().writes, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.stats().fetches + myCart.stats().reads + myCart.stats().writes + != myOldState.armStats[0]; myThumbMemCycles->setText(Common::Base::toString(myCart.stats().fetches + myCart.stats().reads + myCart.stats().writes, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.stats().fetches != myOldState.armStats[1]; myThumbFetches->setText(Common::Base::toString(myCart.stats().fetches, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.stats().reads != myOldState.armStats[2]; myThumbReads->setText(Common::Base::toString(myCart.stats().reads, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.stats().writes != myOldState.armStats[3]; myThumbWrites->setText(Common::Base::toString(myCart.stats().writes, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); CartDebugWidget::loadConfig(); } diff --git a/src/debugger/gui/CartCDFWidget.hxx b/src/debugger/gui/CartCDFWidget.hxx index b8269e4bf..34f177bc6 100644 --- a/src/debugger/gui/CartCDFWidget.hxx +++ b/src/debugger/gui/CartCDFWidget.hxx @@ -48,6 +48,8 @@ class CartridgeCDFWidget : public CartDebugWidget IntArray mwaves; IntArray mwavesizes; IntArray samplepointer; + uIntArray armStats; + uIntArray armPrevStats; uInt32 random{0}; ByteArray internalram; }; diff --git a/src/debugger/gui/CartDPCPlusWidget.cxx b/src/debugger/gui/CartDPCPlusWidget.cxx index 4555e001e..71ad351fd 100644 --- a/src/debugger/gui/CartDPCPlusWidget.cxx +++ b/src/debugger/gui/CartDPCPlusWidget.cxx @@ -246,6 +246,8 @@ void CartridgeDPCPlusWidget::saveOldState() myOldState.mfreqs.clear(); myOldState.mwaves.clear(); myOldState.internalram.clear(); + myOldState.armStats.clear(); + myOldState.armPrevStats.clear(); for(uInt32 i = 0; i < 8; ++i) { @@ -269,6 +271,18 @@ void CartridgeDPCPlusWidget::saveOldState() myOldState.internalram.push_back(myCart.myDisplayImage[i]); myOldState.bank = myCart.getBank(); + + myOldState.armStats.push_back(myCart.stats().fetches + + myCart.stats().reads + myCart.stats().writes); + myOldState.armStats.push_back(myCart.stats().fetches); + myOldState.armStats.push_back(myCart.stats().reads); + myOldState.armStats.push_back(myCart.stats().writes); + + myOldState.armPrevStats.push_back(myCart.prevStats().fetches + + myCart.prevStats().reads + myCart.prevStats().writes); + myOldState.armPrevStats.push_back(myCart.prevStats().fetches); + myOldState.armPrevStats.push_back(myCart.prevStats().reads); + myOldState.armPrevStats.push_back(myCart.prevStats().writes); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -359,25 +373,37 @@ void CartridgeDPCPlusWidget::loadConfig() myFastFetch->setState(myCart.myFastFetch); myIMLDA->setState(myCart.myLDAimmediate); + bool isChanged; + + isChanged = myCart.prevStats().fetches + myCart.prevStats().reads + myCart.prevStats().writes + != myOldState.armPrevStats[0]; myPrevThumbMemCycles->setText(Common::Base::toString(myCart.prevStats().fetches + myCart.prevStats().reads + myCart.prevStats().writes, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.prevStats().fetches != myOldState.armPrevStats[1]; myPrevThumbFetches->setText(Common::Base::toString(myCart.prevStats().fetches, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.prevStats().reads != myOldState.armPrevStats[2]; myPrevThumbReads->setText(Common::Base::toString(myCart.prevStats().reads, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.prevStats().writes != myOldState.armPrevStats[3]; myPrevThumbWrites->setText(Common::Base::toString(myCart.prevStats().writes, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.stats().fetches + myCart.stats().reads + myCart.stats().writes + != myOldState.armStats[0]; myThumbMemCycles->setText(Common::Base::toString(myCart.stats().fetches + myCart.stats().reads + myCart.stats().writes, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.stats().fetches != myOldState.armStats[1]; myThumbFetches->setText(Common::Base::toString(myCart.stats().fetches, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.stats().reads != myOldState.armStats[2]; myThumbReads->setText(Common::Base::toString(myCart.stats().reads, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); + isChanged = myCart.stats().writes != myOldState.armStats[3]; myThumbWrites->setText(Common::Base::toString(myCart.stats().writes, - Common::Base::Fmt::_10_6)); + Common::Base::Fmt::_10_6), isChanged); CartDebugWidget::loadConfig(); } diff --git a/src/debugger/gui/CartDPCPlusWidget.hxx b/src/debugger/gui/CartDPCPlusWidget.hxx index 0251e519a..61d8e936d 100644 --- a/src/debugger/gui/CartDPCPlusWidget.hxx +++ b/src/debugger/gui/CartDPCPlusWidget.hxx @@ -46,6 +46,8 @@ class CartridgeDPCPlusWidget : public CartDebugWidget IntArray mcounters; IntArray mfreqs; IntArray mwaves; + uIntArray armStats; + uIntArray armPrevStats; uInt32 random{0}; ByteArray internalram; uInt16 bank{0};