What's New in Astrobe for RISC5

Version 7.0.2 2006-2019 CFB Software
Last Updated 7 Aug 2019 

E-Mail:   info@cfbsoftware.com
Website:   https://www.astrobe.com

This version is supported on Windows 10. The Installation and Uninstall executables are digitally signed to validate authenticity and integrity.

A summary of new features introduced in Astrobe for RISC5 since version 6.4:

Project Oberon Language and Compiler Compatibility

The Windows Astrobe Oberon for RISC5 compiler has been synchronised with the Project Oberon FPGA RISC5 compiler sources current as at May 2019.

Language Extensions

The following is a summary of features that have been implemented that are not specified in the Language Report. For more information refer to the Oberon Programming Guide on the Astrobe Help menu. Guidelines and examples of recommended Oberon coding techniques are also included. These features are syntax-compatible with Astrobe for Cortex-M3, M4 and M7.

Built-in Functions:

Interrupt Handlers

Leaf Procedures:

RISC5 Processor Implementation

Verilog Sources

The Verilog sources for the supported target devices have been synchronised with the Project Oberon Verilog sources current as at Sep 2018.  

Additional Peripherals

Support for up to 3 x SPI,  an I2C master and 32 GPIO connections.

Instruction Set Extensions

The instruction set used by Astrobe Project Oberon compilers includes an extension of the RISC5 Branch Conditional instruction. This extension was introduced to allow the efficient implementation of the numeric CASE statement which is defined in the Oberon report but has not yet been implemented in the standard distribution of Project Oberon.

The standard Branch Conditional via Register instruction is

BR,cond [Rn]

The new variant of this instruction is

BR,cond PC,[Rn]

i.e. the target of the branch is computed by adding the contents of register n to the current program counter.

As a result, the average overhead of any selection in a CASE statement, including range checking, is now a constant 6 instructions. The average overhead of any selection in an IF THEN ELSE statement is (N + 1) * 2 instructions. Hence, in situations where there is an equal probability of each selection occurring, CASE is faster than IF whenever there are more than 2 choices.

Supported FPGA Development Boards

Embedded Project Oberon has been implemented on a number of inexpensive FPGA development boards using Xilinx Spartan-7 and Artix-7 devices.

Arduino Shield-compatible SPI and I2C pins are supported on the Digilent Arty A7 and Arty S7 development boards.

User-customisable Tools Menu

You can add up to ten new menu commands of your own choice to the Astrobe Tools Menu. These can be used to launch a Windows application, a command-line console application or a DOS command.

You can include the following context-sensitive parameters in the commands:


They are substituted with values corresponding to the file currently showing in the editor.

You can also use the parameter


as the working folder or parameter for the command. The name of the folder where the Astrobe configuration files, library modules and examples are located is substituted when the command is executed. This is the folder which you specified when you installed Astrobe e.g.


You can create new menu items by editing a Tools.ini text file which is located with the configuration files in the Astrobe Configs folder. The ini file supplied with Astrobe includes two commands:

Open Containing Folder ...
Open Examples Folder ...

These commands perform the following functions:

Library Modules

The following library modules are additional to the Project Oberon modules. Refer to the Astrobe source code examples to see how they can be used:


Perform bitwise operations on INTEGERs.


Date and Time to / from string conversion functions.


General Purpose IO pin support.

HCDrive, HCDir & HCFiles

HCFiler was developed for Embedded Project Oberon to be used for applications (e.g. data logging, backups etc.) that might need to create files with a total size exceeding the 64 MB limit of the standard Project Oberon SD card filesystem. The files can subsequently be processed / analysed on a Windows system.


Supports peripheral devices (e.g. a digital compass) which communicate via an I2C bus.


Formatted output 


Supports the Maxim DS3234 Real-Time Clock device. The DS3234 is a battery-backed chip that provides continuous time (hours, minutes and seconds) and date (year, month and day) information accurate to +/- 2 minutes per year via an SPI interface. It is used to automatically timestamp Project Oberon files and can be used with the Astrobe HCFiler filesystem functions to implement accurate datalogging applications.

The RTC device is available as a convenient Deadon RTC breakout board from SparkFun. Alternative RTC devices can be used if required without modifying the Oberon Kernel.


Supports LCD displays, SD cards, 7-segment LEDs, and digital sensors such as accelerometers, magnetometers, etc. which are controlled via the Serial Peripheral Interface (SPI)


Implements time delays measured in milliseconds.

Source Code Examples

Source code examples include: