Raspberry Pi RISC OS System Programming

Posted on February 1, 2015

“Great book. I learned the origins of RISC OS and the general usage of the OS.”

Raspberry Pi RISC OS System Programming shows you how to get the most from RISC OS on the Raspberry Pi. This book takes the lid off the RISC OS operating system and reveals how to really use it. Available in traditional print format or as a two-part eBook.

Aimed at those wishing to learn how to program RISC OS directly but are struggling with the Programmers Reference Manuals (PRMs) or simply don’t know where to start – this book will teach you everything you need to know to get the most from RISC OS and your Raspberry Pi. Providing lucid descriptions, award winning author Bruce Smith keeps things simple and includes plenty of examples you can try for yourself.


Information well presented, I am a fan of Risc OS. Bruce has a very readable style of writing. The information is well presented – Paul Dunnington

Ideas and concepts are introduced in the order required so you should never be left wondering.

Just some of the many features include:

  • Filing systems including SDFS and FAT32FS
  • FileCore and FileSwitch Operation
  • The CLI, *Commands and the SWI interface
  • Communicating with RISC OS
  • Writing and using Modules
  • Vectors, Interrupts and Events
  • The Window Manager (Desktop) and WIMP Utilities
  • The Font Manager
  • The Sound System
  • SoundDMA and SoundControl
  • Floating Point Model
  • Programming the GPIO
  • Book support pages on authors website.
  • The two-part eBook splits the contents into distinctive sections allowing you to learn about specific information from each section. Part 1 covers the Filing System, Command Line and Vectors and Interrupts; Part 2 covers the Sound
  • System, Modules and WIMP and Font Manager. Together they contain the entire contents of the print edition.

Raspberry Pi RISC OS System Programming Revealed is your first step to understanding RISC OS and using the PRMs to full effect. Examples are provided in BBC BASIC and Assembler, all of which can be downloaded from the book support page here.

Raspberry Pi Assembly Language RISC OS: Reviews

Onward with RISC OS. 14 Feb 2014, By I.Furniss Published on Amazon.co,uk [Edited version]

I still have an Archimedes 3000 squirreled away somewhere, but there is only so much space to set computers up and run them.Have a RPi and already this book has helped to solve a problem regarding archived files from my old system.
Money well spent in my view.

Raspberry Pi Assembly Language: Contents List

1: Introduction

The PRMS, What You Will Learn, Assembly Language Beginners, What This Book is Not!, Compatibility, Notation In Use, Companion Website, Acknowledgements

2:  About RISC OS

Operation Process, Routine Library, Extendibility, Well Supported, Programmers Tool Chest, Fitting RISC OS Together, Soft Interactions

3:  Command Line Interpreter

CLI Command Syntax, Star Commands, *Help, *Configure, *Echo, *Error, *Eval, *FX (OSBYTE), *Go, *If, *Key, *Set, *SetEval, *SetMacro, *Show. *Status, *Time, *Unset, *Quit, Aliases, Obey Scripts, Command Sequence. CLIV Vector

4: Software Inrerrupts (P1)

SWI Calls, PRM Example, Inside SWIs, SWI Names, SWI Error Handling, XSWI Error Handling, Error Handling Numbering, Error Generation, OSCLI SWIs, *SWI Command

5: Communications (P1)

Input Selection, Character Input, Line Input, Keyboard Control, Output Stream, Characters Out, Conversion Routines, Numbers To Strings, Strings To Numbers, GS String Operations, MessageTrans

6: Assembler, BASIC and C (P1)

Offset Assembly, OPT Settings, BBC BASIC, The SYS Call, USR Calls,  Calling XSYS, C Code, _Swi, _swix and  _kernel_swi

7: Modules (P2)

Relocatable Modules. ROM Modules, Module Related, Commands, OS_Module

8: Vectors (P1)

Hardware Vectors, SWI Example, Software Vectors, Vector Lists, Joining the Vector List, Writing Vector Routines, Vectored SWI Calls, Vector Related SWIs, Post Vector Calls, Vector Details

9: Interrupts & Events (P1)

Modes of Operation, Register Arrangements, Exception Handling, MRS and MSR, Interrupts When?, Your Interrupt Decisions, Returning from Interrupts, Writing Interrupt Routines, SWI Calls During Interrupts, Enabling and Disabling Interrupts, The Primary Interrupt Vector, Events, Using an Event

10: The Filing System (P1)

Filing Systems, Naming Convention, Directories, Files on Other Filing Systems, Device Filing Systems, Load and Execute Addresses, Date Stamping, Command Files, Executing a Command File, File Types, Libraries and Search Paths

11:  FileSwitch Commands (P1)

Introduction, A- Z of all Commands (*ACCESS to *WIPE)

12: Filing System Control (P1)

Directory Actions, Object Actions, Block Actions

13: OS_File SWIs (P1)

SWI descriptions

14: Open, Close, Read, Write (P1)

File Open and Close, Get and Put With Files, Get Byte From File, Put Byte To File, General Filing System Control, File Actions, Read/Write Open File Information

15: FileCore (P2)

SDFS, RAM FS, ADFS, CDFS, FileCore Commands, Fat32FS, Fat Command Line, A- Z of FAT32FS *Commands, The Filer

16: Window Manager (P2)

An Involved Process, Window Anatomy, The Co-ordinate System, SWI’s – The Stages, Wimp_Initialise, Wimp_CreateWindow, Wimp_GetWindowState, Wimp_OpenWindow, Wimp_DeleteWindow, The Polling Loop, Wimp_Poll, Co- operatively Done, Transient Callback, Reason Codes, Menu Support,  The Structure of Menus, Programming Menus, Desktop Components, A Reminder

17: WIMP Utilities (P2)

Toolbox, AppBasic, Basalt, Dr Wimp, Dr Wimp C, Other Options, MultiTask

18: The Font Manager

Font Manager, Font Management, Display and Performance, An Example, Plot Options, Co-ordinate Conversion, Character and String Sizes,Printing

19: Writing Modules (P2)

Module Code Format, Workspace Memory, Command Decoding, Information Word, Module Errors, OS_Module, Program> KeyUtils, Further Details

20: Sound (P2)

Introduction, Two Bit Systems, Playing Sound, Module Driven, *Configure.

21: Sound Channels (P2)

The Voice Generator, *ChannelVoice, *Sound, *Tuning, *Voices, *Volume, Sound SWIs

22: Shared Control (P2)

SharedSound, SoundScheduler, *Qsound, *Tempo, SoundControl, *Mixvolume, SoundCtrl SWI

23: SoundDMA (P2)

*Audio,  *Stereo, *Speaker, *Soundgain, Sound SWI, Linear Handlers

24: Floating Point Model (P2)

VFP Architecture, The Register File, Context Operations, RISC OS VFP Support, Summing Up

25:  GPIO Action (P2)

The GPIO Controller, Building The Code, Virtual Memory, Using and Updating, Other GPIO Functions, GPIO Module, And Finally…