Categories of XT-class 'MFM' hard disk controllers
By 'XT-class', I mean an 8-bit controller designed specifically for the IBM XT (which includes clones of the IBM XT).
By 'MFM', I mean the Seagate ST-506/ST-412 interface.
Below, by 'geometry', I mean the count of cylinders, count of heads, count of sectors per track. For example, the Seagate ST-225 drive has a geometry of 615/4/17.
If you are unfamiliar with the subject matter, remove any preconceived idea you have about controllers being able to ask hard drives for identity or geometry information. That kind of functionality does not exist in the ST-506/ST-412 interface.
Single-Geometry Controller
'Single-geometry controller' is a term that I use here to describe controllers that support only one drive geometry, and that geometry is fixed.
The first hard disk controller that IBM supplied in the IBM 5160 (IBM XT) was a single-geometry controller. It could only support a geometry of 306/4/17. The subject controller is the 'Variation #1' one shown at here.
A drive of a larger geometry can be used, but the controller will still only use the geometry it supports. For example, a drive of geometry 614/4/17 attached to a 306/4/17 controller will result in only 306 of the drive's 614 cylinders getting used.
The supported geometry is stored on a ROM on the controller, and that it why it is fixed.
Multi-Geometry Controller
'Multi-geometry controller' is a term that I use here to describe controllers that support more than one fixed drive geometry.
Jumper selection
An example of this is Western Digital's WD10004A-WX1 controller. The four geometries that it supports are 612/4/17; 306/4/17; 615/2/17; 615/4/17, and the one to be used is selected by jumpers on the controller.
Another example is the Longshine LCS-6210C controller, a controller that supports sixteen fixed geometries, and the one to be used is selected by jumpers on the controller.
Jumperless
An example of this is Seagate's ST11R controller, one with a revision v1.5 BIOS ROM. There are no jumpers nor switches. Low-level formatting is accomplished by executing the low-level formatting code in the controller's BIOS ROM. The low-level formatting code will show a menu of seven Seagate drives (photo), and you indicate which one is attached to the controller. During the low-level formatting, the BIOS ROM will reserve a track for itself and write your selection information there. The controller's BIOS ROM reads that information at boot time.
Dynamic Controller
Also known as an 'auto-configure' controller, which is very misleading, because it suggests that configuration is automatic, which it is not.
DTC's name for dynamic formatting is 'free' formatting.
Great flexibility, because you get to specify the geometry of the drive to the controller. Low-level formatting is accomplished by executing the low-level formatting code in the controller's BIOS ROM. The low-level formatting code will prompt you for geometry information about the attached drive.
An example of this is Transteque's HC-100 controller. There are no jumpers nor switches. Low-level formatting is accomplished by executing the low-level formatting code in the controller's BIOS ROM. The low-level formatting code will ask you questions about the attached hard drive, questions such as, "NUMBER OF HEADS? (1 TO 8)", "NUMBER OF CYLINDERS? (1 TO 1024)", etc.
Another example is the Konan KDC-230.
The low-level formatting code in the BIOS ROM needs to store that geometry information somewhere, and the norm is a cylinder on the drive that the controller's BIOS ROM reserves for itself. The BIOS ROM 'hides' this cylinder - for use only by the controller. Yes, there is one less cylinder available for use by the operating system.
Hybrid
'Hybrid controller' is a term that I use here to describe controllers that have more than one of the aforementioned functionalities.
For example, a few Western Digital controllers give you the choice between runing in 'multi-geometry' mode or running in dynamic mode. You can tell those Western Digital controllers because the BIOS will be referred to as an 'F300' BIOS , or 'F300' option, or 'Super' BIOS.
For example, the DTC 5150CRH fitted with the CXD03A revision BIOS.
On some controllers, the desired mode is chosen via a jumper. On some controllers, the user starts the low-level formatting code, and the code will ask the user whether or not dynamic formatting is to be used. Refer to the controller's user manual.