Merge branch 'develop'
[clinton/Virtual-Jaguar-Rx.git] / src / gui / emustatus.cpp
index 73f5b81..3a3cc12 100644 (file)
@@ -8,6 +8,7 @@
 // Who  When        What
 // ---  ----------  -----------------------------------------------------------
 // JPM  02/02/2017  Created this file
+// JPM   Apr./2021  Display number of M68K cycles used in tracing mode
 //
 
 // STILL TO DO:
 
 
 // 
-EmuStatusWindow::EmuStatusWindow(QWidget * parent/*= 0*/): QWidget(parent, Qt::Dialog),
-       layout(new QVBoxLayout),
-       text(new QLabel),
-       GPURunning(GPUIsRunning())
+EmuStatusWindow::EmuStatusWindow(QWidget * parent/*= 0*/) : QWidget(parent, Qt::Dialog),
+layout(new QVBoxLayout),
+resetcycles(new QPushButton(tr("Reset cycles"))),
+text(new QLabel),
+M68K_totalcycles(0),
+M68K_opcodecycles(0),
+GPURunning(GPUIsRunning())
 {
        setWindowTitle(tr("Emulator status"));
 
@@ -35,6 +39,31 @@ EmuStatusWindow::EmuStatusWindow(QWidget * parent/*= 0*/): QWidget(parent, Qt::D
        setLayout(layout);
 
        layout->addWidget(text);
+       layout->addWidget(resetcycles);
+
+       connect(resetcycles, SIGNAL(clicked()), this, SLOT(ResetCycles()));
+}
+
+
+//
+void EmuStatusWindow::ResetCycles(void)
+{
+       ResetM68KCycles();
+       RefreshContents();
+}
+
+
+//
+void EmuStatusWindow::ResetM68KCycles(void)
+{
+       M68K_totalcycles = M68K_opcodecycles = 0;
+}
+
+
+//
+void EmuStatusWindow::UpdateM68KCycles(size_t cycles)
+{
+       M68K_totalcycles += (M68K_opcodecycles = cycles);
 }
 
 
@@ -56,7 +85,11 @@ void EmuStatusWindow::RefreshContents(void)
                emuStatusDump += QString(string);
                sprintf(string, "        M68K tracing | %s\n", (startM68KTracing ? "On" : "Off"));
                emuStatusDump += QString(string);
-               sprintf(string, "                DRAM | %i KB", (vjs.DRAM_size / 1024));
+               sprintf(string, "                DRAM | %zi KB\n", (vjs.DRAM_size / 1024));
+               emuStatusDump += QString(string);
+               sprintf(string, "        M68K tracing | %zi cycle%s\n", M68K_opcodecycles, (M68K_opcodecycles ? "s" : ""));
+               emuStatusDump += QString(string);
+               sprintf(string, "  M68K tracing total | %zi cycle%s", M68K_totalcycles, (M68K_totalcycles ? "s" : ""));
                emuStatusDump += QString(string);
 
                text->setText(emuStatusDump);