Project Eberon is a collection of software packages designed to help students wishing to learn or extend the Project Oberon 2013 system. The original, if less extensive, Project Oberon 2013 web-site is also still available at the ETH Zurich Project Oberon web-site. In case you were wondering, Eberon is a anagram of Oberon.
The initial goal of Project Eberon is to bring together useful tools from various other repositories, rationalize their organization, simplify their presentation, and document how to use them effectively together to obtain, build, and deploy the original Project Oberon 2013 sources within an emulated RISC5 environment.
Stretch goals may include tooling for targeting one or more FPGA systems beyond the original Digilent Spartan 3 platform which has since been discontinued. Projects extending the original Project Oberon 2013 system as described by Wirth such as Project Oberon Extended or targeting other ISAs such as RISC-V are not in scope.
We hope to eventually avoid using git submodules or linked references to other repositories on the Internet and instead provide opinionated distillations of the useful features from each in an attempt to create an easier to understand and use byproduct. When this is the case, links to the original repositories and proper credit will, of course, be provided (and maintained). For now, a suitable RISC5 emulator is still included as a submodule.
The end result, I hope, will be to make learning the complete Project Oberon 2013 system as frictionless as possible. I hope to (eventually, alas) add wiki entries to this repository demonstrating how to use these tools to closely follow the original Project Oberon 2013 documentation from beginning to end without the need for a capable hardware FPGA platform.
src/Oberon/
Project Oberon 2013 unmodified sources.3src/Runtime/
Project Norebo RISC5 emulator and operating system interface.2src/Norebo/
Project Norebo new and modified modules allowing headless operation.2bin/dos2oberon
Perl script to convert a DOS format file to the oberon file format.1bin/oberon2dos
Perl script to convert an Oberon format file to the dos file format.1build-norebo.sh
Script to (re)build Norebo.2build-image.sh
Script to build a runnable Project Oberon disk image.2manifest.csv
Lists the set of files that will define the resulting Oberon disk image. obj/Bootstrap/
Pre-compiled modules used to bootstrap Norebo.2risc-emulator/
An Oberon RISC5 emulator41 from https://github.com/andreaspirklbauer/Oberon-building-tools
2 from https://github.com/pdewacht/project-norebo
3 from https://www.inf.ethz.ch/personal/wirth/ProjectOberon/Sources/
4 from https://github.com/pdewacht/oberon-risc-emu
In addition to the original Project Oberon 2013 sources, this repository also contains a tool to build Oberon filesystem images based on a successful build of the norebo
utility. Use it like so:
./build-norebo.sh
./build-image.sh src/Oberon
...where src/Oberon
is replaced with the directory containing the Project Oberon sources you wish to compile. By default, these sources are located in src/Oberon
per the example given above.
The first script compiles the norebo
binary which the second script uses to produce a runnable Oberon disk image. This resulting disk image is located at build/Oberon.dsk
and can be run using using the Project Oberon RISC emulator.
# mac users also need to "brew install sdl2"
git submodule update --init
./build-risc.sh
bin/risc build/Oberon.dsk
Checkout Project Oberon 2013
Another great resource is "The Oberon System: User Guide and Programmer's Manual" by Martin Reiser.