Ceres

Behind the scenes, Professor Wirth has been working continuously on his masterpieces Project Oberon (PO) and Oberon OS. In his latest PO book Wirth has described a virtual machine (VM). This VM has been created in hardware on an FPGA board. And, Peter de Wachter has, on his own, created an emulator for the VM in C. So now the Oberon OS can be used on real hardware (the Xilinx FPGA board) as a 2014 version of the Ceres. And the Ceres can be emulated in software, user Peter's emulator. All of this has been made possible by Paul Reed who put it all online: https://www.projectoberon.com/. In close cooperation with Professor Wirth. Below you see a screenshot of how the emulated Oberon system displays the Hilbert curves. If you click on the picture a Hi Res image opens in a new window.

In effect, the emulator and the Silinx FPGA board are modern time versions of the Ceres stations that were designed by Wirth and Gutknecht for the Oberon operating system.

The FPGA board

The original Project Oberon was meant to be running on a sophisticated FPGA board with a Xilinx Spartan-3 Board This board has it all:

The board has just one drawback: it is being phased out.

The emulator

At the very moment the Oberon mailinglist was panicking the most about which new FPGA board to choose some guy pops up, out of the blue, with an emulator project.... It emulates the Virtual RISC processor Wirth came up with in his Project Oberon 2013/2014 book. Which, in effect, resembles the virtual CPU he came up with in Compiler Construction.

The emulator runs a disk image of Oberon OS (i.e. a Ceres 2014) that was compiled with the ORP compiler for the fantasy Risc CPU. It's all software. It resembles qemu, with the exception that qemu emulates real hardware, whereas this emulator emulates an emulator. Kind of.

The emulator sources are freely available at https://github.com/pdewacht/oberon-risc-emu Here are some simple instructions for getting the system running of your box (although I use Slackware 14 and you might run Ubuntu or some other CandyCane Linux).

bash-4.2$ mkdir Bld/risc
bash-4.2$ cd Bld/risc
bash-4.2$ git clone https://github.com/pdewacht/oberon-risc-emu .
bash-4.2$ make
cc -o risc sdl-main.c sdl-ps2.c risc.c risc-fp.c risc-sd.c pclink.c -g
-Os -Wall -Wextra -Wconversion -Wno-sign-conversion -std=c99
sdl2-config --cflags --libs -lm
/bin/sh: sdl2-config: command not found
sdl-main.c:7:17: fatal error: SDL.h: No such file or directory
compilation terminated.
sdl-ps2.c:3:17: fatal error: SDL.h: No such file or directory
compilation terminated.
make: *** [risc] Error 1
bash-4.2$
   
OK, bad for bonzo. I seem to need SDL2 and Slackware 14 only has SDL 1.2.14. So just visit https://libsdl.org/ and download the source tarball. now recompile in /Bld/risc with
bash-4.2$ make
Make sure RISC.img is extracted and available. You can find it on Paul Reeds Project Oberon site. It is in the "S3RISCinstall.zip" file.

And it runs with
bash-4.2$ ./risc RISC.img
Below is an image of the running emulator after displaying the Hilbert Curve program.

Page created 9 April 2014,