From: Eric A. <e....@jp...> - 2011-09-25 21:26:32
|
Hi Christian, >> As far as I remember, the MS DOS 7.x / Windows 9x boot >> sectors did use it and it is in fact intentional there. > > Almost entirely certain that you are wrong. > > Superficially checked both boot sectors in the MS-DOS 7.10 SYS.COM now > (one's for FAT12 and FAT16, the other for FAT32) and they both load ds:si > with a different pointer pretty early on without saving the previous > value. Concluding that I am right and neither uses the partition table > left in memory by the MBR code. Checking again, the web tells me: http://thestarman.pcministry.com/asm/mbr/STDMBR.htm#CODE http://thestarman.pcministry.com/asm/mbr/95BMEMBR.htm#CODE The MBR of FDISK of MS DOS 3.30 to Win95 and of Win95b to WinME all make sure to set SI before jumping to the boot sector, which leads to the question why they do it if it would be unintentional ;-) It does at least mean that many MBRs out there do set this pointer. http://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#CODE The FAT32 Win9x boot sector seems to ignore SI, as you say, but instead it scans the MBR for a primary partition that starts at the same LBA position as specified in the FAT32 boot sector in the partition offset / hidden sectors field to then use the partition type info in the partition table to check whether CHS or LBA should be used (call 7d30 etc) by checking the partition type. If MS likes it that way... If you get bored, you can read more MBRs and boot sectors at: www.rayknights.org/pc_boot/pc_boot.htm Eric |