BBC BASIC for SDL 2.0 (BBCSDL) is an advanced cross-platform implementation of BBC BASIC for Windows, Linux (x86 CPU only), Mac OS-X, Android and Raspberry Pi (experimental). It combines the simplicity of BASIC with the sophistication of a structured language, allowing you to write utilities and games, use sound and graphics, and perform calculations.
The Desktop editions (Windows, Linux, Mac OS, Raspberry Pi) include a BASIC program editor with syntax colouring, live indentation, search & replace and many other features. Built-in diagnostic aids such as run-time trace, listing of variables and single-step execution make debugging even the most complex programs straightforward.
The Android edition, for smartphones and tablets, has a simplified interface optimised for touchscreen control. It too provides a BASIC program editor with syntax colouring, live indentation, search & replace and other features. The Raspberry Pi edition may also be used in this mode if it has a touchscreen. See here for more details.
Up to 256 Megabytes of memory is provided for the user's program, data and stack (subject to sufficient RAM being available). Unlike some older versions of BASIC, you won't suffer the frustration of running out of memory! Line numbers are optional.
BBC BASIC for SDL 2.0 incorporates an assembler which generates 32-bit code and accepts all 80486 instructions and some Pentium-specific instructions (except special-register and privileged instructions), including floating-point and Multi Media Extensions. You can access Application Program Interface (API) functions from BASIC and from assembler code, allowing an experienced programmer to produce sophisticated applications.
In the case of the Android edition the assembler included depends on the CPU in your device. If it is an Intel device the assembler is for the x86 CPU as described above; if it is an ARM-based device the assembler generates 32-bit ARM instructions. The experimental Raspberry Pi edition has an ARM assembler.
BBC BASIC for SDL 2.0 is largely compatible with BBC BASIC for Windows; it shares with that dialect many new and advanced features including data structures, PRIVATE variables, an EXIT statment, long strings, event interrupts, an address-of operator, byte variables, a line continuation character, indirect procedure and function calls and improved numeric accuracy. It also retains a high degree of compatibility with the BBC Microcomputer, including emulation of the SOUND and ENVELOPE statements, and the MODE 7 (teletext) screen mode.
BBC BASIC for Windows programs that call Operating Systems API functions, or that rely on libraries that do not have a direct equivalent in both dialects, will need to be adapted in order to be compatible with BBCSDL. Also, programs that use the *FONT comand will require a small alteration. But otherwise programs can be expected to run with little or no modification. Of course, programs that incorporate assembly language code will not run on an ARM-based Android device or Raspberry Pi without significant changes.
BBC BASIC for SDL 2.0 is entirely free and may be downloaded for the supported platforms as follows (please note that BBC BASIC for SDL 2.0 is currently under development and these versions are made available for download and use at your own risk):
|Windows edition (6.9 Mbytes)|
|Linux (x86) edition (6.1 Mbytes)|
|Mac OS-X edition (8.7 Mbytes)|
|Android edition (6.7 Mbytes)|
|Raspberry Pi edition (6.1 Mbytes)|
BBC BASIC support forum
BBC BASIC discussion group
BBC BASIC for Windows Wiki