A BBC Micro program could name a job, give it parameters and then drop into assembly language when necessary. BBC BASIC, written by Sophie Wilson, put those choices into the computer’s built-in programming environment. A programmer did not have to abandon BASIC to start using the processor directly.
John Coll’s User Guide, edited by David Allen and revised by Acorn, teaches that combination through the language reference and a substantial assembly-language section. The language remains interactive: a command can run immediately, while numbered lines build a stored program.
Give a routine a name
PROC calls a named procedure; DEF PROC begins its definition. Parameters pass values into the routine, and LOCAL gives it temporary variables without making every working value shared across the program. Functions defined with DEF FN return results. The guide’s recursive Tower of Hanoi example shows procedures calling themselves with a smaller problem.
That organisation makes a difference as a program grows. A call can express the job being done, while its details live in one definition. Line numbers still exist, but they need not carry the whole burden of explaining control flow. REPEAT and UNTIL also express a loop around its stopping condition. (User Guide, keyword reference.)
BASIC can help assemble the code
The inline assembler accepts processor instructions within the BASIC environment. BASIC expressions can calculate addresses and values used by the assembly. The resulting machine code still needs a suitable memory area and a calling convention: the assembler has not made memory ownership or registers disappear.
This is the connection explored in BASIC to machine code. A program can keep its input, setup or less demanding logic in BASIC and call a focused routine for work where processor instructions help. Whether that improves a particular game depends on the routine and the work around it.
A language with several implementations
The Electron and Archimedes carried BBC BASIC forward, but their hardware and interpreter versions differ. An assembler targeting the BBC’s 6502 cannot produce an Archimedes ARM routine from the same instruction mnemonics. Graphics modes, OS calls and extensions also need the actual machine’s documentation.
The lasting convenience is the relationship between levels: named routines for the program’s structure, direct commands for exploration, and an assembler available when a programmer needs to inspect the work beneath them.
Sources
- John Coll, edited by David Allen, BBC Microcomputer System User Guide, Acorn part 0433 000, Issue 1, October 1984: language reference and assembly language. Original guide.
- Sophie Wilson, oral history interviewed by Douglas Fairbairn, Computer History Museum, 31 January 2012: retrospective authorship and development account. Interview transcript.