平成20年3月11日 火曜日

Hexファイルについて

Filed under: たわごと, プログラミング, Delphi — とめくぎ @ 1:41:27

ライタのソフトついでに、いろいろなROMデータについて調べてみた。

メジャーどころはIntel-HEXとモトローラS形式の二つ。
もちろん、R4945Aもこの二つに対応している。
その他に複数のフォーマットに対応しているみたいだけど、取説も資料も無いので、どんなフォーマットかは知らん。

前のソフトでは、ASCII-HEXという割と簡単なフォーマットを用いた。
これは
#オフセットアドレス,データ0.データ1・・・・データ15改行

と単純なフォーマットでした。チェックサムも無し。信頼性は?むむぅ。

と、言うわけで、バイナリファイルを読み込んでIntel-Hexに変換するソフトを書いてみた。

これが後付けでいろいろ拡張されたフォーマットだから、まず16bitの壁があり、
これを無理くり20bitまで拡張したり、さらに32bitまで拡張したりとややこしい。
一応、32bitまで対応したんだけど、このR4945A、Intel-HEXだと拡張リニアアドレスに対応してないらしく、
データをPCから送っても20bit以上無視される。
もちろん、ROMライタ側からのダウンロードもアドレスをいくら指定しても20bitで切れる。0xFFFFFまでしか来ん。

ASCII-HEXでのアップロードはうまく行っているんだけどなー。
あと、ASCII-HEXやモトローラSフォーマットを指定して、ダウンロードを行うとちゃんと0x1FFFFFまで落ちてくる。(もちろんS2フォーマット)

つーわけで、Intel-HEXには見切りをつけて、モトローラS(S1~S3)対応に修正中。

ちなみにこのライタ、すでにIntel-HEXかモトローラSのファイルが有るならば、単にシリアルからライタに内容を送るだけなので、こんな事をしなくても良い。
ただ、Intel-HEXは拡張リニアアドレスのデータはエラーになるため、20bit以上のアドレスにデータが書き込めない。
それを避けたい&チェックサム取得が出来るので、書込み確認を強化したい狙いがあるのよ。

#そうそう、本来の目的のポケベルメッセージ表示機のROM読んでみました。
中身は日立のC-MOS版Z80とH8/3214でした。多分H8は赤外線リモコンとかだけっぽい。
 ROMのバイナリをサラっと見た感じ、双葉のメッセージボードシリーズにある「(T)」とか「(W)」とか「(H)」とかのコマンドが使えるっぽい?これから試してみる。

 

コメント (0) »

この記事にはまだコメントがついていません。

コメント RSS トラックバック URL

コメントをどうぞ

HTML convert time: 0.097 sec. Powered by WordPress ME