Matrix Brandy BASIC VI 1.23.4
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.
Downloads available:
- Cross-platform source code
- Enterprise Linux (RHEL, CentOS, Alma, Rocky etc) release builds for EL7-9, and Fedora 38-41 as a Yum repo, containing the package "brandy".
- Enterprise Linux (RHEL, CentOS, Alma, Rocky etc) nightly builds for EL7-9, and Fedora 38-40 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 a 32-bit (RiscPC and later) version and VFP ARMv6 (RasPi) - experimental. These both allow a workspace greater than the maximum WimpSlot size.
(The CLib build is dropped, there are too many unexplained crashes, which vary depending on the compiler options!)
- 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. As of version 1.23.0, releases are tracked in the master branch, development takes place in dev-main.
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. It is also tested on AlmaLinux 9 and Fedora 38-40.
- 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 with 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.
- As of version 1.23.2, Matrix Brandy now supports a configuration file, at
$HOME/.brandyrc, %APPDATA%\brandyrc or <Brandy$Dir>.brandyrc depending on platform.
- Also, as of version 1.23.2, Matrix Brandy checks to see if any newer release is available, and will flag this if Brandy is started in immediate mode. If the startup delay is too long as a result of this, use the '-nocheck' parameter or 'nocheck' in the configuration file. This might also be disabled by a packager/distributor, but is enabled on the builds on this site.
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
UnixLib build neatly sidestepping the ~28MB WimpSlot limit on RISC OS 3.7
Website and Brandy changes copyright ©2018-2024 Michael McConnell and contributors. Brandy original code copyright ©2000-2014 David Daniels.
KINGDOM game copyright ©1981 Acornsoft.