Giter Site home page Giter Site logo

rngmonk / project-eboron Goto Github PK

View Code? Open in Web Editor NEW

This project forked from berkeleynerd/project-eboron

0.0 0.0 0.0 416 KB

A collection of software packages designed to help students wishing to learn or extend the Project Oberon 2013 system.

License: Other

Shell 0.46% Python 0.90% Perl 0.78% C 4.32% Makefile 0.05% AMPL 3.79% Modula-2 89.69%

project-eboron's Introduction

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

  • src/Oberon/ Project Oberon 2013 unmodified sources.3
  • src/Runtime/ Project Norebo RISC5 emulator and operating system interface.2
  • src/Norebo/ Project Norebo new and modified modules allowing headless operation.2

Utilities

  • bin/dos2oberon Perl script to convert a DOS format file to the oberon file format.1
  • bin/oberon2dos Perl script to convert an Oberon format file to the dos file format.1
  • build-norebo.sh Script to (re)build Norebo.2
  • build-image.sh Script to build a runnable Project Oberon disk image.2

Other

  • manifest.csv Lists the set of files that will define the resulting Oberon disk image.
  • obj/Bootstrap/ Pre-compiled modules used to bootstrap Norebo.2
  • risc-emulator/ An Oberon RISC5 emulator4

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.