Availability:
     Level T    , 'F'

  Quick Help:
     Display / Modify Congen, F[ValueRef],[Data],[ResetEnable]

  Description:
    This command allows the user to display and / or modify the Congen parameters by using
    either relational references or byte offset references to Congen data.  Relational refer-
    ences are provided through parameter names entered as double-quote-delimited strings.

    Some known quirkiness:
    1) YASPP is fickle about double quotes when using the arrow-up and arrow-down keys.  Some-
       times it will mysteriously remove the quote characters, the single character command,
       or both while perusing the command history.
    2) The even number requirement has been fixed.  When specifying a byte offset, you may now
       use an odd number of characters to specify the offset.

    WARNING!  Using byte offset references to modify Congen parameters must be done thought-
    fully.  This usage of the command provides extremely permissive access to the Congen and
    is provided for convenience when using the diagnostics in an interactive way.  Use of
    this option requires intimate knowledge of the layout of the Congen data and this layout
    is NOT guaranteed to stay the same from one code release to the next.  It is preferred
    that relational references are used to change Congen and is REQUIRED if Congen changes
    are to made by programs or scripts.


  Input Parameters:

    0 - Congen Value Reference.
    
        This parameter references the Congen value to be modified using a quote-delimited
        string (double quotes) or using a hex value.
    
          Type:    Quote-delimited string or hex value
    
          Range:   1 to 63 character string or 0000 to FFFF (if hex value)
    
          Default: If this parameter is not entered, the entire current Congen data will
                   be displayed.
    
    1 - Congen Data.
    
        This parameter specifies the data to be written to the Congen value specified by
        parameter 0.  This data can be entered as either a quote-delimited string (double
        quotes) or as a variable-lengthed sequence of hex values.
    
          Type:    Quote-delimited string or sequence of hex values
    
          Range:   1 to 63 character string or 1 to 64 byte hex sequence
    
          Default: If this parameter is not entered, then the Congen value associated with
                   parameter 0 will be displayed.
    
    2 - Reset Congen Info Enable.
    
        If parameter 0 and parameter 1 are not entered and this parameter is set to the value
        "0x22" (hex), then this will cause the drive to reset the Congen to its compile-time
        default values.
    
          Type:    Hex number
    
          Range:   0x22 is the only valid value.
    
          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 Congen data will be displayed as repeated entries of the
    following forms:
    
              "           AAAAAAAAAAAAAAA Mode Page"
              "              BBBBBBBBBBBBBBB Group"
              "Byte:CCCC:       DDDDDDDDDDDDDDD = EE ... EE"
    
          OR
              "Byte:CCCC:           Bit:F, DDDDDDDDDDDDDDD = H"
    
          OR
              "Byte:CCCC:       DDDDDDDDDDDDDDD = EE ... EE"
              "                'IIIIIIIIIIIII'"
    
          OR
              "Byte:CCCC:       DDDDDDDDDDDDDDD ="
              "                 EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE"
                                  .
                                  .
                                  .
              "                 EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE"
    
       where
    
           AA..AA = String representing the name of a Mode Page.
           BB..BB = String representing the name of a Group.
             CCCC = Byte offset of a Congen parameter
           DD..DD = String representing the name of a Congen parameter
               EE = One or more ASCII hex data values
                F = Bit offset of a bit-based Congen parameter
                H = 0 or 1 to indicate the state of a bit-based Congen parameter
           II..II = A string representation of a string-based Congen parameter
    
    If no error occurred, Parameter 0 is entered and Parameter 1 is not entered, the
    current value of the specified Congen Parameter will be displayed.

    If no error occurred and Parameter 0 and 1 are both entered, the new value of the
    specified Congen Parameter will be displayed.

  Examples:

    Example #1:
    To display the full Congen in a humanized way:

       F3 T>F

    Example #2:
    To display a Congen parameter in a humanized way:
    (The byte offset of the Congen Parameter, SerialDebugLevel, could be at a different
    byte offset than this example shows.  Use this command with caution when specifying
    byte offsets!)

       F3 T>F421
       F3 T>F0421
       F3 T>F"SerialDebugLevel"

    Example #3:
    To modify a Congen parameter:
    (Although these are syntactically valid usages, they are nonsensical; However, they
    all do the same thing.  As mentioned above, the byte offset of the Congen parameter
    shown in the example below may be different for your drive.  Use this command with
    caution when specifying byte offsets!)

       F3 T>F421,41
       F3 T>F421,"A"
       F3 T>F0421,41
       F3 T>F0421,"A"
       F3 T>F"SerialDebugLevel",41
       F3 T>F"SerialDebugLevel","A"

  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).