ROVLib - Easy applications in C

Important note

ROVLib is exclusively for RISC OS computers, and code linked with it will not work on non RISC OS computers (excluding RISC OS emulators).


ROVLib is released under The Artistic License.

Why the Artistic License rather than (L)GPL or something else?

I've used ROVLib in a number of commercial applications, and I wouldn't expect to force the companies involved to have their source code released. The LGPL is better, but since RISC OS doesn't support dynamic linking natively, it's a little difficult to implement. After reviewing a number of other licenses, I found that the Artistic License seems to be the best for this library.


Currently, all ROVLib components are Copyright © Jason Tribbeck / 7th ARM 1994-2017. This will probably change with new development.


Only the GCCSDK source code is being maintained - although it should probably still compile with Norcroft.

Download via SVN

I have now made the GCCSDK version source available for download from my SVN server.

To make it (a little) less of a target to hack, I've changed the default port for my SVN server so it's running on port 13960 instead of 3960. To access the SVN server, use:

svn co svn://

This will download the latest version. The first proper revision is revision 4. Revisions prior to this were testing, and there were additional files in there which are now unnecessary (unless you want to look at the .git directory I left in there, a couple of zip files containing the source and object files and some of the conversion Perl scripts!)

The tutorials have also been converted to GCCSDK, and can be downloaded via SVN:

svn co svn://

Note that they need an environment variable which will point to the ROVLib installation directory. As a reference, my .bashrc file has this at the bottom:

export ROVLIB_PATH=/home/build/riscos/rovlib


I now have a continuous integration style build for ROVLib (and also the work-in-progress ROVLib2) - this is available from Note that this is a bit rough-and-ready, but you can download the source, built output, and the build logs.

I'll include the tutorials at some point...

API documentation

This is available online.

Build requirements - RISC OS

Using ROVLib

You need a C compiler capable of using ARM AOF format files. For the 32-bit ROVLib, you will need a 32-bit compatible compiler.

Building ROVLib

You need Norcroft (Acorn) Cv5 to build ROVLib, as well as ObjAsm 3. It may work using the gccsdk, but it is not supported as yet. This should happen soon. Note that it has been known to compile with ObjAsm 2, but it was never tested.

Build requirements - Linux

Using ROVLib

You need to install GCCSDK. The compiler needs to be told where the include files are, and the linker needs to know where the library is.

Building ROVLib

You need to install GCCSDK, and have the GCCSDK_INSTALL_CROSSBIN environment variable set. The GNUmakefile will build everything to the current directory.

Note that a local program, fixasm is compiled with the local GCC. This will modify the assembler output files so that the linker thinks they're compiled with the soft-float. No floating point is actually used in the assembler! The upshot is that you need to make sure you have a working GCC compiler as well as GCCSDK.


The non-SVN tutorials have not been modified to compile with GCCSDK - I have used a GNUmakefile like this. You will need to set the ROVPATH variable to where you've installed ROVLib. Note that you will need to change the filenames from c/FileName to FileName.c, and also the third tutorial needs the function name close() renamed. All of this (and more!) has been done in the SVN repository

Note that the binary files are quite a bit bigger than produced with Norcroft. I suspect something related with GCCSDK, such as Unixlib...


I've copied this over from SourceForge to my own server; CVS isn't currently working, but archives are available.

I have successfully created a 32-bit version of ROVLib, linked it with one of my tutorials and executed it on RISC OS 4.02. The C source only needed recompilation (as expected), and the assembler required minor modifications (done with a simple PERL script). Note that the source in rovsrc has not been updated as yet; this is expected to be done shortly.

I have started the tutorials, and uploaded the first five last night. I also fixed some explicit pathnames in the source code, so it should be compilable on machines other than my own!

Peter Naulls has kindly sent me patches to get a large amount of ROVLib compilable with the GCCSDK, and I will be integrating them over the next two days.

I am going on holiday for two weeks from 2002-17-02. I will try to be contactable, but there may be delays.

Well, it's been a long time... I've now got the code compiling with GCCSDK on Linux, and I've built a couple of the tutorials.

In the GCCSDK version, I've now added the necessary code to allow it to be safely included in C++ programs. I also found that I'd missed the #ifdef for template.h, so that's now added.

I've now enabled an SVN server for access to the source. I'll add some other bits later (such as the tutorials).

Contacting me

If you wish to contact me, then you can do so at jason @