170 karma · joined November 20, 2019
For the moment I have a floppy disk that loads my network card drivers and then copies the kernel over the network into ram. That makes debugging things way easier than having to burn a floppy with every code change.
That gives you a standard OFS bootblock that returns to AmigaDOS. Mine is a custom bootblock, same DOS\0 magic and checksum format so Kickstart accepts it, but it never enters AmigaDOS.
> What I find mind-boggling is the handwave over the rest
Fair, I should have been more specific. The network driver is the popular cnet.device which is compatible with my PCMCIA ethernet card. It's loaded from fixed floppy sectors.
> it would be madness to try doing this in a bootblock
Agreed, and I don't. It's a multi-stage boot that stays at exec level throughout, AmigaDOS is never started, no process is created, no startup-sequence runs, _DOSBase is explicitly NULL.
The disk is a standard 880K ADF with no filesystem at all, it's just raw binaries at fixed sector offsets. The only ROM libraries used are exec.library, intuition.library and graphics.library for a debug display. Everything else is self-contained on the disk.
So you're right that it isn't the bootblock doing the networking.
It referenced the Amiga ROM Kernel Reference Manual, appendix C to create a boot block in assembly. It's a raw sector-mapped image, the build process creates a blank adf, which then writes everything at it's fixed offsets and we go back with another tool to patch the bootblock with the right checksum so the kernel accepts it.
I copied that adf to the A1200 so I can then write it to a real floppy.
This is repeated often and simply isn't true.