Skip to content

Acorn Archimedes and Risc PC ​

Acorn's 32-bit machines use ARM (CPU families). The ARM2 and ARM3 run a 26-bit address mode with the flags in R15. Old Archimedes games depend on it. Ghidra's ARM languages start at v4, so this code has no exact built-in match. A game that uses RISC OS can be traced at its SWI calls.

Acorn Archimedes ​

Hardware ​

ModelYearCPUOS
A305, A310, A440July 1987ARM2 at 8 MHzArthur
A30001989RISC OS 2
A50001991ARM3 at 25 or 33 MHz
A3010 range1992ARM250 at 12 MHz

The range ran Arthur, RISC OS 2 and RISC OS 3.

Source: Wikipedia: Acorn Archimedes.

  • The chips are MEMC, VIDC and IOC. The ARM250 merges ARM2, IOC, VIDC and MEMC on one chip.
  • VIDC1 gives eight channels of 8-bit logarithmic stereo sound.
  • ARM2 and ARM3 use the 26-bit address mode with the flags in R15.

How games were made and loaded ​

Games ran under Arthur and RISC OS, which use SWI calls. Disks are 800 KB ADFS. The A5000 was the first model with an HD drive and reads MS-DOS and ST disks.

Media and image formats ​

Archimedes disk image formats still need sources.

Tools ​

  • Ghidra's ARM languages start at v4. ARMv2 and ARMv3 code has no exact built-in match.
  • Unicorn is based on QEMU and likely lacks the 26-bit mode.
  • Archimedes code may need an emulator that knows the 26-bit mode, such as Arculator.
  • RISC OS module loaders for Ghidra and the debuggers of Arculator and RPCEmu still need sources.

Projects to learn from ​

None listed yet.

For an exact reimplementation ​

  • Treat every instruction that reads or writes R15 as touching the flags as well as the PC.
  • Load the code into Ghidra as ARM v4 with care. Mark each place where 26-bit behaviour changes the result.
  • Take ground truth from a 26-bit-aware emulator. Unicorn's ARM models may give wrong results for this code.

Acorn Risc PC ​

Hardware ​

FactValue
YearsLaunched 15 April 1994; to 2003
CPUARM610, ARM710, StrongARM up to 300 MHz
RAMTo 256 MiB
VideoVIDC20
OSRISC OS 3.50–3.71

Source: Wikipedia: Risc PC.

The Risc PC's CPUs added a 32-bit mode.

How games were made and loaded ​

None listed yet.

Media and image formats ​

None listed yet.

Tools ​

Ghidra's ARM languages start at v4. No mapping of the ARM610 and ARM710 to a Ghidra language or a Unicorn model is listed yet. The RPCEmu debugger still needs a source.

Projects to learn from ​

None listed yet.

For an exact reimplementation ​

  • Record whether the code runs in 26-bit or 32-bit mode. Older games run in 26-bit mode.

Code: Apache 2.0. Content: CC0 1.0. No game material: bring your own copy.