Why is it that the RL02 disk system of the PDP11 has a seek command yet the read command also knows where to read from as the cylinder/head/sector are given via the 'DAR' register?
1 Answer
The "normal" read and write commands will wait until it sees the header for the appropriate sector and then read or write the following data record. If the head isn't already in the right place, the read command would fail. There are alternative forms of the read command that will grab whatever sector header or data record happens to appear next under the drive heads. In some cases, code which knows that it will have to read or write multiple sectors on a track may be able to use these to achieve faster performance than would otherwise be possible by reading sectors as they arrive, rather than having to let the drive spin uselessly past sectors which are going to be needed until it reaches the first sector requested.
While supplying the track number in a read command may be redundant, it provides useful insurance against the possibility that the actual position of the drive head might for whatever reason not match expectations. If the head number reported in sector headers is wrong, software can then react to the resulting timeout error by commanding the head to an end-stop position and then re-seeking to the proper spot.