Project Oberon / Linux

Project Oberon / Linux will become a port of Project Oberon to Linux on ARMv7 (32Bit), RISC-V (32Bit) and MIPS32 CPUs. Possible further targets are X86/X64, ARM64, LLVM and WebAssembly. Long term goal is to run Project Oberon highly optimized on every relevant CPU architecture via LLVM or WebAssembly or something similar. All native versions will run well via qemu on all other architectures. Symbol files are the same for all architectures. Object files get new endings. ".arm" for ARM, ".rsv" for RISC-V and ".mps" for MIPS. cp2o and cp2u are native commands programmed in Oberon to copy files from Linux to Oberon disk image resp. vice versa. Format is "./cp2o disk.img file1 file2 …".

Project Oberon / RISC-V Linux

Oberon-07 is my favorite language, Po's compiler my favorite compiler, RISC-V my favorite CPU architecture and Linux my favorite operating system. Project Oberon / RISC-V Linux merges all together with native speed. If you don't yet have a RISC-V CPU, get qemu from https://github.com/riscv/riscv-qemu, install it, extract pol.tgz and run "qemu-riscv32 pov". Conditional forward jumps are limited to 4kB. Object file suffix is rsv.

Project Oberon / ARM Linux

The CPU needs ARMv7 instruction set and the DIV instruction. Cortex-A7 (like Raspberry PI 2) and newer CPUs are fine. Non-Cortex and Cortex-A8 and Cortex-A9 are not supported. It compiles itself. It uses X11 window system. Used memory is fixed at 16MB excluding stack. Object file suffix is arm. Starting and compiling is extremely fast. Performance of this simple compiler is on par with other ARM compilers, including OP2 without register variables.

Project Oberon / MIPS Linux

Requires a MIPS32R2 CPU like the MIPS Creator CI20 or qemu-mipsel. Not tested much. Size of global variables currently limited to 32k. Bad code density and performance due to at least 4 instruction for a trap. Object file suffix is mps.

Available native ARM Linux files:
poa: command to start Project Oberon /ARM Linux. If disk image is Oberon.dsk in same directory than just execute "./poa" otherwise "./poa imagename.dsk".
cp2o: copy files to Oberon disk image.
cp2u: copy files from Oberon disk image.

pol.tgz: contains disk file Oberon.dsk and all ARM, RISC-V and MIPS Linux commands; uncompress with "tar xzf pol.tgz". You can also run the disk file with Peter De Wachter's Oberon RISC Emulator, but POL has more memory and more beautiful colours ;-)

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License