RISC5 Feature Summary

This list is a summary of the features of Astrobe for RISC5. Further details of the features can be found in the Help file and the document titled "Oberon Programmers Guide - Astrobe for RISC5" which are included in the distribution.

Multi-file Editing
  • Standard Windows, programmer-oriented, text-editing features
  • Fast and responsive interactive operation
  • Tabbed multi-document interface for editing multiple source files (modules)
  • Split-screen editing
  • Regular expression support in Find / Replace
  • Bookmarks
  • Line modification indicators
  • Optional line numbers, printing features etc. etc.
  • The module in the current window is the target of the compiler / linker / builder
Oberon Language-oriented Editing
  • Automatic syntax colouring of language elements as you type
  • Auto-capitalisation of keywords as you type
Code Navigation
  • Alphabetical auto-indexed list of procedures. Click on the name to go to the procedure in the source code.
  • Auto-indexed list of imported modules. Click on the module name to open the file.
Language Features
  • Conforms to the 2016 Standard Oberon Language, including 32-bit IEEE REAL data type and operations
  • Leaf procedures allow local disablement of runtime checks for optimum performance
  • Interrupt procedures
  • Low-level SYSTEM functions GET, PUT, ADR, BIT etc. for accessing the RISC5 control, status and peripheral registers
Fast Native-code Compilation
  • Fast single-pass modular compilation
  • Generates Project Oberon-compatible symbol files and native RISC5 object code
  • One-click to compile the module in the current window
  • Only the current module needs to be compiled if the interfaces of imported modules are unchanged
  • Pre-compiled symbol files are used for fast access to imported modules
  • Compilation continues to the end to find as many errors as possible
  • Compilation errors are displayed in a separate window
  • Click on an error line to take you to the actual line in the source
Building and Dynamic Linking
  • Automated Build feature identifies and recompiles all outdated dependent modules before compiling the target module
  • There is no need to maintain separate 'make' files. The names of all imported modules are known at compile time.
  • Modules are dynamically linked at execution time. There is only ever a sngle copy of a module in memory at any one time.
  • Interfaces of imported modules are validated as they are linked to ensure consistency and eliminate obscure runtime errors.
  • Compile and build options are stored in configuration files.
  • Multiple projects for the same target can share a single configuration file.
  • Configuration file settings for multiple library search paths
Debugging and Error trapping
  • Language support for validation of procedure parameters, pre- and post-conditions using assertions
  • Automatic array index bounds checking
  • Runtime library Out can be used to send trace output to the Astrobe terminal window via a UART serial connection
  • Trapped runtime errors and failed assertions are identified by module name and source line number
Uploading and Running
  • No special hardware programming tool is required
  • Upload via UART connected via a COM / USB serial port
  • Integrated terminal emulator communicates via a UART with a program running on the target device
Project Oberon Library Modules
  • Kernel - Low-level memory allocation, disk sector allocation, tasks etc.
  • Math - Mathematical and trigonometrical functions
  • Modules - Dynamic linker and loader
  • Oberon - User command interface (modified for embedded system control via UART)
  • FileDir, Files- The Project Oberon file system
  • System - User interface toolbox module
  • Texts -  Read and write functions
  • Tools - Low-level file inspection and display commands
  • Upload - File uploading via the UART serial interface
Additional Library Modules
  • Out - Formatted ASCII text output of chars, strings and integers
  • Timer - Millisecond time measurement and delays
  • RTC - access the time components of the Maxim DS3234 Real Time Clock
  • HCDrive, HCDir, HCFiles - The SDHC filesystem
  • I2C - control serial RAMs and EEPROMS, LCDs, accelerometers, temperature and pressure gauges, compasses etc.
  • SPI - Serial Peripheral Interface: control LCD displays, SD cards, 7-segment LEDs, and digital sensors such as accelerometers, magnetometers, etc.
  • GPIO - General Purpose I/O Control
  • HCDrive, HCDir, HCFiles - The SDHC filesystem
  • Bits - Perform bitwise operations on INTEGERs
  • DateTime - Date and time to / from string conversions
Source Code of Library Modules
  • Complete source code of all Embedded Project Oberon runtime and additional library modules
Source Code Examples
  • Example modules illustrating the use of the library modules including full source code
Low-level SYSTEM Language Extensions
  • Direct access to CPU registers using SYSTEM.REG and SYSTEM.LDREG
  • Byte-level addressing of all built-in and user-defined data types and structures
  • Type casting using SYSTEM.VAL
Commercial Applications
  • Develop and deploy commercial applications with no runtime fees
  • Display the RISC5 assembler instructions generated for a module