にゃごすwiki

レトロ関連/2018-9-1

  MSX ROMダンプ


arduinoで、ROMのダンプくらい簡単にできるんではないかと検索してみるとarduinoでアドレスのピンが足りない→アドレスデコーダチップ?で変換してみたいな感じだった。
ピンが足りないなら、多いやつ使えばそのままつなげるんじゃないかなと、arduino MEGA(の互換機)を買ってきたんだけど、スロットコネクタがないので接続が出来ず放置してた。

ふと、転がっていたピンヘッダに差し込んでみたら、ちょっと緩いけどぴったりだったので曲げてみたところ、良い感じに繋げられた。(曲げるのは糞面倒だったが)
ピンの先を外側に曲げてから、内側に曲げると良い感じに。

msxromdump_arduino_1.pngmsxromdump_arduino_2.png

arduinoのプログラムとダンプしたテキストをバイナリに変換するpythonソースです。
今のところ、メガロムには対応してませんので、16KとかのROMならいけるかと思われます。
結線は出来ているので、後はプログラムでマッパの対応が出来れば良さそう。

msxdump.ino(488)
dump.py(503)

※結線図は後ほど。ただ写真で判るとおり、L字のピンヘッダをデジタルにぶっさしてるだけで、端の5Vと信号線をジャンパでつないでるだけです。

arduinoの開発ツールで書き込んだら、ツールからシリアルモニタを開いて、速度を115200bpsに設定します。
コマンドはこんな感じ

hでヘルプ
sXXXXでスタートアドレスの設定(XXXXは16進4桁)
lXXXXでダンプサイズの設定(XXXXは16進4桁)
dでダンプ開始

ダンプしたテキストをテキストファイルに書き出して、pythonでバイナリに変換。
そのうちシリアルの受信自体をpythonで出来るようにすれば、手間が減るか。

ArduinoSerial.png