[Oberon] Oberon on Ultibo on RPi w/o Linux
greim at schleibinger.com
Sun Aug 14 17:04:22 CEST 2016
i have juts tried to port the OBERON RISC Emulator of Peter de Wachter
to Ultibo (http://www.ultibo.org)
That's an OBERON emulator on bare metal Raspberry Pi.
You may find it at: https://github.com/MGreim/ultiboberon
What is Ultibo ?
Citation from the Ultibo web-site:
"Ultibo core is an embedded or bare metal development environment for
It is not an operating system but provides many of the same services as
an OS, things like memory management, networking, filesystems and
threading plus much more."
What they write only in the footnote is:
"Ultibo is written entirely in Free Pascal and is designed to act as a
unikernel or a kernel in a run time library. That means when you compile
your application the necessary parts of Ultibo are automatically
included by the compiler so that your program runs without needing an
Maybe they are shaming to be non-C guys.
For all, not yet knowing what the Raspberry Pi is:
The Raspberry Pi is a series of cheap credit card-sized single-board
computers. The smallest model costs here in Germany incl. tax 15 EUR,
the biggest iron 38 EUR. Here we have 4 ARM cores @ 1 GHz, HDMI, USB,
Network interface, PIO, LED,audio, etc. etc. + 1 GByte + SD card etc.
The RPI is mostly used with LINUX. That's nice, but with LINUX you are
far, far away from the hardware. And its quite crazy for my opinion, to
use Gigabytes of code to blink a LED.
So what is Ultibo for me:
A very nice tool! You have more or less infinite RAM and power,
you can and MUST write all programs in PASCAL, and you have with Lazarus
a real nice and fast development environment for Windows and Linux (with
My intension to bring OBERON to Ultibo on the RPI without Linux!
0. Having a total type save Wirthian system!
1. A proof of concept and test for Ultibo.
2. Having an OBERON system for 15 EUR
3. Having direct hardware access from OBERON. Up to now only the
Blink.Run works, but integrate GPIO, the serial interface etc. may be
done with only a few
lines of code.
4. Its quite easy to expand OBERON with some TCP/IP functionality, which
is already part of the Ultibo libraries.
5. Maybe in the future OBERON can be used as a kind of intelligent shell
for Ultibo, including editor, compiler etc.
# Hints, Design, Problems etc.
1. The software is __pre-beta__!
2. There is a bug in the USB interface in Ultibo. You __must__ use an
USB hub to connect mouse and keyboard. At least one of both must be
connected via the hub.
There seems to be a DMA problem for slow HID devices. Its a known issue.
3. Due to lack of time, I have the code only tested for the RPI2.
4. I have realized the sw in one single thread following Wirths original
5. The code is not optimized for performance at all.
6. The RISC5 code and the FPU code is from 2014, the latest FPU
improvements etc. are not coded yet.
7. The OBERON file system is encapsulated in one single file oberon.dsk,
it would be nice for sure, to mirror it in FAT or similar.
8. The disk image is from Peter de Wachter at:
9. Ultibo has no command line options, so everything is hard coded.
10. the F4 and F12 keys are not working yet.
(* 11. For Non-Oberonians: Before you play with the software please read:
The using of the mouse and the windows (here called viewers) is
different from the Windows or OsX world. Even if Allen, Wozniak, Gates
and Jobs said that they have been at least "inspired" by the ALTO system
they had seen at Xerox.
12. You need a 3 button mouse.
13. .. and many more.. *)
14. Only tested with a 1280 x 1024 screen
More information about the Oberon