Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

The debugger window

Press Cmd+B on macOS or Alt+B on Linux/Windows (or select Debugger from the status bar menu) to pause emulation and open the debugger tool window. Closing the window restores the previous execution state.

The debugger, Frame Analyzer, and Console operate in separate host windows, allowing them to remain open simultaneously while inspecting CPU, custom chipset, and bus activity. Emulation and register queries are non-intrusive and do not alter hardware state.

The debugger window on the CPU tab

Debugger window: register file, live disassembly, and transport controls.

Tabs

CPU

Displays the 68000 register file (D0-D7, A0-A7), status register (SR with decoded flags), program counter (PC), and live disassembly centered on the current instruction. Enter a hexadecimal address in the address input box to inspect code elsewhere in memory; clear the box to return to the active PC.

Chipset

Decodes custom chipset registers in real time: raster beam position, frame counter, DMACON, INTENA, INTREQ, Copper pointers (COP1LC, COP2LC, COPPC), display window controls (BPLCONx, DIWSTRT, DIWSTOP, DDFSTRT, DDFSTOP), bitplane and sprite pointers, and color palette entries.

Copper

Dedicated Copper list inspector and disassembler. Shows COP1LC, COP2LC, active Copper PC, and execution state (running, waiting, or halted).

Video

Displays the active display pipeline configuration and provides bitplane and sprite layer isolation toggles:

Audio

Decodes Paula audio channels (0-3) and expansion sound devices (CD-DA, MT-32, Coppersynth, Toccata, MHI). Displays channel DMA state machine status, period, volume, active buffer pointers, and real-time audio waveform scopes. Channels can be muted individually.

Memory

Hexadecimal and ASCII memory dump viewer (256 bytes per page).

IO Map

Interactive memory map of custom chipset registers ($DFF000 - $DFF1FE). Selecting a register decodes its individual bitfields (e.g. DMACON, INTENA, BPLCON0, ADKCON).

Break

Manages active breakpoints, memory watchpoints, and custom register write traps.

The Break tab

Active PC breakpoints, memory watchpoints, and custom register traps.

Wave

Interface for arming and configuring VCD logic analyzer waveform exports (see Waveform export (VCD logic analyzer)).

Breakpoints, watchpoints, and traps

From the Break tab, enter a target address or identifier:

Conditional and counted breakpoints

The breakpoint address field accepts conditional expressions and ignore counts:

ADDR [LHS OP RHS] [IGN N]

Examples:

Transport controls

ButtonKeyAction
Run / PauseRResume or pause emulation
StepSSingle-step one instruction
Step OverOStep over subroutine call (BSR/JSR/TRAP)
Step OutURun until current subroutine returns
FrameFAdvance emulation by one video frame
LineLAdvance emulation to start of next scanline
< Frame--Step backward one video frame
< Step--Step backward one instruction (see Reverse debugging)
< Run--Run backward to preceding breakpoint

Frame Analyzer

Open the Frame Analyzer via the status bar menu to inspect chip-bus slot allocations and memory access patterns.

The Frame Analyzer

Frame Analyzer: chip-bus owner heatmap overlaid on rendered frame.

Beam tab

Displays a 2D heatmap indexed by raster beam coordinates (X = colour clock HPOS, Y = scanline VPOS). Each cell indicates which subsystem owned the chip bus during that colour clock cycle (CPU, Copper, Blitter, Bitplane, Sprite, Audio, Disk, Refresh, Idle).

Memory heatmap tab

The Frame Analyzer Memory tab

Frame Analyzer Memory tab displaying address space activity.

The Memory tab displays a 256x256 grid representing memory activity across configured RAM banks (Chip, Slow, Fast, Motherboard, Zorro II/III). Cells reflect recent read/write activity by subsystem and fade over 32 frames.