| ファイル名拡張子 | 汎用:.hex、[1] .mcs、[2] .int、[3] .ihex、.ihe、.ihx[4]プラットフォーム固有: .h80、.h86、[5] [6] .a43、[7] [4] .a90[7] [4]分割、バンク、またはページ: .hxl – .hxh、[8] .h00 – .h15、.p00– .pff[9]バイナリまたはインテル16進数: .obj、.obl、[8] .obh、[8] .rom、.eep |
|---|
インテル16進オブジェクトファイル形式、インテル16進形式、またはIntellec Hexは、バイナリ情報をASCIIテキスト形式で伝達するファイル形式であり、 [10]紙テープ、パンチカードなどの非バイナリメディアに保存して、テキスト端末に表示したり、ライン指向プリンタで印刷したりすることができます。[11]この形式は、マイクロコントローラ、EPROM、およびその他の種類のプログラマブルロジックデバイスやハードウェアエミュレータのプログラミングによく使用されます。 一般的なアプリケーションでは、コンパイラまたはアセンブラがプログラムのソースコード( C言語やアセンブリ言語など)をマシンコードに変換し、16進(またはバイナリ)形式のオブジェクトファイルまたは実行可能ファイルに出力します。 一部のアプリケーションでは、インテル16進形式は、ストリームデータのパケットを保持するコンテナ形式としても使用されます。[12]結果として得られるファイルによく使用されるファイル拡張子は、.HEX [1]または.H86です。[5] [6] HEXファイルはプログラマーによって読み込まれ、マシンコードをPROMに書き込むか、ターゲットシステムに転送されてロードおよび実行されます。[11] [13] 16進形式と2進形式( HEX2BINなど)間でファイルを変換したり、その逆(OBJHEX、OH、OHX、BIN2HEXなど)を行うツールは数多くあります。
歴史
インテルHEXフォーマットは、もともと1973年にインテルのIntellec Microcomputer Development Systems [14] : 10–11 (MDS)向けに紙テープからプログラムをロードして実行するために設計された。また、 ROM製造のためにインテルにメモリの内容を指定するためにも使用された。 [15] ROM製造は、それ以前ははるかに効率の悪いBNPF (Begin-Negative-Positive-Finish)フォーマットでエンコードする必要がありました。 [14] : 11 1973年、インテルの「ソフトウェアグループ」は、ビル・バイアリー、ケネス・バーゲット、そしてマイクロコンピュータアプリケーションアソシエイツ(MAA) として事業を展開し、1974年にデジタルリサーチを設立した外部コンサルタントのゲイリー・キルドールのみで構成されていました。 [16] [17] [18] [9] 1975年から、このフォーマットは、ファイル拡張子HEXを使用して、ディスケットドライブをサポートするIntellec Series II ISIS-IIシステムで使用されました。[19]多くのPROMおよびEPROMプログラミングデバイスはこの形式を受け入れます。
形式
Intel HEX は、改行文字または復帰文字、あるいはその両方で区切られたASCIIテキストの行で構成されています。各テキスト行には、複数の 2 進数をエンコードする大文字の16進文字が含まれています。2 進数は、行内の位置、行のタイプと長さに応じて、データ、メモリ アドレス、またはその他の値を表すことができます。各テキスト行はレコードと呼ばれます。
レコード構造
レコード(テキスト行)は、左から右の順に表示される6つのフィールド(部分)で構成されています。 [ 11 ]
- 開始コードは1文字のASCIIコロン「:」です。レコード内でこの記号に先行する文字はすべて無視されます。[15] [5] [20] [21] [22] [23]実際、この仕様のごく初期のバージョンでは、最初のレコードの前と最後のレコードの後に最低25個のNUL文字が必要であるとさえ言われていました。これは、このフォーマットが紙テープフォーマットとして始まり、処理のためにテープのリードインとリードアウトが必要だったためです。[15] [24] [21] [22]ただし、これは仕様の中であまり知られていない部分であったため、書かれたソフトウェアの全てがこれを正しく処理するわけではありません。これにより、他の関連情報を同じファイル(同じ行でも)に格納できます。[15] [23]さまざまなソフトウェア開発ユーティリティでシンボルテーブルや追加のコメントを格納するために使用される機能、 [25] [15] [21] [26] [9] [27]およびサードパーティの拡張機能では、Intel [28]およびKeilによる数字 ' 0 '..' 9 ' 、[26] Mostekによる' $ ' 、[29] [30]またはTDLによる' ! '、' @ '、' # '、' \ '、' & '、および ' ; ' など、他の文字を開始コードとして使用します。[30] [31]慣例により、コメントには ' // ' がよく使用されます。[32] [33]これらの拡張機能のいずれも、ペイロードの一部として ':' 文字を含めることはできません。
- バイト数、2桁の16進数(1桁の16進数ペア)で、データフィールド内のバイト数(16進数ペア)を示します。最大バイト数は255(0xFF)です。8(0x08)[9] 、 16(0x10)[9]、32(0x20)の値が一般的に使用されるバイト数です。すべてのソフトウェアが16を超える数に対応しているわけではありません。[2]
- アドレスは 4 つの 16 進数で、データの 16 ビット開始メモリ アドレス オフセットを表します。データの物理アドレスは、このオフセットを以前に確立されたベース アドレスに追加することによって計算され、16 ビット アドレスの 64 キロバイト制限を超えるメモリ アドレス指定が可能になります。ベース アドレスはデフォルトで 0 ですが、さまざまなタイプのレコードによって変更できます。ベース アドレスとアドレス オフセットは常にビッグ エンディアン値として表現されます。
- レコードタイプ(以下のレコードタイプを参照)、2桁の16進数、00に05データ フィールドの意味を定義します。
- データは、 2nの16進数で表されるnバイトのデータシーケンスです。一部のレコードではこのフィールドが省略されています( nは0)。データバイトの意味と解釈はアプリケーションによって異なります。(4ビットのデータはバイトの下位半分または上位半分に格納する必要があります。つまり、1バイトにはアドレス指定可能なデータ項目が1つだけ保持されます。[15])
- チェックサムは 2 桁の 16 進数で、レコードにエラーがないことを確認するために使用できる計算値です。
色の凡例
視覚的な補助として、この記事では Intel HEX レコードのフィールドを次のように色分けしています。
スタートコード バイト数 住所 レコードタイプ データ チェックサム
チェックサム計算
レコードのチェックサム バイトは、チェックサムの前のレコードにあるすべてのデコードされたバイト値の合計の最下位バイト(LSB)の2 の補数です。これは、デコードされたバイト値を合計し、合計 (つまり、データ チェックサム) の LSB を抽出し、次に LSB の 2 の補数を計算します (たとえば、ビットを 反転して 1 を加算する)。
例えば、レコード03 0030 00 02337A 1Eの場合、デコードされたバイト値の合計は03+00+30+00+02+33+7A=E2であり、LSB値は であるE2。 の2の補数E2は1Eはレコードの末尾に表示されるチェックサム バイトです。
レコードの有効性は、チェックサムを計算し、計算されたチェックサムがレコードに表示されているチェックサムと等しいことを確認することで確認できます。チェックサムが異なる場合はエラーが示されます。レコードのチェックサム バイトは 2 の補数 (つまりデータ チェックサムの逆数) であるため、このプロセスは、レコードのチェックサムを含むすべてのデコードされたバイト値を合計し、合計の LSB が 0 であることを確認することに簡略化できます。前の例に適用すると、この方法は次の結果を生成します: 03+00+30+00+02+33+7A+1E = で100あり、LSB 値は です00。
テキスト行末記号
Intel HEX レコードは通常、1 つ以上の ASCII 行終端文字で区切られ、各レコードがテキスト行に単独で表示されます。これにより、レコードが視覚的に区切られるため読みやすくなり、レコード間のパディングによってマシンの解析効率が向上します。ただし、行終端文字はオプションであり、' : ' はレコードの開始を検出するために使用されます。[15] [5] [24] [20] [21] [22] [23]
HEX レコードを作成するプログラムは通常、オペレーティング システムの規則に準拠した行終了文字を使用します。たとえば、Linux プログラムでは行の終了に LF (改行、16 進値0A) 文字 1 つを使用しますが、Windows プログラムでは CR (キャリッジ リターン、16 進値0D) に続いて LF を使用します。
レコードの種類
Intel HEXには6つの標準レコードタイプがあります。[11]
バリアントには他のレコードタイプも使用されています。06(「点滅」メッセージ/伝送プロトコルコンテナ)ウェインとレイン著、[34] 0A(ブロック開始)、0B(ブロック終了)、0C(パディングされたデータ)、0D(カスタムデータ)および0E(その他のデータ)BBC / Micro:bit Educational Foundation、[35]および81(コードセグメント内のデータ)、82(データセグメント内のデータ)、83(スタックセグメント内のデータ)、84(追加セグメントのデータ)、85(絶対コードセグメントの段落アドレス)、86(絶対データセグメントの段落アドレス)、87(絶対スタックセグメントの段落アドレス)および88(絶対追加セグメントの段落アドレス)Digital Researchによる。[6] [20]
名前付きフォーマット
1973年/1974年のオリジナルの4ビット/8ビットIntellec Hex紙テープフォーマットとIntellec Hexコンピュータパンチカードフォーマットは、 1つのレコードタイプのみをサポートしていました。00[36] [37] [25]これは1975年頃に拡張され[いつ? ]、レコード型もサポートされるようになりました。01[15]シンボリック16進形式と呼ばれることもある、[38]シンボリックデバッグ用のシンボルテーブルを含むオプションのヘッダーを含めることができる、[25] [28] [26] [ 9]コロンより前のレコード内の文字はすべて無視される。[15] [5]
1978年頃[いつ? ]、Intelは新しいレコードタイプを導入しました。02そして03(当時の新製品 8086/8088プロセッサのセグメント化されたアドレス空間のサポートを追加するため)拡張 Intellec Hex 形式。[いつ? ]
特定のレコード タイプのサブセットを使用する HEX ファイルの形式を示すために、特別な名前が使用されることがあります。例:
- I8HEX(別名HEX-80)ファイルはレコードタイプのみを使用する00そして01
- I16HEX(別名HEX-86)ファイルはレコードタイプのみを使用する00を通して03[10]
- I32HEX(別名HEX-386)ファイルはレコード型のみを使用する00、01、04、 そして05
ファイルの例
この例では、4 つのデータ レコードとそれに続くファイル終了レコードを持つファイルを示します。
: 10 0100 00 214601360121470136007EFE09D21901 40 : 10 0110 00 2146017E17C20001FF5F160021480119 28 : 10 0120 00 194E792346239 65778239EDA3F01B2CA A7 : 10 0130 00 3F0156702B5E712B722B732146013421 C7 : 00 0000 01FF
スタートコード バイト数 住所 レコードタイプ データ チェックサム
バリエーション
インテル独自の拡張の他に、Digital Research(いわゆる「Digital Research hex format」[6] [20])、Zilog、Mostek、[29] [30] TDL、[30] [31] Texas Instruments、Microchip、[39] [40] c't、Wayne and Layne、[34] BBC / Micro:bit Educational Foundation(「Universal Hex Format」[35] )など、いくつかのサードパーティもインテル16進形式のバリエーションと拡張を定義しています。これらには、プログラムのエントリポイントとレジスタの内容、データフィールドのバイト順序の入れ替え、未使用領域のフィル値、ヒューズビット、その他の違いに関する 情報を含めることができます。
8086プロセッサ用のDigital Researchの16進フォーマットは、コード、データ、スタック、および追加セグメントを区別するためのレコードタイプを追加することでセグメント情報をサポートしています。[5] [6] [20]
CP/M-80用のほとんどのアセンブラ(およびモトローラ6809用のXASM09 )は、ファイルの終わりを示すためにレコードタイプ01hを使用せず、代わりに長さゼロのデータ型00hエントリを使用します。[41] [1]これにより、複数の16進ファイルの連結が容易になります。[42] [43] [1]
Texas Instruments は、アドレスがバイトではなくプロセッサのレジスタのビット幅に基づくバリアントを定義しています。
マイクロチップ社はPICマイクロコントローラ向けにINTHX8S [44] (INHX8L、[1] INHX8H [1] )、INHX8M、[44] [1] [45] INHX16 [44] (INHX16M [1] )、INHX32 [46] というバリエーションを定義している。
アルフレッド・アーノルドのクロスマクロアセンブラAS [1] 、ヴェルナー・ヘニング=ロレフの8051エミュレータSIM51 [26]、マティアス・R・ポールのクロスコンバータBINTEL [47]も、Intel 16進形式の拡張を定義していることが知られています。
参照
- バイナリからテキストへのエンコード、エンコードアルゴリズムの調査と比較
- テキストベースのプロトコル
- MOS テクノロジー ファイル形式
- モトローラ S レコード 16 進形式
- Tektronix 16 進形式
- テキサス・インスツルメンツ TI-TXT (TI テキスト)
- インテル マイクロ コンピュータ セット(MCS)
- オブジェクト ファイル(通常はバイナリですが、Intel 16 進形式の場合もあります)
参考文献
- ^ abcdefghi Arnold, Alfred "Alf" (2020) [1996, 1989]. "6.3. P2HEX". Macro Assembler AS - ユーザーズマニュアル。V1.42。Arnold, Alfred "Alf"、Hilse, Stefan、Kanthak, Stephan、Sellke, Oliver、De Tomasi, Vittorio による翻訳。アーヘン、ドイツ。2020-02-28 にオリジナルからアーカイブ。2020-02-28 に取得。 [ …
] PIC マイクロコントローラの場合、スイッチ -m <0..3> を使用すると、Intel Hex 形式の 3 つの異なるバリアントを生成できます。形式 0 は INHX8M で、すべてのバイトが Lo-Hi-Order で含まれています。PIC はワード指向のアドレス空間を持ち、アドレスはワードごとに 1 ずつしか増加しないため、アドレスは 2 倍の大きさになります。 […] フォーマット 1 (INHX16M) では、バイトは自然な順序で保存されます。これは、Microchip が独自のプログラミング デバイスに使用するフォーマットです。フォーマット 2 (INHX8L) と 3 (INHX8H) は、ワードを下位バイトと上位バイトに分割します。 […] 残念ながら、文献では Intel-Hex ファイルの最終行についてさまざまな記述が見つかります。そのため、P2HEX は選択可能な 3 つの異なるバリアントを認識します […] :00000001FF […] :00000001 […] :0000000000 […] デフォルトでは、最も一般的なバリアント 0 が使用されます。 […] ターゲット ファイル名に拡張子がない場合は、HEX の拡張子が想定されます。 […]
- ^ ab "AR#476 PROMGen - PROM/EEPROM ファイル形式の説明: MCS、EXO、HEX、その他" . Xilinx . 2010-03-08. Intel MCS-86 16 進オブジェクト - ファイル形式コード 88。2020-03-03 にオリジナルからアーカイブ。2020-03-03に取得。
- ^ Sabnis, Abhishek (2011-02-04). 「.out ファイルを .int、.hex、.a43 に変換する方法」。Code Composer Studio フォーラム。Texas Instruments。2023-10-20のオリジナルからアーカイブ。2023-10-20取得。TI
-gang プログラマーには .int、.hex、.a43 ファイル形式が必要です。
- ^ abc Schuldt, Michael (2018). "intel-hex-mode". github.com . 2020-10-24 にオリジナルからアーカイブ。2023-10-20に取得。
デフォルトでは、このモードは .a90、.hex、.a43、または .ihx 拡張子のファイルに対して有効になっています。
- ^ abcdef "3.1. Intel 8086 Hex ファイル形式". CP/M-86 オペレーティング システム - システム ガイド(PDF) (第 2 刷、第 1 版). パシフィック グローブ、カリフォルニア州、米国: Digital Research 。1981 年 6 月。pp. 15–16。2020年 2 月 28 日時点のオリジナルからアーカイブ(PDF) 。2020年 2 月 28 日閲覧。p. 16:
[…] 以下は ASM-86 からのみの出力です: 81 00 と同じ、データは
コード セグメント
に属します[…] 82 00 と同じ、データは
データ セグメント
に属します[…] 83 00 と同じ、データは
スタック セグメント
に属します[…] 84 00 と同じ、データは
追加セグメント
に属します[…] 85絶対コード セグメントの
段落アドレス
[…] 86 絶対データ セグメントの段落アドレス […] 87 絶対スタック セグメントの段落アドレス […] 88 絶対追加セグメントの段落アドレス […] 各レコードのコロンに先行するすべての文字は無視されます。 […]
(17ページ)
- ^ abcde 「付録 C. ASM-86 16 進出力形式」。CP/M-86 - オペレーティング システム - プログラマーズ ガイド(PDF) (第 3 版)。パシフィック グローブ、カリフォルニア州、米国: Digital Research。1983 年 1 月 [1981]。pp. 97–100。2020年 2 月 27日にオリジナルからアーカイブ(PDF) 。2020年 2 月 27 日に取得。pp . 97–99:
[…]
Intel形式は、Intel が
8086
用に定義した形式と同じです
。Digital
Research形式は Intel 形式とほぼ同じですが、16 進レコードにセグメント情報が追加されています。どちらの形式の出力も
GENCMD
に入力できます
が、Digital Research 形式はセグメント識別を自動的に提供します。セグメントは、再配置可能なプログラムの最小単位です。 […] Digital Research の 16 進形式が Intel のものと異なるのは、レコード タイプ 00 と 02 の定義です。Intel は、データ レコード タイプとセグメント アドレス タイプにそれぞれ 1 つの値を定義します。Digital Research は、各レコードをそれを含むセグメントで識別します。[…] 00H は、8086 のすべてのセグメントに属するデータです。[…] 81H は、
CODE セグメントに属するデータです。[…] 82H は、
DATA セグメント
に属するデータです。 […] 83H は、
STACK セグメント
に属するデータです。 […] 84H は、
EXTRA セグメント
に属するデータです。
[…] 02H は、すべてのセグメント アドレス レコードです。[…] 85H は、CODE 絶対セグメント アドレスです。[…] 86H は、DATA セグメント アドレスです。[…] 87H は、STACK セグメント アドレスです。[…] 88H は、EXTRA セグメント アドレスです。[…]
[1] (1+viii+122+2ページ)
- ^ ab Ramos, Rubens (2010) [2008]. 「intel-hex-mode.el --- Intel Hex ファイルのモード」 . 2023 年 10 月 20 日閲覧。
- ^ abc 「対話型逆アセンブラー - 16進ファイル形式」。Hex -Rays。2006年。2020年3月1日時点のオリジナルよりアーカイブ。 2020年3月1日閲覧。[2] 2021年11月16日にWayback Machineにアーカイブ
- ^ abcdef Roche, Emmanuel (2020-04-01). 「Intel HEX ファイル形式」。フランス:ニュースグループ: comp.os.cpm。INTELHEX.WS4。2021-12-08 にオリジナルからアーカイブ。2021-12-08に取得。
[…]
Intel
HEX ファイル形式には、「データ バイト」よりもはるかに多くの情報を含めることができます。行がコロン (":") で始まっていない限り、任意の内容を含めることができます。 […] かつて、大きな HEX ファイルを見たことがあります […] 先頭に
PL/M
プログラムのソース コードが含まれ、最後に PL/M コンパイラによって生成された結果の HEX ファイルが続きました。 […] 先頭や末尾ではなく、数行の「絶対レコード」を区切る数行のコメントを含む別の HEX ファイルを見つけました。 […] それは「(Intel)
8008
シミュレータ」からのものでした。そのため、使用開始当初は、HEX ファイルに説明を含めることができることはよく知られていました。 […]
CP/M
または任意の 8 ビット 64K システムでは、「ページ アドレス」というケースが 1 つ残っています。CP/M 以降、メモリ アドレスは 16 進数で表示するのが標準です […] BIN/COM ファイルの場合、メモリ アドレスは 0000/0100 です。 […] これらのメモリ アドレスは 00-00/01-00 […] と記述できます。つまり、ページ 0、アドレス 0 / ページ 1、アドレス 0 です。 […] 8 ビット 64K コンピューターの最高メモリ アドレスは FFFF […] ページ FF、アドレス FF […] 最低アドレスはページ 0 (または 00) にあり、最高アドレスはページ FF にあります。 […] CP/M ファイル タイプは 3 文字で、P00~PFF […] という形式のファイル タイプを使用して、HEX ファイルをロードするメモリ アドレスを示すことができます。 […] ほとんどのアドレスが「00」で終わっていることに気づいたので、読み込みアドレスをページアドレスに短縮し、それをファイルタイプ内に配置することができます […]
- ^ ab 「付録 D. MCS-86 絶対オブジェクト ファイル形式: 16 進オブジェクト ファイル形式」。8086 ファミリ ユーティリティ - 8080/8085 ベース開発システムのユーザーズ ガイド(PDF)。リビジョン E (A620/5821 6K DD 版)。米国カリフォルニア州サンタクララ: Intel Corporation。1982年 5 月 [1980、1978]。pp. D-8–D-13。注文番号 9800639-04。2020年 2 月 29 日にオリジナルからアーカイブ(PDF)されました。2020年 2 月 29 日に取得。
- ^ abcd 16進オブジェクトファイルフォーマット仕様。リビジョンA。Intel Corporation。1998 [1988-01-06] 。 2019年7月23日閲覧。[3][4][5][6][7] (11ページ)
- ^ 「LT プログラミング Hex ファイル形式のドキュメント - インサーキットプログラミング」。Analog Devices、Inc . / Linear Technology。2021年。2021 年 3 月 7 日時点のオリジナルよりアーカイブ。2021年 12 月 11 日閲覧。
- ^ 「一般: Intel Hex ファイル形式」。ARM Keil。ARM Germany GmbH。2018-05-07 [2012]。KA003292。2020-02-27時点のオリジナルよりアーカイブ。2017-09-06に取得。[8]
- ^ ab Crosby, Kip (1994年1月~3月). 「マイクロの夜明け:インテルのインテリックス」(PDF) .解析エンジン. 1 (3). カリフォルニアコンピュータ歴史協会:10~14。ISSN 1071-6351 。 2023年10月17日時点のオリジナルより アーカイブ(PDF) . 2023年10月17日閲覧。 pp. 10–11:
[…]
Intel Intellec 8
[…] は、1972 年か 1973 年に初めて登場しました。これは、
標準的な歴史書で「最初のマイクロコンピュータ」と称されることが多い
Altair 8800の 2 年以上前のことです […]
Intel は
、8 Mod 8 が最初に製造されたのは 1973 年で、製造中止になったのは 1975 年だと主張しています。Tony Duell は 1972 年製の 8 Mod 80 CPU ボードを持っており、8 Mod 8 と 4 Mod 40 はどちらも 1976 年 2 月に発行された Intel データ カタログに記載されています。したがって、実際の製造期間はもう少し長かった可能性があります。(MCS4、MCS40、MCS8、MCS80 という名前は、チップセット、コンピュータ、または完全なシステムを指すためにほとんど無差別に使用されているため、関連する Intel ドキュメントを注意深く読む必要があります。) […]
(52 ページ) (注: この記事では Intel Hex については触れられていませんが、Intel の Intellec システムが 1973 年に正式に導入されたことは明記されていますが、1972 年製のユニットもいくつか存在します。)
- ^ abcdefghi 「第 6 章 マイクロコンピュータ システム コンポーネント データ シート - EPROM と ROM: I. PROM と ROM のプログラミング手順 - B1. Intellec Hex 紙テープ形式 / C1. Intellec Hex コンピュータ パンチ カード形式」。MCS-80 ユーザーズ マニュアル (MCS-85 の紹介付き)。サンタクララ、カリフォルニア州、米国: Intel Corporation。1977年 10 月 [1975]。pp. 6-75–6-78。98-153D。2020年 2 月 27 日に取得。p. 6-76:
[…] Intel Intellec Hex 形式では、データ フィールドに 8 ビットまたは 4 ビットのデータを含めることができます。8 ビットと 4 ビットの両方のデータを表すには、2 つの ASCII 16 進文字を使用する必要があります。 4 ビット データの場合、意味を持つ文字は 1 つだけであり、Intel PROM/ROM 注文書で指定する必要があります。 […] 最初のデータ フィールドの前と最後のデータ フィールドの後に、少なくとも 25 個のヌル文字のリーダー/トレーラー長が必要です。
テープ リーダー
にはコメント (コロンを除く) を置くことができます。 […] データが 4 ビットの場合、上位桁または下位桁のいずれかがデータを表し、ペアのもう一方の桁は任意の ASCII 16 進数字にすることができます。 […]
[9][10] (468ページ) (注: このマニュアルでは、「BPNF紙テープ形式」、「非Intellec 16進紙テープ形式」、および「PNコンピュータパンチカード形式」についても説明しています。)
- ^ Kildall , Gary Arlen (1980 年 1 月)。「CP/M の歴史、業界の進化: ある人の視点」。Dr . Dobb's Journal of Computer Calisthenics & Orthodontia。5 (1): 6–7。#41。2016 年 11 月 24 日時点のオリジナルからのアーカイブ。2013年 6 月 3 日閲覧。
[…] プログラムは、私と他の 2 人からなる Intel のソフトウェア グループによって作成およびテストされ、実際のマシンの準備が整っていました。[…]
- ^ Kildall, Gary Arlen (2016-08-02) [1993]. Kildall, Scott ; Kildall, Kristin (編). Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry (原稿、パート 1). Kildall Family. 2016-11-17 のオリジナルからアーカイブ(PDF)されました。2016-11-17に取得。(注: パート 2 は家族のプライバシー上の理由により公開されません。)
- ^ Burgett, Kenneth "Ken" (2017-11-10). 「Intel ISIS オペレーティング システムの開発 - Ken Burgett 氏へのインタビュー」。2023-11-24 時点のオリジナルよりアーカイブ。2023-11-25閲覧。[11][12]
- ^ ファイヒティンガー、ヘルヴィヒ (1987)。 「1.8.5. Lochstreifen-Datenformate: Das Intel-Hex-Format」 [1.8.5.紙テープのデータ形式】。Arbeitsbuch Mikrocomputer [マイクロコンピュータ ワークブック] (ドイツ語) (第 2 版)。ミュンヘン、ドイツ: Franzis-Verlag GmbH。 240–243 ページ [243]。ISBN 3-7723-8022-0。
- ^ abcde 「4.3 Intel Hexadecimal File Format」。Concurrent CP/M Operating System - Programmer's Reference Guide (PDF) (第1版)。Pacific Grove、カリフォルニア州、米国:Digital Research Inc. 1984年1月。pp. 4-9–4-12。 2021年12月11日時点のオリジナルよりアーカイブ(PDF)されています。2021年12月11日閲覧。 pp. 4-11–4-12:
[…] 以下は ASM-86 からの出力のみです: 81 00 と同じ、データは
コード セグメント
に属します[…] 82 00 と同じ、データは
データ セグメント
に属します[…] 83 00 と同じ、データは
スタック セグメント
に属します[…] 84 00 と同じ、データは
追加セグメント
に属します[…] *85絶対コード セグメントの
段落アドレス
[…] *86 絶対データ セグメントの段落アドレス […] *87 絶対スタック セグメントの段落アドレス […] *88 絶対追加セグメントの段落アドレス […] * 85、86、87、および 88 は Digital Research Extensions です。 […] 各レコードのコロンに先行するすべての文字は無視されます。 […]
(346 ページ) (注: このマニュアルでは、タイプ 81、82、83、84 は Digital Research 拡張機能ではないとして、タイプ 85、86、87、88 のみを Digital Research 拡張機能としてマークしています。)
- ^ abcd 「2.8. マイクロプロセッサ フォーマット、2.8.1. 入力要件: Intel Intellec 8/MDS フォーマット。コード 83 を選択」。データ I/O プログラマのシリアル I/O 機能のオペレータ ガイド - 変換フォーマット パッケージ(PDF)。リビジョン C。Data I/O Corporation。1980年 10 月。p. 2-10。055-1901。2020年 3 月 1 日にオリジナルからアーカイブ(PDF) 。2020 年 3 月 1 日に取得。p. 2-10:
[…] 入力 […] このスペースは、改行、復帰、またはコメントに使用できます。 […] 出力 […] 2) 各行は、印刷されない改行、復帰、およびヌルで終了します。 […]
(1+ii+19ページ) - ^ abc 「Intel Intellec 8/MDS フォーマット、コード 83」。翻訳ファイル形式(PDF)。Data I/O Corporation。1987-09-03。pp . 22、26–27、52–53、54。2021-07-28にオリジナルからアーカイブ(PDF) 。2020-03-01に取得。pp. 22、26、52:
[…] 非印刷キャリッジ リターン、ライン フィード、および null は null カウントによって決定されます […]
(56ページ) - ^ abc 「付録 B: Intel Hex および Intel Extended Hex フォーマット - B.1 共通フォーマット」。富士通セミコンダクター コントローラ マニュアル: FR/F2MC ファミリ Softune リンケージ キット マニュアル V3 用(PDF)。富士通株式会社。2001 年。pp. 319–525 [320–321] 。2021-12-12にオリジナルからアーカイブ(PDF) 。2021-12-12に取得。p. 321:
[…] (g) 一般的には、制御コード (CR や LF など) が追加されます。このフィールドのデータは、(a) の開始文字 ":" が現れるまでスキップされます。(a)、(b)、(c)、(d)、(f) のフィールドは常に存在するため、レコードの最小長は 11 バイト、最大長は 521 バイトです。 […]
(4+x+350ページ) - ^ ab "1.6.4 PIP". CP/M オペレーティング システム マニュアル (初版)。パシフィック グローブ、カリフォルニア州、米国: Digital Research。1982年 7 月 [1976]。pp. 17–23。2021年 12 月 12 日に取得。pp. 19–21:
[…]
PIP は
、宛先がタイプ "HEX" (
Intel 16 進数形式のマシン コード ファイル) のディスク ファイルであり、ソースが
紙テープ リーダー
などの外部周辺機器である場合に、特別な機能
を実行します。この場合、PIP プログラムは、ソース ファイルに、有効な 16 進数値とチェックサム レコードを含む、適切に形成された 16 進ファイルが含まれていることを確認します。無効な入力レコードが見つかった場合、PIP はコンソールにエラー メッセージを報告し
、
修正アクションを待機します。通常は、リーダーを開いてテープの一部を再実行するだけで十分です (テープを約 20 インチ引き戻します)。テープが再読み取りの準備ができたら、
コンソールで1 つの
キャリッジ リターンを入力すると、PIP は別の読み取りを試みます。テープ位置を正しく読み取れない場合、ユーザーは読み取りを続行し (エラー メッセージの後にリターンを入力する)、ディスク ファイルの作成後に ED プログラムを使用して手動でレコードを入力します。便宜上、PIP では、ソース ファイルが
RDR:
デバイスである場合に、コンソールから
ファイルの終わり
を入力できます。この場合、PIP プログラムはデバイスを読み取り、キーボードを監視します。キーボードで
ctl-Z を
入力すると、読み取り操作は正常に終了します。[…]
[…]
パンチ
デバイスに40 個の
ヌル
を送信し、X.ASM ファイルをパンチにコピーし、その後にファイルの終わり (ctl-Z) とさらに 40 個のヌル文字を続けます。[…]
[…] HEX データ転送: すべてのデータが適切な Intel HEX ファイル形式かどうかチェックされます。HEX レコード間の不要な文字は、コピー操作中に削除されます。エラーが発生した場合は、コンソールに修正アクションを求めるプロンプトが表示されます。 […]
[…] Intel 16 進形式ファイルの転送で ":00" レコードを無視します (I パラメータは H パラメータを自動的に設定します)。 […]
[…] 最初に X.HEX を PUN: デバイスにコピーし、X.HEX の末尾の ":00" レコードを無視します。Y.ZOT を読み取ってデータの転送を続行します。Y.ZOT には、HEX レコード (含まれている ":00" レコードを含む) が含まれます。 […]
[13] (6+250ページ)PIP PUN:=NUL:,X.ASM,EOF:,NUL:HIPIP PUN:=X.HEX[i],Y.ZOT[h] - ^ abc 「付録 A: PL/M のサンプル プログラム: 16 進オブジェクト テープ」。MCS-8 PL/M プログラミング ガイド(PDF)。Rev 1 (1974 年 9 月印刷版)。米国カリフォルニア州サンタクララ: Intel Corporation。1974-03-15 [1973 年 9 月]。p. 102。MCS180-0774-1K、MCS280-0974-1K。2022年 1 月 29 日にオリジナルからアーカイブ(PDF) 。2022年 5 月 18 日に取得。p. 102:
(1+i+100+1+11+1 ページ) (注:アスタリスクベースの区切り文字と、スペースでインデントされたヘッダーを含むシンボル名を含む例を示します。これらのヘッダーは、 Intel ISISのHEXOBJコマンド、およびシンボリック デバッグ用のINTERP/8またはINTERP/80によって処理されます。このオプションのヘッダーは、Intel の 16 進形式またはBNPF形式の一部として文書化されているのではなく、このようなシンボル テーブルを生成する Intel のPL/Mおよびアセンブラ プログラミング マニュアルに記載されています。)
1 CARRY 05714
2 ZERO 05715
3 SIGN 05716
4 PARITY 05717
5 MEMORY 06000
23 SQUAREROOT 04003
[…]
83 MONITORUSES 05766
$
****************************************
:1008000044520A2E0B36D0F930FA31CF30D730F9B6
[…]
:100AF0000936F4C730D70401C8C20C0031F930F808
:040B0000445E0AFF46
****************************************
:0000000000
$ - ^ abcd ヘンニッヒ=ロレフ、ヴェルナー (1993-02-01) [1988]. 「HEX.DOC: インテル HEX フォーマット」。SIM51。 1.04 (ドイツ語)。 2017-08-11 のオリジナルからアーカイブ。2021年12月8日閲覧。
[…] Beim Absolut-Hex Konvertierprogramm von
Keil
können はオプションです […] Hex ファイルのシンボル情報が表示されます。シンボル情報は、「:」を参照してください。シンボル情報には、モジュール名、コード、XDATA、データ、IDATA、ビット、番号が含まれています。 ASCII に関するシンボル情報が表示されます。 Pro Zeile ist 1 Symbol angeschrieben und zwar in der Form: "0 SymbolName Wert" […]
[14][15] (注:これはSIM51の古いバージョンであり、ソフトウェアとドキュメントは1996年までメンテナンスされていました。)
- ^ G., Georg (2021-09-05) [2021-09-04]. 「ヘクスファイル・フラッシェン」。マイクロコントローラーとデジタルエレクトロニク。mikrocontroller.net (ドイツ語) 。2023 年 11 月 23 日に取得。
[…] Intel の "$" に関するデバッグ情報。シンボル名と住所を指定してください。コメントはすべて「;」です。 […]
ISIS-2
製品の Hexfileから ASM48
を作成し、[…] ASM86 を使用します。 […]
- ^ ab 「付録 A. リスト形式の例 / 付録 C. 16 進オブジェクト ファイル形式」。2920 アセンブリ言語マニュアル(PDF)。サンタクララ、カリフォルニア州、米国: Intel Corporation。1979年 8 月。pp. A-3、C-1–C-2。注文番号 9800987-01。2023-11-26にオリジナルからアーカイブ(PDF)されました。2023-11-26に取得。p. C-1:
[…] コードは、16 進バイトのデータでフォーマットされています。ファイルには、16 進バイトのデータの ASCII 表現が含まれています。オブジェクト コード自体の前には、シンボル テーブルがあります。これら 2 つの部分は、一緒にまたは別々にロードまたは保存できます。シンボル テーブルは、ドル記号で終了する一連のレコードです。各レコードには、1 つ以上の ASCII スペースで区切られた 3 つのフィールドが含まれます。[…] 数値フィールド[…] ソース プログラム シンボルの ASCII 表現を含むラベル フィールド[…] シンボルに割り当てられた 16 進アドレスを含むアドレス フィールド[…] シンボル テーブルは、最初の非空白文字がドル記号であるレコードで終了します。オブジェクト コード[…] は、シンボル テーブルの後に続きます[…] これらの各レコードまたは物理行は、文字またはフレームの長さが異なる 6 つの論理フィールドです。[…]
(90 ページ) (注: Intel 2920 は1979 年にリリースされたデジタル信号プロセッサです。) - ^ ab Formaniak, Peter G.; Leitch, David (1977 年 7 月). 「マイクロプロセッサ ソフトウェア標準の提案」. BYTE - the small systems journal . 技術フォーラム. 第 2 巻、第 7 号. ピーターボロ、ニューハンプシャー州、米国: Byte Publications, Inc. pp. 34, 62–63. ark:/13960/t32245485 . 2021 年 12 月 6 日閲覧。(3 ページ) (注: Mostekによる Intel 16 進形式の拡張について説明します。)
- ^ abcd Ogdin, Carol Anne; Colvin, Neil; Pittman, Tom; Tubb, Philip (1977 年 11 月). 「Relocatable Object Code Formats」. BYTE - the Small Systems Journal . 技術フォーラム. 2 (11). ピーターボロ、ニューハンプシャー州、米国: Byte Publications, Inc. : 198–205. ark:/13960/t59c88b4h, ark:/13960/t3kw76j24 . 2021 年 12 月 6 日閲覧。(8 ページ) (注: その他、 Technical Design Labs (TDL)で使用される Intel 16 進形式の互換性のない拡張についても説明します。)
- ^ ab クライドル、ギュンター (1981 年 6 月)。 「リロケーター: Das TDL フォーマット」。ハードウェア。Nascom ジャーナル - Zeitschrift für Anwender des NASCOM 1 or NASCOM 2 (ドイツ語)。2 (6)。ゲルマースハイム、ドイツ: Verlag NASCOM Journal、MK-Systemtechnik: 12–14 [12]。 2021年12月1日のオリジナルからアーカイブ。2021年12月11日閲覧。(20 ページ) (注: TDL形式のバリアントを示していますが、TDL 形式自体は Intel 16 進形式のバリアントです。)
- ^ Rüger, Stefan M. (2022-06-16). 「チェックサムエラーを無視するコメント付きのファイル形式I: Intel HEXを提供する」。AVRDUDE。2023年11月25日時点のオリジナルよりアーカイブ。2023年11月25日閲覧。(注意: AVRDUDE のコメント オプション: 16 進ダンプの一部として誤って「:」文字を生成することがあります。)
- ^ Bull, Hans Eirik; Dean, Brian S.; Rüger, Stefan M.; Wunsch, Jörg (2023-07-15). 「AVRDUDE - AVRマイクロコントローラフラッシュ、EEPROMなどをダウンロード/アップロードするためのプログラム」(PDF)。バージョン7.2。2023-11-23にオリジナルからアーカイブ(PDF) 。2023-11-23に取得。p . 12:
[…] I […] ダウンロードに関するコメントとアップロード時のチェックサムエラーの許容度を含むIntel Hex […]
(66ページ) - ^ ab Beckler, Matthew L. (2016-07-25) [2016-07-19]. 「Blinky Grid - シリアル光ビットストリーム」. Discourse . ミネアポリス、ミネソタ州、米国:Wayne and Layne, LLC. 2021-12-11時点のオリジナルよりアーカイブ。 2021-12-11に取得。
- ^ ab "micro:bit Universal Hex Format 仕様 - micro:bit Universal Hex Format の仕様". micro:bit . 0.4.0. Micro:bit Educational Foundation . 2021-01-26 [2020]. 2021-08-14 にオリジナルからアーカイブ。 2021-12-08に取得。 [16][17] (注:これは一種の太字の16進ファイル形式を表します。)
- ^ Intellec 8 マイクロコンピュータシステムオペレータマニュアル。Intel Corporation。1973年 11 月。
- ^ 「付録 D. 16 進プログラム テープ フォーマット」。Intellec 8/MOD 80 オペレータ マニュアル。Intel。1974年 6 月。98-003A。 […] フレーム 7、8: レコード タイプ […] 2 つの ASCII 文字。現在 (1974 年)、すべて
のレコードはタイプ 0 です。このフィールドは将来の拡張用に予約されています […]
[18] - ^ 開発ツールカタログ 1988 (PDF)。Intel Corporation。1988 年。pp. 25–26, 30–32。注文番号 280199-004。2023年 11 月 26 日のオリジナルからアーカイブ(PDF) 。2023年 11 月 26 日に取得。(46ページ)
- ^ 「PIC マイクロコントローラ: PIC Hex ファイル形式」。Kanda Electronics Blog。Canolafan、Llanafan、Aberystwyth、ウェールズ、英国: Embedded Results Ltd. 2012-04-26。2021-08-16 にオリジナルからアーカイブ。2021-12-11に取得。
- ^ 「15.3 XC16-BIN2HEX ユーティリティ - 15.3.3 入出力ファイル」。MPLAB XC16 アセンブラ、リンカー、ユーティリティ - ユーザーズ ガイド(PDF)。Microchip Technology Inc. 2018 [2013]。240~241 ページ。ISBN 978-1-5224-2828-2. DS50002106D。2019年 1 月 22 日にオリジナルからアーカイブ(PDF)されました。2023年 12 月 5 日に取得。p. 240:
[…] Intel の 16 進ファイル形式はバイト指向ですが、16 ビット PC はそうではないため、プログラム メモリ セクションには特別な処理が必要です。各 24 ビット プログラム ワードは、いわゆる「ファントム バイト」を挿入することで 32 ビットに拡張されます。各プログラム メモリ アドレスは 2 倍されてバイト アドレスになります。たとえば、プログラム メモリの 0x100 にあるセクションは、16 進ファイルでは 0x200 として表されます。次のアセンブリ言語ソースを検討してください: […];ファイル test.s […] .section foo,code,address(0x100) […] .pword 0x112233 […] ファイル […] が生成され、内容は次のようになります: […] :020000040000fa […] :040200003322110096 […] :00000001FF […] データ レコード (行 2) のロード アドレスは 0200 ですが、ソース コードではアドレス 0x100 が指定されています。 […]t データは「リトルエンディアン」形式で表され、最下位バイトが最初に表示されます。ファントム バイトは最後に、チェックサムの直前に表示されます。 […]
(277ページ) - ^ Kildall, Gary Arlen (1978 年 2 月) [1976]。「絶対マシン コードの静的再配置のための簡単な手法」。Dr . Dobb's Journal of Computer Calisthenics & Orthodontia。3 ( 2)。People 's Computer Company : 10–13 (66–69) 。ISBN 0-8104-5490-4. #22 ark:/13960/t8hf1g21p . 2017年8月19日閲覧。[19][20][21]。元々はKildall, Gary Arlen (1977) [1976年11月22~24日]に発表された。「絶対マシンコードの静的再配置のための単純な手法」。米国カリフォルニア州モントレーの海軍大学院で執筆。Titus, Harold A. (編)。会議記録: 第10回アシロマ回路・システム・コンピューター会議: 1976年11月22~24日に発表された論文。アシロマ信号・システム・コンピューター会議。アシロマホテルおよび会議場、カリフォルニア州パシフィックグローブ、米国: Western Periodicals Company。pp. 420~424。ISSN 1058-6393 。2021年12月6日閲覧。(609ページ)
- ^ Zschocke、Jörg (1987 年 11 月)。 "Nicht nur Entwicklungshilfe - Down-Loading für Einplatinencomputer am Beispiel des EPAC-09: Intel-Hex-Format"。c't - コンピュータ技術雑誌(ドイツ語)。 Vol. 1987年、いいえ。 11. Verlag Heinz Heise GmbH & Co. KG。 198、200、202–203、[200]。ISSN 0724-8679。
[…] バイトの説明、ブロックの種類の説明: 0 = データブロック、1 = エンドブロック。エンドブロックを確認するには、エンドブロックのブロック範囲を確認してください。 (したがって、
CP/M
のアセンブラーは
XASM09 を使用しなければなりません。Typbyte は Null を使用する必要があります)。 […]
[22] (注:XASM09はモトローラ6809アセンブラです。)
- ^ Prior, James E. (1989-02-24). 「Re: Intel hex (*.HEX) フォーマットに関する質問」。ニュースグループ: comp.os.cpm 。2020年2月27日閲覧。
- ^ abc 「PIC16C5X プログラミング仕様 5.0 - PIC16C5X 16 進データ形式: 5.1. 8 ビット分割 Intellec 16 進形式 (INHX8S) / 5.2. 8 ビットマージ Intellec 16 進形式 (INHX8M) / 5.3. 16 ビット 16 進形式 / 5.4. 8 ビットワード形式 / 5.5. 16 ビットワード形式」。Microchip データブック (1994 版)。Microchip Technology Inc. 1994 年 4 月。pp. 3-10–3-11, 9-10, 9-15, 9-17, 9-21, 9-23, 9-27。DS00018G。2020年 2 月 28 日閲覧。
[…] PIC16C5X のアセンブラは、さまざまな形式の PIC16C5X オブジェクト ファイルを生成できます。PIC16C5X プログラマーは、少なくとも次の形式の 1 つでデータを受け入れ、送信できる必要があります。8 ビット マージ (INHX8M) 形式が推奨されます。 […] 形式 […] INHX8S […] は、2 つの 8 ビット 16 進ファイルを生成します。1 つのファイルには上位 8 ビットのアドレス/データ ペアが含まれ、もう 1 つのファイルには下位 8 ビットが含まれます。オブジェクト コードのファイル拡張子は、下位ファイルと上位ファイルで '.obl' と '.obh' になります […] 形式 […] INHX8M […] は、下位バイトと上位バイトの組み合わせを持つ 1 つの 8 ビット 16 進ファイルを生成します。この形式では各アドレスに 8 ビットしか含められないため、すべてのアドレスが 2 倍になります。オブジェクト コードのファイル拡張子は '.obj' になります […] 形式 […] INHX16 […] は、1 つの 16 ビット 16 進ファイルを生成します。オブジェクト コードのファイル拡張子は '.obj' になります。[…]
[23][24] - ^ Beard, Brian (2016) [2010]. 「Microchip INHX8M HEXレコードフォーマット」. Lucid Technologies . 2020年2月28日時点のオリジナルよりアーカイブ。 2020年2月28日閲覧。
- ^ Beard, Brian (2016) [2013]. 「Microchip INHX32 HEXレコードフォーマット」. Lucid Technologies . 2020年2月28日時点のオリジナルよりアーカイブ。 2020年2月28日閲覧。
- ^ ポール、マティアス R. (1992)。BINTEL: Binär-Image-Konverter mit Intel-Hex-Unterstützung - Bedienungsanleitung [ Intel Hex サポート付きバイナリ イメージ コンバータ - ユーザー マニュアル] (ドイツ語)。(注: このツールは、意図的にスティッキー (固定された "1" または "0")、反転、省略 (" don't care ")、相互接続またはスワップされたデータまたはアドレス ライン (並列バスのPCB ルーティングを容易にするため、または難読化により逆アセンブリを困難にするために使用されることがある) を持つバイナリ ファームウェア イメージ (たとえば、1 つ以上の ROM 用または 1 つ以上のROMからのもの) を処理、分析、比較、分割、切り取り、フィル、結合、再配置または変換するために使用された結果、このバイナリ イメージ コンバーターは Intel Hex 形式に対する多数の拡張機能をサポートしました。)
さらに読む
- 「Motorola S および Intel HEX 形式のデータをどのように解釈すればよいですか? Intel Hex-32、コード 99」。ホーム > ハードウェア > … > インサーキット テスト システム > 自動テスト装置 [販売終了] > 詳細。Keysight Technologies。2020年 3 月 1 日にオリジナルからアーカイブ。2020年 3 月 1 日に取得。
- Bergmans, San (2019-06-02) [2001]. 「Intel HEX フォーマット」. SB-Projects . 2020-03-01 にオリジナルからアーカイブ。 2020-03-01に取得。
- Beard, Brian (2016) [2007]. 「Intel HEXレコードフォーマット」. Lucid Technologies . 2020-02-28にオリジナルからアーカイブ。2020-02-28に取得。
- Anderson, Thomas N. (1998 年 2 月). 「Intel Hex Word Address Object Format」. The Telemark Assembler (TASM) User's Manual (PDF) . 3.1. Issaquah, Washington, USA: Squak Valley Software. pp. 25–26. 2021-12-11 にオリジナルからアーカイブ(PDF)されました。2021-12-11に取得。
Intel Hex Word Address Object Format […] この形式は、オブジェクト コードの各行のアドレスが 2 で割られてワード アドレス (16 ビット ワード) に変換されることを除いて、Intel Hex オブジェクト形式と同じです。他のすべてのフィールドは同じです。次に例を示します: […] :180800000102030405060708090A0B0C0D0E0F101112131415161718AC […] :02080C00191AA3 […] :00000001FF […]
(32ページ) - 「ADuC70xx シリアル ダウンロード プロトコル」(PDF) (アプリケーション ノート)。改訂版 C。米国マサチューセッツ州ノーウッド: Analog Devices。2016年。AN-724。2023年 10 月 5 日にオリジナルからアーカイブ(PDF) 。2023年 10 月 5 日に取得。(8ページ)
外部リンク
- binex - Windows 用の Intel HEX とバイナリ間のコンバーター。
- SRecord、Linux 用の Intel HEX とバイナリ間のコンバーター (使用方法)、C++ ソース コード。
- kk_ihex、Intel HEX の読み取りと書き込み用のオープンソース C ライブラリ
- libgis は、Intel HEX、Motorola S-Record、Atmel Generic ファイルを変換するオープン ソース C ライブラリです。
- bincopy は、Intel HEX ファイルを操作するための Python パッケージです。
- SwiftIntelHex - iOS および macOS 用の Intel HEX ファイルを解析するための Swift パッケージ。
