My exe is here: https://www.dropbox.com/s/udx9put74kwuf ... m.zip?dl=0
but it was installed with an ancient installer, so I don't know if it will just run!
The Src directory is here: https://www.dropbox.com/s/5zwguz0v80i6z ... c.zip?dl=0
but I haven't tested if it needs anything else.
The project is VS2019 and Platform Toolset: 2013 - Windows XP v120_xp but it should work on other versions.
I've also added a few other bits, some of which have been added to main.
I only use local Perforce for source and asset control and have done ever since we got it for my last work ~20 years ago.
My usual command line would look something like:
Code: Select all
TrickycadeTileGame.ssd -debugger -labels labels.txt -labels rom_labels.txt -debugging debug.dbg
"-debugger" start with the debugger open.
"-labels labels.txt" loads the additional labels from labels.txt and is then used again to load more labels.
"-debugging debug.dbg" loads and saves the breakpoint, data breakpoint and watch window contents for next time.
The addresses should auto update from one run to another, but it may not always get it right.
If your code looks like:
then you can add a breakpoint for .main_loop with: db .main_game.main_loop assuming that is how they were exported from your assembler (I always use beebasm, but seem to remember that you don't). if you enter and address, it may convert it to .label+7 and next time it should look up label and add 7 but it won't know if you have changed the code after .label so it may miss your breakpoint.
There are some additional formats for the Watches window:
t - triple, three byte integer.
W - memory.memory
T - memory.memory.memory
D - memory.memory.memory.memory
I haven't used these since I wrote them, so may not be 100%
In general, I hack something in for a specific problem and then may remove it, leave it to rot or tidy it up a bit as a feature!
PS Live Redraw can take 20 seconds on my PC to render the screen when first turned on and the UI will become unresponsive. After that, every write to what was screen memory last frame is drawn as it happens. If I see something drawing incorrectly, I will often turn this on and then press break when the dodgy bit is being drawn to see which code it is doing the drawing.
The uninitialised feature was for when the PC was going off out of the code.
The data break point is quite good for screen corruption that is too quick to catch with Live Redraw.
Most of these features are available in MAME where they can be scripted and combined, not that I have ever used MAME to debug beeb code but I have sometimes when porting an arcade game.