[Oberon] Oberon on Ultibo on RPi w/o Linux

greim greim at schleibinger.com
Sun Aug 14 17:04:22 CEST 2016


Hallo,

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 
Raspberry Pi.
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 
operating system."

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 
Wine)

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 
design.
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:
https://github.com/pdewacht/oberon-risc-emu/blob/master/DiskImage/Oberon-2016-08-02.dsk
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:
https://www.inf.ethz.ch/personal/wirth/ProjectOberon/UsingOberon.pdf
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

Regards

Markus




More information about the Oberon mailing list