Intel hexadecimal object file format, Intel hex format or Intellec Hex is a that conveys binary information in ASCII form. It is commonly used for programming microcontrollers, EPROMs, and other types of programmable logic devices and hardware emulators. In a typical application, a compiler or assembler converts a program's source code (such as in C or assembly language) to machine code and outputs it into a HEX file. Some also use it as a container format holding packets of stream data. Common file extensions used for the resulting files are .HEX or .H86. The HEX file is then read by a programmer to write the machine code into a PROM or is transferred to the target system for loading and execution. The Intel hex format was originally designed for Intel's Intellec Microcomputer Development Systems (MDS) in 1973 in order to load and execute programs from paper tape. It was also used to specify memory contents to Intel for ROM production. In 1973, Intel's "software group" consisted only of Bill Byerly and Ken Burget, and Gary Kildall as an external consultant. Beginning in 1975, the format was utilized by MCS Series II ISIS-II systems, using the file extension HEX. Many PROM and EPROM programming devices accepted this format. Intel HEX consists of lines of ASCII text that are separated by line feed or carriage return characters or both. Each text line contains hexadecimal characters that encode multiple binary numbers. The binary numbers may represent data, memory addresses, or other values, depending on their position in the line and the type and length of the line. Each text line is called a record. A record (line of text) consists of six fields (parts) that appear in order from left to right: Start code, one character, an ASCII colon ''. All characters preceding this symbol in a record should be ignored. In fact, very early versions of the specification even asked for a minimum of 25 NUL characters to precede the first record and follow the last one. However, as this was a little known part of the specification, not all software written copes with this correctly.
Adam Shmuel Teman, Robert Giterman, Pascal Andreas Meinerzhagen