Browse Prior Art Database

Intel ASCII Hex to ASBLOCK Conversion Algorithm

IP.com Disclosure Number: IPCOM000036245D
Original Publication Date: 1989-Sep-01
Included in the Prior Art Database: 2005-Jan-28
Document File: 5 page(s) / 154K

Publishing Venue

IBM

Related People

Landry, JA: AUTHOR [+4]

Abstract

This article describes an algorithm which takes as input a hex file with American National Standards Code for Information Exchange (ASCII) character codes and converts it to a format called ASBLOCK.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 55% of the total text.

Page 1 of 5

Intel ASCII Hex to ASBLOCK Conversion Algorithm

This article describes an algorithm which takes as input a hex file with American National Standards Code for Information Exchange (ASCII) character codes and converts it to a format called ASBLOCK.

Output from Intel 80452 cross assemblers is not in an acceptable format to use in the down-loading of 80452 microcontroller code from a personal computer system host to a custom interface adapter card. The system user would realize a performance degradation if the adapter card was required to convert from the Intel ASCII hex format to executable code.

(Image Omitted)

The algorithm disclosed herein takes as input a hex file with ASCII character codes and converts it to ASBLOCK format. ASBLOCK format is required in the down-load of microcode to certain automotive interface cards. The algorithm can be used to write a software program that will execute the conversion between the formats after code assembly, thus relieving the microcoder from manually having to convert the code or from having code resident in the microcontroller to handle the burden of the conversion during down-load.

(Image Omitted)

The Intel ASCII hex format is output by most Intel 8051 cross assemblers and is used as input by most erasable programmable read-only memory (EPROM) programmers. Fig. 1 illustrates an example of the Intel ASCII hex format. An Intel ASCII hex file contains the printable ASCII representation of executable code used by the microcontroller. The format for this is shown in Fig. 2.

Each line begins with a colon to represent a valid record. Spaces are provided in Fig. 1 for clarity. The characters 'cc' 'aaaa' (Fig. 2) are replaced by the hexadecimal values which represent the actual code. The 'cc' field is a hex data count. For the algorithm the limit of 'cc' is 16 or hex '10'. The 'aaaa' field is the 16-bit address of the first data byte of the record. This is the absolute address in the

(Image Omitted)

microcontroller's code space where the first byte will reside. The 'tt' field represents the hex record data type. A '00' will represent a data record and a '01' for a non-data record. The 'dd' field represents the actual byte values of the code. There will be 'cc' bytes of 'dd' data. The 'ss' characters are a checksum, the negative sum of all byte values from the count through the last data byte. When the checksum is added to the sum of all previous bytes of the record, the result should be zero. Any other value indicates an error. The cr and lf fields represent the ASCII carriage return and line feed characters. The hex file contains as many lines as necessary to define the machine c...