All of the software you see before you is designed to run on RISC OS, a little known but much loved British computing platform supported by the following companies:

RISC OS Developments Ltd
Castle Technology Ltd
Advantage Six Ltd

My own software is available through Spellings Computer Services Ltd and you have stumbled upon my webspace.

Latest developments

First screenshot of an emulated RiscPC running RISC OS 4.02 on my IYONIX pc, courtesy of a crude initial port of Tom Walker's RPCemu.

NetSurf logo

I also do some work on an open source web browser called NetSurf. NetSurf is now my primary browser and has now made my Windows box almost completely redundant, such that it very rarely gets switched on. NetSurf can be obtained for your RISC OS machine for free. Whilst it currently still lacks some support for some web standards I find that it renders most of the webpages I access, and is improving all the time. It also has, in my opinion, by far the best user interface - and certainly the most RISC OS-compliant - of any web browser that I've used.

Filtered image scaling

With the intention of improving NetSurf's rendering of resized images, I'm writing some filtered image scaling routines which I hope will be sufficiently useful that they can be used by other applications and perhaps also find a home in Geminus for transparently improving the image quality of a number of existing applications without the need to change them. Read more....


This compressed archive format is becoming increasingly popular on the Internet. There's a quick port of the command line decompression tool 7zdec here.

PicoDrive port

Following Jeffrey Lee's porting of PicoDrive (a Sega MegaDrive emulator) to the RISC OS platform, I did some work to tune and improve the code, implement multitasking, full screen operation, keyboard and joystick input, audio output, ARMv4 support etc etc.... You can find out more on the website.

Debugger project

To learn about my ongoing efforts to bring a reliable, advanced debugger to the RISC OS platform, see here.

VNC server

I keep the latest alpha-quality (at best) release of my VNC server for RISC OS here. It is, as of March 2010, being updated fairly regularly and is just about usable, although you'll have to exercise some patience. It's presently very memory hungry (about 30MB), rather slow, and not yet stable. You have been warned! That said, it's more usable for me than any of the servers I've previously tried on RISC OS.

My commercial software

Below are those programs which I've written and decided are reliable and useful enough to release for others.

Aemulor - 26-bit emulation for 32-bit RISC OS machines
Cino - the first RISC OS DVD player
Geminus - graphics enhancements for the RISC OS desktop

Aemulor website

The 26-bit emulator for IYONIX pc and A9home

Aemulor is the software emulator that allows RISC OS applications which were written for a 26-bit ARM system to be used on the XScale-based Iyonix PC which only has 32-bit addressing modes.

By exploiting some hardware features that are new in the XScale core and not found on any earlier ARM CPU, and by careful coding to avoid unnecessary CPU load, Aemulor achieves roughly 1/3 native performance.

Since most instructions operate identically in 26- and 32-bit addressing modes, Aemulor achieves its performance by quickly ascertaining which of the application's instructions must be emulated, leaving the rest to execute natively on the XScale CPU. A number of clever tricks and some carefully-tuned code, combined with the fact that any work which the application requests of the underlying OS executes natively, allows Aemulor to achieve much greater performance than anybody ever anticipated.

Cino website

Software DVD Player for the IYONIX pc

Cino is an ongoing ambitious project to bring DVD support, including full playback of Video DVDs to the RISC OS platform for the first time ever.

You can find out more about its development progress here but, in summary, the latest code is twice as fast as any other MPEG-2 decoder on the same hardware but still only half the required performance, ie. sustained 12.5fps playback with audio decoding too. This appears to be mostly due to latency on memory accesses that miss the L1 cache (although the CPU isn't ideally suited to decoding video either!) and it is hoped that improvements can be attained through further careful tuning of the memory accesses, and ensuring that data is prefetched and available when needed.

Geminus product

Graphics enhancement software for all RISC OS machines

Geminus brings multi-monitor support, screen rotation (for LCD panels that can be used in portrait modes), graphics acceleration and faster JPEG rendering to the IYONIX pc desktop.

Other features include the ability to transform/rotate JPEGs, which is available for all RISC OS machines, and Red/Blue colour swapping to support other graphics cards and digital outputs such as DVI (not yet supported by the NVidia driver module).

Future features planned for inclusion in Geminus are low-bpp screen modes for legacy software (currently implemented in Aemulor Pro) and possibly support for remote screens so that you can you extend your desktop over screens connected to other computers, rather than purchasing additional hardware.

Geminus was originally available through Spellings Ltd but is now avaiable for free here.

Free Downloads

Volume Control A simple BASIC program that provides a mute button and volume slider for the speaker (left) and headphone outputs (right) because I often change these settings and it's a pain doing it through the Configure system.

Screenshot of volume control

(Application name not registered. Tsk!)

Resourcer A simple C program to copy all the files in one directory to another but renaming the files from 'foo.blah_c', 'foo.blah.c' or 'foo.blah/c' to 'foo.c.blah' which is the RISC OS convention for arranging source directories. I wrote this because I find SparkPlug to be the most effective tool for extracting files from downloaded TAR archives but it unfortunately seems to insist upon producing files called _c and _txt, for example.

Do not expect this program to be a complete solution to the problem of importing archives from foreign systems; no such solution can exist. I hope only that this program saves some time by doing most of the tedious work for you, as it has for me.

Development tools

Prot1K A very simple program that protects the first 1KB of address space from USR mode reads as well as writes. This is sufficient to catch many unintentional memory reads which, whilst often harmless, can cause problems when porting software to/from other platforms and may lead to errors or failure if the program uses that data later in its execution.

RaiseProcVecs A simple module - currently unregistered! - that raises the processor vectors on the IYONIX pc (a hardware feature not present on earlier machines) in an effort to reduce the chance of a program error causing a fatal machine hang by taking out the SWI and/or IRQ handlers.

This code should be regarded as experimental and I don't have it running all the time myself, at the moment. I'd suggest trying it only if you have a reproducible machine hang and need some way to debug it. Source code is included in the archive.

WorkUSR A short BASIC program that alters the protection of five pages of memory in the system workspace (from address 0 to &7FFF). This can be useful for catching software errors, or alternatively for allowing older, buggy/mischievous software to run on later OS versions.


Pulse2 (The Iyonix Killer!) It seems that this small program is particularly good at freezing Iyonixes; what happens is that, if audio is playing in the background, the audio will cease and some time later the CPU itself will freeze, often upon the next disk access.

If you find that this program doesn't cause a freeze on your machine and you have a HiNT bridge chip, or if it does and you have an Intel 21154 bridge, I'd like to know please.

This problem is resolved by the PCI bus modification issued by Castle Technology Ltd

Copyright © Adrian Lees 2003-2010
Email: Email address