As I've mentioned elsewhere on the forum where I've found some suitable test harness samples, I've recently started hacking on the source code for Brandy BASIC V by David Daniels. Sadly his Sourceforge repo has not seen any updates since 2015 and submitted patches have gone ignored.
So I've decided to fork it, and created Matrix Brandy BASIC.
Some of the new/missing features added (this list updated since I first started the thread):
* MODE 7
* Networking
* 8-bit and 64-bit integers
* INKEY(-ve) - partial
* Enhanced graphics
* 24-bit colour
* Mouse support
* Sound
* Some new BASIC features inspired by BBCSDL, Basalt and JGHarston's additions
* Host library calls
* ...and of course the obligatory bug fixes (and likely new ones inserted!)
Supported platforms (that I can test on):
Code: Select all
,--------------------------------.
| OS | SDL | Console |
|--------------------------------|
| Linux x86 | X | X |
| Linux x86-64 | X | X |
| Linux ARM-32 | X | X |
| Linux ARM-64 | X | X |
| Minix 3 | - | X |
| Solaris | X | X | (Testing using Solaris 11.4 x86_64 from Oracle's prebuilt VirtualBox VM library)
| Windows x86 | 1 | 1 |
| Windows x86-64 | 1 | 1 |
| MacOS Catalina | 2 | X | (virtualised hackintosh)
| RISC OS 3.5+ | - | 3 |
`--------------------------------'
1) Windows builds known to work on Windows 7 and Windows 10 (tested on Win10 64-bit). Appears to work reasonably well on Windows XP SP3 (32-bit). Known NOT to work on Windows 2000. My builds are built on Windows 7 32-bit and 64-bit. The supplied makefiles use Cygwin as a build environment but uses the MinGW toolset so not reliant on any Cygwin component at runtime.
2) Requires a recent development version of SDL 1.2 (a working snapshot available on the Matrix Brandy website).
3) Provides full access to the native RISC OS VDU driver, including graphics and MODE 7. It runs as a single-tasking application, but can multitask with the help of applications such as !GraphTask. A VFP build is also available for RISC OS on the Raspberry Pi.
Building and running against sdl12-compat (the SDL1.2 compatibility layer on top of SDL2) is tested and works fine, indeed the builds in my Yum/DNF repositories for EL9 and Fedora are all built against this.
Other UNIX-type platforms should also work, OpenBSD 6.7 is reported to work fine.
The console builds are great for using BBC BASIC as a scripting language, indeed you can use the standard Unix #!/path/to/sbrandy as the first line with your program (with or without line numbers) on the lines below it, and make your script executable and run it like any other shell, Perl or Python (etc) script.
My development and target platform is Linux, including the Raspberry Pi, although I am also targeting Windows and more recently MacOS X and RISC OS.
Unlike BBCSDL, Matrix Brandy does not use an IDE, the SDL builds offer a BBC Micro-like screen which is still command-driven, and immediate-mode programming is always available. The two text builds available offer differing text capabilities, "tbrandy" is the more fully-featured version which offers some colour capability via ANSI codes (and optionally, graphics via Tektronix control codes), while "sbrandy" is very minimal and ideal for cron and CGI scripting.
The source code is always available for download from http://brandy.matrixnetwork.co.uk/ and now on Github at https://github.com/soruk42/MatrixBrandy - and patches are most welcome!
Additional discussion that doesn't fit the Stardot theme is welcome over at The Distillery.
Update 21-03-2023: Matrix Brandy VI 1.22.15 has been released. Changelog on the website.