The home of BBC BASIC



Click on picture for full-size version:

Running on Windows
BBCSDL running on Windows

Running on Linux
BBCSDL running on Linux (Ubuntu)

Running on Mac OS-X
BBCSDL running on Mac OS-X

Running on Raspberry Pi
BBCSDL running on Raspberry Pi

Running on Android
BBCSDL running on Android

Running on Amazon Fire TV Stick
BBCSDL running on Amazon Fire TV

Running on iOS
BBCSDL (64-bit) running on iOS

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, Raspberry Pi (Raspbian), Android and iOS. 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 and iOS editions, for smartphones and tablets, have a simplified interface optimised for touchscreen control. It too provides a BASIC program editor with syntax colouring, live indentation, search & replace and other features. See here for more details.

The Android edition will also run on the Amazon Fire TV or Fire TV Stick. Several of the supplied example programs can be operated using the navigation wheel and buttons on the remote control, including most of the games. Any sounds or music created by a BASIC program will be played through the speaker(s) of the attached TV.

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.

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 Raspberry Pi edition has an ARM assembler.

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 command 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. Details of the differences between BB4W and BBCSDL may be found here.

BBC BASIC for SDL 2.0 is entirely free and may be downloaded for the supported platforms as follows :

Windows edition (Vista or later) (14.2 Mbytes)
Mac OS-X edition (10.6 or later) (16.0 Mbytes)
Linux edition (32-bit, x86 CPU) (13.3 Mbytes)
Linux edition (64-bit, x86 CPU) (13.3 Mbytes)
Raspberry Pi edition (Raspbian) (13.2 Mbytes)
Android edition (4.2.1 or later) (14.7 Mbytes)
64-bit iOS edition (see below**) (21.2 Mbytes)

The Mac OS-X, Android and iOS editions are self-installing. The Linux and Raspberry Pi editions must first be unzipped, and then installed according to the instructions in the supplied text file. The Windows edition simply needs to be unzipped to a suitable place.

* The iOS edition is an exception. Because iOS does not permit 'arbitrary code execution' the assembler, the CALL statement and the USR function are not usable. This is a restriction imposed by Apple and is unavoidable.

** The iOS edition requires a device capable of running iOS 11, i.e. an iPod 6th generation, iPhone 5S, iPad Air, iPad Mini 2 or later. Apple's 'ad hoc' distribution mechanism is used so you must supply the UDID of your device(s) as follows:

  1. Connect your device to a PC or Mac running iTunes™, as you would to sync music or photos.
  2. When the device has been recognised by iTunes, click on the corresponding icon that appears.
  3. The Serial Number will be displayed (this is not the UDID); click on it to reveal the UDID.
  4. Right click on the UDID (on a PC, or the equivalent on a Mac) and copy it to the clipboard.
  5. Paste the UDID into an email and send it.

VersionDateModification details
1.01a23-Feb-2019 VDU 23,23 works with circles/ellipses/arcs; RECTANGLE SWAP added; SDLIDE improvements; disco, slitscan, surks & swirl examples.
1.00a01-Feb-2019 SDLIDE loads Acorn-format files, Cross Reference utility, ARM align directive, ellipse & treeview libraries, seascape & ellipses examples.
0.29a10-Jan-2019 MacOS edition now 64-bits, BBCEdit IDE 64-bit compatible, support for playing MP3 files added, updated character sets.
0.28a14-Dec-2018 Dark Mode for SDLIDE, 64-bit Linux edition fully functional, updated libraries, new seasonal example program
0.27a01-Dec-2018 IDE improvements, bugs fixed, 64-bit x86 assembler, updated libraries, new example programs and
0.26a03-Nov-2018 REM!Icon recognised, @cmd$ implemented, ARM assembler bug fixed, new example programs and
0.25a20-Oct-2018 Create application enabled, VDU 14 fix, dlglib, gleslib & nowait library updates, new example.
0.24a17-Sep-2018 UTF-8 support added to INPUT and INPUT LINE, new utf8lib library, socklib now supports UDP, new and examples.
0.23c23-Aug-2018 (in the graphics directory) and (in the sound directory) added.
0.23b12-Aug-2018, and updated. Experimental 64-bit Linux edition.
0.23a06-Aug-2018 Support for reading JPG, PNG and GIF images added. Jigsaw Puzzle example game.

cover photo

Home - Products - Contact us

Best viewed with Any Browser Valid HTML 4.0!
© Richard Russell 2019