12

Project Oberon emulator in JavaScript and Java

 3 years ago
source link: https://schierlm.github.io/OberonEmulator/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Project Oberon emulator in JavaScript and JavaFork 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. 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. 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.

Old emulator (ugly) Pure JavaScript emulator JavaScript+WebAssembly emulator (faster)

Short description of available disk images [with last update dates]:

MinimalDiskImage [2021-01-19]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 [2021-01-19]Full content of the original Project Oberon 2013, with some patches to make it more convenient in the emulator. VanillaDiskImage [2021-01-19]Full content of the Origina Project Oberon 2013, with only minimal patches to make it work in the JS emulator. ExtendedOberonDiskImage [2021-03-27, v1.2]Image based on Andreas Pirklbauer's Extended Oberon IntegratedOberonDiskImage [2020-11-29]Image based on Charles Perkin's Integrated Oberon BootFromSerialLine [2021-01-19]Small image that only boots from a serial line (used with a serial line to another Oberon system) ColorDiskImage [2021-01-19]Image patched to support 16 colors. FullWithRescueDiskImage [2021-01-19]Same as the images without WithRescue, but these include a rescue system to fix and recompile in case you break the boot. 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.

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.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK