← Beeb-dev

GUIDE · QUICKSTARTALPHA · USE AT YOUR OWN RISK

Quickstart

From an empty folder to a running BBC Micro disc: install, describe your project, build, run. Fifteen minutes, leaving you the rest of the hour to draw.

1 · Install the extension

The extension arrives with the beta release: install the .vsix via Extensions → … → Install from VSIX…. Check that b-em and beebasm are on your PATH.

2 · Describe the project

Create a folder with a beeb-dev.ini. The file is PlatformIO-style: one section per environment.

[beeb-dev]
src_dir = src
build_dir = build

[env:master]
platform = b-em
model = Master          ; Model B, Master 128, Master Turbo
disc = build/game.ssd
rom_4 = ../egfx/build/EGFX.rom
paste = *DISC\r*RUN GAME\r
speed = 9               ; -sp9, 500%

The Environments view lists every [env:*]; click one to select it. ROM slots and asset banks mount automatically into the generated B-em config, avoiding reserved banks.

3 · Add something to build

Put a main.6502 into src/ - every src/*.6502 is assembled with beebasm unless you declare a build_script:

ORG &1900
    LDX #0
.loop LDA message,X : BEQ done
    JSR &FFEE          ; OSWRCH
    INX : BNE loop
.done RTS
message EQUS "HELLO FROM BEEB-DEV", 0

Or delegate the whole build: build_script = tools/build.sh in the environment, like the Nightfall and EGFX projects do.

4 · Build and run

Press the build button next to your environment in the Environments view, then the run button. Beeb-dev launches B-em with your model, Tube and disc, pastes *DISC / *RUN GAME and applies the speed setting. The default profile for the sample projects selects Master; Master Turbo is opt-in.

5 · Your first frame

With the EGFX ROM mounted at a slot, the fastest path to something moving is the BBC BASIC guide (four steps: first frame, sprites, particles, lines) or the assembly guide if you live closer to the metal. The Breakout tutorial then takes a complete game apart in eight parts, from memory budget to measured frame cost. Draw screens in the Screen Editor and export them as ready-made PROCeg* calls.