On at 2024-05-23 11:42 +0100, Liam Proven via Freedos-devel wrote:
On Tue, 21 May 2024 at 19:22, E. C. Masloch via Freedos-devel
<freedos-devel@lists.sourceforge.net> wrote:

64 Ki * 16 KiB = 1024 MiB. (The actual maximum amount of clusters is of
course slightly less than 64 Ki, to be exacting.) So you're off-by-one,
a "2 GB" file system cannot possibly be fully utilised with FAT16 at a
16 KiB per cluster size.

Ah, OK. My apologies.

Off-by-one errors are of course one of the two hardest problems in
computer science, along with cache invalidation and naming things.

Ha!

Hence tom's suggestion of FAT17.

Clearly there's a joke here but I don't see it or get it. Ah well.
Perhaps mine above will meet a similar reception.

It's simple. FAT16 has 16 (significant) bits per FAT entry, so it can address a FAT of nearly 64 Ki entries. If there was a FAT variant with 17 (significant) bits per FAT entry, the available space for FAT entries would double to nearly 128 Ki, so your initial numbers (2 GiB FS at 16 KiB / cluster) would be correct.

(Because FAT32 actually has only 28 significant bits in its FAT entries some have called it "FAT28".)

So, 1GB-2GB FAT16 partitions used 32kB clusters, and it was the
orginally-NT-only 64kB clusters that were for 2-4GB drives.

Precisely. (Except for how you're using SI base 1000 prefixes in the JEDEC base 1024 meaning. I think that "KB" should be all-caps in the JEDEC use.)

Regards,
ecm




_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to