mcommit's message

ソフトウェア開発の仕事をしているsimotinといいます。記事の内容でご質問やご意見がありましたらお気軽にコメントしてください\^o^/

モトローラSレコードフォーマットをRubyで吐く。

アセンブラの勉強もかねてGR-SAKURAで遊んでいたのですが、
今までスルーしてきたmotファイルの構造が気になりだしました。

勉強のために、こちらのページを参考にさせて頂きました。

勉強がてらということで、Rubymotファイルを出力するコードを書いてみました。
出力するといってもバイナリファイルからではなく、数値型のアドレスとデータ(配列)
を元に出力するという仕様です。

書いてみたコード

gist.github.com

■使い方

Sレコードフォーマットを標準出力します。
S0 :コメントを指定するとS0レコードを出力します。
S1~S3:アドレスは書き込みデータは1byteずつ配列で指定します。
あとは、
ソースの# ==== TEST CODE ====
以下をご参考に。。。
※まぁ需要はあまりないと思いますが。

■感想

モトローラSレコードフォーマットについては、
基本的には書き込み先の「アドレス」「データ」をASCIIのHEXで表現したものという理解でよさげ。
コードをみての通り、S0,S3,S7は真面目にテストしてみました。(RXは32bitなので)

・モンキーパッチのto_hはひそかに気に入っています。
※あとto_bで2進数出力もほしい。まぁRubyの数値クラスはサイズが不定なのがあれだけど。

■補足

motファイル出力クラスを書いてみたのは、実はCコンパイラRubyで自作してみようかなと思ったからです。