Availability:
     Level E    , 'm'

  Quick Help:
     Fast MSESER Measurement, m[]

  Description:
    This command collects hardware data while reading sector data from the disk.
    Statistic analysis will be conducted for collected hardware data and results
    will be displayed.

  Input Parameters:

     0 - Start Sector.
    
         This parameter specifies the sector on which to start the read.
    
         When 0xFFFF, it means zero latency read.
    
    
           Type:    Unsigned 16-bit value
    
           Range:   0 to max sector number on track
    
           Default: 0
    
     1 - Number of Sectors to Read.
    
         This parameter specifies the number of sectors to read.
         When 0, it means the whole track.
    
           Type:    Unsigned 16-bit value
    
           Range:   0 to total number of sectors per track
    
           Default: 0
    
     2 - Data Collection Options.
    
         This parameter is a bit-significant value that allows the user to control
         the data to be collected.
    
           Bit 15-3:   Reserved
    
           Bit 1:      If this bit is set, will collect MSE, VGAR, and a controller register.
                       Higher priority than bit 0
    
           Bit 0:      If this bit is set, will collect MSE, VGAR, and a channel register.
    
           Type:    Unsigned 16-bit value
    
           Range:   0 to 0xFFFF
    
           Default: 0 ( MSE, VGAR, and rotate through all FIR Taps and NLFR registers )
    
     3 - Register Address
    
         This parameter specifies the address of the register to read, when
         bit 1 or 0 of Parameter 2 is set.  If bit 1 is set, the entire 32-bit
         value is used to address a controller register.  If bit 0 is set, the
         lower 16-bit is used to address a Read Channel register.
    
           Type:    Unsigned 32-bit value
    
           Range:   0 to 0xFFFFFFFF
    
           Default: 0
    
     4 - Register Bit Mask
    
         This parameter specifies the bit mask that will be bit-AND'ed with
         data read from the register specified by parameter 3.
    
           Type:    Unsigned 16-bit value
    
           Range:   0 to 0xFFFF
    
           Default: 0xFFFF (all bits valid)
    
     5 - Sectors to Ignore.
    
         This parameter specifies the number of beginning sectors to ignore
         during statistic calculation.
    
           Type:    Unsigned 16-bit value
    
           Range:   0 to Number of Sectors to Read
    
           Default: 0
    
     6 - Percentage to trim.
    
         This parameter specifies the percent trimming to apply to the data at
         both low and high ends.
    
           Type:    Unsigned 8-bit value
    
           Range:   0 to 32h
    
           Default: 0
    
     7 - Display Options.
    
         This parameter is a bit-significant value that allows the user to control
         the level of output detail.
    
           Bit 15-2:   Reserved
    
           Bit 1:      If this bit is set, will display the statistical results
                       of the measured values in Decimal format.
    
           Bit 0:      If this bit is set, will display the raw data of the
                       measured values in Hex format
    
           Type:    Unsigned 16-bit value
    
           Range:   0 to 0xFFFF
    
           Default: 0xFFFF ( display everything )
    
  Output Data:

    If an error occurred, the following information will be displayed.
    
          "DiagError aaaaaaaa"
    
       where
    
          aaaaaaaa is the Diagnostic Error Code
    

    If an error occurred, the following information will be displayed.
    
          "DiagError aaaaaaaa R/W Status c R/W Error dddddddd"
    
       and
    
          "Next User LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
          "Remaining Transfer Length llllllll"
    
       or
    
          "Next System LBA eeeeeeee LLL CHS ffffff.g.hhhh PLP CHS iiiiii.j.kkkk"
          "Remaining Transfer Length llllllll"
    
       where
    
          aaaaaaaa is the Diagnostic Error Code
    
          c is the status returned by the R/W subsystem
    
                0 = R/W request completed successfully with error recovery
                1 = R/W request completed successfully (no error recovery performed)
                2 = R/W request failed
    
          dddddddd is the error code returned by the R/W subsystem
    
          eeeeeeee is the Disk Logical Block Address of the sector in error
    
          ffffff is the Logical Cylinder Address of the sector in error
    
          g is the Logical Head Address of the sector in error
    
          hhhh is the Logical Sector Address of the sector in error
    
          iiiiii is the Physical Cylinder Address of the sector in error
    
          j is the Logical Head Address of the sector in error
    
          kkkk is the Physical Sector Address of the sector in error
    
          llllllll is the number of sectors remaining to be read or written
    
    If the Verbose Formatted ASCII Data Output Mode is selected, the Verbose Mode option
    bits will enable the following data to be output when set.
    
       Bit 0:      Enables the R/W Status and R/W Error to be displayed
       Bit 1:      Enable the Next Address to be displayed
       Bit 2:      Enables the Track Position and Track Follow Offset to be displayed
       Bit 3:      Enables the Target Address to be displayed
       Bit 4:      Enables the Recovery Status to be displayed
       Bit 5:      Enables the Fault Status to be displayed
       Bit 6:      Enables the Elapsed Time to be displayed
       Bits 31-7:  NA
    
    If Bit 0 is set, the R/W Status and R/W Error will be displayed even if no error
    occurred.  The data displayed will be formatted as shown above.
    
    If Bit 1 is set, the Next Address will be displayed even if no error occurred.  The
    data displayed will be formatted as shown above.
    
    If Bit 2 is set, the Track Position and Track Follow Offset will be displayed as
    follows.
    
          "Read Position, Persistent Offset m.m% Total Offset n.n%"          or
          "Write Position, Persistent Offset m.m% Total Offset n.n%"         or
          "Write Header Position, Persistent Offset m.m% Total Offset n.n%"
    
       where
    
          m.m is the Persistent Track Follow Offset in units of percentage of track width
    
          n.n is the Total Track Follow Offset in units of percentage of track width
    
    If Bit 3 is set, the Target Address will be displayed as follows.
    
          "Target User LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
          "Starting Transfer Length wwwwwwww"
    
       or
    
          "Target System LBA pppppppp LLL CHS qqqqqq.r.ssss PLP CHS tttttt.u.vvvv"
          "Starting Transfer Length wwwwwwww"
    
       where
    
          pppppppp is the starting Disk Logical Block Address
    
          qqqqqq is the starting Logical Cylinder Address
    
          r is the starting Logical Head Address
    
          ssss is the starting Logical Sector Address
    
          tttttt is the starting Physical Cylinder Address
    
          u is the starting Logical Head Address
    
          vvvv is the starting Physical Sector Address
    
          wwwwwwww is the starting Transfer Length
    
    If Bit 4 is set, the Recovery Status will be displayed as follows.
    
          "Recovered User LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
          "Recovery Flags HHHH Count II"
    
       or
    
          "Recovered System LBA AAAAAAAA LLL CHS BBBBBB.C.DDDD PLP CHS EEEEEE.F.GGGG"
          "Recovery Flags HHHH Count II"
    
       where
    
          AAAAAAAA is the Disk Logical Block Address of the last recovered sector
    
          BBBBBB is the Logical Cylinder Address of the last recovered sector
    
          C is the Logical Head Address of the last recovered sector
    
          DDDD is the Logical Sector Address of the last recovered sector
    
          EEEEEE is the Physical Cylinder Address of the last recovered sector
    
          F is the Logical Head Address of the last recovered sector
    
          GGGG is the Physical Sector Address of the last recovered sector
    
          HHHH are the Recovery Flags reported by the Read/Write code
    
          II is the Recovery Count reported by the Read/Write code
    
    If Bit 5 is set, the Fault Status will be displayed as follows.
    
          "Drive Fault Status JJJJ Preamp Fault Status KKKK"
          "Read Channel Faults:
           SRC Fault Reg 190 = aaaa
           SRC Fault Reg 191 = bbbb
           SID Reg 20B = cccc
           SID Reg 26C = dddd
           SID Reg 26F = eeee
           SID Reg 251 = fffff
    
       where
    
          JJJJ is the Drive Fault Status reported by the Read/Write code
    
          KKKK is the Preamp Fault Status reported by the Read/Write code
    
          aaaa  is the SRC channel fault Register 190h value
    
          bbbb is the SRC channel fault register 191h value
    
          cccc is the SID channel fault register 20bh   value
    
          dddd is the SID channel fault reg 26ch   value
    
          eeee is the SID Channel fault reg 251h value
    
    If Bit 6 is set, the Elapsed Time for the read/write operation will be displayed.

    
       "Elapsed Time a mins b secs"  or
       "Elapsed Time b.c secs"       or
       "Elapsed Time c.d msecs"
    
    where
    
       a is minutes
       b is seconds
       c is milliseconds
       d is microseconds
    
  Examples:
    There are prerequisites for issuing this diag command.
    First, user should issue a diag command to set the next target location to where the
    Fast MSE measurement should occur. A simple seek command would do the job.
    Second, user should issue a Set Track Format (Level 7 'K') command to set the track
    format to single-sector-per-wedge format.
    Typical example of usage is like following.

    F3 T>A0           (Select User Area and not to update cylinder and head)
    F3 T>/7           (Change diagnostic command level to 7)
    F3 7>S1000,0      (Seek to the target track)
    F3 7>K2           (Set track format to single sector per wedge format)
    F3 7>W,,,1        (Write the track with physical sector address flag on)
    F3 7>/E           (Change diagnostic command level to E)
    F3 E>m            (issue the Fast MSESER Measurement command)

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