PC/XT generation systems do not have any standardized means to specify disk drive types or parameters. Some use controller switches, some allow BIOS calls, some have proprietary extensions in the controller firmware etc.
We don't have the luxury (i.e. RAM) to look for all these variants, and /bootopts does the trick anyway.
Thus this extension to the chs0/bootopts option in preparation for introducing the MFM diver.
The option has been renamed to hdparms, which is easier to recognize/understand.
Instead of a CHS triple, the per drive data is now a quadruple, CHSW, W being the WritePrecompensation track, which many MFM drives require.
The option supports 2 drives, 4+4 values: hdparms=406,4,17,128,614,4,17,-1
As before, the format is flexible, permitting empty fields and shortened format, as in =406,4,17 which sets all missing fields to zero. Or =,,,,614,4,17 which sets all drive 0 values and drive 1 wpcomp to zero.
CHS values will be ignored if the cylinder value is zero.
-1 is a frequently used wpcomp value in all kinds of tables from yesteryear (and means 'turn off/not used'). Thus -1 is permitted and converted to zero in order to avoid adding support for negative numbers in init/main.c. The driver then converts the zero wpcomp to whatever is required by the controller.
The IDE driver (directhd.c) has been updated to take advantage of the 2-drive support.
The drives using hdparms will use default values when parameters are missing. For IDE drives, that is the values provided by the drive itself. For MFM it's the values for a type 1 drive, 10MB - 406/4/17/128.
PC/XT generation systems do not have any standardized means to specify disk drive types or parameters. Some use controller switches, some allow BIOS calls, some have proprietary extensions in the controller firmware etc. We don't have the luxury (i.e. RAM) to look for all these variants, and
/bootopts
does the trick anyway.Thus this extension to the
chs0
/bootopts
option in preparation for introducing the MFM diver.hdparms
, which is easier to recognize/understand.hdparms=406,4,17,128,614,4,17,-1
=406,4,17
which sets all missing fields to zero. Or=,,,,614,4,17
which sets all drive 0 values and drive 1 wpcomp to zero.init/main.c
. The driver then converts the zero wpcomp to whatever is required by the controller.directhd.c
) has been updated to take advantage of the 2-drive support.The drives using
hdparms
will use default values when parameters are missing. For IDE drives, that is the values provided by the drive itself. For MFM it's the values for a type 1 drive, 10MB - 406/4/17/128.