[PC] [XT] [AT] Expects: AH 05H CX track (cylinder) number in the high 10 bits (see below) DL drive: 0-3=diskette; 80H-81H=hard disk DH head number ES:BX addr of buffer containing formatting info (see notes) ────────────────────────────────────────────────────────────────── Returns: AH BIOS disk error code if CF is set to CY ────────────────────────────────────────────────────────────────── Info: This formats a single track on one head of a diskette or hard disk. Any existing data on that track is destroyed. CX Bits 6-7 of CL are the high two bits of the 10-bit value whose low 8 bits are in CH. See INT 13H 02H for details. ES:BX The layout of the data ate ES:BX varies by drive type and BIOS: PC (and all diskette operations) ES:BX points to a series of 4-byte values, one for each sector on the track. The layout is 'CHSL': Offset Size Contents ▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +0 1 bCylinder track number: 0-n +1 1 bHead head number: 0-n +2 1 bSector sector number: 1-n +3 1 bLenCode 0=128, 1=125, 2=512, 3=1024 There is one of these 4-byte structures for each sector on the track (for instance, 36 bytes for a 9-sector-per-track diskette). Interleave is set up by organizing them non-sequentially (e.g., 1,5,2,6,3,7,4,8) AT (and all modern hard disk drives and BIOSes) ES:BX points to a series of 2-byte values, one for each sector on the track. The layout is 'FS': Offset Size Contents ▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +0 1 bFlag 00=good, 80=bad/unusable +1 1 bSector head number: 0-n 2 length of one record There is one of these 2-byte structures for each sector on the track (for instance, 110 bytes for a 55-sector-per-track hard disk). Interleave is set up by organizing them non-sequentially. XT (very old XT BIOSes only) ES:BX is not used; instead AL contains an interleave value between 1 and 16. See Also: DOS fn 440dH 42H (IOCTL format track) INT 13H: BIOS Disk I/O BIOS Data Area ROM-BIOS Functions -♦-