[Coco] expanding the boot track

William Astle lost at l-w.ca
Sat Oct 10 14:10:33 EDT 2015


On 2015-10-10 11:28, Dave Philipsen wrote:
> As I mentioned before I've already actually booted the FPGA from SD card. It's just that the bootfile contained the standard modules that continue booting NitrOS9 (2nd stage) using Drivewire. For me, the Boot module is the missing link.  I think I could fit the low level sector read stuff within the 768 bytes but it might be tough to get the initialization code in as well with that limitation.  It is for that reason that I was also thinking about a way to enlarge the Boot file slightly.  Since we are booting from an SD card and new code had to be written for DECB to boot from that card I didn't see the track 34, 18 sectors, and size of Boot module issues so much as hard and fast limitations anymore.

Actually, I think you're missing a simpler solution which doesn't 
require major surgery to DECB/HDB-DOS/etc. and the disk layouts already 
in use. It would still require some minor changes to the Nitros9 
REL/Boot modules.[1][2]

Instead of launching directly into REL when control is transferred to 
the boot track by DECB, it would be trivial to add a few bytes of code 
that load a few additional sectors from, say, track 33. Say you loaded 
an additional 9 sectors at $3800. We can ignore cases where people are 
using DECB 1.0 in this case.[3]

Then, modify REL to probe the area after the boot track and see if there 
is a helper module there. If it finds it, it relocates that module to 
just below where REL itself was loaded and records that fact somewhere. 
Presumably, such a boot module would be expecting the helper module so 
it could easily deal with the relatively small change in memory layout 
it causes.

That would only add a fairly small number bytes to the standard boot 
track header and a bit of code to REL which will certainly not explode 
the boot track.

[1] Of course, properly encapsulating the boot process in Nitros9 so it 
isn't an incestuous relationship between three modules having to know 
exactly where they are in memory would be better. But that's not 
required for this.

[2] Or maybe use Brett's CocoBoot project which would need a driver for 
the SD card, but otherwise should be able to handle it. See 
https://sites.google.com/site/cocoboot2/home for more info.

[3] Nobody with this sort of hardware is likely to be using the old 1.0 
Disk Basic which doesn't have the DOS command.



More information about the Coco mailing list