BBC BASIC for SDL 2.0
A downloadable tool for Windows, macOS, Linux, and Android
BBC BASIC for SDL 2.0 is a modern, extended, implementation of the programming language specified and adopted by the BBC for its Computer Literacy Project of the early 1980s. It is Open Source and entirely free; more information can be found at its home page.
Features:
- Runs on Windows, MacOS, Linux (including Raspberry Pi), Android, iOS and web.
- Supports 2D, 3D and anti-aliased graphics, as well as shader programming.
- Integrated Box2D physics engine.
- Approximately 150 example programs included.
- Highly compatible with the original BBC Micro, including MODE 7, SOUND and ENVELOPE.
Download
Install instructions
The Windows, MacOS and Android editions are self-installing. The Linux edition (64-bits) should be extracted to an empty folder; the SDL2, SDL2_ttf and SDL2_net libraries must also be fetched from your distro's repository, if not already installed.
Development log
- Version 1.40a releasedJul 03, 2024
- Version 1.39a releasedFeb 27, 2024
- Version 1.37a releasedSep 01, 2023
Comments
Log in with itch.io to leave a comment.
Love this BASIC!!!
It's me again! Shameless plug: I wrote a review of BBC Basic on my site. Hope it's not too harsh.
I don't think it's unduly harsh. BBC BASIC is (nearly) 42 years old and most of the features you complain about have been there from the start.
Some can be justified (Cartesian Coordinates are used in PostScript, OpenGL etc. and are the standard way to represent 2-dimensional data in science and engineering); others less so (resolution-independent coordinates are great, but they should have been something like 16-units per pixel, not two).
Having to remain compatible with a language designed in the 1980s is both a blessing and a curse. The blessing is that it ensures stability, and removes the temptation to 'tinker' with the language. The curse is that (the few) things that, with hindsight, were poorly designed constantly rankle.
By the way, there is a 'proper' ELSEIF syntax, but it's been shoehorned into the language and as such is not particularly pleasant. I'd recommend using a CASE statement in preference:
Seeing this here is awesome, even for someone who didn't grow up with this particular Basic. Good work with the IDE, too. It's surprisingly nice for something written entirely in BBC Basic. And the bundling tool is welcome.
Just one question: how can I side-load my own programs into the Android edition? It seems to keep the examples into a virtual filesystem rather than internal storage, and doesn't register itself to open .bbc files either.
> how can I side-load my own programs into the Android edition?
If you are simply wanting to run your own BASIC programs in the Android edition of BBCSDL, that's most straightforwardly achieved by connecting your mobile device to a host PC using a USB lead, and mounting the Android file system as a remote drive. The directory which appears as @usr$ in BBC BASIC corresponds to the path Android/data/com.rtrussell.bbcbasic/files/ as seen from the host.
You can even run BBC BASIC for SDL 2.0 on the host and directly edit your BASIC program(s) directly within the remote drive, then you simply have to run them from the Android edition; this is easier than using the limited editing capabilities of the 'touch IDE'. It is probable that if your program crashes out you will need to force-close and re-launch BBC BASIC on the device.
If you want to go the whole-hog and create an APK from your program so that you can side-load it without needing to use BBCSDL at all, use the BBC2APK utility. This is Windows-only so that may be an issue for you if you're using a different OS (it uses the Apktool utility for the heavy-lifting so may in principle be portable to other platforms but it's not something I have attempted).
Thank you very much! Oddly enough I had already found the directory, and figured out that only .bbc files work, but for some reason it took another try to get it right. I use Linux, so making programs on the desktop and opening them in the Android edition will have to do. As long as it works, that's good enough for me.
Excellent software!