モニタ(LILBUG)(2)
使っているROMライタは、実アドレスとROM内のアドレスを変換する機能が無いので、S19ファイルからバイナリファイルを作って、適当にROMアドレスに配置して他を$FFで埋めることにした。
プログラムを作ろうかと思ったが、きっと誰かが作っているはずだと探してみた。S19フォーマットを扱うフリーソフトはいろいろ見付けたけど、使い勝手がよさそうなソフトが見付からない。
S19からバイナリの変換はソースが公開されているs19tobinというツールが見つかったのでこれを使うことにした。
Cygwin上のi686-pc-mingw32-gcc.exeでコンパイルして(-nno-cygwinオプションは使えなくなったらしい)S19をバイナリに変換すると数バイト増えてる??
変換したバイナリファイルをバイナリエディタで開いてアセンブルリストと比べてみると $0Aの後に$0Dが増えている。
ここでようやく気が付いた。
Cywingのdllが無くても動くようにMingwのgccでコンパイルしたのがよくなかったようだ。ソースを確認すると、出力用のバイナリファイルが
fopen(nfile, "w")
でオープンされている。
昔DOSでプログラミングしていた時よくハマったのになあと思いながら
fopen(nfile, "wb")
に直したら$0Dが混ざらなくなった。
LILBUG.ASMの修正を間違えたのが原因かと思い、ソースを見ようとしたらとても見にくくて、ソースファイルを修正するスクリプトまで書いたのに...
ROM用のバイナリファイルを作って、実際にROMに焼いてHD63B03SBCに挿して起動すると動かない。シリアルにメッセージとプロンプトが出るはずだけど。
« 読取革命Lite | トップページ | 表彰 »
「HD63B03」カテゴリの記事
- ロジアナ(2013.06.23)
- モニタ(LILBUG)(2)(2013.05.26)
- モニタ(LILBUG)(2013.05.20)
- 配線した(HD63B03)(2013.05.06)
- シュリンク基板(2012.09.16)
« 読取革命Lite | トップページ | 表彰 »
コメント