MC6800 ROMモニタ自作 その3 〜WSL2でTL866II Plusとminiproを動かしてみる〜

MC6800 ROMモニタMC6800 ROMモニタ自作 その3 〜WSL2でTL866II Plusとminiproを動かしてみる〜

前回は、Mac 側から TL866II Plusminipro で使って ROM を書くところを試していました。

ただ、Mac では環境によって少し不安定なところもありまして、せっかくなら Windows マシン上の WSL2 から Linux 版の minipro を使って、もっと素直に動かせないかなと思っていました。

というわけで今回は、WSL2 + TL866II Plus + minipro の組み合わせを試してみました。結論から言うと、少しハマりはしましたが、最終的には W27C512 への書き込みまでちゃんと成功しました。
やったー。

今回やりたかったこと

これまでは、ROM イメージのビルドまでは比較的いい感じにできていたのですが、書き込み環境が OS ごとに少しずつ違っていて、そこが地味に気になっていました。

特に Windows 環境では、純正ソフトを使えば確実ではあるものの、できれば開発側の流れとしては、ビルドして、ROM ライタ向けイメージを作って、そのまま書き込むところまで、できるだけ同じ流れで回したいです。

そこで今回は、Windows 上で Linux の minipro を使える WSL2 から、TL866II Plus を直接扱えるようにしてみました。

最初の壁は USB の受け渡し

WSL2 でちょっと面倒なのは、USB デバイスがそのまま Linux 側から見えるわけではないところです。

ここは usbipd-win を使って、Windows 側に刺さっている TL866II Plus を WSL に渡す必要がありました。

まず Windows 側で見ると、うちの環境では XGecu WinUSB DeviceVID:PID a466:0a53 として見えていました。

ここまではすぐ確認できたのですが、その後 attach しようとしたら最初はうまくいかず、ちょっとハマりました。原因は、Windows 側がまだそのデバイスを掴んでいたことでした。

このあたりは、管理者 PowerShell で bind、通常 PowerShell で attach、Windows 側の TL866 関連アプリは閉じる、という順でやると大丈夫でした。

次の壁は Ubuntu で minipro が apt から入らない

USB が WSL 側に見えるようになったら、次は minipro を入れれば終わりかなと思っていたのですが、ここでも少し引っかかりました。

Ubuntu 22.04 で普通に sudo apt-get install -y minipro とやると、なんと Unable to locate package minipro。うちの環境では apt からは入りませんでした。

なので今回は、minipro はソースからビルドして入れました。依存パッケージを入れて、GitLab から取ってきて、make して sudo make install という流れです。

さらに udev ルールも入れて、plugdev グループを反映して、ようやく一般ユーザーでも扱える状態になりました。このへんは地味に時間が溶けるやつですね。

ここまで来るとちゃんと見える

WSL 側で確認してみると、lsusb にはちゃんと TL866II Plus Device Programmer [MiniPRO] が出てきました。

さらに minipro --version を叩くと、Found TL866II+ と出て、ちゃんと認識してくれました。ここまで来るとかなり安心です。

そして実際に書いてみる

認識確認だけではちょっと寂しいので、実際に ROM へ書いてみました。今回試したのは W27C512 です。

リポジトリ側では Makefile からそのまま書けるようにしてあるので、WSL 上で make program-w27c512 を実行しました。

結果は、Chip ID 確認、消去、書き込み、読み出し、検証まで全部成功でした。書き込み時間はだいたい 30 秒弱くらいです。

今回わかったこと

  • usbipd-win + WSL2 + minipro + TL866II Plus の組み合わせで W27C512 の書き込みと検証まで通った
  • usbipd bind は管理者 PowerShell が必要
  • Windows 側でデバイスを掴んでいると attach に失敗する
  • Ubuntu 22.04 では minipro が apt から直接入らず、ソースビルドが必要だった
  • 一度環境ができれば、開発の流れにかなり組み込みやすい

GitHub 側にも反映しました

今回の内容は GitHub 側にも手順と進捗として反映してあります。手元でやって終わりではなくて、次にまた同じことをやるときに迷わないように残しておくのは大事ですね。

今回のまとめ

  • usbipd-win を使って TL866II Plus を WSL2 に渡した
  • minipro はソースからビルドして導入した
  • lsusbminipro --version で認識確認した
  • make program-w27c512W27C512 への書き込みに成功した
  • 検証まで通って、WSL2 経由でも実用になることが確認できた

今後の予定

次は、今回書き込んだ W27C512 を実際に SBC6800 に挿して、実機での確認を進めたいと思います。

その先では、verifyreadback27C6427C256 あたりも順番に試して、どこまで同じ流れでいけるか見ていきたいところです。

ROM モニタ本体としては、本筋のフェーズ2に戻って、行入力や 16 進入力あたりを進めていきたいと思います。まだまだ先は長いですが、少しずつ積み上がってきた感じがしてよいですね。

MC6800 ROMモニタSBC6800