DRIVE #2
At power-on, you see the stepper move, in both directions. Surely, that has to be part of the drive's self test. And you should be able to determine that by hooking up only power to the drive.
If I, in the day, had been tasked with writing the self test code for an MFM/RLL hard drive, the gist of it may have been something like the following.
Step 1: Test CPU/MPU. If not as expected, trigger 'Bad CPU' error.
Step 2: Verify checksum of CPU/MPU code ROM. If not as expected, trigger 'Bad code' error.
Step 3: Test RAM buffer. If not as expected, trigger 'Bad RAM' error.
Step 4: See if spindle rotating (via index sensor). If not rotating, trigger 'No rotation' error.
Step 5: Wait a certain period of time for platters to get up-to-speed. If not up-to-speed after that timeout period, trigger 'Did not reach speed' error.
At this time, platters are up-to-speed (i.e. heads no longer contacting platter surface). It is now 'safe' to move the heads.
Step 6: If track 0 (cylinder 0) switch not activated, step heads out until the track 0 switch activates. If still not activated after [drive's cylinder count] steps, trigger 'track 0 switch' error.
At this time, heads indicated (via switch) as being on track 0.
Step 7: Step in 5 times (i.e. heads expected to then be over track 5)
Step 8: Verify that the track 0 switch is no longer activated. If not as expected, trigger 'track 0 switch' error.
Step 9: Step out 5 times (i.e. heads expected to then be over track 0)
Step 10: Verify that the track 0 switch is activated. If not as expected, trigger 'track 0 switch' error.
At this time, the track 0 switch (and related circuitry) is verified as working.
Step 11: LONG SEEK - Repeat steps 7 to 10, but instead of track 5, go to the last track. On failure, trigger 'long seek problem' error.
Test the track 0 (cylinder 0) switch ?