
     :04FEDC00210080CFB2
     ^ ^   ^ ^ ^ ^ ^ ^ ^
     | |   | | | | | | +-- checksum     Adding all count, address, record
     | |   | | | | | |                  type, data, and checksum bytes
     | |   | | | | | |                  together modulo 256 will yield a sum
     | |   | | | | | |                  of 0x00 if the record is valid.  In
     | |   | | | | | |                  this case, 0x04 + 0xFE + 0xDC + 0x00 +
     | |   | | | | | |                  0x21 + 0x00 + 0x80 + 0xCF + 0xB2 =
     | |   | | | | | |                  0x00.
     | |   | | | | | |
     | |   | | +-+-+-+---- data bytes   There are four data bytes in this
     | |   | |                          record:  0x21, 0x00, 0x80, and 0xCF.
     | |   | |
     | |   | +------------ record type  0x00 for data records, 0x01 for EOF
     | |   |                            records.
     | |   |
     | |   +-------------- load address The first byte of this data record
     | |                                loads at address 0xFEDC. Subsequent
     | |                                data bytes load at subsequent
     | |                                addresses.  For EOF records, program
     | |                                execution begins at this address.
     | |
     | +------------------ byte count   There are 0x04 data bytes in this
     |                                  data record.  EOF records normally
     |                                  have 0x00 data bytes.
     |
     +-------------------- start-of-    All Intel hex records begin with an
                           record char  ASCII ':'.






     S107FEDC210080CFAE
     ^^ ^   ^ ^ ^ ^ ^ ^
     || |   | | | | | +--- checksum     Adding all count, address, data, and
     || |   | | | | |                   checksum bytes together modulo 256
     || |   | | | | |                   will yield a sum of 0xFF if the record
     || |   | | | | |                   is valid.  In this case, 0x07 + 0xFE +
     || |   | | | | |                   0xDC + 0x21 + 0x00 + 0x80 + 0xCF +
     || |   | | | | |                   0xAE = 0xFF.
     || |   | | | | |
     || |   | +-+-+-+----- data bytes   There are four data bytes in this
     || |   |                           record:  0x21, 0x00, 0x80, and 0xCF.
     || |   |
     || |   +------------- load address The first byte of this data record
     || |                               loads at address 0xFEDC. Subsequent
     || |                               data bytes load at subsequent
     || |                               addresses.  For EOF records, program
     || |                               execution begins at this address.
     || |
     || +----------------- byte count   There are 0x07 - 0x03 = 0x04 data
     ||                                 bytes in this data record.  EOF
     ||                                 records normally have a byte count of
     ||                                 0x03 because they have 0x03 - 0x03 =
     ||                                 0x00 data bytes.
     ||
     |+------------------- record type  ASCII '0' for header records, '1' for
     |                                  data records, or '9' for EOF records.
     |
     +-------------------- start-of-    All S-records begin with an ASCII 'S'.
                           record char

