Pyromaniac update (2022)
In November 2021 I gave a presentation to ROUGOL which went into a little bit of detail about what I'd been doing with RISC OS Pyromaniac over the prior year. In 2022, I didn't do a presentation, so I've decided to just write up some small notes on what I have been doing through the year.
What is RISC OS Pyromaniac?
RISC OS Pyromaniac is a new implementation of RISC OS, written from scratch. The implementation is intended to allow easier testing, debugging and experimentation, without having to put up with the problems inherent in RISC OS Classic.
Along the way it has incidentally become able to run enough of RISC OS that full apps like Ovation and Fireworkz work within the desktop. However, the focus of the Operating System is on being flexible and able to provide more feedback and information on what the system is doing, and being able to change that behaviour.
RISC OS Pyromaniac is written in Python, using ARM emulation to execute the ARM code. Unlike RPCEmu and other emulators which emulate the processor and hardware interfaces but run the original operating system, RISC OS Pyromaniac is an operating system itself. There is no 'hardware' emulation present in the sense of memory-mapped devices. The only access to the host system is through the standard RISC OS interfaces.
RISC OS Pyromaniac runs on Windows, Linux and macOS, has a cloud-based version running a service that can run RISC OS code for you at build.riscos.online, and a demonstration shell that you can play with at shell.riscos.online. Much more information can be found on the primary site at pyromaniac.riscos.online.
What can RISC OS Pyromaniac do?
RISC OS Pyromaniac includes many of the modules and functions that you expect from running a RISC OS program. To all intents and purposes, it is RISC OS. However, it's also more than that. As well as being able to run programs as you might expect, it allows much greater debugging of the system whilst it's running, and significantly easier ways of trying out new behaviour. By being written in a high level language, it is significantly easier to understand, and is far simpler to modify than the C or assembler of the original.
As it is intended to allow the development and testing of programs, it is highly configurable - if you want to provoke a particular problem, it can usually be configured to allow that. When something goes wrong, it produces significantly larger amounts of diagnostic information to aid in finding the problem. The main Pyromaniac site describes how the configuration works, and the configuration options, as well as how the diagnostics work when tracing the execution of code.
RISC OS Pyromaniac can be as featureful, or restricted, as you wish it to be - if you need to work within the desktop, you can do that, but if you only need the more fundamental APIs, you can restrict the system to just those. It runs on all major operating systems, is happy to run in Docker, can be accessed over network connections, and can be restricted for cases where you need more security.
- Run BASIC programs.
- Run ARM modules (and Python modules).
- Run command line applications, like build tools.
- Run Desktop applications.
- Display text in your console.
- Display graphics on your host desktop, or over the network through VNC.
- Work with your local hardware, including your disk and network.
- Work with fake hardware, for testing and simplicity.
For more information about the system's capabilities, the features are documented on the main Pyromaniac website.
Where did we leave off in 2021?
At the end of 2021, I demonstrated the desktop working with several applications - from the standard Paint and Draw through to games like The Great Escape and applications like Fireworkz. The system is significantly more functional than I ever expected when I started the project in mid-2019. The bulk of the work in 2021 was related to the graphics system - adding sprite and font support, and improving the mode handling.
The system demonstration is available on the Presentations site if you want to see how the system functions when using the RISC OS desktop.
I had said that I planned to do a few different things, and I have done a few different things. They're just not necessarily the things I planned to do. They were all quite fun and interesting though.
Part 1: Introduction
An introduction to Pyromaniac.
Part 2: Changes by month
Summary of the changes broken down by month.
Part 3: Details (1)
In depth discussion about some quick hacks, Jan Vibe's graphical ditties, Git and others.
Part 4: Details (2)
In depth discussion about the user interface changes and testing.
Part 5: Details (3)
In depth discussion about the hardware interfaces.
Part 6: Conclusion
Some final words about the year.
Appendix: Summary of the changes
A quick summary of the changes in 2022.
Main Pyromaniac Site
Main pyromaniac site with resources, examples and other links.