Hex Data Format =============== HUNTER provides the industry standard 'Intel Hex' data format compatible with most CP/M computers. .COM files may be converted to .HEX files with the UNLOAD utility in the host machine, and then 'pipped' out. The data is split into blocks with leader and trailer information and the data in between. Each data block contains the memory locations into which the data is to be placed. A single block of data appears as:- :BBAAAA00DDDDCC where \* BB = No of data bytes \* AAAA = Address of block \* 00 = Null record \* DD = Data byte \* CC = Checksum Each byte is composed of two ASCII hexadecimal characters (0-9 and A-F) The record starts with a colon which is detected by the receiving system. This is followed by a count of the data bytes, the starting address, a delimiter, the data itself and a checksum on the end. The checksum is calculated as the twos complement of the modulo 256 addition of all the preceding bytes. The transmission is ended with a block of zero length. :0000000000 Error Messages -------------- When loading HUNTER the address of the information is checked to ensure that it has written to the usable address space of the physical memory. Also the checksum is checked. If either of these checks fails, then an error message is displayed. :: ** Memory overflow ** or :: ** Loading Error ** as appropriate. Reception at the end of record gives: :: ** Loading completed ** The loading may be aborted at any time by pressing ESC. The length of input data records is optional and is specified by the record up to 255 bytes. Hex Tranmission --------------- The length of the record is fixed at sixteen data bytes. To start the transmission HUNTER awaits the ENTER key to ensure that all connections have been made. The data may be echoed onto the screen to verify active transmission. The transmission may be aborted by pressing ESC. Loading Machine Code Programs ----------------------------- The Hex data format will load any object code into memory. This may then be executed using the :doc:`../basic-functions/call` statement in Basic, or loaded into a file with the file manager.