berkeleynerd / project-eboron

A collection of software packages designed to help students wishing to learn or extend the Project Oberon 2013 system.
Other
2 stars 1 forks source link

Project Eberon

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.

Contents

Sources

Utilities

Other

1 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

Building a Project Oberon 2013 disk image

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.

Building the included RISC5 emulator

# mac users also need to "brew install sdl2"
git submodule update --init
./build-risc.sh

Running the Oberon system

bin/risc build/Oberon.dsk

Cool! Now what?

Checkout Project Oberon 2013

Another great resource is "The Oberon System: User Guide and Programmer's Manual" by Martin Reiser.