CPU, control and TIA windows changed
loosened window constraints to accomodate larger font sizes
size of streams in CDF window scale nicely with the selected font size
paws icons shown in window for all selected quantums because we may be
at a intermediary color clock regardless of selected quantum. for color
clock "3" however the paws are only shown for quantum Clock
updated QUANTUM and STEP commands to accoodate new quantum
control window changed to support the three quantum options
improved/corrected the conditions under which the ONSTEP command is run
disassembly.ExecutedEntry() updates existing entry
removed unused caching fields. renamed function and interface names
related to breakpoints sharing
debugger quantum value is atomic for safe reading outside emulation
goroutine. moved quantum definitions to govern package
simplification of how debugger interfaces with coprocessor debugger/developer
pressing CTRL+SHIFT allows the user to bring a window to the front by
typing in the window title. as soon as the entered string is unique the
window is selected
a search preview is shown in the menu bar while the CTRL+SHIFT
combination is held down
"Follow CPU" will focus when option is set. disasm will not focus on PC
address on pause if "Follow CPU" is not set.
additional notification in disasm window to indicate when coprocessor is
active
stepping by video does not now check for halting conditions. in some
cases halting on a target is confusing. for example break PC will break
too early if checked every video cycle. we could perhaps reintroduce it
but only when targets are aware of the current state of the machine
(ie. mid-CPU instruction or not)
similarly, halt on video-step will no longer decode the next instruction
at the current PC. the current PC will be in a misleading state between
CPU instruction boundaries
STEP OVER button. not finished yet just a placeholder really
added support for coprocessor menu
reworked window manager/menu system to be more flexible
windows that are cartridge specific now use mapper ID in title. this
means that we can store different window size/position for the cartridge
RAM window, for example, that are approprite for the mapper in question.
menu entries for windows can have diferent labels to the window title.
(this was already a feature but it is now more clear/onvenient. change
prompted by lint error).
removed options related to setting scale of debug/play window
- can be done more effectively window controls
preference initialisation for debug and play modes is more clear
- removed errant playmode setting (terminalOnError - not applicable)
simplified window management
nicer feedback on rewind slider
moved cartridge debugging buses to mapper package
removed banks package and moved/renamed those types to mapper package
renamed IterateBanks() to CopyBanks(). function now returns all banks as
an array.
removed global Passive setting from cartridge. disassembly now only
accesses cartridge memory through a copy of the bank data (CopyBanks())
so it is not needed
added CartHotspots debugging bus. used by symbols package to get
cartridge symbols information. should be useful for disassembly too
renamed hotspot() functions (in cartridge mapper implementations) to
bankswitch() for clarity
sdlimgui disassembly window shows address labels. disassembly iteration
updated to better support that.
SYMBOL command prints all mirrors for cartridge addresses
the note about historical versions also being covered wasn't strictly
needed and was ugly. the LICENCE being in the root file from the very
first commit is sufficient.
disassembly window shows "executing from cartridge RAM" message
better disassembly decoding loop. clarified and corrected commentary in
disassembly package. identified some more critical sections in
disassembly package
this results in a better mnetwork disassembly
origin and memtop for disassembled entries are now definable. added
disassembly.FxxxMirror to preferences. PREF command can now set
FxxxMirror option. Added checkbox to win_prefs
renamed Iterate to IterateBank and added IterateCart
UpdateEntry() ignores any result not in the cartridge ROM space
tidied-up/unified preference files in debugger/disassembly/hiscore
packages
moved sdldebug and sdlplay to deprecated package. partly for neatness
but partly with the intention of removing in a future version
refactor and re-comment of sdlimgui package
sdlimgui tv screen window now properly resizeable
static data window in debugger
reworked menu system to allow cartridge specific window menus
cleaned up how cartridge RAM information is specified and retrieved
renamed cartridge.Format() to ID() and reference to "cartridge format"
to "cartridge mapping". format is an overloaded word already and it was
confusing.
it was far too slow to call every video cycle. the convenience and
clarity does is not enough to discount the performance disadvantage. by
formatting the result in win_cpu we restrict the call to only when we
need it, once every 60 frames
removed analysis code. too many code paths rendered the method
unworkable. for example, eg. JMP (indirect) where indirect address is in
ram.
Clarified how the Bank field in the disassembly.Entry should be used.
win_disasm makes sure that the current PC entry has been blessed. making
sure it will be seen in the disassembly window (also a note in debugger
inputloop about the fact that blessing should really take place there,
except for race condition issues. TODO note added)
added status line and options to win_disasm. status line shows when
execution from VCS RAM is taking place. options for highlighting addresses
common between all banks and non-decoded addresses