braner@batcomputer.tn.cornell.edu (braner) (07/29/87)
[] The reports on problems with the "write IBM boot sector" option in DCFORMAT led me to examine the relevant sectors with a sector editor ("Tinytools"). DCFORMAT replaces the TOS boot sector (which holds the BIOS parameters only) with an IBM-type boot sector (MS-DOS 3.2), which includes executable 8086 code. (The ST, with TOS in ROM, ignores that code.) I noticed a funny thing: if you don't click on "2 sides" first, DCFORMAT will write an IBM boot sector that declares the disk as _single_sided_, even if the disk was already formatted as double-sided. Of course, that will lead to erroneous I/O, on either the IBM _or_ the ST. That can be fixed by running DCFORMAT again and doing it right. What DCFORMAT does _not_ do is change the first byte of the FAT (a disk- format ID) from $F7 (what TOS puts there, even though it puts $F9 in the boot sector!) to $F9 (what the IBM uses). I don't know if that FAT byte matters. The only other difference I could find between the ST and IBM formats is that the IBM uses 3-sector FATs and the ST uses 5. That should not matter as long as the right info is in the boot sector. Can somebody tell us where, in the boot sector (?), is the info whether the FAT entries are 12- or 16-bits long? Perhaps the $F9 ID is the only place? - Moshe Braner