Skip to content

Dezog debugger #35#37

Open
rslite wants to merge 4 commits intoatomic14:mainfrom
rslite:dezog-debugger
Open

Dezog debugger #35#37
rslite wants to merge 4 commits intoatomic14:mainfrom
rslite:dezog-debugger

Conversation

@rslite
Copy link
Contributor

@rslite rslite commented Nov 8, 2025

Implemented serial protocol for communication with DeZog for 48K. Since serial is used, the regular serial logging is turned off by a setting when going through the new Debugger menu entry.

Breakpoints are implemented which allows step into/over, run to cursor.
Pause is implemented in code, but DeZog doesn't send it to zxnext, so for now it's not possible to pause when running unless the code reaches a breakpoints. I have added a new remote type in DeZog, but the code is not good for a pull request yet. An option would be to use the boot button menu and request a pause from there. This wouldn't require a modification for DeZog.
Watchpoints are not implemented and may be difficult to implement but I haven't looked too much into it.

For a debugging session DeZog should be configured to use the zxnext remote type (see below for an example), the Debugger emulator should be started on the Rainbow, and the session can be started with F5.

"configurations": [
{
    ...
    "remoteType": "zxnext",
    "zxnext":{
        "serial": "...",
        "visualMemory": true,
        "memoryModel": "ZX48K",
        "ulaScreen": "spectrum",
        "zxKeyboard": "spectrum",
    }
    ...
}

rslite added 4 commits October 9, 2025 22:29
Files containing the logging macros and
an option to log to a file (when the
Serial logging code can't be used)
Switch some of the Serial.print logging to the logging macros so
they can be turned off when starting the serial communication for
the debugger
Lots of changes for the DeZog interface:
- global variable to make the emulator ready for DeZog connection
- new screen "Debugger" will start the emulator with the variable set
- serial debugging will be turned off
- PacketHandler changes behavior based on the variable and processes
DeZog commands
- RST 08 is used as interrupt/breakpoint command and stops execution
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant