All of the software on this site comes in ‘pre-built’ form for those who just wish to be able to run it. In many cases, however, the source code is also provided: making it possible to build (and hence modify) the software for yourself. If you do this, please take care with the software licences – software under a “Freeware” licence may not be distributed in a modified form by third parties (but changes may be sent to me for inclusion in future updates).
If you do make changes or fix bugs, then please consider feeding them back to me regardless of the licence requirements: that way, I can include them in the original versions of the software to help ensure that everyone benefits and multiple branches of the code do not end up in the wild.
A number of different tools or libraries are required to build the software, and details are given on this page. Note that these days, much of my RISC OS software development is done on a Linux platform using the GCCSDK Crosscompiler: for this reason, many of the tools below are supplied in forms suitable for use on both RISC OS and Linux.
A number of common tools are used by both my BASIC and C software for tasks such as building menu structures and creating standardised documentation.
MenuGen is a tool for building RISC OS menus from definitions contained in text files. There are two versions here: one is a native RISC OS command-line utility, while the other is built for use on Linux as part of the GCCSDK.
MenuGen is required to convert the menu definition files found in some of my software source archives into a block of data that the menu routines in SFLib (for applications in C) or WimpLib (for applications in BASIC) can understand. Code using SFLib will generally require the newer output format which includes embedded menu and dialogue box names; code using WimpLib will always use the older format without.
Download: MenuGen r3519 for RISC OS
20 Kbytes | 19th February, 2016 | 26/32-bit neutral, ARMv7 OK
Download: MenuGen r3519 for Linux
26 Kbytes | 19th February, 2016
MenuGen is licensed under the EUPL, and the source is available in a form suitable for compiling on Linux.
Download: MenuGen r3519 Source
78 Kbytes | 19th February, 2016
ManTools are a set of Perl scripts intended for generating StrongHelp, HTML, DDF and plain text help files from a single source file. This makes it possible to derive all the different formats of a manual from one piece of text, simplifying the process of updates.
As Perl scripts, the ManTools should run fine on RISC OS systems with the help of Alex Waugh’s port of Perl 5.
Download: ManTools r3862
33 Kbytes | 8th January, 2017
ManTools are licensed under the EUPL, and the source for the manual is also available (the Perl scripts being plain text anyway).
Download: ManTools r3862 Source
60 Kbytes | 8th January, 2017
TextMerge is a small Perl script called up by some of the build scripts to merge the output from ManTools together with small pieces of “boilerplate” to form the top-level ReadMe files.
As with ManTools, TextMerge should run fine on RISC OS systems with the help of Alex Waugh’s port of Perl 5.
6 Kbytes | 24th September, 2012
TextMerge is licensed under the EUPL, and what source code there is can be found inside the main download.
StrongHelp & BindHelp
To turn the output from ManTools’ StrongHelp script into a complete manual, it is necessary to have a tool to assemble manuals form their composite files. If you are building on RISC OS, then StrongHelp itself provides both drag-and-drop and command-line methods to do this.
When cross-compiling on Linux, the BindHelp utility that comes with OSLib’s build tools can do the job – you will need the version that comes in SVN r407 or later, which includes the -r and -f command-line options. Many of the supplied makefiles and build scripts are set up to use BindHelp.
A number of applications are built using standard Makefiles, which reduce the amount of duplication between different projects. As supplied, they are intended for use with GCC in the GCCSDK Cross-Compiler environment.
Download: Shared Makefiles r3616
12 Kbytes | 28th October, 2016
The Makefiles are licensed under the EUPL.
Most of the newer software on this site is written in C. Although it should be able to be compiled using RISC OS Open’s Desktop Development Environment (Acorn’s old tools), everything has been set up to work with GCC. Some software requires libraries from the DDE: specifically the Flex heap manager.
Although a native version of GCC is available, it has been a long time since I used this to compile any of my code. These days, development is done in a Linux environment using the GCCSDK Cross-Compiler – as such, things like makefiles expect bash commands and ‘foreign’ filenames to be available. Source archives will often contain filenames with RISC OS filetypes denoted using the trailing ‘,xxx’ notation.
C Wimp Library
The C Wimp Library (or “SFLib”) is used by a number of the applications and utilities available on this website. Although they come self-contained and do not require the library in order to be used, it will be required if any use is made of the supplied source code.
The library provides a range of functions to aid the implementation of non-Toolbox, event-driven applications using OSLib – as such, it may be of use to other developers in its own right.
Download: C Wimp Library r4367
770 Kbytes | 28th September, 2017 | 26/32-bit neutral, ARMv7 OK
SFLib is licensed under the EUPL, and the source is available in a form suitable for compiling on Linux with the help of the other tools on this page.
Download: C Wimp Library r4367 Source
355 Kbytes | 28th September, 2017
A version of SFLib is also available in AOF format, for use with the RISC OS Open Desktop Development Environment. This version is built by hand, and may not be as up to date as the ELF builds above. Note that the AOF archive comes with less documentation than is included in the other downloads.
Download: C Wimp Library in AOF Format r4367
69 Kbytes | 28th September, 2017
Older software on the site is written in BBC BASIC – while this can in theory be run ‘straight from the box’, much of the source is now held in ASCII “BasText” format to allow it to be stored and managed under revision control.
A lot of the code will also require linking with my Wimp Library.
While older sources have their !RunImage files linked and compressed using Cy Booker’s BasCompress, anything for which the source is in BasText format will use Tokenize for the linking and conversion into tokenised BASIC.
In addition to the tools in this section, BASIC applications and modules will often make use of the common tools listed above for their manuals and menus.
Tokenize is a cross-platform tool for turning text files containing untokenised BBC BASIC into tokenized ARM BASIC V files. There are two versions here: one is a native RISC OS command-line utility, while the other is built for use on Linux alongside the GCCSDK.
Tokenize is required to convert the ASCII “BasText” source files for some of the BASIC programs on this site into properly tokenized BASIC files.
Download: Tokenize r3237 RISC OS
32 Kbytes | 10th May, 2015 | 26/32-bit neutral, ARMv7 OK
Download: Tokenize r3237 Linux
71 Kbytes | 10th May, 2015
Tokenize is licensed under the EUPL, and the source is available in a form suitable for compiling on Linux.
Download: Tokenize r3237 Source
168 Kbytes | 10th May, 2015
Current versions of Tokenize are also stored in
SVN repository. The content can be
online via WebSVN or checked out anonymously via
svn://svn.riscos.info/tokenize/trunk/. Note that the SVN
revision numbers in the archive names on this page refer to a different
repository, and therefore have no relationship with those in the repository
on RISC OS.info.
The current trunk in the RISC OS.info repository can be built
automatically for Linux using the
native-tokenize package in the
This is the recommended way of getting a version suitable for use on the Linux
BASIC Wimp Library
This simple BASIC Wimp Library (or “WimpLib”) is used by a number of the applications and utilities available on this website. Although they come self-contained and do not require the library in order to be run, it will be required if any use is made of the supplied source code.
Download: BASIC Wimp Library r3158
71 Kbytes | 11th January, 2015 | 26/32-bit neutral, ARMv7 OK
WimpLib is licensed under the EUPL, and the source is available in a form suitable for building on Linux with the help of the other tools on this page.
Download: BASIC Wimp Library r3158 Source
101 Kbytes | 11th January, 2015
ObjAsm, AsAsm & ExtBASICasm
Most of the assembler sources on this site are now supplied in ObjAsm format, and have been configured for use in AsAsm which comes as part of the GCCSDK.
Older sources, for software which has not been updated for building with the GCCSDK, are likely to be supplied in BBC BASIC using extensions provided by Darren Salt’s ExtBASICasm module (or possibly even DoggySoft’s BAX). Currently this only works with a selection of older BASICs (up to RISC OS 4 or so), which makes assembling such code tricky on modern systems (in such cases, look on the test builds page to see if an interim source release has been made available: all of these will be in ObjAsm/AsAsm format).