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/ultiboberonWhat 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 itProject OBERON
. See http://www.projectoberon.com/
orhttp://www.xilinx.com/support/documenta ... -board.pdf
orhttps://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