I wrote:
The part of the ST-506 disk emulation that's of
most concern to me is
whether anything needs to be done about write precompensation.
John Lawson wrote:
Is it not true that the precomp circuits are driven
by head position
info - thus the 'solid' version (emulation) of any drive would just be
permanently 'stuck' in one mode or the other would the controller care, or
even know, what track and cylinder the actual 'data' were coming from?
The controller does write precomp, and the drive emulator can't easily
tell on which cylinders the controller is doing it, vs. on which it is
not. In fact, the controller could use varying amounts of precomp on
various ranges of cylinders, e.g., 25 ns on cylinders 0-199, 30 ns
on cylinders 200-299, 35 ns on cylinder 300-399, etc.
In practice every controller I've dealt with has a fixed amount of
precomp that is used on a (possibly configurable) range of cylinders.
Anyhow, the point is that when the controller performs write precomp
on a cylinder, it is trying to compensate for the magnetic characteristics
of the drive, and expects the data to come back when read *without*
much if any of the precomp-introduced shifting intact. If the drive
emulator does not emulate the precomp behavior of the real drive, the
read data pulses will be out of their nominal timing by the precomp
amount, which increases the probability of read errors.