Посмотрел, что считывает IDE. Получается все необходимое адресное пространство CODE считывается и последовательно записывается встолбик в выходном файле. По мне, так я бы сделал из этого файла нормальный hex-файл. Группируем допустим по 16 байт в строки, добавляем в начале строки заголовок, в конце контрольную сумму.
Код
// Hex Record Format:
//
// +--------+--------+------+-------+--------+------(n bytes)------+----------+
// | RECORD | RECLEN | OFFSET | RECORD | | CHECKSUM |
// | MARK | (n) | (2 BYTES) | TYPE | DATA | |
// | ‘:’ | | | | | |
// +--------+--------+------+-------+--------+------(n bytes)------+----------+
:100D0500914863F70E848FBEE8AB7E5782A1CFEB87 <-пример
тогда RECLEN будет 10 (16 байт), offset начиная с 0000 и каждую строку увеличиваем на 10h, record type всегда 00, дальше данные, в конце вычисляем контрольную сумму по всей строке кроме record mark. Как я понял, вычисляется контрольная сумма следующим образом: складываем все байты строки (естественно, переводя из ascii в hex, а если на калькуляторе, то что видим то и складываем

) к поученному числу нужно добавить такой checksum, чтобы младший байт суммы равнялся 00h.
И в конце всего файла добавляем строку :00000001FF (это что-то типа EndOfFile)