How MS-DOS 6.22 Handles Low-Level Formatting
MS-DOS 6.22 does not directly communicate with hard drive controllers to execute low-level formatting, instead relying on BIOS interrupts for media initialization while restricting its native tools to high-level filesystem creation. Understanding this process requires examining the division of responsibility between the MS-DOS operating system, the ROM BIOS, and hardware drive controllers, as well as the distinction between floppy disk formatting and fixed disk management during the early-to-mid 1990s.
The Role of FORMAT.COM: High-Level vs. Low-Level Formatting
The native MS-DOS 6.22 utility FORMAT.COM does not
perform true low-level formatting (LLF) on hard disks. A true low-level
format writes physical track markers, sector headers, interleave gaps,
and error-correcting code (ECC) bits directly to magnetic media.
When executed against a hard drive partition, FORMAT.COM
only performs a high-level format:
- It verifies existing sector readability.
- It writes a new volume boot record (VBR).
- It initializes the File Allocation Tables (FAT16).
- It clears the root directory structure.
Because MS-DOS 6.22 was designed around device abstraction, the
operating system kernel (MSDOS.SYS) and standard utilities
do not include hardware-specific drivers for issuing raw ATA, IDE, or
SCSI controller-level commands.
Floppy Disk Controller Management via BIOS INT 13h
The exception to MS-DOS 6.22 avoiding low-level operations is the
floppy diskette. For floppy media, FORMAT.COM executes a
combined physical and logical format.
Rather than sending commands directly to the Floppy Disk Controller (FDC) chip (typically an Intel 82072A or NEC µPD765), MS-DOS hands the operation over to the ROM BIOS:
- BIOS Invocation: MS-DOS calls software interrupt
INT 13h, with registerAHset to05h(Format Track). - Parameter Passing: The calling routine populates an
address field buffer containing 4-byte headers for each sector on the
track (Cylinder, Head, Sector number, and Sector Size code). Registers
specify the drive number (
DL), head (DH), and cylinder (CH). - Hardware Execution: The ROM BIOS translates this
software interrupt into physical I/O commands sent to the FDC through
port registers
0x3F4(Main Status Register) and0x3F5(Data Register), utilizing Direct Memory Access (DMA Channel 2) to transfer the sector headers. - Drive Action: The controller drives the read/write head to the designated track, detects the index pulse, and writes the physical sector address marks, sync bytes, gaps, and fill characters across the track.
Hard Drive Low-Level Formatting Constraints
By the time MS-DOS 6.22 was released in 1994, IDE/ATA drives had completely superseded older MFM and RLL drives. IDE (Integrated Drive Electronics) relocated the disk controller directly onto the physical drive housing.
Because modern IDE drives utilized embedded servo data written at the factory to guide the read/write heads, issuing a classical low-level format command would destroy alignment data, rendering the drive permanently unusable. Consequently:
- BIOS Blocking: Most PC BIOS implementations
stripped the ability of
INT 13h, AH=05hto format tracks on fixed disks, returning an error code if called on drive IDs80hor higher. - Controller Encapsulation: ATA drives translated physical geometry (cylinders, heads, sectors) into logical geometry through internal translation mechanisms. MS-DOS had no awareness of the actual physical geometry.
How Low-Level Hard Drive Tasks Were Bypassed in the DOS Era
Because MS-DOS 6.22 lacked direct controller command dispatching for hard disks, users requiring low-level routines had to bypass the operating system entirely using one of three methods:
- Direct Debug Scripting for MFM/RLL Controllers: On
older systems, users ran the MS-DOS utility
DEBUG.EXEto jump directly into an onboard controller ROM address (commonlyG=C800:5), which executed the controller manufacturer's native low-level formatting firmware. - Dedicated ATA Command Tools: Specialized vendor
software (such as utilities from Seagate, Western Digital, or Ontrack)
bypassed MS-DOS system calls and wrote directly to ATA task file I/O
registers (ports
0x1F0through0x1F7). These tools issued specific vendor firmware commands, or the ATAINITIALIZE DRIVE PARAMETERS(91h) command, to zero-fill sectors rather than physically restructure the tracks. - SCSI Controller BIOS Menus: SCSI host adapters
(such as Adaptec cards) maintained their own independent option ROMs.
Low-level formatting of SCSI targets was handled inside the adapter's
configuration menu during boot via the SCSI
FORMAT UNIT(04h) command, independent of MS-DOS.
In summary, MS-DOS 6.22 manages drive controller commands during disk
formatting entirely through software abstraction. It relies on the BIOS
INT 13h interface for track-level formatting of floppy
disks, while delegating high-level partition initialization to its
native utilities and leaving true hard disk low-level management to
specialized controller hardware and firmware.