From 7eece4e994ab21c5add53d443d99933e5eeebe07 Mon Sep 17 00:00:00 2001
From: thrust26
Date: Tue, 13 Oct 2020 15:11:35 +0200
Subject: [PATCH] fully resolved #165 (added timer read cycles count) refined
TiaInfoWidget again added doc
---
docs/debugger.html | 18 ++++--
docs/graphics/debugger_cpuregs.png | Bin 1795 -> 1548 bytes
docs/graphics/debugger_main.png | Bin 63710 -> 78817 bytes
docs/graphics/debugger_ram.png | Bin 5185 -> 3163 bytes
docs/graphics/debugger_tiainfo.png | Bin 1323 -> 1394 bytes
docs/graphics/resources/debugger_main.pdn | Bin 205235 -> 274816 bytes
src/debugger/Debugger.cxx | 3 +-
src/debugger/Debugger.hxx | 2 +-
src/debugger/RiotDebug.cxx | 10 +++
src/debugger/RiotDebug.hxx | 3 +
src/debugger/gui/DebuggerDialog.cxx | 19 +++---
src/debugger/gui/TiaInfoWidget.cxx | 72 ++++++++++++++--------
src/debugger/gui/TiaInfoWidget.hxx | 1 +
src/emucore/M6532.cxx | 10 +++
src/emucore/M6532.hxx | 7 +++
src/emucore/tia/TIA.cxx | 16 ++++-
src/emucore/tia/TIA.hxx | 6 +-
src/yacc/YaccParser.cxx | 2 +
18 files changed, 125 insertions(+), 44 deletions(-)
diff --git a/docs/debugger.html b/docs/debugger.html
index 9ce69b949..4c0360a95 100644
--- a/docs/debugger.html
+++ b/docs/debugger.html
@@ -753,6 +753,8 @@ that holds 'number of scanlines' on an actual console).
_cycleslo | Lower 32 bits of number of cycles since emulation started |
_fcount | Number of frames since emulation started |
_fcycles | Number of cycles since frame started |
+ _ftimreadcycles | Number of cycles used by timer reads since frame started |
+ _fwsynccycles | Number of cycles skipped by WSYNC since frame started |
_icycles | Number of cycles of last instruction |
_scan | Current scanline count |
_scanend | Scanline count at end of last frame |
@@ -1137,12 +1139,16 @@ as illustrated:
The indicators are as follows (note that all these are read-only):
-- Frame Count: The number of frames since this ROM was loaded or reset.
- Frame Cycle: The number of CPU cycles that have been executed this frame since
VSYNC was cleared at scanline 0.
+- WSync Cycl.: The number of CPU cycles that have been skipped by WSYNC this frame since
+VSYNC was cleared at scanline 0.
+- Timer Cycl.: The number of CPU cycles (approximately) that have been used by timer read loops since
+VSYNC was cleared at scanline 0.
- Total: The total number of CPU cycles since this ROM was loaded or reset.
- Delta: The number of CPU cycles that have been executed since the last debugger
interrupt.
+- Frame Cnt.: The number of frames since this ROM was loaded or reset.
- Scanline: The scanline that's currently being drawn, and the count from the
previous frame. Scanline 0 is the one on which VSYNC is cleared (after being set for
3 scanlines, as per the Stella Programmer's Guide).
@@ -1275,10 +1281,9 @@ are lost (they will NOT end up in the Carry flag).
This is a spreadsheet-like GUI for inspecting and changing the contents
of the 2600's zero-page RAM.
You can navigate with either the mouse or the keyboard arrow keys.
-To change a RAM location, either double-click on it or press Enter while
-it's highlighted. Enter the new value (hex only for now, sorry), then
-press Enter to make the change. If you change your mind, press Escape
-and the original value will be restored. The currently selected RAM cell
+To change a RAM location, either double-click on it or press 'Enter' while
+it's highlighted. Enter the new value (hex, other formats using the bottom textboxes), then
+press 'Enter' to make the change. The currently selected RAM cell
can also be changed by using the
Data Operations Buttons or the associated
shortcut keys.
@@ -1289,7 +1294,8 @@ more comprehensive. It will undo all operations on all cells
since you first made a change.
The UI objects at the bottom refer to the currently selected RAM cell.
The 'Label' textbox shows the label attached to this RAM location (if any),
-and the other two textboxes show the decimal and binary equivalent value.
+and the other three textboxes show the hex, decimal and binary equivalent value.
+The values can be edited here too.
The remaining buttons to the right are further explained in the next section.
diff --git a/docs/graphics/debugger_cpuregs.png b/docs/graphics/debugger_cpuregs.png
index feb238c1b698502214f98abc61790c71f023076f..4d868df9230cf6fe56ada9c77a3333ef056ab8d5 100644
GIT binary patch
delta 1536
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
Hu0mjf={F~#
diff --git a/docs/graphics/debugger_main.png b/docs/graphics/debugger_main.png
index c59f1a345eb08d8f3c1ec6394ba8aac369391964..2064cd85a26a1ed33153a40cdcc8414b19038c2a 100644
GIT binary patch
literal 78817
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