Why do PCs load their boot sector at 7C000h linear?
glamenv-septzen.net
glamenv-septzen.net
You can see the actual bootloader code in the PC's BIOS here:
http://static.pcjs.org/pubs/pc/reference/ibm/5150/techref/19...
The address is mentioned in lines 44 and 45 here:
http://static.pcjs.org/pubs/pc/reference/ibm/5150/techref/19...
(It would be so very awesome if this was the sort of documentation you got if you purchased a new computer, although perhaps on a disc instead of hardcopy.)
shudders
"The 16-bit segment selector in the segment register is interpreted as the most significant 16 bits of a linear 20-bit address"
However, Wikipedia has a funny quote on that
"Once the BIOS has found a bootable device it loads the boot sector to linear address 7C00h (usually segment:offset 0000h:7C00h, but some BIOSes erroneously use 07C0h:0000h"
Also once upon a time SCP tucked it into 0200-03FF because that ram was otherwise unused.
> "DOS 1.0 required a minimum of 32KB, so we weren't concerned about attempting a boot in 16KB."
> (Note: DOS 1.0 required 16KiB minimum ? or 32KiB ? I couldn't find out which correct. But, at least, in 1981's early BIOS development, they supposed that 32KiB is DOS minimum requirements.)
If it was used in a context with higher precedence than multiplication, it'd be a bug.
TerryADavis 2 hours ago [dead] http://www.templeos.org/Wb/Adam/Opt/Boot/BootMHD.html http://www.templeos.org/Wb/Adam/Opt/Boot/BootMHD2.html http://www.templeos.org/Wb/Adam/Opt/Boot/BootHD.html
---- [End of Quote]
Thanks, Terry!