Jump to content

What boot sector is better?


Recommended Posts

I've just noticed that not all programs in Windows 98/SE/ME put the same boot sectors to the formatted disk. There are 2 variants, both for FAT12(16) and for FAT32.

The first variant is used by FORMAT.COM (FAT12+FAT32), SYS.COM (FAT12+FAT32), SETUPX.DLL (FAT12), CVT.EXE (FAT32)

This type of FAT12/16 boot record is analyzed here:

http://www.geocities.com/thestarman3/asm/mbr/WIN98FDB.htm

This type of FAT32 boot record is analyzed here

http://www.geocities.com/thestarman3/asm/mbr/MSWIN41.htm

http://home.att.net/~rayknights/pc_boot/w95bboot.htm

The second variant is used in DSKMAINT.DLL only (both FAT12 and FAT32)

This type of FAT12/16 boot record is analyzed here:

http://home.att.net/~rayknights/pc_boot/w95aboot.htm

This type of FAT32 boot record is probably analyzed nowhere.

What is the difference of FAT12 boot sectors?

The first variant:

1. Looks for JO.SYS, then for IO.SYS if the boot device is not hard drive. (This feature is used on the install boot disk and in the boot image of the bootable CD-ROM)

2. Does not look for WINBOOT.SYS

3. Uses INT13 Extensions if the boot device is harddrive and if the active primary partition is type 0C or 0E.

The second variant:

1. Looks for WINBOOT.SYS and, if not found, for IO.SYS

2. Never looks for JO.SYS

3. Never uses INT13 extensions => cannot be used for booting from bigger disks (>512MB)

What variant is better? What should be used? Should't we relpace the boot records in DSKMAINT.DLL by boot records in FORMAT.COM or vice versa? They are stored as resources in DSKMAINT.DLL.

Another problem is the localization (translation) of the boot record. There are error messages:

$0D$0AInvalid system disk$FF

$0D$0ADisk I/O error$FF

$0D$0AReplace the disk, and then press any key$0D$0A

CVT.EXE and SETUPX.DLL contain no translation.

FORMAT.COM and SYS.COM have error messages translated, but in many languages incorrectly - there are missing some important bytes, for example there is used FF twice as a flag for the program to jump to other place.

DSKMAINT.DLL have similar problem, and I even noticed that the translation is not used at all.

If we decide to change the boot record it should be discovered how the program determines the location where to put the translated string.

The localization problem is not very important but for perfectness could be done.

The main question remains - what format is better? Command line FORMAT.COM or Windows one using DSKMAINT.DLL?

Petr

Edited by Petr
Link to comment
Share on other sites


With regard to the .DLLs, do you know which programs use them, expecially diskmaint.dll?

Clearly the variant to boot from a larger partition is necessary, frills aside. Perhaps the one in diskmaint.dll is only used where it can be? [The link you gave expectedly described a 950(a) system that cannot even support FAT32, although that's an issue unrelated to a 512 MB boundary.]

cjl

Link to comment
Share on other sites

With regard to the .DLLs, do you know which programs use them, expecially diskmaint.dll?

Yes, diskmaint.dll is used if you right click the disk in explorer and select Format.

It is fact that the occasions when you format bootable hdd in Windows environment will be rare but it may happen.

Petr

Link to comment
Share on other sites

With regard to the .DLLs, do you know which programs use them, expecially diskmaint.dll?

Yes, diskmaint.dll is used if you right click the disk in explorer and select Format.

It is fact that the occasions when you format bootable hdd in Windows environment will be rare but it may happen.

Petr

Have you tried to? Does it boot or not?

Build a system that boots up Windows in say, Drive F: There are only a handful of files required on Drive C: for this situation. Format the drive with system files on it, then, before rebooting, put back the files for Drive C: [from a safety backup]. See if this works for all sizes of bootable drive C:. I assume the sensitive sizes would be 511 MB, 2 GB [both for FAT16 and FAT32 in both cases], and just under 8 GB and over that much for FAT32 only.

If the info is correct, only the first cases should work!

cjl

Link to comment
Share on other sites

The main question remains - what format is better? Command line FORMAT.COM or Windows one using DSKMAINT.DLL?

Petr

I may be going out on a limb but it could be "none of the above" or "all of the above". It does NOT matter whether using Format.com or Dskmaint.dll when formatting drives as long as your drives work properly on your computer after they are formatted.

FAT12 is used on floppy disks and/or partitions that are 16Mb or less. FAT16/FAT32 is used on hard drives and removable drives such as Jaz/Zip drives.

note - dskmaint.dll is not included in w2k/xp; only found in win95/98/me

Edited by erpdude8
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...