Fork me on GitHub

Project Oberon emulator in JavaScript and Java

Here you can find my emulators for Project Oberon in JavaScript and Java.

Note that the JavaScript emulator does not support the original SPI (which is used for network and SD-card) and keyboard interfaces, but a simplified "paravirtualized" interface for keyboard, clipboard, sd-card, and power management instead, and therefore requires patched images; images that support the Hardware Enumerator should work unchanged. All these interfaces are also supported by the Java emulator (and others can be disabled) to make development easier.

JavaScript emulator

Needs a recent browser with JavaScript Canvas and Typed Arrays support. You also need a fairly fast PC or some patience during the boot process.

An Offline version is also available. It does not include any disk images. You will need to run the online version and save a disk image to your local disk first.

Note that clipboard access from JavaScript is severely restricted and very browser dependent. In recent Chrome and Chromium Edge versions full clipboard integration should work (if you give it permission), in Firefox unfortunately only writing to the clipboard works. So, as a fallback option, paravirtual clipboard synchronizes into a text field you can show or hide (showing it disables the JavaScript Clipboard API). You can copy and paste from there like normal.

Java emulator

Download here (3.57 MB)

This emulator includes three different sets of disk images. First, the images also used in the JavaScript emulator. Second it contains a set of "compatible" images, which should work on most other emulators and/or boards (if they are 100% compatible or provide a hardware enumerator). And last but not least a set of "java" disk images that include all advanced features like different color depths or memory layouts. These images can also be used with HostFS so that the filesystem content is written to a directory of the host.

Oberon Source files

The Oberon sources (for the images of both JavaScript and Java emulator) (241 KB) are also available. Files that are the same in all sets are contained in the root directory, while files that are different can be found in "Compatible", "JS" and "Bigmem" subdirectories. The directory "ExperimentalOberonTools" contains tools used to build the Experimental Oberon disk image for the JavaScript emulator.

There is also an Interactive Source Xref available for all the original ("vanilla") Project Oberon files.