Oberon on Ultibo!

The place to share and discuss your Ultibo projects.
captbill
Posts: 48
Joined: Tue Aug 16, 2016 5:47 am

Oberon on Ultibo!

Postby captbill » Tue Aug 16, 2016 6:00 am

Fascinating project! Have you talked with Markus over at the Oberon forum? He has managed to install Oberon to the Rpi using Ultibo. So now you have a full graphical operating system/development environment directly on the Rpi!! How cool? This is the ultimate..."Wirthian" all the way. Freepascal OS is like the "DOS", base OS, and Oberon as the GUI OS for developers. Take a look:

http://lists.inf.ethz.ch/pipermail/oberon/2016/009752.html
Last edited by captbill on Tue Aug 16, 2016 6:31 pm, edited 2 times in total.
User avatar
Ultibo
Site Admin
Posts: 1386
Joined: Sat Dec 19, 2015 3:49 am
Location: Australia

Re: Oberon on Utilbo!

Postby Ultibo » Tue Aug 16, 2016 6:43 am

captbill wrote:So now you have a full graphical operating system/development environment directly on the Rpi!! How cool?

Thanks captbill, we have been hearing from Markus for a while now and he has obviously been very busy making Oberon run on top of Ultibo.

That's very cool and yet another excellent example of what you can do with a bit of imagination.

Well done Markus!
Ultibo.org | Make something amazing
https://ultibo.org
captbill
Posts: 48
Joined: Tue Aug 16, 2016 5:47 am

Re: Oberon on Utibo!

Postby captbill » Tue Aug 16, 2016 7:18 am

What is fascinating is that with the "DOS and Windows" we have a "low level OS", DOS, hosting a "high level OS", Windows. Whereas with the Utibo and Oberon it's actually the other way around. Utibo is getting us into deeper "low level" territory, and Oberon is even much better suited for low level MCU type stuff...yet with a brilliant, full feature, graphical OS and, of coarse, the finest compiler you will find.

Take a look at this:
https://www.inf.ethz.ch/personal/wirth/PICL/index.html

This is a complete compiler for the PIC16C84...in less than 800 lines of code. Even does uploading/flashing. Should be trivial to get this working with Utibo and Rpi.

Now I need to order me an Rpi.

Cheers
Gavinmc42
Posts: 902
Joined: Sun Jun 05, 2016 12:38 pm
Location: Brisbane, Australia

Re: Oberon on Utibo!

Postby Gavinmc42 » Tue Aug 16, 2016 7:54 am

Now I need to order me an Rpi.


No Pi?
Shock, horror, greatest thing since sliced bread and you don't have a dozen or so :shock:

https://en.wikipedia.org/wiki/Oberon_(operating_system)#Native_Oberon

Interesting, Garry's ADUG demo and my IoT sensor logger is using 3-4 console windows.
Were we influenced by Oberon?

Dusty memories are rising, wonder where I put my devel kit for the NS32032?
https://en.wikipedia.org/wiki/NS320xx

Lucky I don't have to find my box of Byte mags, they are online for those nostalgia trips.
https://archive.org/stream/BYTE-1993-05 ... 3/mode/1up

Edit, Draw, Paint, Write, System, Compiler.
Sounds like just what we need.

We have been talking about the QED editor and Pascalscript, Oberon is the full package.
Sure no hardware acceleration etc yet, but fast enough on 1GHz machines?
Fast enough to take over the desktop?
Probably not without a browser ;)
mgreim
Posts: 20
Joined: Wed Jun 08, 2016 4:01 pm

Re: Oberon on Utibo!

Postby mgreim » Tue Aug 16, 2016 9:31 am

Hi All,

its fascinating yesterday I was some lines about Oberon on Ulitbo in the Oberon newsgroup. I juts wanted to publish also here
and was fascinated how fast things are running around the world!
So here now my official posting:

-----------------------------------------------------------------
# Port of the OBERON RISC Emulator to Ultibo
============================================

Sources at: https://github.com/MGreim/ultiboberon

What is OBERON:
1. OBERON is a programming language designed from 1988 by the Turing award winner Niklaus Wirth, the inventor of PASCAL and some other programming languages.
OBERON is quite similar to PASCAL with object extension and units as known from Turbo Pascal 6.0+.
2. OBERON is also, and that's sometimes confusing, the name of a complete operating system, including graphical user interface with mouse control, an editor, compiler, libraries etc.
Wirth was 1977/78 at the XEROX park labs in Palo Alto, where he worked with the ALTO workstation. This was the first computer with a mouse and a graphical user
interface. In 1986 Wirth developed his own 32bit computer called CERES incl.his own operating system written in his own language called OBERON.
From 2013 Wirth was developing a new workstation based on one single FPGA and called it
Project OBERON. See http://www.projectoberon.com/ or
http://www.xilinx.com/support/documenta ... -board.pdf
or
https://www.computer.org/csdl/mags/co/2 ... 070008.pdf

The complete system including the kernel, the editor, the compiler and the GUI
has about 10000 (ten thousand) lines of code. The Linux 4.x kernel has about 15 million lines of code.

Project Oberon aka FPGA OBERON is a very interesting system, but fiddling around with FPGAs, especially with the development environments of Xilinx or Altera is, friendly spoken, demanding.
Even producing a video signal for a modern interface like HDMI or display port with a FPGA is for example 10 times more complex then the whole so called RISC5 processor for the Project OBERON.

In 2014 Peter de Wachter has written an emulator for Project OBERON on the PC.
A nice project, but written in C, a non-Wirthian languge. So i made a port of his program to (Free)-Pascal. The emulator works fine, but making the graphic
and the mouse interface with the SDL library was a typical example for the complexity of Linux and Windows.

My intention to bring OBERON to Ultibo on the RPI:

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 inelligent shell, including
editor, compiler etc. for Ultibo.

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 realised 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 ... -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/ ... Oberon.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

Markus
User avatar
Ultibo
Site Admin
Posts: 1386
Joined: Sat Dec 19, 2015 3:49 am
Location: Australia

Re: Oberon on Utibo!

Postby Ultibo » Tue Aug 16, 2016 10:44 am

Hi Markus,

Just wanted to say thanks and congratulations on getting Ultiboberon working, I'm not an Oberon expert in any way but I have had it running already and everything seemed very familiar to what I remember. Most important everything worked and I could try the built in graphics examples, blink the LED and type some text.

mgreim wrote:fascinated how fast things are running around the world!

I understand completely what you mean, the time difference around the world makes it very hard to keep up with everything that is happening some days.

mgreim wrote:The complete system including the kernel, the editor, the compiler and the GUI
has about 10000 (ten thousand) lines of code. The Linux 4.x kernel has about 15 million lines of code.

I really should check the number of lines in Ultibo, someone asked me just the other day and I didn't know the answer, been so busy writing I haven't even thought to check what it is up to.

mgreim wrote:9. Ultibo has no command line options, so everything is hard coded.

Just a quick hint, Ultibo does support command line options. If you put command line parameters in the file cmdline.txt on the SD card you can access them in your program using the normal ParamCount and ParamStr() functions.

mgreim wrote:12. You need a 3 button mouse.

I can confirm that a 2 button mouse with a wheel also works well, clicking the wheel acts as the third button.

Thanks again Markus, excellent work.

Garry.
Ultibo.org | Make something amazing
https://ultibo.org
mgreim
Posts: 20
Joined: Wed Jun 08, 2016 4:01 pm

Re: Oberon on Utibo!

Postby mgreim » Tue Aug 16, 2016 12:41 pm

Hi Garry,

thanks for the hint with the cmdline.txt !
Regarding the Mouse you are right, but many people didn't even know that clicking the wheel has some functionality!

I would like to expand the Oberon system with GPIO serial interface, etc. asap but I fear in the next 2..3 weeks I will have no time.

Another thing would be an elegant mechanism to write Procedures in Pascal and publish it for Oberon and maybe vice versa.

By the way Is there any faster or more sophisticated way way to redraw a rectangle part of the screen compared to GrapcsWindowDrawImage?

Regards

Markus
ninol
Posts: 33
Joined: Sun May 22, 2016 9:38 am

Re: Oberon on Utibo!

Postby ninol » Tue Aug 16, 2016 4:31 pm

Hi Garry

you said earlier;
I really should check the number of lines in Ultibo, someone asked me just the other day and I didn't know the answer, been so busy writing I haven't even thought to check what it is up to.


On my system, using Linux wc (word count) command

I get the following number of lines...

491178 ../rtl/ultibo/core
29467 ../rtl/ultibo/drivers
15112 ../rtl/ultibo/extra
1845 ../rtl/ultibo/fonts
3253 ../rtl/utlibo/keymaps

That's over 0.5 Million lines of code!

Nino
captbill
Posts: 48
Joined: Tue Aug 16, 2016 5:47 am

Re: Oberon on Utibo!

Postby captbill » Tue Aug 16, 2016 9:28 pm

Shock, horror, greatest thing since sliced bread and you don't have a dozen or so :shock:


That's just it. Until Ultibo, the best hope of getting a nice real-time OS meant using a Linux kernel, which is truly overkill and sees no benefits in the real-time performance. It is simply a shrunken Linux distro stuffed into an Rpi. That is the great significance with what you have put together with Ultibo... a "right sized" OS for the Rpi. This really makes the Rpi attractive finally.

We have been talking about the QED editor and Pascalscript, Oberon is the full package.
Sure no hardware acceleration etc yet, but fast enough on 1GHz machines?
Fast enough to take over the desktop?
Probably not without a browser ;)


Actually there is no competition with the desktop. Oberon is bringing "a developers desktop" which is more right-sized for the embedded realm. Now with this "Ultibo App/ Oberon emulator" you have a standalone development package. Of coarse, being able to program directly from Lazarus in Freepascal is sweet too. With the two working together you have it all! Do all your MCU programming onto a microcontroller (some target hardware like the PIC) where Oberon shines and build a graphical GUI for "the desktop" with Lazarus via serial(Synapse), where Lazarus excells. That is a complete, fully closed circuit development environment, is it not? Show me where anyone is doing anything like that?

Ultibo looks like the perfect venue for an Oberon emulator, or any emulator, for that matter. You seem to have greatly increased the viability of the Rpi in a major way. Way to go.
Gavinmc42
Posts: 902
Joined: Sun Jun 05, 2016 12:38 pm
Location: Brisbane, Australia

Re: Oberon on Ultibo!

Postby Gavinmc42 » Wed Aug 17, 2016 1:54 am

Is 2016 the year of revival?
http://pascal.hansotten.com/2016/01/13/ ... x-revival/
https://github.com/vishaps/voc

Lucky Oberon is very similar to Pascal, won't have to learn a language from scratch.
Two versions of Ultibo? UltiboO and UltiboP, do the Boo Bop :lol:

Runs on Cortex M3/M4
http://www.astrobe.com/default.htm

Wonder if we can get Saint Nik out of retirement?
http://pascal.hansotten.com/computer-sc ... ogrammers/

It looks like he is still up on Lazarus/FPC on Pi
http://pascal.hansotten.com/freepascal- ... pberry-pi/

Had not come across this before
https://www.elektormagazine.com/news/no ... ll-the-way
Seems like it never took off and under performed.
Hmm, makes you wonder what he is doing in retirement?

Just about everything is working in Pascal source in Ultibo.
https://ultibo.org/wiki/Current_Status

It looks like Oberon is smaller than Pascal, could it be used as a scripting/embedded compiler language for Ultibo?
I have used Luajit before, it is nice and small and fast enough on a Pi.

I'm not a compiler guy, I use them, not make them, but things are looking very interesting.
When the Pi first came out 2012 it was "wow great hardware"
Now it is 2016 "Ultibo, wow great software"
It will be interesting to see where Ultibo is in 4 yrs time

But in the meantime, Oberon emulator?
I don't know enough yet, still trying to get my head around this.
Gut feeling is it might turn out very, very important.
Wonder if it could be pushed back up the tree into the full FPC?

That's over 0.5 Million lines of code!

Er, that's a lot, wonder if Garry sleeps?

Oberon in the next release?
I promise to try to break it :P

Return to “Projects”

Who is online

Users browsing this forum: No registered users and 1 guest