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. 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. The offline version does not support dynamic boot ROMs, so some images may not work there.

Note that clipboard access from JavaScript is severely restricted and very browser dependent. So, I took the easy route and made paravirtual clipboard synchronize into a text field you can show or hide. You can copy and paste from there like normal.

800×400 800×450 800×600 1024×512 1024×576 1024×768 MinimalDiskImage FullDiskImage VanillaDiskImage ExtendedOberonDiskImage IntegratedOberonDiskImage BootFromSerialLine ColorDiskImage UnicodeDiskImage FullBigmemDiskImage ColorBigmemDiskImage FullWithRescueDiskImage FullBigmemWithRescueDiskImage ModificationsDiskImage DebuggableDiskImage FullDynmemDiskImage

Old emulator (ugly) Pure JavaScript emulator JavaScript+WebAssembly emulator (faster) Short description of available disk images [with last update dates]: MinimalDiskImage [2020-04-03] A small (~100KB) disk image containing only the necessary files to start Oberon. No compiler, no tools. So all you can use it for is editing Text files. FullDiskImage [2020-04-03] Full content of the original Project Oberon 2013, with some patches to make it more convenient in the emulator. VanillaDiskImage [2020-04-03] Full content of the Origina Project Oberon 2013, with only minimal patches to make it work in the JS emulator. ExtendedOberonDiskImage [2020-08-01] Image based on Andreas Pirklbauer's Extended Oberon IntegratedOberonDiskImage [2019-04-21] Image based on Charles Perkin's Integrated Oberon BootFromSerialLine [2019-01-26] Small image that only boots from a serial line (used with a serial line to another Oberon system) ColorDiskImage [2019-03-27] Image patched to support 16 colors. UnicodeDiskImage [2019-01-19] Image patched to support Unicode characters. *BigmemDiskImage Same as the images without Bigmem, but using a 4MB address space instead of 1MB. *WithRescueDiskImage Same as the images without WithRescue, but these include a rescue system to fix and recompile in case you break the boot. ModificationsDiskImage [2020-01-01] Image based on my Oberon 2013 Modifications DebuggableDiskImage [2020-05-29] Image that includes a Kernel debugger FullDynmemDiskImage [2020-09-17] Image supports changing the memory configuration and color support on every reset.

Your browser does not support JavaScript or it is disabled.

Java emulator

Download here (598 KB)

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: The original BootLoad.Bin (and one that uses a 4GB address space) and a disk image that does not use any of the paravirtualized features and can therefore be used with Peter De Wachter's Oberon Emulator or native as well. And last but not least a set of "big" disk and boot loader images that include all advanced features like color or different memory layouts. The "big" 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.