Purpose of this document is to define the details of FAT16 file system for MultiMediaCards’ user data area. First of all, various FAT systems have their roots in magnetic media (floppy disks and hard drives). With that background, FAT file system introduces some need to relate the byte-unit linearly addressed MultiMediaCard and conventional magnetic media. In order to maintain consistency at all levels, this document deals with the following specifics: - CHS geometry: how to translate the card characteristics into the conventional CHS geometry of magnetic media - Master Boot Record (partitioning): how and why to introduce the MultiMediaCard as logical hard drive(s), conversions between physical and logical addresses and addressing modes - Partition Boot Record(s), aka partition boot sector: how to define the actual FAT16 file system within a partition - Directory entries: how to create files and directories (with conventional 8+3 filenames) - Optional long filename support (VFAT): how to avoid breaking inter operability between systems that do support VFAT and those that don’t CHS geometry is used as a basis for all calculations to maintain consistency throughout all addressing modes. 2 Physical CHS geometry The goal of this chapter is to define a way to calculate a physical (media-based) CHS geometry for an arbitrary card with the following guidelines: - Calculated CHS should reflect card properties and potential as they are expressed in the card CSD register and MultiMediaCard System Specification - Singular conversions between addressing modes (CHS, linear sector and linear card address) - Simple and efficient conversion methods - Minimal waste of card memory capacity in address conversions In order to simplify the expressions, the following notations are defined. Practical implementation of these notations should be straightforward on any platform. - floor(x): closest integer ≤ x - ceil(x): closest integer ≥ x - ceil2(x): closest even integer ≥ x - rem(x, y): remainder of integer division (x/y). The remainder, x and y are ≥ 0 - min(r): smallest value found in a finite-length range of numbers - max(r): largest value found in a finite-length range of numbers The following table summarizes the all the factors that need to be considered at this point