SORD M68MXのROMを吸い出しました。EVENとODDに分かれていますが、WinHexを使ってマージしました。m68kのROMイメージを逆アセンブルする良いツールがなりません。古いとは言え、これほどメジャーなMPUの逆アセンブラが無いのは不思議です。ネットで見つかるものはすべて、途中で解析不能になってしまいます。
あれこれ調べましたが、うまくいかず、愚痴をTwitterでつぶやいたところ、GNUのbinutilsがあるよと教えてもらいました。喜び勇んで、最新版をダウンロードして、target=m68kでコンパイルしようとしたら、サポートしていないとのこと。バージョンを下げるしかないのかと思いつつネットをさまよっていたら、なんとubuntuのリポジトリにはm68k用にbinutilsがあるとのこと!早速インストールしました。
sudo apt install binutils-m68k-linux-gnu
これであっさりバイナリツールが手に入りました。早速、逆アセンブルしたいファイルを入力してみます。
m68k-linux-gnu-objdump -D -b binary -m m68k BIOS.BIN
バッチリでした。綺麗に逆アセンブルされています。みんなGNUのツールを使っているから敢えて新しく作る必要はなかったんですね。これでゆっくり解析していきます。
(追補)
S-recordにもできるみたい。
m68k-linux-gnu-objcopy -I binary -O binary -B m68k BIOS.BIN bios.srec
(以下、余談)
いろいろ探しているときにエミュレータのmameを使えないかと思い、試しました。mameのデバッグモードは素晴らしいですが、サポート外のマシンのROMは当たり前ですが読めません。各CPUの起動時の挙動を調べるのには滅茶滅茶便利だと思いました。