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:
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.
bash-4.2$ makeMake sure RISC.img is extracted and available. You can find it on Paul Reeds Project Oberon site. It is in the "S3RISCinstall.zip" file.
bash-4.2$ ./risc RISC.imgBelow is an image of the running emulator after displaying the Hilbert Curve program.
Page created 9 April 2014,