MSX用SCSI I/F「MegaSCSI」のノウハウ備忘録。私のSCSI活用方針は、MSXとWindowsとのデータ交換を手軽にするために、MSXに接続するSCSIストレージをWindowsにも持ってゆける環境の構築を目指すものです。
- SCSIストレージを実機でフォーマットしてパーティーションを切る(SFORM)
- 仮想ディスクの使い方(EP.COM)
- ストレージをWindowsでマウントすると以後MSXではボリューム名が勝手に付いたように見える問題
- ストレージをWindowsでマウントすると「System Volume Information」フォルダが勝手に作られる問題
- 将来的にはSCSI経由でクラウドストレージへ繋ぎたい
ちなみにMegaSCSIを初期化(カーネルインストール・SRAMフォーマット)する方法はこちら。
SCSIストレージを実機でフォーマットしてパーティーションを切る(SFORM)
- SFORM-1ではなく「SFORM-2」を利用する
- 似非ASPIは「オン」にしてフォーマットする。
SFORM-1.COMで初期化するとWindowsでは容量0バイトのパーティーションがマウントされますので、Windowsと併用する場合は SFORM-2.COM を用います。
2018年当時のこのツイートでは System Volume Information フォルダが勝手に作られるWindowsの仕様に気付いておらず、Amazon Driveの挙動を疑っていました。実際はマウントしたドライブ全てに等しく勝手に作られており、Googleドライブも同様でした。
MSX-DOS2が認識できるストレージ容量は1ドライブ32MB(ファイルシステム FAT12の最大値)のため、32MB以上のストレージをMegaSCSIのフォーマットツールで初期化すると、32MB毎にパーティーションが分割されます。
注意点は、分割されたパーティーションはWindowsでは全て別々のドライブにマウントされます。容量230MBのMOドライブの場合、7ドライブ分がマウントされます。パーティーションが沢山ある場合、Windowsのドライブレターの最後(Z:)を使い切る場合もあります。2GBのストレージを32MB単位で区切ると60分割されます。そういうストレージもWindowsではマウントできるのですが、大量のドライブがマウントされる状況はハードウェア側の負担を増やす原因にもなりますし、実用的ではありません。
2021年現在、私はMSXの実機ではなくWindows PC+クラウドサーバでコンテンツの管理をしているため、本音を言えばMSXの実機側はWindowsとのデータ交換が便利なだけで十分です。私が希望することは、SFORM-2 で32MBのパーティーションを1個や2個だけにして初期化したい(分割数を指定したい)ということなのですが、現状は実現していません。Windowsの管理ツールで複数のパーティーションをつなげて無効化すればドライブ数は減りますが自動化する方法が分からず、手動ではとても面倒な作業です。
私がSFORMで試行錯誤した顛末はこちら。
https://twitter.com/search?q=SFORM-2%20from%3Anf_ban&src=typd&f=live
仮想ディスクの使い方(EP.COM)
ディスクイメージファイルを仮想的にドライブへマウントできる機能です。「MegaFlashROM」や「Carnivore2」など昨今発売中の多機能カートリッジにおいても「SofaRun」アプリを使うと仮想ディスクの機能が利用できますよね。MegaSCSIではEP.COMを利用します。
MegaSCSIのEP.COMは、保存したイメージファイルの書き込みセクタが連続している必要があります。よって、ファイルの書き換え(作ったり消したり)が頻繁に起きているドライブではセクタを連続して書き込めないままファイル保存される場合が多いためEP.COMの利用に失敗する場合があります。
ドライブをフォーマットしたうえでディスクイメージファイルをコピーすれば連続したセクタで書き込めるので、EP.COMの利用が捗るはずです。
ストレージをWindowsでマウントすると以後MSXではボリューム名が勝手に付いたように見える問題
ストレージドライブにボリューム名を付けておかない状態でWIndowsへもってゆくと、勝手にボリューム名「B」が付けられている問題。
MSX上で予めボリューム名をつけてからWindowsへ持ってゆく。
ストレージをWindowsでマウントすると「System Volume Information」フォルダが勝手に作られる問題
Windowsでマウントするたび、Windowsのコマンドプロンプトで以下のコマンドを実行する。
d: ←マウントしたドライブ名
rmdir "system volume information" /s /q
何度も入力するには面倒くさい文字量なので、私は日本語入力の辞書へコマンド1行分を単語登録して、都度実行しています。
将来的にはSCSI経由でクラウドストレージへ繋ぎたい
フロッピーディスクの生産中止によってSDカードへの移行が求められ(ワンチップMSXがまさにそれ)、今度はSDカードも低容量の製品が不足になりつつあり、SDカードが物理的になくなった将来にMSXのストレージドライブを考えるにあたり一つの解決策となり得るのが、インターネット経由のクラウドドライブへ接続する方法です。SCSIがMSXで使えるということは、RaSCSIもMSXで利用できるということです。
MSX…MegaSCSI(RaSCSI)、PSGx3、OPLL、OPMx2、似非RAM、MegaFlashSCC+SD、FDD…全てがこの状態でちゃんと使用できたりで…素敵すぎる拡張性(*´▽`*) #MSX pic.twitter.com/7JiiFWSZuY
— 焦がしエクレア (@SearEclair) 2018年8月22日
RaSCSIでMSXのストレージドライブを仮想的に構築し、MegaSCSIとRaSCSIを接続すると、MSXからはSCSI機器に接続する体でアクセスできます。RaSCSIと各種クラウドストレージを接続することでMSXのドライブをクラウド化することは可能なようなんですけど、まだ実践したことがありませんが、夢がありますね!MSXの処理速度の遅さから言えば体感速度はほとんど無いと思われます。フロッピーよりは確実に速い。
MSXが直接ネットへ繋がるソリューションが今後求められてゆくのでしょうね。