R2 is a framework for ARM processors that provides an emulation layer suitable for running code written for Acorn's RISC OS. It exposes a workalike RISC OS kernel and core module set which can be used to build a more-or-less-like RISC OS system.

R2 is not an operating system. It is a userland system designed for running on top of an operating system, such as Linux, OKL4 or Prex. It's expecting all hardware and hardware-specific features to be abstracted away by the operating system, and so it should run on any platform that supports running 32-bit ARMv3 code in user mode.

R2 is experimental software. It is neither complete nor useful. It contains just enough functionality to boot and run Basic, and that's it. There's huge great swathes of missing functionality, simplified functionality, faked functionality, and just plain broken functionality. This package is only going to be of any interest to you if you like hacking low-level embedded systems. You have been warned!

To build and use R2, you will need a Unix-oid platform like Linux or BSD and a gcc-based ARM toolchain. Full details are provided in the README. No, it won't build on RISC OS itself, I'm afraid. I developed on Ubuntu Intrepid.

The R2 package contains:

  • the R2 kernel, which provides a basic emulation of the RISC OS kernel
  • a set of RISC OS modules providing extra functionality, including BASIC (supplied in the non-free package)
  • an ARM emulation run-time environment based on Chris Rutter's SLEEVE, allowing you to run an R2 image as an ordinary application, with a integrated debugger
  • a set of C RISC OS bindings, allowing you to write lightweight RISC OS modules in C using an unmodified version of gcc

Note: Due to licensing restrictions, the R2 distribution is divided into a free part and a non-free part. The two parts may not be distributed together, so you will have to download them both and decompress them into the same directory.

The README for 0.1 6 kB

The README from the 0.1 release, which contains more information about how to get R2 running, and some technical information on how it works.

R2 0.1 (free) 116 kB

The free part of R2. This code is licensed under the New BSD license. See inside the archive for the exact text.

R2 0.1 (non-free) 91 kB

The non-free part of R2. This code is licensed under Castle Technology's Shared Source proprietary license.