MC6800 ROMモニタ自作 その2 〜MacからTL866II PlusでROMを書いてみる〜

MC6800 ROMモニタMC6800 ROMモニタ自作 その2 〜MacからTL866II PlusでROMを書いてみる〜

前回はフェーズ1のROMモニタを実装して、SBC6800上で動作確認するところまで進めました。今回はその続きで、ROM書き込みもなるべくMac側で完結させたいなと思って、TL866II Plusminipro で使うところを試してみました。

フェーズ1の記事はこちらです。**GitHubリポジトリ も合わせて載せておきます。

やりたかったこと

これまでは Intel HEX を Windows 側へ持っていって、ROMライタの純正ソフトで焼いていました。もちろんそれで実用上は困らないのですが、せっかくならビルドからROM書き込みまでをMacやUNIX系環境でまとめて流せるようにしたいところです。

そこで今回は、minipro を使って TL866II Plus を Mac から直接叩けるようにしてみました。Makefile 側も少し拡張して、ROM容量ごとにライタ向けバイナリを作れるようにしてあります。

  • 27C64
  • 27C128
  • 27C256
  • 28C256
  • UPD28C256
  • W27C512

このあたりを意識しつつ、p2bin でROMライタ向けイメージを作って、minipro で書く流れにしてみました。

まずはMacでTL866II Plusが見えるか確認

minipro --version を叩くと、ちゃんと Found TL866II+ と出てくれました。自己診断も通るし、読み出しも通るので、「全然見えていない」という感じではなかったです。

まずは minipro –version で TL866II Plus が見えていることを確認

Mac に TL866II Plus を直結して試しているところ

ここまではいい感じだったのですが、いざ make program-w27c512 をやると、書き込み途中で LIBUSB_TRANSFER_TIMED_OUT **が出て止まってしまいました。読めるのに書けない、というちょっと嫌なパターンです。

しかも、W27C512 だけでなく 28C256 系でも似たような症状が出たので、最初は「これは minipro と macOS の相性かなぁ」と思っていました。

セルフパワーUSBハブ経由で解決

いろいろ試してみたところ、TL866II PlusセルフパワーUSBハブ 経由でつないだら、あっさり書き込みが最後まで通りました。やったー。

結果としては、

  • erase 成功
  • write 成功
  • read back 成功
  • verification 成功

という形で、少なくとも W27C512 については、Mac からの書き込みまで完了できました。

セルフパワーUSBハブ経由にした成功時の接続

make program-w27c512 が最後まで成功したところ

なので、今回のポイントは「Mac ではだめ」ではなくて、「USBのつなぎ方にかなり影響される」ということでした。直結ではタイムアウトが出ても、セルフパワーUSBハブ経由だと安定する、ということがわかりました!

GitHub 側にも反映

今回の内容は GitHub 側にも反映してあります。ROM ライタ向けバイナリ生成や minipro の導線は Issue / PR としてまとめておきました。

手順書も追加してあって、UNIX系環境全般と WSL2 の参考手順まで含めた形にしてあります。Mac だけの話ではなく、Linux や WSL2 でも同じ考え方で使えるはずです。

今回のまとめ

  • TL866II Plus は Mac から minipro で認識できた
  • 読み出しや自己診断は最初から通っていた
  • 書き込みは直結だと timeout することがあった
  • セルフパワーUSBハブ経由にしたら W27C512 の書き込みが成功した
  • Makefile から ROM ライタ向けイメージ生成と書き込みの導線を追加できた

今後の予定

これで、少なくともフェーズ1のROMモニタについては、ビルドからROM書き込みまで Mac 側でかなり完結できるようになってきました。地味ですが、これはかなりうれしいです。

次は本筋に戻って、フェーズ2の対話基盤を進めたいと思います。行入力や16進入力、簡単なプロンプトあたりを実装して、もう少しモニタらしい形にしていきたいところです。

MC6800 ROMモニタSBC6800