# The Oberon System

NOTE: Porting of the Oberon System is in progress. It's not working yet.

Dusk OS hosts a port of the Oberon System, which is enabled by the Oberon
Compiler [comp/oberon].

This is not emulation, this is a native port! That is, this code doesn't compile
to some RISC5 bytecode to be emulated on ran on the Oberon-specific FPGA. It's
compiled through the HAL, using native bytecode for all CPUs supported by Dusk.

This of course requires a significant rework of all the lower layers of the
Oberon system which are RISC5-specific. We strip all those parts and hook them
to the appropriate Dusk drivers.

## Usage

You load the Oberon system by loading [oberon/sys.fs]. This loads [comp/oberon]
and compiles a wrapper unit that loads all the important oberon modules.

When the porting is finished, you'll launch a Oberon system with "oberon". This
will enter the Oberon runloop and will return to the console on System.Quit.
One of the big features of that Oberon port will be interaction with the Dusk
system. For example, you'll be able to launch a Dusk Console which will give you
a regular Dusk prompt. From within Oberon! Giving you the same Dusk powers!

Hopefully, I'll also manage to design some convenient wrapper around graphical
Dusk apps. For example, run a varvara app from within a Viewer. This means that
to have a "Graphical Dusk", all you have to do is to call the "oberon" runloop
in "init.fs" and tweak your oberon system to launch a Dusk console on boot.
Boom!

But for now, this unit only loads whatever modules are currently ported and
creates aliases for testing purposes. So, for now, there's not much to see
there.
