Matrix Brandy BASIC VI 1.22.15
Matrix Brandy is a multi-platform BBC BASIC VI interpreter with optional SDL graphics support, released under the GNU General Public Licence version 2+. It is a fork of David Daniels' Brandy BASIC, baselined at version 1.20.1 from his Sourceforge release, which hasn't seen any updates since 2014.
Matrix Brandy is not an emulator of the BBC Micro or Acorn RISC OS computers. That said, certain capabilites are emulated (for example parts of the BBC MOS, graphics, Teletext, and some RISC OS SYS calls). It cannot assemble or execute 6502 or ARM code.
BBC BASIC VI is the 64-bit floating-point version of BASIC that came with the Acorn RISC OS machines (itself a development of the version of BASIC on the venerable BBC Micro), Matrix Brandy aims to be source code compatible with this, including some extensions found in the RISC PC versions and the later RISC OS 5 as made available for several systems including the Raspberry Pi.
- Cross-platform source code
- Red Hat Enterprise Linux (and derivatives) nightly builds for EL7-9, and Fedora 38-39 as a Yum repo, containing the package "brandy".
- Windows 32-bit and 64-bit release builds - experimental
- Windows nightly builds - very experimental automated builds (32-bit and 64-bit), and there is no guarantee these will even run. No build is made if there are no changes since the last build.
- RISC OS available as 26/32-bit neutral (limited to WimpSlot size limits), 32-bit only version (can exceed WimpSlot limit), and VFP ARMv6 (RasPi) - very experimental. The 26/32-bit build is a new experimental version and when tested under emulation works on anything from a 4MB Archimedes and up (RISC OS 3+). Works in ArcEm and on a RasPi, and will integrate with !GraphTask if available. Conversely, the UnixLib build, while larger, is not limited to the ~28MB WimpSlot maximum on RISC OS 3.7, but won't work on anything earlier than a RiscPC. The Archimedes CLib build is available separately as the combined Zip with all 3 builds will not fit on a 720K floppy.
- Viewdata/Videotex client pre-built binaries for Windows (32-bit build) and RISC OS (CLib build) for the Telstar, CCl4 videotex services, and the TEEFAX teletext over IP service.
This was written as a demo of a standalone application written in BBC BASIC, built for Windows and RISC OS with networking and MODE 7. The BASIC code is in
examples/Mode7/telstar in the source distribution. The current client version is 20230124.
- Release archive (source code only)
- The changelog
- Not a download in itself, but we also have a Github repository.
It's worth pointing out the design goals here are also very different from those of Richard Russell's excellent, stable and well-supported BBC BASIC for Windows, where the intention there seems to be able to expose much of the Windows feature set, whereas Matrix Brandy aims to align itself more closely to RISC OS (I regularly use RISC OS 3.71 and ARM BBC BASIC VI V1.80 under RPCEmu as a reference for "correct" behaviour). BB4W (and its sister package BBCSDL) is often described as a "modern" BASIC, to that extent Matrix Brandy is more a "traditional" BASIC.
Platform support status:
- Linux x86-64: Fully supported. My primary development machine is running AlmaLinux 8. It is also in production use on 64-bit CentOS 7 servers.
- Linux x86-32: Fully supported. I regularly test on a CentOS 6 32-bit box, and on Fedora 30.
- Raspberry Pi (Linux) ARM-32bit: Fully supported. Regularly tested, and used for performance testing as it is a slower machine.
- Windows 32-bit: Supported, experimental.
- Windows 64-bit: Supported, experimental.
- RISC OS: Supported, experimental. My test environments are RISC OS 3.71 and 5.29 (emulated StrongARM Risc PC, Raspberry Pi), developing on these and the GCCSDK cross-compile toolchain under Linux.
- MacOS X: Highly experimental. Known to be slow in the display and keyboard department, this is likely due to less than optimal support under SDL 1.2, and requires the latest code in the SDL project's SDL-1.2 branch to work properly, a snapshot is here. The Homebrew package system is highly recommended for tools like git, but don't use their SDL 1.2 build.
- It is also known to work on OpenBSD 6.7, it stands a good chance of building and running on other UNIX-like platforms.
- With the exception of RISC OS, a normal graphics build requires the SDL 1.2 libraries. (The RISC OS build uses the host machine's graphics capabilities directly.)
- The 'tbrandy' text-mode build can optionally generate Tektronix graphics terminal codes, no library is required for this.
Matrix Brandy has gratefully accepted contributions and suggestions from Stardot, the Raspberry Pi forum, Github and direct email from developers.
While the focus is to provide an environment similar to that of BASIC VI running under RISC OS, some extensions from BB4W and Basalt have been included, but where a function behaves differently in different BBC BASIC implementations the functionality of ARM BBC BASIC VI under RISC OS will be the template.
Below are some screenshots of Matrix Brandy running in MODE 7 (Teletext compatible)
Ceefax Engineering Test Page
Chalksoft's 1983 adventure game, Pirate runs quite well.
...as does Yellow River Kingdom, from the BBC Micro welcome disc.
I've now made a Windows build for all that retro goodness!
It's interesting to note that the RISC OS 5 developers are also using this
game to test their Teletext implementation.
A Viewdata client connected to Telstar.
The program can be found in
examples/Mode7/telstar and a standalone Windows client is here - enjoy!
Matrix Brandy on RISC OS
Website and Brandy changes copyright ©2018-2023 Michael McConnell and contributors. Brandy original code copyright ©2000-2014 David Daniels.
UnixLib build neatly sidestepping the ~28MB WimpSlot limit on RISC OS 3.7
KINGDOM game copyright ©1981 Acornsoft.