Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
File Allocation Table
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== FAT12 === <!-- NB. The header "FAT12" is used in redirects to this page. --> {{infobox file system | name = FAT12 | developer = [[Seattle Computer Products|SCP]], [[Microsoft]], [[IBM]], [[Digital Research]], [[Novell]] | full_name = [[Design of the FAT file system#FAT12|12-bit File Allocation Table]] | introduction_date = {{ubli | 1980-07 ([[QDOS 0.10]], 16-byte directory entries) | 1981-02-25 ([[86-DOS 0.42]], 32-byte [[FAT directory entry|directory entries]], several reserved sectors) | c. 1981β08/10 ([[PC DOS 1.0]], 32-byte directory entries, 1 reserved sector) | 1982-03-03 ([[MS-DOS 1.25]], 32-byte directory entries, 1 reserved sector) }} | partition_id = [[Master Boot Record|MBR]]/[[Extended Boot Record|EBR]]:{{ubli | [[#FAT12|FAT12]]: <code>{{abbr|0x|Values in C-notation for hexadecimal numbers}}[[Partition type#PID 01h|01]]</code> e.a. | [[Basic data partition|BDP]]: <code>EBD0A0A2-B9E5-4433-87C0-68B6B72699C7</code> }} | max_volume_size = {{ubli | 16 MB (with 4 KB clusters) | 32 MB (with 8 KB clusters)<!-- larger volumes should use logical sectored FAT partition IDs or FAT16 partition IDs --> }} | max_file_size = Limited by volume size | file_size_granularity = 1 byte | max_files_no = 4,068 for 8 KB clusters<!-- 2^12 - 12 (reserved clusters) - 16 (number of 8 KB clusters for directory entries) --> | max_filename_size = [[8.3 filename]] with [[OEM character set|OEM]] characters, <br />255 [[UCS-2]] characters<ref group="nb" name="NB_LFN_UNI"/> when using [[Long filename|LFN]] | max_directory_depth = 32 levels or 66 characters (with [[Current Directory Structure|CDS]]), <br />60 levels or more (without CDS) | dates_recorded = {{ubli | Modified date (not with 86-DOS before 0.42), | modified time (not with PC DOS 1.0 and 86-DOS), creation date/time (DOS 7.0 and higher only), | access date (only available with [[ACCDATE (CONFIG.SYS directive)|ACCDATE]] enabled),<ref name="Microsoft_2006_ACCDATE" /> | deletion date/time (only with DELWATCH 2<!-- with Novell DOS 7, Caldera OpenDOS 7.01, DR-DOS 7.02 and higher -->) }} | date_range = [[Epoch of 1980-01-01|1980-01-01]] to [[Year 2100 problem|2099-12-31]] ([[Year 2108 problem|2107-12-31]]) | date_resolution = {{ubli | 2 seconds for last modified time, | 10 ms for creation time, | 1 day for access date, | 2 seconds for deletion time }} | attributes = [[FAT file attributes|Read-only]] (since DOS 2.0), [[FAT file attributes|hidden]], [[FAT file attributes|system]], [[FAT file attributes|volume]] (since [[MS-DOS 1.28]] and [[PC DOS 2.0]]), [[FAT file attributes|directory]] (since [[MS-DOS 1.40]] and PC DOS 2.0), [[FAT file attributes|archive]] (since DOS 2.0) | file_system_permissions = {{ubli | File, directory and volume access rights for [[FAT file access rights|read]], [[FAT file access rights|write]], [[FAT file access rights|execute]], [[FAT file access rights|delete]] only with [[DR-DOS]], [[PalmDOS]], [[Novell DOS]], [[OpenDOS]], [[FlexOS]], [[IBM 4680 OS|4680 OS]], [[IBM 4690 OS|4690 OS]], [[Concurrent DOS]], [[Multiuser DOS]], [[Datapac System Manager|System Manager]], [[REAL/32]]:{{ubli | execute right only with FlexOS, 4680 OS, 4690 OS; individual file / directory passwords not with FlexOS, 4680 OS, 4690 OS<!-- at least I could not find any user or programmer's documentation for it so far -->; | [[FAT file access rights|world]]/[[FAT file access rights|group]]/[[FAT file access rights|owner]] permission classes only with multiuser security loaded }} }} | compression = Per-volume, [[SuperStor]], [[Stacker (disk compression)|Stacker]], [[DoubleSpace]], [[DriveSpace]] | encryption = Per-volume only with [[DR-DOS]] }} Between April and August 1980, while borrowing the FAT concept for SCP's own 8086 operating system [[QDOS 0.10]],<ref name="Hunter_1983_Softalk" /> Tim Paterson extended the table elements to '''12 bits''',<ref name="Paterson_2007_Design-DOS" /> reduced the number of FATs to two, redefined the semantics of some of the reserved cluster values, and modified the disk layout, so that the root directory was now located between the FAT and the data area for his implementation of '''FAT12'''. Paterson also increased the nine-character (6.3) filename<ref name="Microsoft_1979_BASIC80-50" /><ref name="Microsoft_1979_BASIC80-51" /> length limit to eleven characters to support [[CP/M]]-style [[8.3 filename]]s and [[File Control Block]]s. The format used in Microsoft ''Standalone Disk BASIC's'' 8-bit file system precursor was not supported by QDOS. By August 1980, QDOS had been renamed to [[86-DOS]].<ref name="BYTE_1980_86-DOS" /> Starting with [[86-DOS 0.42]], the size and layout of directory entries was changed from 16 bytes to 32 bytes<ref name="SCP_1981_86-DOS_1.0_Addendum" /> in order to add a file date stamp<ref name="SCP_1981_86-DOS_1.0_Addendum" /> and increase the theoretical file size limit beyond the previous limit of 16 MB.<ref name="SCP_1981_86-DOS_1.0_Addendum" /> [[86-DOS 1.00]] became available in early 1981. Later in 1981, 86-DOS evolved into Microsoft's [[MS-DOS]] and [[IBM]] [[PC DOS]].<ref name="Duncan_1988_MS-DOS_Encyclopedia" /><ref name="Paterson_2007_Design-DOS" /><ref name="Wallace_1992_Harddrive" /> The capability to read previously formatted volumes with 16-byte directory entries<ref name="SCP_1981_86-DOS_1.0_Addendum" /> was dropped with [[MS-DOS 1.20]]. FAT12 used 12-bit entries for the cluster addresses; some values were reserved to mark the end of a chain of clusters, to mark unusable areas of the disk, or for other purposes, so the maximum number of clusters was limited to 4078.<ref name="Norton2" /><ref name="Jenkinson_2000_Forensic" /> To conserve disk space, two 12-bit FAT entries used three consecutive 8-bit bytes on disk, requiring manipulation to unpack the 12-bit values. This was sufficient for the original floppy disk drives, and small hard disks up to 32 megabytes. The [[#FAT16B|FAT16B]] version available with DOS 3.31 supported [[32-bit]] sector numbers, and so increased the volume size limit. All the control structures fit inside the first track, to avoid head movement during read and write operations. Any bad sector in the control structures area would make the disk unusable. The DOS formatting tool rejected such disks completely. Bad sectors were allowed only in the file data area. Clusters containing bad sectors were marked unusable with the reserved value <code>0xFF7</code> in the FAT. While 86-DOS supported three disk formats (250.25 KB, 616 KB and 1232 KB, with [[FAT ID]]s <code>0xFF</code> and <code>0xFE</code>) on 8-inch (200 mm) floppy drives, IBM [[PC DOS 1.0]], released with the original [[IBM Personal Computer]] in 1981, supported only an 8-sector floppy format with a formatted capacity of 160 KB (FAT ID <code>0xFE</code>) for single-sided 5.25-inch floppy drives, and [[PC DOS 1.1]] added support for a [[double-sided disk|double-sided]] format with 320 KB (FAT ID <code>0xFF</code>). [[PC DOS 2.0]] introduced support for 9-sector floppy formats with 180 KB (FAT ID <code>0xFC</code>) and 360 KB (FAT ID <code>0xFD</code>). 86-DOS 1.00 and PC DOS 1.0 directory entries included only one date, the last modified date. PC DOS 1.1 added the last modified time. PC DOS 1.x [[file attribute]]s included a hidden bit and system bit, with the remaining six bits undefined. At this time, DOS did not support sub-directories, but typically there were only a few dozen files on a [[floppy disk|diskette]]. The [[PC XT]] was the first PC with an IBM-supplied hard drive, and PC DOS 2.0 supported that hard drive with FAT12 ([[FAT ID]] <code>0xF8</code>). The fixed assumption of 8 sectors per clusters on hard disks practically limited the maximum partition size to 16 MB for 512 byte sectors and 4 KB clusters. The ''[[BIOS Parameter Block]]'' (''BPB'') was introduced with PC DOS 2.0 as well, and this version also added read-only, [[archive bit|archive]], [[volume (computing)|volume label]], and [[Directory (file systems)|directory]] attribute bits for hierarchical sub-directories.<ref name="two" /> [[MS-DOS 3.0]] introduced support for high-density 1.2 MB 5.25-inch diskettes (media descriptor <code>0xF9</code>), which notably had 15 sectors per track, hence more space for the FATs. FAT12 remains in use on all common [[floppy disks]], including 1.44 MB and later 2.88 MB disks (media descriptor byte <code>0xF0</code>).
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)