Availability:
     Level 8    , 'C'

  Quick Help:
     Servo Diag Sub Cmds, C[SubCmd],[Parm0],[Parm1],[Parm2]

  Description:
    The Servo Diagnostic Sub Commands execute the following servo diagnostic sub commands:

       8>C05: Set Seek Delay command. This command sets the seek delay, logical / physical
              seek type, and write / read seek settle for other 8>C seek related commands
              (such as 8>C08 and 8>C0C).

       8>C08: Random Seeks command. This command performs random seeks across the entire disk
              or just by switching heads only.

       8>C0C: Seek Between 2 Physical Cylinders command. This command performs seeks between
              2 physical tracks at the same head.

       8>C15: Change Write Threshold command. This command changes write threshold.

  Input Parameters:

    0 - Servo Diag Sub command ID.
    
        This parameter specifies the ID of the servo diag sub command to be executed
    
            05h = Set Seek Delay
            08h = Random Seeks
            0Ch = Seek Between 2 Physical Cylinders
            15h = Change Write Threshold
    
          Type:    Unsigned 16-bit value
    
          Range:   0 to 0xFFFF
    
          Default: None
    
  Set Seek Delay command 8>C05 (Parameter 0 is 05h)
  Input Parameters:

    0 - Level 8 C command's Set Seek Delay sub-command ID (05h)
    
          Type:    Unsigned 16-bit value
    
          Range:   05h
    
          Default: None
    1 - Seek Delay in the format of servo sectors
    
        This parameter specifies the new seek delay.  If this
        parameter is not entered, then the seek delay is not going
        to be changed
    
          Type:    Unsigned 16-bit value
    
          Range:   0 to 0xffff
    
          Default: None
    
    2 - Seek Type
    
        This parameter specifies the new seek type. Its Bit 0 controls slow/fast settle
        setting and the Bit 1 controls the logical/physical seek setting. If this
        parameter is not entered, then the seek type is not going to be changed.
    
          Type:    Unsigned 16-bit value
    
          Range:   0 to 0xffff
    
          Default: None
    
  Output Data:


    If an error occurred, the following information will be displayed.
    
          "DiagError aaaaaaaa"
    
       where
    
          aaaaaaaa is the Diagnostic Error Code
    
    If no error occurred, the Set Seek Delay results will be displayed as follows.
    
          "Delay between xxxx settle seeks = yyyy servo sectors"
          "zzzz Seeks Enabled"
    
       where
    
          xxxx is either "slow" or "fast".
    
          yyyy is the seek delay number in servo sectors.
    
          zzzz is either "Logical" or "Physical".
    
  Random Seeks command 8>C08 (Parameter 0 is 08h)

  Input Parameters:

    1 - Random Head Only Indicator
    
        This parameter indicates if the seek destination is random head only. When this
        parameter is not entered or entered as 0, both track number and head number are
        generated randomly, otherwise, only head number changes randomly while the track
        number stays the same.
    
          Type:    Unsigned 16-bit value
    
          Range:   0 to 0xffff
    
          Default: 0
    
  Output Data:


    If an error occurred, the following information will be displayed.
    
          "DiagError aaaaaaaa"
    
       where
    
          aaaaaaaa is the Diagnostic Error Code
    
    If no error occurred, seek average time is displayed with the following format:
    
          "-Average = xxx.yyy msecs-"
    
       where
    
          xxx.yyy is the average seek time in milliseconds.
    
       Note: The beginning and ending chars are rotating all the time to reflect the
       fact that the command is running.
    
  Seek Between 2 Physical Cylinders command 8>C0C (Parameter 0 is 0Ch)

  Input Parameters:

    1 - First physical cylinder to be seeked. When this parameter is not entered,
        the minimum physical cylinder at the current head is used.
    
          Type:    Unsigned 32-bit value
    
          Range:   0 to 0xffffffff
    
          Default: Minimum physical cylinder at the current head
    
    2 - Second physical cylinder to be seeked. When this parameter is not entered,
        the maximum physical cylinder at the current head is used.
    
          Type:    Unsigned 32-bit value
    
          Range:   0 to 0xffffffff
    
          Default: Maximum physical cylinder at the current head
    
  Output Data:


    If an error occurred, the following information will be displayed.
    
          "DiagError aaaaaaaa"
    
       where
    
          aaaaaaaa is the Diagnostic Error Code
    
    If no error occurred, seek average time is displayed with the following format:
    
          "-Average = xxx.yyy msecs-"
    
       where
    
          xxx.yyy is the average seek time in milliseconds.
    
       Note: The beginning and ending chars are rotating all the time to reflect the
       fact that the command is running.
    
  Change Write Threshold command 8>C15 (Parameter 0 is 15h)

  Input Parameters:

        1 - Position Threshold
    
            This parameter specifies the new position write threshold.  If this
            parameter is not entered, then position write threshold is not going
            to be changed
    
              Type:    Unsigned 16-bit value
    
              Range:   0 to 0xffff
    
              Default: None
    
    
        2 - Velocity Threshold (Not supported yet by servo)
    
            This parameter specifies the new velocity write threshold.  If this
            parameter is not entered, then velocity write threshold is not going
            to be changed
    
              Type:    Unsigned 16-bit value
    
              Range:   0 to 0xffff
    
              Default: None
    
    

  Output Data:


    If an error occurred, the following information will be displayed.
    
          "DiagError aaaaaaaa"
    
       where
    
          aaaaaaaa is the Diagnostic Error Code
    
    If no error occurred, the Servo Write Fault Thresholds will be displayed as follows.
    
          "Head  XThresh  VThresh"
          "00    XXXX     VVVV"
           .
           .
           .
    
       where
    
          XXXX is the position write threshold
    
          VVVV is the velocity write threshold
    
  Revision History:

    0001.0000   Initial revision.
    0011.0000   Combined the PSG Diagnostic Error Codes (PSGDEC) and the Diagnostic External
                Test Service Error Codes (DETSEC) into a single set of Diagnostic Error Codes
                (DiagError).