[Coco] expanding the boot track

William Astle lost at l-w.ca
Sat Oct 10 18:43:55 EDT 2015


On 2015-10-10 15:13, Dave Philipsen wrote:
> Just another note: I like your idea about eliminating the 'incestuous relationship' between these three modules too. It's almost like they could be all lumped together or at least linked in some way so that they are all assembled together at the same time and Rel relocates them to exactly the right spot to align the vectors at the end of the 64K memory map.
>
> I think if they were assembled together like that then the assembler would be able to provide the correct references so that each module would know where the others were.

That actually doesn't work so well as you might think. The reason for 
that is that KRN is constant across all boots. BOOT, on the other hand, 
varies wildly depending on the hardware the boot file is being loaded 
from. Because of that, it makes no sense to merge them.

REL, on the other hand, should do just one thing. Relocate the stuff 
loaded from the boot track to where it needs to be. It should do exactly 
nothing else except the bare minimum required to do the relocation. In 
fact, once it's done its job, REL isn't needed any more, not even on a 
warm boot, so if all the initialization stuff it does now were moved 
into BOOT, REL wouldn't even need to be relocated.

Separating the relationship between BOOT and KRN is a harder problem 
because the way it's written now, BOOT needs aspects of KRN already 
initialized.

If you actually trace the boot process, it's pretty clear that the 
original from OS9 Level II was a hack piled on top of a kludge.


More information about the Coco mailing list