I no longer use RISC OS. If you'd like to maintain any of the programs or ports on this page, please contact me.

The RISC OS programs are split into those I've written and those I've ported. The programs should work on any version of RISC OS 3, but most are unlikely to work on RISC OS 4 or above, or RISC OS 2.

For Acorn users without a suitable unpacking program, SparkPlug is available as a self-extracting archive; once you have downloaded the file, set its type to BASIC and double-click on it to create the !SparkPlug application. Programs marked (SBL) need SharedBLib to run; the (SBL) mark is a link to the installer.

N.B. If you are using RISC OS 3.6 or earlier, you need to run the CallASWI module in your boot sequence to use some of these programs, marked (CallASWI). Since the module is tiny (468 bytes) and is increasingly used by new software, it does no harm to have it. It is included with all the programs that need it.

My programs

MailCheck 1.15 (SBL)

MailCheck checks for mail on remote systems. It can also finger and even start a login for you automatically if you have mail.

  • Binary: Zip 12.4kb
  • Source: Zip 5.42kb

MailCheck requires a resolver module compatible with ANT's Resolver as supplied with newer RISC OS machines, recent versions of !Boot, Acorn Browse, and ANT's Internet Suite. (Unfortunately I'm not allowed to redistribute it myself.)

ChoirLabels 1.11 (SBL)

ChoirLabels prints labels for a choir's music copies, automatically putting a different part or number on each label. It requires a printer that supports HP PCL; most modern printers do.

  • Binary: Zip 7.36kb
  • Source: Zip 5.48kb

lpd 1.10

lpd is a minimal line printer daemon, and allows an Acorn to be a printer server for UNIX machines on the same network (there is also a RISC OS lpr client). lpd aims to be small and robust rather than highly featured: it only prints raw printer data, only queues one file at a time for printing, and doesn't support banner pages or email notification of completed print jobs. (However, lpd is derived from Justin Fletcher's LPRd, which does have such features.)

  • Binary: Zip 8.07kb
  • Source: Zip 6.86kb

SharedBLib 1.00

SharedBLib is a set of BASIC libraries, that help with the development of programs in many areas: it has a strong set of Wimp libraries, plus others for sockets, file handling, and even assembly code generation. It uses Basil to provide a shared library, for the same memory and disk-space saving advantages as the Shared C Library.

A SharedBLib installer is provided for users of applications built with it. Full documentation is available in StrongHelp format for developers, and those interested in contributing to SharedBLib can also find full source and details of its inner workings in the source archive.

SharedBLib is supplied under the Lesser GNU Public License. Much of its functionality is simply veneers to support modules, which keeps it small and fast.

  • Installer: Zip 81.1kb
  • Sources and developer docs: Zip 115kb

Assorted utilities (SBL) (CallASWI)

makes the caret flash (as supplied with Zap).
icons and aliases for a new filetype which runs BASIC programs in task windows.
converts files between name/ext and ext.name or name.ext. Best used with *Repeat.
renames a file to all lower case; for use on DOS files.
hard-wraps soft-wrapped text files to a given wrap width.
changes all occurrences of CRLF to LF in a file (e.g. to convert an MSDOS text file to a RISC OS one).
finds differences between two binary files.
reports differences between BASIC programs.
counts the number of occurrences of every word or identifier in a file, and sorts them alphabetically or by frequency. The C source, which is not currently buildable on RISC OS, is not included.
concatenates BASIC files together.
converts BASIC files between 6502/ARM format as used on BBCs and RISC OS, and Z80 format as used on Z88s, Amstrad NCs and the Z80 2nd processor.
joins files together (like Unix cat)
  • Source and binary: Zip 75.9kb

pForth (previously known as ‘aForth’)

My portable Forth compiler, RISC OS version. This is for interest only; Forthmacs is much better for practical use. pForth may be of interest to those writing metacompilers, and has some interesting ways of redefining words.

  • Source and binary: https://github.com/rrthomas/pforth


These are ports of various programs. To reduce the size of the archives, the ports are split into source and binary distributions. You only need the source distribution if you want to recompile the program. Most of the source distributions should compile happily on most operating systems.


A character set converter that converts between the DOS (codepage 866), KOI8, ECMA/ISO and Windows cyrillic encodings.

  • Source and binary: Zip 7.06kb

Henry Spencer's regex library alpha3.8.g1

  • Source and binary: Zip 79.9kb

GNU getopt

The GNU getopt library, from GNU libc 2.0.6.

  • Binary: Zip 5.57kb


Three replacement toolsprite sets, essentially 3D versions of the original 2D toolsprites, at three different sizes. This package is © Hugo Mills (see the archive for the licence).

  • Binary: Zip 7.11kb

Last updated 2021/09/23