Articulo de referencia

Intel HEX

General-purpose: .hex , .mcs , .int , .ihex , .ihe , .ihx Platform-specific: .h80 , .h86 , .a43 , .a90 Split, banked, or paged: .hxl – .hxh , .h00 – .h15 , .p00 – .pff Binary or...

El formato de archivo de objeto hexadecimal de Intel , formato hexadecimal de Intel o Intellec Hex, es un formato de archivo que transmite información binaria en forma de texto ASCII , [ 10 ] lo que permite almacenarla en medios no binarios como cintas de papel , tarjetas perforadas , etc., para mostrarla en terminales de texto o imprimirla en impresoras orientadas a líneas . [ 11 ] El formato se usa comúnmente para programar microcontroladores , EPROM y otros tipos de dispositivos lógicos programables y emuladores de hardware . En una aplicación típica, un compilador o ensamblador convierte el código fuente de un programa (como en C o lenguaje ensamblador ) a código máquina y lo genera en un archivo objeto o ejecutable en formato hexadecimal (o binario). En algunas aplicaciones, el formato hexadecimal de Intel también se usa como un formato contenedor que almacena paquetes de datos de flujo . [ 12 ] Las extensiones de archivo comunes utilizadas para los archivos resultantes son .HEX [ 1 ] o .H86 . [ 5 ] [ 6 ] El archivo HEX es leído por un programador para escribir el código máquina en una PROM o se transfiere al sistema de destino para su carga y ejecución. [ 11 ] [ 13 ] Existen varias herramientas para convertir archivos entre formato hexadecimal y binario (por ejemplo, HEX2BIN ) y viceversa (por ejemplo, OBJHEX, OH, OHX, BIN2HEX).

Historia

El formato hexadecimal de Intel fue diseñado originalmente para los sistemas de desarrollo de microcomputadoras Intellec [ 14 ] : 10–11 (MDS) de Intel en 1973 con el fin de cargar y ejecutar programas desde cinta de papel . También se utilizó para especificar el contenido de la memoria a Intel para la producción de ROM , [ 15 ] que anteriormente tenía que codificarse en el formato BNPF (Begin-Negative-Positive-Finish), mucho menos eficiente. [ 14 ] : 11 En 1973, el "grupo de software" de Intel consistía únicamente en Bill Byerly y Kenneth Burgett, y Gary Kildall como consultor externo que operaba como Microcomputer Applications Associates (MAA) y fundó Digital Research en 1974. [ 16 ] [ 17 ] [ 18 ] [ 9 ] A partir de 1975, el formato fue utilizado por los sistemas Intellec Series II ISIS-II que admitían unidades de disquete, con archivos que utilizaban la extensión de archivo HEX. [ 19 ] Muchos dispositivos de programación de PROM y EPROM aceptan este formato.

Formato

El formato Intel HEX consiste en líneas de texto ASCII separadas por caracteres de salto de línea o retorno de carro , o ambos. Cada línea de texto contiene caracteres hexadecimales en mayúscula que codifican varios números binarios. Estos números binarios pueden representar datos, direcciones de memoria u otros valores, según su posición en la línea y el tipo y la longitud de la misma. Cada línea de texto se denomina registro .

Estructura del registro

Un registro (línea de texto) consta de seis campos (partes) que aparecen en orden de izquierda a derecha: [ 11 ]

  1. Código de inicio , un carácter, dos puntos ASCII ' : '. Todos los caracteres que preceden a este símbolo en un registro deben ignorarse. [ 15 ] [ 5 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] De hecho, las primeras versiones de la especificación incluso solicitaban un mínimo de 25 caracteres NUL para preceder al primer registro y seguir al último, debido a los orígenes del formato como formato de cinta de papel que requería cierta entrada y salida de cinta para su manejo. [ 15 ] [ 24 ] [ 21 ] [ 22 ] Sin embargo, como esta era una parte poco conocida de la especificación, no todo el software escrito maneja esto correctamente. Permite almacenar otra información relacionada en el mismo archivo (e incluso en la misma línea), [ 15 ] [ 23 ] una facilidad utilizada por varias utilidades de desarrollo de software para almacenar tablas de símbolos o comentarios adicionales, [ 25 ] [ 15 ] [ 21 ] [ 26 ] [ 9 ] [ 27 ] y extensiones de terceros que utilizan otros caracteres como código de inicio como los dígitos ' 0 '..' 9 ' por Intel [ 28 ] y Keil , [ 26 ] ' $ ' por Mostek , [ 29 ] [ 30 ] o ' ! ', ' @ ', ' # ', ' \ ', ' & ' y ' ; ' por TDL . [ 30 ] [ 31 ] Por convención, ' // ' se usa a menudo para comentarios. [ 32 ] [ 33 ] Ninguna de estas extensiones puede contener ningún carácter ':' como parte de la carga útil.
  2. Recuento de bytes , dos dígitos hexadecimales (un par de dígitos hexadecimales), que indican el número de bytes (pares de dígitos hexadecimales) en el campo de datos. El recuento máximo de bytes es 255 (0xFF). Los valores de 8 (0x08), [ 9 ] 16 (0x10) [ 9 ] y 32 (0x20) son recuentos de bytes de uso común. No todo el software admite recuentos mayores que 16. [ 2 ]
  3. La dirección consta de cuatro dígitos hexadecimales que representan el desplazamiento de la dirección de memoria inicial de 16 bits de los datos. La dirección física de los datos se calcula sumando este desplazamiento a una dirección base previamente establecida , lo que permite el direccionamiento de memoria más allá del límite de 64 kilobytes de las direcciones de 16 bits. La dirección base, cuyo valor predeterminado es cero, puede modificarse mediante distintos tipos de registros. Las direcciones base y los desplazamientos de dirección siempre se expresan en formato big-endian .
  4. Tipo de registro (ver tipos de registro a continuación), dos dígitos hexadecimales,00a05, definiendo el significado del campo de datos.
  5. Datos : una secuencia de n bytes de datos, representada por 2ⁿ dígitos hexadecimales . Algunos registros omiten este campo ( n es igual a cero). El significado e interpretación de los bytes de datos depende de la aplicación. (Los datos de 4 bits deberán almacenarse en la mitad inferior o superior de los bytes; es decir, un byte contiene solo un elemento de datos direccionable. [ 15 ] )
  6. Suma de verificación , dos dígitos hexadecimales, un valor calculado que se puede utilizar para verificar que el registro no tenga errores.

Leyenda de colores

Como ayuda visual, los campos de los registros Intel HEX están coloreados a lo largo de este artículo de la siguiente manera:

  Código de inicio Recuento de bytes Dirección Tipo de registro Suma de verificación de datos          

Cálculo de suma de verificación

El byte de verificación de un registro es el complemento a dos del byte menos significativo (LSB) de la suma de todos los valores de bytes decodificados en el registro que preceden a la verificación. Se calcula sumando los valores de bytes decodificados y extrayendo el LSB de la suma (es decir, la suma de verificación de datos), y luego calculando el complemento a dos del LSB (por ejemplo, invirtiendo sus bits y sumándole uno).

Por ejemplo, en el caso del registro : 03 0030 00 02337A 1E , la suma de los valores de bytes decodificados es 03.+00+30+00+02+33+7A= E2, que tiene valor LSB E2. El complemento a dos de E2es1E , que es el byte de suma de verificación que aparece al final del registro.

La validez de un registro se puede comprobar calculando su suma de verificación y verificando que la suma de verificación calculada sea igual a la que aparece en el registro; se indica un error si las sumas de verificación difieren. Dado que el byte de suma de verificación del registro es el complemento a dos —y, por lo tanto, el inverso aditivo— de la suma de verificación de los datos, este proceso se puede reducir a sumar todos los valores de bytes decodificados, incluida la suma de verificación del registro, y verificar que el bit menos significativo (LSB) de la suma sea cero. Al aplicar este método al ejemplo anterior, se obtiene el siguiente resultado: 03+00+30+00+02+33+7A+1E = 100, que tiene valor LSB 00.

Terminadores de línea de texto

Los registros Intel HEX suelen estar separados por uno o más caracteres de terminación de línea ASCII, de modo que cada registro aparece solo en una línea de texto. Esto mejora la legibilidad al delimitar visualmente los registros y también proporciona un relleno entre ellos que puede utilizarse para mejorar la eficiencia del análisis sintáctico automático . Sin embargo, los caracteres de terminación de línea son opcionales, ya que el ' : ' se utiliza para detectar el inicio de un registro. [ 15 ] [ 5 ] [ 24 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ]

Los programas que crean registros HEX suelen usar caracteres de terminación de línea que se ajustan a las convenciones de sus sistemas operativos . Por ejemplo, los programas de Linux usan un solo carácter LF ( salto de línea , valor hexadecimal 0A) para terminar las líneas, mientras que los programas de Windows usan un CR ( retorno de carro , valor hexadecimal 0D) seguido de un LF.

Tipos de registro

Intel HEX tiene seis tipos de registros estándar: [ 11 ]

Se han utilizado otros tipos de registros para las variantes, incluyendo:06(mensajes 'blinky' / contenedor de protocolo de transmisión) por Wayne y Layne, [ 34 ]0A(inicio del bloque),0B(fin del bloque),0C(datos de relleno),0D(datos personalizados) y0E(otros datos) por la BBC / Micro:bit Educational Foundation , [ 35 ] y81(datos en el segmento de código ),82(datos en el segmento de datos ),83(datos en el segmento de pila ),84(datos en segmento adicional ),85( dirección de párrafo para segmento de código absoluto),86(dirección de párrafo para segmento de datos absoluto),87(dirección de párrafo para segmento de pila absoluto) y88(dirección del párrafo para segmento adicional absoluto) por Investigación Digital . [ 6 ] [ 20 ]

Formatos con nombre

El formato original de cinta de papel Intellec Hex de 4 bits/8 bits y el formato de tarjeta perforada para computadora Intellec Hex de 1973/1974 admitían solo un tipo de registro.00. [ 36 ] [ 37 ] [ 25 ] Esto se amplió alrededor de 1975 para admitir también el tipo de registro01. [ 15 ] A veces llamado formato hexadecimal simbólico , [ 38 ] podría incluir un encabezado opcional que contiene una tabla de símbolos para la depuración simbólica , [ 25 ] [ 28 ] [ 26 ] [ 9 ] todos los caracteres en un registro que preceden a los dos puntos se ignoran. [ 15 ] [ 5 ]

Alrededor de 1978 , Intel introdujo los nuevos tipos de registros.02y03(para agregar soporte para el espacio de direcciones segmentado de los entonces nuevos procesadores 8086 / 8088 ) en su formato hexadecimal Intellec extendido .

En ocasiones se utilizan nombres especiales para indicar los formatos de archivos HEX que emplean subconjuntos específicos de tipos de registros. Por ejemplo:

  • Los archivos I8HEX (también conocidos como HEX-80 ) utilizan únicamente tipos de registros.00y01
  • Los archivos I16HEX (también conocidos como HEX-86 ) utilizan solo tipos de registros.00a través de03[ 10 ]
  • Los archivos I32HEX (también conocidos como HEX-386 ) utilizan únicamente tipos de registro.00,01,04, y05

Ejemplo de archivo

Este ejemplo muestra un archivo que contiene cuatro registros de datos seguidos de un registro de fin de archivo:

: 10 0100 00 214601360121470136007EFE09D21901 40 : 10 0110 00 2146017E17C20001FF5F160021480119 28 : 10 0120 00 194E79234623965778239EDA3F01B2CA A7 : 10 0130 00 3F0156702B5E712B722B732146013421 C7 : 00 0000 01FF

  Código de inicio Recuento de bytes Dirección Tipo de registro Suma de verificación de datos          

Variantes

Además de la propia extensión de Intel, varias terceras partes también han definido variantes y extensiones del formato hexadecimal de Intel, incluyendo Digital Research (como en el llamado "formato hexadecimal de Digital Research" [ 6 ] [ 20 ] ), Zilog , Mostek , [ 29 ] [ 30 ] TDL , [ 30 ] [ 31 ] Texas Instruments , Microchip , [ 39 ] [ 40 ] c't , Wayne and Layne, [ 34 ] y BBC / Micro:bit Educational Foundation (con su "Formato Hexadecimal Universal" [ 35 ] ). Estos pueden tener información sobre puntos de entrada de programas y contenido de registros , un orden de bytes intercambiado en los campos de datos, valores de relleno para áreas no utilizadas, bits de fusión y otras diferencias.

El formato hexadecimal de Digital Research para procesadores 8086 admite información de segmento mediante la adición de tipos de registro para distinguir entre código, datos, pila y segmentos adicionales. [ 5 ] [ 6 ] [ 20 ]

La mayoría de los ensambladores para CP/M-80 (y también XASM09 para Motorola 6809 ) no usan el tipo de registro 01h para indicar el final de un archivo, sino que usan una entrada de tipo de datos de longitud cero 00h. [ 41 ] [ 1 ] Esto facilita la concatenación de múltiples archivos hexadecimales. [ 42 ] [ 43 ] [ 1 ]

Texas Instruments define una variante en la que las direcciones se basan en el ancho de bits de los registros del procesador, no en los bytes.

Microchip define las variantes INTHX8S [ 44 ] (INHX8L, [ 1 ] INHX8H [ 1 ] ), INHX8M, [ 44 ] [ 1 ] [ 45 ] INHX16 [ 44 ] (INHX16M [ 1 ] ) e INHX32 [ 46 ] para sus microcontroladores PIC .

También se sabe que el ensamblador de macros cruzadas AS de Alfred Arnold, [ 1 ] el emulador 8051 SIM51 de Werner Hennig-Roleff , [ 26 ] y el convertidor cruzado BINTEL de Matthias R. Paul [ 47 ] definen extensiones al formato hexadecimal de Intel.

Véase también

Referencias

  1. 1 2 3 4 5 6 7 8 9 Arnold, Alfred "Alf" (2020) [1996, 1989]. "6.3. P2HEX" . Macro Assembler AS - Manual del usuario . V1.42. Traducido por Arnold, Alfred "Alf"; Hilse, Stefan; Kanthak, Stephan; Sellke, Oliver; De Tomasi, Vittorio. Aachen, Alemania. Archivado del original el 28-02-2020 . Recuperado el 28-02-2020 . […] Para los microcontroladores PIC , el interruptor -m <0..3> permite generar las tres variantes diferentes del formato Intel Hex. El formato 0 es INHX8M que contiene todos los bytes en un orden bajo-alto. Las direcciones se vuelven el doble de grandes porque los PIC tienen un espacio de direcciones orientado a palabras que incrementa las direcciones solo en uno por palabra. […] Con el formato 1 (INHX16M), los bytes se almacenan en su orden natural. Este es el formato que Microchip utiliza para sus propios dispositivos de programación. El formato 2 (INHX8L) y el formato 3 (INHX8H) dividen las palabras en sus bytes inferiores y superiores, respectivamente. […] Desafortunadamente, en la literatura se encuentran diferentes afirmaciones sobre la última línea de un archivo Intel-Hex. Por lo tanto, P2HEX conoce tres variantes diferentes que se pueden seleccionar: […] :00000001FF […] :00000001 […] :0000000000 […] Por defecto, se utiliza la variante 0, que parece ser la más común. […] Si el nombre del archivo de destino no tiene extensión, se asume la extensión HEX. […]
  2. 1 2 "AR#476 PROMGen - Descripción de los formatos de archivo PROM/EEPROM: MCS, EXO, HEX y otros" . Xilinx . 8 de marzo de 2010. Objeto hexadecimal Intel MCS-86 - Código de formato de archivo 88. Archivado del original el 3 de marzo de 2020. Recuperado el 3 de marzo de 2020 .
  3. Sabnis, Abhishek (04/02/2011). "Cómo convertir un archivo .out a .int, .hex, .a43" . Foro de Code Composer Studio . Texas Instruments . Archivado del original el 20/10/2023 . Consultado el 20/10/2023 . El programador de TI necesita el formato de archivo .int, .hex, .a43.
  4. 1 2 3 Schuldt, Michael (2018). "intel-hex-mode" . github.com . Archivado del original el 24-10-2020 . Recuperado el 20-10-2023 . Por defecto, este modo está habilitado para archivos con extensión .a90, .hex, .a43 o .ihx.
  5. 1 2 3 4 5 6 "3.1. Formato de archivo hexadecimal Intel 8086". Sistema operativo CP/M-86 - Guía del sistema (PDF) (2.ª impresión, 1.ª ed.). Pacific Grove, California, EE. UU.: Digital Research . Junio ​​de 1981. págs. 15–16 . Archivado (PDF) del original el 28 de febrero de 2020. Recuperado el 28 de febrero de 2020. pág. 16: […] Los siguientes son resultados exclusivos de ASM-86: 81 igual que 00, los datos pertenecen al segmento de código […] 82 igual que 00, los datos pertenecen al segmento de datos […] 83 igual que 00, los datos pertenecen al segmento de pila […] 84 igual que 00, los datos pertenecen al segmento extra […] 85 dirección de párrafo para el segmento de código absoluto […] 86 dirección de párrafo para el segmento de datos absoluto […] 87 dirección de párrafo para el segmento de pila absoluto […] 88 dirección de párrafo para el segmento extra absoluto […] Todos los caracteres que preceden a los dos puntos de cada registro se ignoran. […]   (17 páginas)
  6. 1 2 3 4 5 "Apéndice C. Formato de salida hexadecimal ASM-86". CP/M-86 - Sistema operativo - Guía del programador (PDF) (3.ª ed.). Pacific Grove, California, EE. UU.: Digital Research . Enero de 1983 [1981]. págs. 97–100 . Archivado (PDF) del original el 27 de febrero de 2020. Recuperado el 27 de febrero de 2020. págs. 97–99 : […] El formato Intel es idéntico al formato definido por Intel para el 8086. El formato de Digital Research es casi idéntico al formato Intel, pero agrega información de segmento a los registros hexadecimales. La salida de cualquiera de los formatos se puede ingresar a GENCMD , pero el formato de Digital Research proporciona automáticamente la identificación del segmento. Un segmento es la unidad más pequeña de un programa que se puede reubicar. […] Es en la definición de los tipos de registro 00 y 02 donde el formato hexadecimal de Digital Research difiere del de Intel. Intel define un valor para cada tipo de registro de datos y otro para el tipo de dirección de segmento. Digital Research identifica cada registro con el segmento que lo contiene. […] 00H para datos pertenecientes a todos los segmentos 8086 […] 81H para datos pertenecientes al segmento CODE […] 82H para datos pertenecientes al segmento DATA […] 83H para datos pertenecientes al segmento STACK […] 84H para datos pertenecientes al segmento EXTRA […] 02H para todos los registros de direcciones de segmento […] 85H para una dirección de segmento absoluta CODE […] 86H para una dirección de segmento DATA […] 87H para una dirección de segmento STACK […] 88H para una dirección de segmento EXTRA […]   (1+viii+122+2 páginas)
  7. 1 2 Ramos, Rubens (2010) [2008]. "intel-hex-mode.el --- Modo para archivos Intel Hex" . Recuperado el 20 de octubre de 2023 .
  8. 1 2 3 "El desensamblador interactivo: formatos de archivo hexadecimales" . Hex-Rays . 2006. Archivado del original el 1 de marzo de 2020. Recuperado el 1 de marzo de 2020 .Archivado el 16 de noviembre de 2021 en Wayback Machine .
  9. 1 2 3 4 5 6 Roche, Emmanuel (2020-04-01). "El formato de archivo Intel HEX" . Francia: Newsgroup : comp.os.cpm . INTELHEX.WS4. Archivado del original el 2021-12-08 . Recuperado el 2021-12-08 . […] el formato de archivo Intel HEX puede contener mucho más que los "bytes de datos". Siempre que las líneas no comiencen con dos puntos (":"), pueden contener cualquier cosa que desee. […] Una vez vi un archivo HEX grande […] Contenía, al principio, el código fuente de un programa PL/M , seguido, al final, por el archivo HEX resultante producido por el compilador PL/M. […] Encontré otro archivo HEX que contenía varias líneas de comentarios, no al principio ni al final, sino que separaban varias líneas de "registros absolutos". […] era de un "(Intel) 8008 Simulator". Así pues, al principio de su uso, era bien sabido que los archivos HEX podían contener explicaciones. […] en CP/M o en cualquier sistema de 8 bits y 64K, queda un caso: "Direcciones de página". Desde CP/M, es estándar mostrar las direcciones de memoria utilizando el sistema hexadecimal […] como dijimos para los archivos BIN/COM, las direcciones de memoria son 0000/0100. […] esas direcciones de memoria se pueden escribir 00-00/01-00 […] para decir: Página cero, dirección cero / Página uno, dirección cero. […] la dirección de memoria más alta en un ordenador de 8 bits y 64K es FFFF […] Página FF, dirección FF […] las direcciones más bajas están en la Página cero (o 00) y las direcciones más altas están en la Página FF. […] Los tipos de archivo de CP/M tienen 3 letras de longitud, se podrían usar tipos de archivo de la forma P00–PFF […] para indicar en qué dirección de memoria cargar el archivo HEX. […] Me di cuenta de que la mayoría de mis direcciones terminaban en "00", por lo que la dirección de carga se podía reducir a la dirección de la página, que […] se podía colocar dentro del tipo de archivo […] 
  10. 1 2 "Apéndice D. Formatos de archivo de objeto absoluto MCS-86: formato de archivo de objeto hexadecimal". Utilidades de la familia 8086 - Guía del usuario para sistemas de desarrollo basados ​​en 8080/8085 (PDF) . Revisión E (ed. A620/5821 6K DD ). Santa Clara, California, EE. UU.: Intel Corporation . Mayo de 1982 [1980, 1978]. págs. D-8 – D-13 . Número de pedido 9800639-04. Archivado (PDF) del original el 29/02/2020 . Recuperado el 29/02/2020 .  
  11. 1 2 3 4 Especificación del formato de archivo de objeto hexadecimal . Revisión A. Intel Corporation . 1998 [1988-01-06] . Recuperado el 23-07-2019 .(11 páginas)
  12. "Documentación del formato de archivo hexadecimal de programación LT: programación en circuito" . Analog Devices, Inc. / Linear Technology . 2021. Archivado del original el 7 de marzo de 2021. Consultado el 11 de diciembre de 2021 .
  13. "General: Formato de archivo hexadecimal Intel" . ARM Keil . ARM Germany GmbH . 2018-05-07 [2012]. KA003292. Archivado del original el 27-02-2020 . Recuperado el 06-09-2017 .
  14. 1 2 Crosby, Kip (enero-marzo de 1994). "El amanecer del micro: Intellecs de Intel" (PDF) . The Analytical Engine . 1 (3). Computer History Association of California: 10–14 . ISSN 1071-6351 . Archivado (PDF) del original el 17 de octubre de 2023. Recuperado el 17 de octubre de 2023 . págs. 10-11 : […] el Intel Intellec 8 […] apareció por primera vez en algún momento de 1972 o 1973, dos años o más antes del Altair 8800, a menudo considerado el "primer microordenador" por las historias estándar […] Intel sostiene que el 8 Mod 8 se produjo por primera vez en 1973 y se descontinuó en 1975. Tony Duell tiene una placa de CPU 8 Mod 80 con fecha de 1972, y tanto el 8 Mod 8 como el 4 Mod 40 aparecen en el Catálogo de Datos de Intel publicado en febrero de 1976, por lo que el período real de producción puede haber sido algo más largo. (Es necesario leer con atención la documentación pertinente de Intel, ya que los nombres MCS4, MCS40, MCS8 y MCS80 se usaban casi indistintamente para referirse a conjuntos de chips, ordenadores o sistemas completos). […]  (52 páginas) (Nota: Este artículo no menciona Intel Hex, pero sí menciona específicamente que el sistema Intellec de Intel se presentó oficialmente en 1973, aunque existen algunas unidades con fecha de 1972).
  15. 1 2 3 4 5 6 7 8 9 "Capítulo 6. Hoja de datos de componentes del sistema de microcomputadoras - EPROM y ROM: I. Instrucciones de programación de PROM y ROM - B1. Formato de cinta de papel Intellec Hex / C1. Formato de tarjeta perforada de computadora Intellec Hex". Manual del usuario de MCS-80 (con introducción a MCS-85) . Santa Clara, California, EE. UU.: Intel Corporation . Octubre de 1977 [1975]. págs. 6-75 – 6-78 . 98-153D . Recuperado el 27-02-2020 . pág. 6-76: […] En el formato Intel Intellec Hex, un campo de datos puede contener datos de 8 o 4 bits. Se deben usar dos caracteres hexadecimales ASCII para representar datos de 8 y 4 bits. En el caso de datos de 4 bits, solo uno de los caracteres es significativo y debe especificarse en el formulario de pedido de Intel PROM/ROM. […] Antes del primer campo de datos y después del último, debe haber un espacio inicial/final de al menos 25 caracteres nulos. Se pueden colocar comentarios (excepto dos puntos) en el espacio inicial de la cinta . […] Si los datos son de 4 bits, el dígito de orden superior o inferior representa los datos, y el otro dígito del par puede ser cualquier dígito hexadecimal ASCII. […]  (468 páginas) (Nota: Este manual también describe un " Formato de cinta de papel BPNF ", un "Formato de cinta de papel hexadecimal no Intellec" y un "Formato de tarjeta perforada para computadora PN").
  16. Kildall, Gary Arlen (enero de 1980). «La historia de CP/M, la evolución de una industria: el punto de vista de una persona» . Dr. Dobb's Journal of Computer Calisthenics & Orthodontia . 5 (1): 6– 7. #41. Archivado del original el 24 de noviembre de 2016. Recuperado el 3 de junio de 2013. […] Los programas habían sido escritos y probados por el grupo de software de Intel, compuesto por mí y otras dos personas, y estábamos listos para la máquina real. […]
  17. Kildall, Gary Arlen (2016-08-02) [1993]. Kildall, Scott ; Kildall, Kristin (eds.). Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry (Manuscrito, parte 1). Familia Kildall. Archivado (PDF) del original el 17-11-2016 . Recuperado el 17-11-2016 .(Nota: La segunda parte no se publica por motivos de privacidad familiar).
  18. Burgett, Kenneth "Ken" (10 de noviembre de 2017). "Desarrollo del sistema operativo Intel ISIS: una entrevista con Ken Burgett" . Archivado del original el 24 de noviembre de 2023. Consultado el 25 de noviembre de 2023 .
  19. Feichtinger, Herwig (1987). "1.8.5. Lochstreifen-Datenformate: Das Intel-Hex-Format" [ 1.8.5. Formatos de datos de cinta de papel ] . Arbeitsbuch Mikrocomputer [ Libro de trabajo sobre microcomputadoras ] (en alemán) (2 ed.). Múnich, Alemania: Franzis-Verlag GmbH . págs. 240-243 [243]. ISBN   3-7723-8022-0.
  20. 1 2 3 4 5 "4.3 Formato de archivo hexadecimal Intel". Sistema operativo concurrente CP/M - Guía de referencia del programador (PDF) (1.ª ed.). Pacific Grove, California, EE. UU.: Digital Research Inc. Enero de 1984. págs. 4-9 – 4-12 . Archivado (PDF) del original el 11/12/2021 . Recuperado el 11/12/2021 . págs. 4-11 – 4-12 : […] Las siguientes son salidas solo de ASM-86: 81 igual que 00, los datos pertenecen al segmento de código […] 82 igual que 00, los datos pertenecen al segmento de datos […] 83 igual que 00, los datos pertenecen al segmento de pila […] 84 igual que 00, los datos pertenecen al segmento extra […] *85 dirección de párrafo para el segmento de código absoluto […] *86 dirección de párrafo para el segmento de datos absoluto […] *87 dirección de párrafo para el segmento de pila absoluto […] *88 dirección de párrafo para el segmento extra absoluto […] * 85, 86, 87 y 88 son extensiones de investigación digital. […] Todos los caracteres que preceden a los dos puntos de cada registro se ignoran. […]   (346 páginas) (Nota: Este manual solo identifica los tipos 85, 86, 87 y 88 como extensiones de Investigación Digital, como si los tipos 81, 82, 83 y 84 no lo fueran).
  21. 1 2 3 4 "2.8. Formatos de microprocesador, 2.8.1. Requisitos de entrada: formato Intel Intellec 8/MDS. Seleccione el código 83". Guía del operador para las capacidades de E/S serie de los programadores de E/S de datos - Paquete de traducción de formato (PDF) . Revisión C. Data I/O Corporation . Octubre de 1980. pág. 2-10. 055-1901. Archivado (PDF) del original el 1 de marzo de 2020. Recuperado el 1 de marzo de 2020. pág. 2-10: […] Entrada […] Este espacio se puede utilizar para salto de línea, retorno de carro o comentarios. […] Salida […] 2) Cada línea termina con salto de línea no imprimible, retorno de carro y caracteres nulos. […]  (1+ii+19 páginas)
  22. 1 2 3 "Formato Intel Intellec 8/MDS, Código 83". Formatos de archivo de traducción (PDF) . Data I/O Corporation . 3 de septiembre de 1987. págs. 22, 26–27 , 52–53 , 54. Archivado (PDF) del original el 28 de julio de 2021. Recuperado el 1 de marzo de 2020. págs. 22, 26, 52: […] Retorno de carro no imprimible, salto de línea y nulos determinados por el recuento de nulos […]  (56 páginas)
  23. 1 2 3 "Apéndice B: Formato Intel Hex e Intel Extended Hex - B.1 Formato común". Manual del controlador de semiconductores Fujitsu: Manual del kit de enlace Softune de la familia FR/F 2 MC para V3 (PDF) . Fujitsu Limited . 2001. págs. 319–525 [320–321]. Archivado (PDF) del original el 12/12/2021 . Recuperado el 12/12/2021 . pág. 321: […] (g) Generalmente, se agrega un código de control (como CR y LF). Los datos en este campo se omiten hasta que aparece el carácter inicial ":" de (a). Dado que los campos (a), (b), (c), (d) y (f) siempre existen, la longitud mínima de un registro es de 11 bytes y la máxima es de 521 bytes. […]  (4+x+350 páginas)
  24. 1 2 "1.6.4 PIP". Manual del sistema operativo CP/M (primera edición impresa). Pacific Grove, California, EE. UU.: Digital Research . Julio de 1982 [1976]. págs. 17–23 . Recuperado el 12 de diciembre de 2021. págs. 19–21 : […] PIP realiza una función especial si el destino es un archivo de disco de tipo "HEX" (un archivo de código máquina con formato hexadecimal de Intel ) y el origen es un dispositivo periférico externo, como un lector de cinta de papel . En este caso, el programa PIP comprueba que el archivo de origen contenga un archivo hexadecimal correctamente formado, con valores hexadecimales válidos y registros de suma de comprobación. Cuando se encuentra un registro de entrada no válido, PIP informa un mensaje de error en la consola y espera la acción correctiva. Por lo general, basta con abrir el lector y volver a ejecutar una sección de la cinta (retroceder la cinta unos 50 cm). Cuando la cinta esté lista para la relectura, se pulsa un retorno de carro en la consola y PIP intentará otra lectura. Si no se puede leer correctamente la posición de la cinta, el usuario continúa la lectura (pulsando un retorno después del mensaje de error) e introduce el registro manualmente con el programa ED una vez creado el archivo de disco. Para mayor comodidad, PIP permite introducir el final del archivo desde la consola si el archivo de origen es un dispositivo RDR:. En este caso, el programa PIP lee el dispositivo y monitoriza el teclado. Si se pulsa Ctrl+Z en el teclado, la operación de lectura finaliza normalmente. […] […] Enviar 40 caracteres nulos al dispositivo perforador ; copiar el archivo X.ASM al perforador, seguido de un final de archivo (Ctrl+Z) y 40 caracteres nulos más. […] […] Transferencia de datos HEX: se comprueba que todos los datos tengan el formato de archivo hexadecimal Intel correcto. Los caracteres no esenciales entre los registros hexadecimales se eliminan durante la operación de copia. Se solicitará a la consola que tome medidas correctivas en caso de que se produzcan errores. […] […] Ignore los registros ":00" en la transferencia del archivo en formato hexadecimal Intel (el parámetro I establece automáticamente el parámetro H). […] […] Primero copie X.HEX al dispositivo PUN: e ignore el registro ":00" final en X.HEX; continúe la transferencia de datos leyendo Y.ZOT, que contiene registros HEX, incluidos los registros ":00" que contenga. […]   PIP PUN:=NUL:,X.ASM,EOF:,NUL:HIPIP PUN:=X.HEX[i],Y.ZOT[h](6+250 páginas)
  25. 1 2 3
     1 CARRY 05714 2 CERO 05715 3 SEÑAL 05716 4 PARIDAD 05717 5 MEMORIA 06000 23 SQUAREROOT 04003 […] 83 MONITORES 05766 $ 
      1008000044520A2E0B36D0F930FA31CF30D730F9B6
      […]
      100AF0000936F4C730D70401C8C20C0031F930F808
      040B0000445E0AFF46
        0000000000
        $

        "Apéndice A: Un programa de ejemplo en PL/M: Cinta de objetos hexadecimales". MCS-8 Guía para la programación en PL/M (PDF) . Rev. 1 (edición impresa de septiembre de 1974 ). Santa Clara, California, EE. UU.: Intel Corporation . 15 de marzo de 1974 [septiembre de 1973]. pág. 102. MCS180-0774-1K, MCS280-0974-1K. Archivado (PDF) del original el 29 de enero de 2022. Recuperado el 18 de mayo de 2022 .  

        (1+i+100+1+11+1 páginas) (Nota: Muestra un ejemplo con separadores basados ​​en asteriscos y un encabezado con sangría de espacio con nombres de símbolos que serán procesados ​​por el comando HEXOBJ de Intel ISIS, así como por INTERP/8 o INTERP/80 para la depuración simbólica . Este encabezado opcional no está documentado como parte de los formatos hexadecimal o BNPF de Intel, sino en los manuales de programación PL/M y ensamblador de Intel que generan dichas tablas de símbolos).
      • ^ Hennig-Roleff, Werner ( 1 de febrero de 1993 ) [1988]. "HEX.DOC: formato Intel-HEX" . SIM51 . 1.04 (en alemán). Archivado desde el original el 11 de agosto de 2017 . Consultado el 8 de diciembre de 2021 . […] Beim Absolut-Hex Konvertierprogramm von Keil können opcional […] Symbol-Informationen in den Hex-File aufgenommen werden. La información de símbolos se guarda en la entrada de archivos, antes que ':'. La información de símbolos sind allerdings nicht sehr aussagekräftig, da nicht unterschieden wird zwischen Modul-Name, CODE, XDATA, DATA, IDATA, BIT, NUMBER. Para que los símbolos incluidos no se utilicen caracteres ASCII. Pro Zeile ist 1 Symbol angeschrieben und zwar in der Form: "0 SymbolName Wert" […](Nota: Esta es una versión anterior de SIM51; el software y la documentación se mantuvieron actualizados hasta 1996).
      • G., Georg (05 de septiembre de 2021) [04 de septiembre de 2021]. "Archivo hexadecimal flasheado" . Microcontrolador y electrónica digital. mikrocontroller.net (en alemán) . Consultado el 23 de noviembre de 2023 . […] Información de depuración en Intel con un "$" an. Dann kamen der Name des Symbols und die Adresse. Kommentare hatten als erstes Zeichen ein ";". […] El ASM48 bajo ISIS-2 produce solche Hexfiles, […] el ASM86 también. […]
      • 1 2 "Apéndice A. Ejemplo de formato de listado / Apéndice C. Formato de archivo de objeto hexadecimal". 2920 Manual del lenguaje ensamblador (PDF) . Santa Clara, California, EE. UU.: Intel Corporation . Agosto de 1979. págs. A-3, C-1 – C-2 . Número de pedido 9800987-01. Archivado (PDF) del original el 26/11/2023 . Recuperado el 26/11/2023 . pág. C-1: […] El código está formateado en bytes hexadecimales de datos. El archivo contiene la representación ASCII de los bytes hexadecimales de datos. El código objeto en sí está precedido por una tabla de símbolos. Estas dos partes pueden cargarse o guardarse juntas o por separado. La tabla de símbolos es una serie de registros, terminada por un signo de dólar. Cada registro contiene tres campos separados por uno o más espacios ASCII: […] un campo numérico […] un campo de etiqueta que contiene la representación ASCII de un símbolo del programa fuente […] un campo de dirección que contiene la dirección hexadecimal asignada al símbolo […] La tabla de símbolos finaliza con un registro cuyo primer carácter no en blanco es un signo de dólar. El código objeto […] sigue a la tabla de símbolos […] Cada uno de estos registros o líneas físicas consta de seis campos lógicos de longitud variable en caracteres o marcos. […]  (90 páginas) (Nota: El Intel 2920 fue un procesador de señales digitales lanzado en 1979).
      • 1 2 Formaniak, Peter G.; Leitch, David (julio de 1977). "Un estándar de software para microprocesadores propuesto" . BYTE - la revista de sistemas pequeños . Foro técnico. Vol. 2, n.º 7. Peterborough, New Hampshire, EE. UU.: Byte Publications, Inc. págs. 34, 62–63 . ark:/13960/t32245485 . Recuperado el 6 de diciembre de 2021 .   (3 páginas) (Nota: Describe una extensión del formato hexadecimal de Intel realizada por Mostek ).
      • 1 2 3 4 Ogdin, Carol Anne; Colvin, Neil; Pittman, Tom; Tubb, Philip (noviembre de 1977). "Formatos de código objeto reubicables" . Byte: The Small Systems Journal . Technical Forum. 2 (11). Peterborough, New Hampshire, EE. UU.: Byte Publications, Inc. : 198– 205. ark:/13960/t59c88b4h, ark:/13960/t3kw76j24 . Recuperado el 6 de diciembre de 2021 .(8 páginas) (Nota: Entre otras cosas, describe una extensión incompatible del formato hexadecimal de Intel utilizado por Technical Design Labs (TDL)).
      • ^ Kreidl, Günter (junio de 1981) . "Reubicación: formato TDL" . Hardware. Revista Nascom - Zeitschrift für Anwender des NASCOM 1 o NASCOM 2 (en alemán). 2 (6). Germersheim, Alemania: Verlag NASCOM Journal, MK-Systemtechnik: 12–14 [12]. Archivado desde el original el 1 de diciembre de 2021 . Consultado el 11 de diciembre de 2021 .(20 páginas) (Nota: Muestra una variante del formato TDL , que a su vez es una variante del formato hexadecimal de Intel).
      • Rüger, Stefan M. (16 de junio de 2022). "Proporciona el formato de archivo I: Intel HEX con comentarios que ignoran los errores de suma de comprobación" . AVRDUDE . Archivado del original el 25 de noviembre de 2023. Recuperado el 25 de noviembre de 2023 .(Nota: Opción de comentario de AVRDUDE: Puedo generar incorrectamente caracteres ":" como parte del volcado hexadecimal ).
      • Bull, Hans Eirik; Dean, Brian S.; Rüger, Stefan M.; Wunsch, Jörg (15 de julio de 2023). "AVRDUDE - Un programa para descargar/cargar memoria flash, EEPROM y más de microcontroladores AVR para AVRDUDE" (PDF) . Versión 7.2. Archivado (PDF) del original el 23 de noviembre de 2023. Recuperado el 23 de noviembre de 2023. pág. 12: […] Yo […] Intel Hex con comentarios sobre la descarga y tolerancia a errores de suma de comprobación en la carga […] (66 páginas)
      • 1 2 Beckler, Matthew L. (25-07-2016) [19-07-2016]. "Blinky Grid - serial optical bit stream" . Discourse . Minneapolis, Minnesota, EE. UU.: Wayne and Layne, LLC. Archivado del original el 11-12-2021 . Recuperado el 11-12-2021 .
      • 1 2 "Especificación del formato hexadecimal universal de micro:bit - Especificación para el formato hexadecimal universal de micro:bit" . micro:bit . 0.4.0. Fundación Educativa Micro:bit. 26/01/2021 [2020]. Archivado del original el 14/08/2021 . Consultado el 08/12/2021 .(Nota: Esto representa una especie de formato de archivo hexadecimal grande ).
      • Manual del operador del sistema de microcomputadora Intellec 8. Intel Corporation . Noviembre de 1973.
      • «Apéndice D. Formato de cinta de programa hexadecimal». Manual del operador de Intellec 8/MOD 80. Intel . Junio ​​de 1974. 98-003A. […] Marcos 7,8: Tipo de registro […] Dos caracteres ASCII. Actualmente (1974), todos los registros son de tipo 0. Este campo está reservado para futuras ampliaciones […]
      • Catálogo de herramientas de desarrollo 1988 (PDF) . Intel Corporation . 1988. págs. 25–26 , 30–32 . Número de pedido 280199-004. Archivado (PDF) del original el 26/11/2023 . Recuperado el 26/11/2023 . (46 páginas)
      • "Microcontroladores PIC: formato de archivo hexadecimal PIC" . Blog de Kanda Electronics . Canolafan, Llanafan, Aberystwyth, Gales, Reino Unido: Embedded Results Ltd. 26 de abril de 2012. Archivado del original el 16 de agosto de 2021. Consultado el 11 de diciembre de 2021 .
      • "15.3 Utilidad XC16-BIN2HEX - 15.3.3 Archivos de entrada/salida". MPLAB XC16 Ensamblador, enlazador y utilidades - Guía del usuario (PDF) . Microchip Technology Inc. 2018 [2013]. págs. 240–241 . ISBN  978-1-5224-2828-2. DS50002106D. Archivado (PDF) del original el 22/01/2019 . Recuperado el 05/12/2023 . pág.  240: […] Debido a que el formato de archivo hexadecimal de Intel está orientado a bytes, y el PC de 16 bits no lo está, las secciones de memoria de programa requieren un tratamiento especial. Cada palabra de programa de 24 bits se extiende a 32 bits insertando un llamado "byte fantasma". Cada dirección de memoria de programa se multiplica por 2 para obtener una dirección de byte. Por ejemplo, una sección que se encuentra en 0x100 en la memoria de programa se representará en el archivo hexadecimal como 0x200. Considere el siguiente código fuente en lenguaje ensamblador: […]  ; archivo test.s […] .section foo,code,address(0x100) […] .pword 0x112233 […] El archivo […] se producirá con el siguiente contenido: […] :020000040000fa […] :040200003322110096 […] :00000001FF […] el registro de datos (línea 2) tiene una dirección de carga de 0200, mientras que el código fuente especifica la dirección 0x100. […] Los datos se representan en formato " little-endian ", lo que significa que el byte menos significativo aparece primero. El byte fantasma aparece al final, justo antes de la suma de verificación. […](277 páginas)
      • Kildall, Gary Arlen (febrero de 1978) [1976]. "Una técnica sencilla para la reubicación estática de código máquina absoluto" . Dr. Dobb's Journal of Computer Calisthenics & Orthodontia . 3 (2). People's Computer Company : 10–13 (66–69). ISBN 0-8104-5490-4. #22 ark:/13960/t8hf1g21p . Recuperado el 19-08-2017 .. Presentado originalmente en: Kildall, Gary Arlen (1977) [22–24 de noviembre de 1976]. "Una técnica simple para la reubicación estática de código máquina absoluto". Escrito en la Escuela Naval de Posgrado , Monterey, California, EE. UU. En Titus, Harold A. (ed.). Actas de la conferencia: Décima Conferencia Anual de Asilomar sobre Circuitos, Sistemas y Computadoras: Artículos presentados del 22 al 24 de noviembre de 1976. Conferencia de Asilomar sobre Señales, Sistemas y Computadoras . Hotel y Recinto de Conferencias de Asilomar, Pacific Grove, California, EE. UU.: Western Periodicals Company. págs. 420–424 . ISSN 1058-6393 . Recuperado el 6 de diciembre de 2021 .  (609 páginas)
      • ^ Zschocke, Jörg (noviembre de 1987). "Nicht nur Entwicklungshilfe - Descarga para Einplatinencomputer am Beispiel des EPAC-09: Intel-Hex-Format". c't - magazin für computertechnik (en alemán). vol. 1987, núm. 11. Verlag Heinz Heise GmbH & Co. KG . págs. 198, 200, 202-203 , [200]. ISSN 0724-8679 . […] Den Vorspann beschließt un Byte, dessen Wert den des Blockes angibt: 0 = Datenblock, 1 = Endblock. Auf diese Unterscheidung kann jedoch verzichtet werden, wenn sich un Endblock auch durch eine Blocklänge gleich Null eindeutig kennzeichnen läßt. (Por lo tanto, coloque el ensamblador principal en CP/M , además del XASM09; el Typbyte es nulo). […]    (Nota: XASM09 es un ensamblador para Motorola 6809 ).
      • Prior, James E. (1989-02-24). "Re: Preguntas sobre el formato hexadecimal de Intel (*.HEX)" . Grupo de noticias : comp.os.cpm . Recuperado el 27 de febrero de 2020 . 
      • 1 2 3 "Especificación de programación PIC16C5X 5.0 - Formatos de datos hexadecimales PIC16C5X: 5.1. Formato hexadecimal Intellec dividido de 8 bits (INHX8S) / 5.2. Formato hexadecimal Intellec combinado de 8 bits (INHX8M) / 5.3. Formato hexadecimal de 16 bits / 5.4. Formato de palabra de 8 bits / 5.5. Formato de palabra de 16 bits". Microchip Databook (ed. 1994 ). Microchip Technology Inc. Abril de 1994. págs. 3-10 – 3-11 , 9-10, 9-15, 9-17, 9-21, 9-23, 9-27. DS00018G . Recuperado el 28-02-2020 . […] Los ensambladores para el PIC16C5X pueden producir archivos objeto PIC16C5X en varios formatos. Un programador PIC16C5X debe poder aceptar y enviar datos en al menos uno de los siguientes formatos. Se prefiere el formato combinado de 8 bits (INHX8M). […] formato […] INHX8S […] produce dos archivos hexadecimales de 8 bits. Un archivo contendrá los pares de dirección/datos para los 8 bits de orden superior y el otro archivo contendrá los 8 bits de orden inferior. Las extensiones de archivo para el código objeto serán '.obl' y '.obh' para archivos de orden inferior y superior […] formato […] INHX8M […] produce un archivo hexadecimal de 8 bits con una combinación de byte bajo/byte alto. Dado que cada dirección solo puede contener 8 bits en este formato, todas las direcciones se duplicarán. Las extensiones de archivo para el código objeto serán '.obj' […] formato […] INHX16 […] produce un archivo hexadecimal de 16 bits. La extensión del archivo para el código objeto será '.obj'. […]  
      • Beard, Brian (2016) [2010]. "Formato de registro HEX del microchip INHX8M" . Lucid Technologies . Archivado del original el 28 de febrero de 2020. Recuperado el 28 de febrero de 2020 .
      • Beard, Brian (2016) [2013]. "Formato de registro HEX del microchip INHX32" . Lucid Technologies . Archivado del original el 28 de febrero de 2020. Recuperado el 28 de febrero de 2020 .
      • ^ Paul, Matías R. (1992). BINTEL: Binär-Image-Konverter mit Intel-Hex-Unterstützung - Bedienungsanleitung [ Convertidor de imágenes binarias con soporte Intel Hex - Manual de usuario ] (en alemán).(Nota: Como consecuencia del uso de la herramienta para procesar, analizar, comparar, dividir, cortar, rellenar, combinar, reubicar o convertir imágenes de firmware binario (fe para o desde una o más ROM) con líneas de datos o direcciones deliberadamente fijas ("1" o "0"), invertidas, omitidas (" no importa "), interconectadas o intercambiadas (como a veces se usa para facilitar el enrutamiento de PCB de buses paralelos o por razones de ofuscación para dificultar el desmontaje ), este convertidor de imágenes binarias admitía varias extensiones al formato Intel Hex).

      Lecturas adicionales

      • "¿Cómo interpreto los datos con formato HEX de Motorola S e Intel? Intel Hex-32, código 99" . Inicio > Hardware > … > Sistemas de prueba en circuito > Equipos de prueba automatizados [Descontinuado] > Detalles . Keysight Technologies . Archivado del original el 1 de marzo de 2020. Consultado el 1 de marzo de 2020 .
      • Bergmans, San (2019-06-02) [2001]. "Formato HEX de Intel" . SB-Projects . Archivado del original el 2020-03-01 . Recuperado el 2020-03-01 .
      • Beard, Brian (2016) [2007]. "Formato de registro HEX de Intel" . Lucid Technologies . Archivado del original el 28 de febrero de 2020. Recuperado el 28 de febrero de 2020 .
      • Anderson, Thomas N. (febrero de 1998). "Formato de objeto de dirección de palabra hexadecimal Intel". Manual del usuario del ensamblador Telemark (TASM) (PDF) . 3.1. Issaquah, Washington, EE. UU.: Squak Valley Software. págs. 25–26 . Archivado (PDF) del original el 11 de diciembre de 2021. Recuperado el 11 de diciembre de 2021. Formato de objeto de dirección de palabra hexadecimal Intel […] Este formato es idéntico al formato de objeto hexadecimal Intel, excepto que la dirección de cada línea de código objeto se divide por dos, convirtiéndola así en una dirección de palabra (palabra de 16 bits). Todos los demás campos son idénticos. Aquí hay un ejemplo: […] :180800000102030405060708090A0B0C0D0E0F101112131415161718AC […] :02080C00191AA3 […] :00000001FF […] (32 páginas)
      • "Protocolo de descarga en serie ADuC70xx" (PDF) (Nota de aplicación). Revisión C. Norwood, Massachusetts, EE. UU.: Analog Devices . 2016. AN-724. Archivado (PDF) del original el 5 de octubre de 2023. Consultado el 5 de octubre de 2023 .(8 páginas)
      • binex : un convertidor entre Intel HEX y binario para Windows.
      • SRecord , un convertidor entre Intel HEX y binario para Linux ( uso ), código fuente en C++.
      • kk_ihex , biblioteca C de código abierto para leer y escribir Intel HEX.
      • libgis , biblioteca C de código abierto que convierte archivos Intel HEX, Motorola S-Record y Atmel Generic.
      • bincopy es un paquete de Python para manipular archivos Intel HEX.
      • SwiftIntelHex : un paquete Swift para analizar archivos Intel HEX para iOS y macOS.