・モトローラSレコードの例
S00C000054455354312E4845586F
S315CAFE010055AA55AA55AA55AA55AA55AA55AA55AA29
S315CAFE0110000102030405060708090A0B0C0D0E0F99
S315CAFE0120AA55AA55AA55AA55AA55AA55AA55AA5509
S315CAFE013000000000000000000000000000000000F1
S315CAFE014055AA55AA55AA55AA55AA55AA55AA55AAE9
S315CAFE0150FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1
S70500000000FA
・モトローラSレコードの構造
①レコードマーク "S" (1文字)
②レコードタイプ(1文字)
③レコード長(1バイト/2文字)
④アドレス(16ビット/4文字,24ビット/6文字,32ビット/8文字)
⑤データ(nバイト/2n文字)
⑥チェックサム(1バイト/2文字)
①モトローラSレコードでは先頭一文字は必ず "S" の文字
②レコードタイプ
0 | スタートレコード(オプション): データレコード部分にコメントやファイル名等の付帯情報を入れておく。 上の例だと、"TEST1.HEX"というファイル名が入っている。 |
1 | データレコード(16ビットアドレス:4文字でアドレス指定) |
2 | データレコード(24ビットアドレス:6文字でアドレス指定) |
3 | データレコード(32ビットアドレス:8文字でアドレス指定) |
5 | 今までに出てきたデータレコード数(2バイト長) |
7 | エンドレコード:S3フォーマット(32ビットアドレス)の終了 |
8 | エンドレコード:S2フォーマット(24ビットアドレス)の終了 |
9 | エンドレコード:S1フォーマット(16ビットアドレス)の終了 |
③レコード長:以下に続くレコードで表されるデータの数(バイト単位)を2文字で示す。
S3レコードで、データフィールドが10H(=16)バイト分(20H(=32)文字)あるなら、
4(アドレス)+ 10H(データ)+1(チェックサム)=15Hとなる。上の例で2行目以降の
レコード長が15になっているのはこのため。
④アドレス:4文字(S1レコード)/6文字(S2レコード)/8文字(S3レコード)で
レコードの先頭バイトが格納されるアドレスを指定。
⑤データ:2文字で1バイトのデータを表す
⑥チェックサム:2文字(1バイト)データ。レコード長、アドレスフィールド、
データの各バイト値の合計の1の補数。