DeZog
DeZog is a VS Code extension for source-level Z80 debugging. Bizmuth serves DeZog’s remote protocol, DZRP, on port 11000, the port CSpect’s DeZog plugin uses, so DeZog connects to Bizmuth as it would to CSpect.
Connection
Start Bizmuth with the DZRP server:
bizmuth --machine next --debug-protocol dzrp --load game.nexIn VS Code, a DeZog launch configuration with the cspect remote type connects to it:
{
"type": "dezog",
"request": "launch",
"name": "Bizmuth",
"remoteType": "cspect",
"sjasmplus": [{ "path": "game.sld" }]
}The port defaults to 11000 and the host to localhost. For Bizmuth on another machine, add "cspect": { "hostname": "192.168.0.42", "port": 11000 }.
--debug-protocol both serves DZRP and ADP together, so a script or a terminal can work on the machine while DeZog is attached. One DeZog connection is served at a time.
Supported features
Registers, memory, stepping, pausing and breakpoints work, and so do DeZog’s views of the sprites, their patterns, palette and clip window, the Next registers, the MMU slots, and I/O ports. A step advances every clock a running frame does, and the screen redraws when a step completes a frame; see ADP.
A DeZog breakpoint with a bank is page-qualified in Bizmuth: it stops only while that page is mapped, as bp add pc PAGE:OFFSET does. See Breakpoints and Conditions.
A DeZog breakpoint condition is read in Bizmuth’s condition language. A condition Bizmuth cannot parse leaves the breakpoint unconditional, and the log says so:
dzrp: breakpoint at $8000 — condition "..." not understood (...); setting it unconditionalThe breakpoint stops every time it is reached rather than being dropped.
Limits
Watchpoints. DeZog does not offer watchpoints on the cspect remote type, so none reach Bizmuth. Use wp add mem over ADP, or a script’s watch_mem and on_mem_write.
State save and load from DeZog are answered with nothing. Use Bizmuth’s own; see Save States.
Control held by another client. While an ADP client holds control, DeZog’s reads are answered and its changes are refused. A refused change reports a stop to DeZog, giving the holder’s name as the reason, and closes the session. See ADP.
0x1DE
FantASM’s VS Code extension, 0x1DE, has a debugger of its own that talks ADP on port 11001 rather than DZRP. Its Run on Bizmuth assembles with an SLD, starts Bizmuth and attaches; start Bizmuth with --debug-protocol adp to attach to one already running. Its setup is in FantASM’s manual, under Debugging a Build.