The FDI/HDI file format is used in the Anex86 emulator. It consists of a relatively simple (but often large) header, followed by the data in C/H/S format
FDI/HDI are interchangeable and the same format, although FDI files are expected not to have HD geometry (> 2 heads) and vice versa.
The header starts at the beginning of the file (Offset 0):
Offs Size ____ _____ 0x00 DWORD Reserved Must be set to zero 0x04 DWORD FDDType identifier (see below, also called the PDA) 0x08 DWORD HeaderSize Size of the entire header in bytes, default for Anex86 "New Disk" is 4096 0x0C DWORD DataSize Size of the C/H/S data segment in bytes. DataSize + HeaderSize = File Size on Disk 0x10 DWORD Bytes per Sector Uniform for all sectors 0x14 DWORD Sectors Uniform for all tracks 0x18 DWORD Heads Uniform for all tracks 0x1C DWORD Cylinders Uniform for all tracks
A comment space may or may not follow this header. To allocate comment space, HeaderSize should equal the comment size desired - 32. A HeaderSize of 32 is the smallest valid value, and represents no comment section.
An example without a comment is shown below, as it appears in a hex editor, with a minimum header:
Or the much larger default header (0x1000 bytes, 4096) from Anex86:
The data segment then follows the header, in standard ordering. Because only a single value is provided for each aspect of drive geometry, varying size sectors and missing sectors are not supported by this format.
This part is only understood from observations of 3rd parties about Anex86's reaction to various entries:
Floppy Disks (FDI) __________________ 0x90 when FD is 1.2M 0x30 when FD is 1.44M 0x10 when 640K or 720K (Used as a default) Hard Disk (HDI) _______________ It's not clear this is used for HDIs. Generally, it is set to the disk capacity in MB.
Anex86 will have problems loading disks if the FDD type is set incorrectly. As such, converted FDIs of some unusual formats may not function properly in Anex86
Back to the main page