Format 1.2 MB 5.25 Floppy Disks in MS-DOS 6.22

This article explains the technical process MS-DOS 6.22 uses to format high-density 1.2 MB 5.25-inch floppy diskettes. It covers the required command syntax, physical track-and-sector geometry, and the creation of logical structures including the boot sector, the File Allocation Table (FAT12), and the root directory, concluding with the surface verification phase.

The FORMAT Command Syntax

In MS-DOS 6.22, the FORMAT.COM utility manages diskette preparation. When executed on a native 1.2 MB drive, typing FORMAT A: defaults to formatting the media at maximum capacity. If the drive or media state requires explicit targeting, MS-DOS accepts parameter switches:

FORMAT A: /F:1.2

or manually defining tracks and sectors:

FORMAT A: /T:80 /N:15

Physical Track and Sector Geometry

During formatting, MS-DOS 6.22 works through the floppy disk controller (FDC) via ROM BIOS interrupts (INT 13h, Function 05h) to lay down physical sector markers on the magnetic media. A high-density 1.2 MB 5.25-inch disk uses the following layout:

  • Tracks/Cylinders: 80 tracks per side (numbered 0 to 79).
  • Heads/Sides: 2 heads (double-sided, numbered 0 and 1).
  • Sectors per Track: 15 sectors.
  • Sector Size: 512 bytes.
  • Data Transfer Rate: 500 kbps at 360 RPM.

The raw capacity calculation is:
80 cylinders × 2 heads × 15 sectors/track × 512 bytes/sector = 1,228,800 bytes (approximately 1.2 MB).

The controller writes address marks, sector ID headers, data fields initialized with a fill byte (typically 0xF6), and inter-sector gaps to maintain alignment.

Creation of Logical File System Structures

Once the physical sectors are established, MS-DOS 6.22 writes the logical file system structures to allow file storage:

  1. The Boot Sector (Cylinder 0, Head 0, Sector 1):
    Contains the bootstrap loader code and the BIOS Parameter Block (BPB). The BPB defines disk parameters: 512 bytes per sector, 1 sector per cluster, 1 reserved sector, 2 FAT copies, a maximum of 224 root directory entries, 2,400 total sectors, media descriptor byte 0xF9, 15 sectors per track, and 2 heads. It also generates a pseudo-random 32-bit Volume Serial Number.

  2. File Allocation Tables (FAT12):
    MS-DOS formats two identical copies of the FAT for redundancy. Because total clusters do not exceed 4,085, it implements FAT12, where each cluster entry consumes 12 bits (1.5 bytes). The first three bytes of each FAT are initialized with F9 FF FF—representing the media descriptor byte (0xF9) followed by two end-of-chain markers. All subsequent cluster entries are initialized to zero, marking them as free space.

  3. Root Directory:
    Immediately following the FAT tables, MS-DOS reserves 14 sectors to house the root directory. At 32 bytes per directory entry, this allows a fixed limit of 224 file and directory entries. These sectors are initialized to zero.

  4. Data Clusters:
    The remaining sectors are grouped into clusters. On a 1.2 MB disk, cluster size is set to 1 sector (512 bytes), providing 2,371 available clusters for user data.

Verification and Bad Sector Marking

Unless the /Q (quick format) switch is used, MS-DOS 6.22 performs a read verification of the entire surface. If any sector fails verification, FORMAT marks the corresponding cluster entry in the FAT with the value 0xFF7 (bad cluster). This prevents the operating system from attempting to read or write data to defective areas of the magnetic surface.

After verification, MS-DOS prompts the user to enter an optional 11-character volume label and displays a summary detailing total disk space, bytes available in bad sectors (if any), and available user storage.