The HEX utility is designed to manipulate ASCII hex formatted files as output by cross-assemblers and linkers for microprocessors (Z80, 8085, 68000, etc.). HEX supports many of the popular ASCII hex formats including: INTEL, TEKHEX, Extended TEKHEX, Motorola, and MOSTEK. The principle components of the HEX utility is a 64K byte virtual memory area that allows the user to manipulate code in memory as if it were in the target machine. Note that the 64Kbyte virtual memory can be extended to cover the entire 2**32 address range via the OFFSET command. HEX will handle 16, 24, or 32-bit addresses. Operations that can be performed on a hex file include: INPUT FUNCTIONS: The commands READ and COMPARE can be used to read hex files into virtual memory or compare hex files with the contents of virtual memory. OUTPUT FUNCTIONS: The WRITE and APPEND commands write the contents of virtual memory to a new file or append them to an existing one. ARITHMETIC AND LOGICAL FUNCTIONS: The commands AND, COMPLEMENT, DECREMENT, DIVIDE, INCREMENT, MULTIPLY, NEGATE, OR, REMAINDER, ROTATE, SHIFT, and XOR perform arithmetic or logical manipulations on the selected range of virtual memory. PROGRAM PARAMETER FUNCTIONS: Several functions including ADDRESSING MODE, FILL, FORMAT, INIT, NAME, OFFSET, and TRANSFER set program parameters such as the transfer address or the program name. VIRTUAL MEMORY MANIPULATION FUNCTIONS: The contents of virtual memory may be manipulated through such commands as COPY, DISPLAY, EDIT, MOVE, REVERSE, and SEARCH. MISCELLANEOUS COMMANDS: Other functions include online help, the ability to spawn DCL commands, and the ability to process indirect command files.