Gigamix Online

懐かしの8bitおもちゃPC「MSX」を骨までしゃぶり尽くそう。MSXの最新ニュース、ブログ。自作ソフトの配布などは公式サイトへ→ https://gigamix.jp/

MegaSCSI:MSX用SCSI I/Fの使い方備忘録

 MSXSCSI I/F「MegaSCSI」のノウハウ備忘録。私のSCSI活用方針は、MSXWindowsとのデータ交換を手軽にするために、MSXに接続するSCSIストレージをWindowsにも持ってゆける環境の構築を目指すものです。

https://p.gigamix.jp/devmsx/cg/megascsi_cartridge_1280x960_2.png

 ちなみにMegaSCSIを初期化(カーネルインストール・SRAMフォーマット)する方法はこちら。

gigamix.hatenablog.com

SCSIストレージを実機でフォーマットしてパーティーションを切る(SFORM)

  1. SFORM-1ではなく「SFORM-2」を利用する
  2. 似非ASPIは「オン」にしてフォーマットする。

 SFORM-1.COMで初期化するとWindowsでは容量0バイトのパーティーションがマウントされますので、Windowsと併用する場合は SFORM-2.COM を用います。

SFORM-2で似非ASPIオンで初期化し直したら全パーティーションがマウントされるけど、MSXで作ったファイルが見えるようになった。気になるのは、エクスプローラーでは.batファイルが見えない+Amazon DriveをインストールしているとSDカードへ勝手に何かファイルを作ってしまう。 pic.twitter.com/AngNwJKsMn — Takashi Kobayashi (@nf_ban) 2018年3月24日

 2018年当時のこのツイートでは System Volume Information フォルダが勝手に作られるWindowsの仕様に気付いておらず、Amazon Driveの挙動を疑っていました。実際はマウントしたドライブ全てに等しく勝手に作られており、Googleドライブも同様でした。

MSXのSFORM-2でフォーマットしたSDカードをWindowsに差してみたら全てのパーティーションがマウントされたようで割と大惨事。そのうえパーティーション0に書き込んだファイルは、パーティーションまるごと見えない様子。なんだろうこれは…似非ASPIをオフにしたから? pic.twitter.com/HsgXjyeZeU — Takashi Kobayashi (@nf_ban) 2018年3月24日

 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)

忘備録。MegaSCSIでディスクイメージをドライブにマウントする設定例。マウント先のドライブレターは予め空けて実行。設定後のドライブレターはSCSIデバイスに置き換わるのでマウント解除はESETで空にする。WebMSXでダウンロードしたイメージはMSX実機では形式違い?でマウントできないので注意。 pic.twitter.com/WvX7aLP2SF — Takashi Kobayashi (@nf_ban) 2018年9月28日

 ディスクイメージファイルを仮想的にドライブへマウントできる機能です。「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のストレージドライブを考えるにあたり一つの解決策となり得るのが、インターネット経由のクラウドドライブへ接続する方法です。SCSIMSXで使えるということは、RaSCSIもMSXで利用できるということです。

BOOTHでRaSCSI基板購入して、MSXからMOドライブとして使うことできた。結構嬉しい。はじめ勘違いしてRasPiB+を使っててうまくく動かず。3Bに交換して動いた #RaSCSI #MSX pic.twitter.com/MaXln2yPIw — ハルマッキン (@Harumakkin) 2020年10月28日

MSXでEtherは無理にせよRaSCSI経由でクラウドストレージを直接マウントできれば最高ですね(できるのか調べてませんが)。MegaSCSIなので基本的にFAT12運用なんですよね…(FAT16化に失敗したままウン年経過して未だ実現せず)。Nextor動けばなぁ。 — Takashi Kobayashi (@nf_ban) 2020年10月29日

いちおう、 linuxのクラウドマウントで任意のドライブにマウントできるので あとは rascsi版のドライバがあればナチュラルにアクセスできるはず。(ソースはあるよ) — applesorce (@applesorce) 2020年10月29日

 RaSCSIでMSXのストレージドライブを仮想的に構築し、MegaSCSIとRaSCSIを接続すると、MSXからはSCSI機器に接続する体でアクセスできます。RaSCSIと各種クラウドストレージを接続することでMSXのドライブをクラウド化することは可能なようなんですけど、まだ実践したことがありませんが、夢がありますね!MSXの処理速度の遅さから言えば体感速度はほとんど無いと思われます。フロッピーよりは確実に速い。

 MSXが直接ネットへ繋がるソリューションが今後求められてゆくのでしょうね。