[Oberon] Booting FPGA Oberon / LNO

Paul Reed paulreed at paddedcell.com
Thu Jan 30 15:48:52 CET 2014

Dear Herr Greim,

> http://www.inf.ethz.ch/personal/wirth/Articles/MemoRISC0.doc
> i have found a document related to your suggestions.

No I think that's a document from an old course at ETH, I was referring to
the "Compiler Construction" section of http://www.inf.ethz.ch/~wirth/,
where you can experiment with the RISC hardware using a simpler setup and
compiler, in case it may help.

> In the net on GitHub i found a quite new
> ORP.Mod (which is including ORS, ORB, ORG as described in chapter 12.1,
> Figure 12.1 on page 14 of the Oberon Report)
> Is this the right tool for this job?

I do not know of this, so I don't know, but I doubt it.

> But whats about the hint with the DOS Shell, i assume i have to run this
> ORP.Mod in Native Oberon?

The OR[SBGP].Mod files on Prof. Wirth's site above are the latest source
code to the Oberon-07 RISC compiler, written in Oberon-07.  Since the
compiler was originally written in Oberon-88, and only translated to
Oberon-07 near the end of the project, it shouldn't be difficult to modify
the source to use any reasonable Oberon compiler.  (During development,
the Oberon-07 versions were suffixed with an X, to indicate Oberon-07.)

However, becoming familiar with the Oberon-0 compiler and RISC via
Compiler Construction is a good prerequisite, before tackling Project
Oberon.  This is how I've taught it at ETH.

> In chapter 14.1 of the latest Oberon Report page 76 there is the source
> of a
> MODULE* BootLoad;
> ....
> I guess this could be the right bootloader, am i right here?

As I've said, it depends what hardware you have connected to your system
as to what bootloader you would need.  Also this is somewhat true of the
bootlinker, which is your next question:

> On page 77 the boot process is explained. A linker tool called ORL is
> mentioned there several times. Do you know where i can find this tool?

I notice that ORL is not currently available on Prof. Wirth's site.  But
it is very similar to Modules.Mod, since its objective is to build a file
which can be loaded into memory initially, to give the same effect as if
Kernel, FileDir, Files and Modules (the inner core) had been loaded into
memory by Modules itself, which is obviously impossible.

> Or is ORL = ORP ?
Certainly not.


More information about the Oberon mailing list