Skip to content

cheyao/oberon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Oberon for Icepi Zero

It boots and shows 1024x768 70Hz picture.

Ulx3s's https://github.com/emard/oberon ported over and slightly reworked

An PS2 keyboard should be plugged into USB1 and an USB mouse on USB2. USB keyboard support is WIP.

wget oberon disk image, unzip, and write it raw to an SD card:

wget http://www.projectoberon.net/zip/RISCimg.zip
unzip RISCimg.zip
dd if=RISC.img of=/dev/sda

Image will initialize first 2 primary partitions (out of 4) required for oberon, rest of SD card (free space) can be used with other OS (linux) by creating new primary partition(s) there and making new filesystem(s).

Usage

An USB keyboard with PS2 support should be plugged into USB1 and an USB mouse on USB2. Format a SD card according to the instructions above, plug it in and connect the Icepi to your monitor via the GPDI port and you will be good to go.

For additional instructions please read the wikipedia page.

Disk partition

Oberon expects it's "partition" to start at 512-byte sector number 524288 = 512x1024, which is byte offset 268435456 = 512x512x1024. Oberon won't touch the first two 512-byte sectors of it's own partition and start from sector number 524290 = 512x1024+2 so it's become a convention in some Oberon emulators to leave off the first 268436480 = 512x512x1024 + 2x512 bytes, resulting in a shortened disk image.

You can tell you are working with a shortened Oberon disk image if it starts with 8d a3 1e 9b which is the on-disk representation of the directory sector mark, 0x9b1ea38d. The current RISC Oberon kernel will only address 67108864 (64MB) = 64x1024x1024 of on-disk storage due to an internal sector table limit, although the on-disk structures should allow a volume size of 141 GB if that sector table limit were removed. It is safe for now to expect Oberon to only use 64 MB of disk space... nobody has removed that limit yet in RISC Oberon.

fdisk /dev/sda

Command (m for help): p
Disk /dev/sda: 7,42 GiB, 7969177600 bytes, 15564800 sectors
Disk model: SD/MMC          
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot   Start      End  Sectors  Size Id Type
/dev/sda1          2048   524287   522240  255M  b W95 FAT32
/dev/sda2        655360  1179647   524288  256M 83 Linux
/dev/sda3        524290   655359   131072   64M df BootIt <-- Oberon
/dev/sda4       1179648 15564799 14385152  6,9G  5 Extended
/dev/sda5       1181696  3278847  2097152    1G 83 Linux
/dev/sda6       3280896  3805183   524288  256M 82 Linux swap / Solaris

Partition table entries are not in disk order.

hexdump -C /dev/sda3
00000000  8d a3 1e 9b 03 00 00 00  91 1d 00 00 00 00 00 00  |................|

Here are some disk image examples:

schierlm image from emu 2019-01-21 has Hilbert etc examples already compiled.

schierlm modifications releases has different content, no Hilbert etc examples.

Such images can be dumped directly to partition 3 as created above:

dd if=Oberon-2019-01-21.dsk of=/dev/sda3

or using ESP32 uftpd.py form esp32ecp5 and direct ESP32 SD offset

ftp> put Oberon-2019-01-21.dsk sd@268436480

or

lftp> put Oberon-2019-01-21.dsk -o /sd@268436480

Quick GUI info

Oberon has no folders. All files are in root. If any text on the GUI is Middle clicked, it will executed as if this command has been typed to commandline.

On right bottom window, move cursor down. Press left click and cursor like slanted "1" will appear. To compile "Sierpinski" example, on empty line type

ORP.Compile Sierpinski.Mod

Middle click on "ORP.Compile". On upper right window compile message will appear.

Then Middle click on "Sierpinski.Draw" to run example, some pattern will be drawn on big left window.

With Right drag you can select for example "*.Mod" and then Middle-click on "System.Directory", list of sources will appear. Right drag on "Sierpinski.Mod" and Middle click on "Edit.Open" to edit the file. Middle click to "Edit.Store" to save it.

Latest development

Oberon is currently actively developed at Oberon-experimental

Memory configuration Oberon-memory

About

Oberon recreated on the Icepi Zero

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published