La definición lo cubre bastante bien.
Inversión bit a bit de la suma de bytes de 1 byte que comienza con el byte de dirección más significativo y termina con el byte que precede a la suma de comprobación. (Para realizar una inversión a nivel de bit, "exclusivo O" la suma de un byte con hexadecimal FF).
Ejemplo
- Mensaje "Hola" = Hex: 48 65 6C 6C 6F.
- Al agregarlos usando mi Windows Calc.exe en modo Programador, obtengo & h01F4.
- Tome el último byte e ignore todo lo demás: & hF4.
- & hF4 XOR & hFF = & h0B - su suma de comprobación.
Para aclarar el último bit:
&hF4 = 1111 0100
&hFF = 1111 1111
---------
XOR = 0000 1011 = &h0B
Actualizar
Por alguna razón, no funciona para mí. Aquí tengo CA 00 01 70 00, los agrego para obtener 13B, tomo el último byte que es 3B y XOR con FF, luego obtengo c4, que es diferente de 8E (un ejemplo que obtuve del manual). ¿Echo de menos algo sobre la regla?
Una búsqueda en la web de la regla arrojó un documento de NESLAB . En la página B-2 leemos:
Figura 1. La región de la suma de comprobación es la única parte utilizada en la suma de comprobación.
Esto debería explicar su confusión. El carácter principal no está incluido en el cálculo. Ahora, si ejecutamos una comprobación en CA 00 01 70 00 podemos soltar CA y nos quedan unos ceros, 01 y 70, que suman a & h71.
& h71 XOR & FF = & h8E. Voila!