[Coco] Where are the separate bootfiles?
Paul T. Barton
idezilla at yahoo.com
Sat Dec 27 15:08:27 EST 2003
--- Gene Heskett <gene.heskett at verizon.net>
wrote:
--snipped--
> Paul; If I understand you, and even though the
> pieces are there on
> disk2's image to make a new kernel track, I get
> the impression you
> want the kernel track from disk1, right?
>
> I have published a utility called kernel2dir if
> I recall the name
> correctly. Maybe krnl2dir?
>
> It will build a directory entry that points to
> the kernel track, which
> in turn will allow that track to be copied to
> another disk, but as a
> normal file. Or one can cd to an empty
> directory and use "vfy -sk
> path2file" to split it up into its 5 component
> parts, which are:
>
> 1: The 6 byte header required by rsdos when it
> loads and execs a
> binary file
>
> 2: rel, the util that copies the kernel track
> to its proper location
> in memory, and which once done, jumps (IIRC) to
> the boot module to
> load the os9boot file. If my IIRC is wrong,
> and it jumps first to
> os9p1, then once os9p1 has set things up it
> returns to rel or jumps
> to boot.
>
> 3: the boot module, which interrogates LSN0 of
> the designated disk to
> get the location and length of the os9boot file
> and loads it.
>
> 4: os9p1, now kernelp1, which sets up a
> boatload of variables and
> jumps to os9p2(kernelp2 now) which completes
> the system init,
> including a search for os9p3, a seperate module
> that looks up any
> error numbers in the errno file on the disk.
>
> 5: a table of jump addresses that lives past
> the end of kernelp1, and
> which normally occupy the top few bytes of
> system memory. These are
> the addresses the hardware jumps to when one of
> the hardware
> interrupts or SWI's is executed among other
> things.
>
> vfy works that way as it looks for the 87cd
> header of a module, and
> gets the module size from that modules header.
> If it hasn't
> triggered an 87cd as it reads the files first
> integer, then it puts
> that into a kernelhead file, ditto for the next
> 2 integers. On the
> next read it finds rel's 87cd and starts to
> write that module out.
> This continues until it has reached the end of
> os9p1. But it has not
> reached the end of the file at that point so it
> writes the remaining
> few bytes as a file called kerneltail.
>
> To rebuild a kernel track for the new os9gen to
> use, all 5 of these
> files must be merged back into one 4608 byte
> long kernel track in the
> proper order. Its the boot module that gets
> patched to control which
> device the booting is actually done from. This
> is required because
> there is not, at that point in the bootup,
> knowledge of a valid
> filesystem, so its all by absolute addresses
> direct to the disk
> controller chip.
>
> I found this krnl2dir to be a very handy tool
> many years ago when
> nitro9 was going through its genesis.
>
> Does this explain it adequately?
>
> --
> Cheers, Gene
--snipped--
No, I already know some of this,
but I appreciate the really detailed
information, Thanks. It gave me more info
about the track-34 setup. I need explanations
as detailed as this. Again, thanks.
I guess I was being lazy and just asking for
the "kernelp1" file so that I can put
it directly into my coco3.rom source.
Then I can make another boot-rom to boot
directly into nitros9 without floppies
(to my IDE drives). Sorry I didn't elaborate.
Paul T Barton (so you can tell which Paul)
__________________________________
Do you Yahoo!?
New Yahoo! Photos - easier uploading and sharing.
http://photos.yahoo.com/
More information about the Coco
mailing list