For VS Code

Press F5

Write 6502 or ARM assembler, or BBC BASIC, in VS Code. Press F5 and it's assembled, put on a disc and run on a BBC Micro or an Archimedes, with breakpoints in your own source.

Both are free (GPLv3). Each talks to its emulator over the Debug Adapter Protocol, and starts it if it isn't running.

MacBeeb debugger

6502 programs and BBC BASIC on MacBeeb's BBC Micro. MacBeeb assembles BeebAsm and Baron itself, so there's nothing else to install.

  • BeebAsm, Baron or ca65/ld65: breakpoints in your assembler source, into macros and included files.
  • BBC BASIC: breakpoints on a program's lines, stepping by statement, PROCs and FNs as the call stack.
  • Step back as well as forward, with conditions, hit counts and log points.
  • Registers, memory, disassembly and watchpoints on any address.
  • Any machine: a Model B, B+ or Master 128, with a second processor if you like.
{
  "type": "macbeeb",
  "request": "launch",
  "name": "Assemble and run",
  "source": "${workspaceFolder}/game.asm"
}

MacArch debugger

ARM assembler and BBC BASIC V on MacArch's Archimedes. MacArch assembles ARM sources itself, in BBC BASIC V's assembler syntax.

  • ARM assembler: F5 in a .s file loads it at its ORG and starts it with *Go.
  • BBC BASIC V: breakpoints on lines, stepping by statement, variables you can set.
  • Step back and reverse-continue, with conditional breakpoints and log points.
  • Registers and flags you can edit, the banked registers, memory and watchpoints.
  • What it prints in the debug console, and assembly errors as file:line.
{
  "type": "macarch",
  "request": "launch",
  "name": "Assemble and run",
  "source": "${workspaceFolder}/game.s",
  "model": "A3000"
}

How it fits together

1. Install

Search for "MacBeeb" or "MacArch" in VS Code's Extensions view, and have the app on your Mac.

2. Press F5

In an assembler or .bas file. No launch configuration needed; add one to choose the machine, a disc or a binary.

3. Debug

The extension talks to the app on localhost (port 6502 for MacBeeb, 3200 for MacArch) and starts it if it isn't running.