Subject: Re: Booting a net4501 with a dumb CF card
From: David Laight <firstname.lastname@example.org>
Date: 07/25/2003 09:43:05
> > Send the CF card and/or BIOS back to the manufacturer.
> Yeah, right :)
They really shouldn't get away with shipping such broken code.
> Anyway, it works now. I'm not complaining. Besides, I must say the new
> bootblocks are neat. Thanks for that.
A mantlepiece of tight code - especially mbr.S
> Before I added the loop, INT 13h returned an error. I haven't
> bothered to check what was in %ah.
Given the bios is buggy, it is probably completely uninformative.
> > IIRC there isn't much space in pbr.S - someone claimed it was 3 bytes
> > too big anyway - so some code would have to be removed in order to
> > fit the loop in. The code that checks whether the BIOS supports
> > LBA reads is a prime candidate (the pbr code must have been read using
> > BIOS reads...)
> Mmm. Do the PBR suffers the same limitation as the MBR? I mean, does it
> have to leave space for a partition table? There's already plenty of
> space lost with parameter block.
It has to fit in 512 bytes. You are correct in that it shouldn't have
to leave space for a partition table. However the old version did, and
some people made use of that fact and used the pbr code as mbr code on
hard disks (where the bios is likely to validate the partition table).
> Including my patch, and under normal building circumstances (TERSE_ERROR
> is not defined, nor is NO_LBA_CHECK. MESSAGE_PAUSE is not either, but I
> guess that's the default.), the code ends at 0x1d2. Why would that be
> too large?
That is the default, the defines are partially there because I cloned
the mbr.S file, and partially because adding diagnostics tends to
explode the size limit.
It is only too large if you need a partition table...
David Laight: email@example.com