Petr Posted June 5, 2006 Share Posted June 5, 2006 (edited) 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.htmThis type of FAT32 boot record is analyzed herehttp://www.geocities.com/thestarman3/asm/mbr/MSWIN41.htmhttp://home.att.net/~rayknights/pc_boot/w95bboot.htmThe 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.htmThis 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.SYS3. 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.SYS2. Never looks for JO.SYS3. 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$0ACVT.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 June 5, 2006 by Petr Link to comment Share on other sites More sharing options...
CLASYS Posted June 6, 2006 Share Posted June 6, 2006 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 More sharing options...
Petr Posted June 6, 2006 Author Share Posted June 6, 2006 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 More sharing options...
CLASYS Posted June 6, 2006 Share Posted June 6, 2006 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.PetrHave 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 More sharing options...
erpdude8 Posted June 7, 2006 Share Posted June 7, 2006 (edited) The main question remains - what format is better? Command line FORMAT.COM or Windows one using DSKMAINT.DLL?PetrI 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 June 7, 2006 by erpdude8 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now