[Oberon] A2 Repository - getting A2.ISO back to boot

Michael Schierl schierlm at gmx.de
Mon Apr 13 23:03:58 CEST 2020


Hello,


Am 26.10.2019 um 18:35 schrieb Felix Friedrich:

> For the native versions of A2 there has been some progress made now. A
> minimal A2HDD.img that can be booted from Bochs / VMWare / Qemu can
> built with a very simple script (that I attach below).
>
> More commands for building an A2 with GUI and all extras will appear in
> tool files in A2 soon.

Nice that A2HDD.img can now boot with GUI and stuff (without Oberon).
The problem with VirtualBox seems to depend on the RAM size. When you
assign 1GB, it boots. When you assign 2GB or 256 MB, it triple faults.
CD did not boot though.

Getting Oberon back to work was just a few little boring fixes (fixing
some number variables to SIZE).

The CD was a bit more tricky. The CD image uses El Torito Floppy
Emulation Boot and just takes the first 1.44MB of the disk image as
floppy image. Therefore, the boot loader has to work from a floppy - and
the boot image cannot be larger than 1.44MB (which it is not ... yet).

As the Oberon boot image is larger than 640KB, OBL.Bin cannot be used
but OBLUnreal.Bin needs to be used. That one has problems (unhandled
corner case) when INT 13h returns loading more than one sector, so the
max sector count has been (thought to be) patched to be always 1.
However, this is only true when loading from drive=80H. When drive is 0H
(which is true for floppies or CD) this does not work and more than one
sector is loaded from disk but only one sector copied to high memory,
resulting in an unbootable system.

In addition, when fixing this one, the OBLUnreal.Bin is 5 (512-byte)
sectors large. But CDs have 2K sectors, so it is 1.25 sectors large. And
the fractional sector length causes a failed assertion in
DiskVolumes.Mod. Quick&Dirty fix is to pad OBLUnreal.Bin to 8 (512-byte)
sectors.


Last but not least is the installer unable to install the system,
because it allocates only 640KB for the boot image, and tries to write a
larger boot image onto it. Easily fixable by using 1MB boot image size
instead.


Find a patch of my changes and the generated ISO files (r9807) at
<https://gist.github.com/schierlm/fa30b06d66f1dff42a516bd166fa5aaa>.

Note that I only tested the ISO (no other build methods), and I also
tested it only in VirtualBox.


Regards,


Michael


More information about the Oberon mailing list