Ver Mensaje Individual
Antiguo 28/11/2005, 23:58   #4
ElZazu
Yerbagüena Pal Puchero
 
Avatar de ElZazu
 
Fecha de ingreso: 20/dic/2003
Mensajes: 5.810
ElZazu Poca gente ha conseguido tener esta reputaciónElZazu Poca gente ha conseguido tener esta reputaciónElZazu Poca gente ha conseguido tener esta reputaciónElZazu Poca gente ha conseguido tener esta reputaciónElZazu Poca gente ha conseguido tener esta reputaciónElZazu Poca gente ha conseguido tener esta reputaciónElZazu Poca gente ha conseguido tener esta reputaciónElZazu Poca gente ha conseguido tener esta reputaciónElZazu Poca gente ha conseguido tener esta reputaciónElZazu Poca gente ha conseguido tener esta reputaciónElZazu Poca gente ha conseguido tener esta reputación
odilae creo que lo que buscas es esto:

Cita:
En un fichero Intel HEX cada linea se descompone de la siguiente forma:

:10008000AF5F67F0602703E0322CFA92007780C3FD

:10.....................................................Número de bytes de datos en Hexadecimal (0x10=16)
0080....................................................Dirección de memoria donde se cargarán los datos
00......................................................Tipo de datos (00: Datos, 02:Memoria extendida, 01:Fin del fichero)
AF5F67F0602703E0322CFA92007780C3........................Datos. Hay 16 datos, como indicamos en el primer byte
FD......................................................Checksum

La última fila de un fichero Intel HEX es siempre:

:00000001FF

:00.....................................................No hay datos
0000...................................................No hay dirección
01......................................................Fin del fichero
FF......................................................Checksum

El checksum se calcula de la siguiente forma: Se suman todos los bytes de la linea agrupados de 2 en 2, por ejemplo en la linea primera la suma (en Hexadecimal) sería:

10+00+80+00+AF+5F+67+F0+60+27+03+E0+32+2SysterFA+92+00+77+80+C3=803 (en Hexadecimal)

El checksum es el valor que hay que sumar para que los dos últimos bytes de la suma sean 00 (Se desechan los bytes altos) es decir:

803+Checksum=xx00, en la práctica se coge el siguiente valor que tenga dos ceros y sea mayor que la suma, (en nuestro ejemplo 900) y se le resta la suma obtenida. El resultado es el checksum.

900-803=FD (Checksum)

También se puede calcular restando con la calculadora de Windows:

0-803=FFFFFFFFFFFFF7FD

Y tomamos los dos últimos bytes (FD)

Por supuesto todas las operaciones en Hexadecimal.
Texto encontrado milagrosamente entre mis archivos "perdidos", original de maclau10

Saludos
ElZazu está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir