[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Thoughts regarding MS-DOS FST
In article <uerics.723603074@mcl> uerics@mcl.ucsb.edu (Eric D. Shepherd) writes:
>
> Well... in order to support the larger volumes, I believe they had to
> slightly modify the structure of the FAT. For that reason, older versions
> of Norton Utilities will _destroy_ MS-DOS 4.0 and higher disks - the FAT
> registers as being invalid, and N.U. tries to fix it, thus destroying the
> disk. I know this one from experience... I watchd a roommate obliterate
> his hard drive that way once.
I've had a look through a DOS book at work (DOS Programmer's Reference,
3rd Edition, by Dettmann & Johnson), and have come up with the following
information about the FAT:
The original FAT used 12-bit entries. With MS-DOS 3.0 and later, disks
larger than 16 MB use 16-bit entries, which allows the cluster size to be
2k rather than 4k. The maximum disk size is 32 megabytes, which requires
a 16384-entry cluster.
The main reason for the 32 megabyte limit is an internal DOS function
that addresses the disk using an "absolute sector number", which is only
16 bits. 65536 x 512 bytes = 32 megabytes.
With DOS 4.0, this function now accepts a 32-bit absolute sector number.
Therefore, under DOS 4.0 and later, the FAT can grow up to 65536 entries,
allowing a 128 MB disk (partition) using 2k clusters. Larger cluster
sizes are needed to support larger partitions.
The only special feature of the DOS 4.0 FAT is that it can have more than
16384 entries.
The problem encountered by Norton Utilities was that the absolute sector
number couldn't be represented in 16 bits, so the program misbehaved if
used on a disk that was larger than 32 megabytes.
--
David Empson
Internet: David.Empson@bbs.actrix.gen.nz EMPSON_D@kosmos.wcc.govt.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand