Gigamix Online

懐かしの8bitおもちゃPC「MSX」を骨までしゃぶり尽くそう。MSXの最新ニュース、ブログ、自作ソフトの配布など。

MegaSCSIにNextorカーネルを入れてSCSIデバイスをFAT16で動かしたい(模索編)

書きかけ中

 今のところ、完全に手詰まりです。情報求む!

https://p.gigamix.jp/devmsx/cg/megascsi-carnivore2_1280x960.png

将来的にやりたいこと

SCSIストレージをFAT16フォーマットで管理したい

 MSX-DOS2はFAT12(最大容量 32MBytes)なので、それより大きな容量のストレージはパーティーションを切らなければなりません。MegaSCSIのパーティーション分割ツール「SFORM-1」「SFORM-2」で分割したストレージをWindows PCでマウントすると全てのパーティーションがマウントされます。230MBytesのMOドライブですら7ドライブのマウントとなります。正直、うざいです。

 近年登場したDOS2の上位互換OS「Nextor」はFAT16に標準対応していますので、MegaSCSIのカーネルをDOS2からNextorへ変更したいのです。

SCSI経由でクラウドストレージへ繋ぎたい

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日

 MegaSCSIとRaSCSIを接続し、RaSCSIと各種クラウドストレージを接続することでMSXのドライブをクラウド化することは可能なようなんですけど、まだ実践したことがありませんが、夢がありますね!

 フロッピーディスクの生産中止によってSDカードやUSB FDD(Rookie Drive NX)への移行が求められ(ワンチップMSXがまさにそれ)、今度はSDカードも低容量の製品が不足になりつつあるので、直接ネットへ繋がるソリューションが今後求められてゆくのでしょうね。

試したこと

NextorのカーネルROMイメージをMGINSTで強引にインストールする(がエラーで弾かれる)

ダメ元でやってみましたが、残念ながら Illegal DOS と怒られました😅 pic.twitter.com/JjcbuuxyQr — HRA! (@thara1129) 2021年11月12日

 MegaSCSIのインストーラ「MGINST」がNextorカーネルを認識してくれません。ここが解決するのが一番の近道なのですが…

NextorのカーネルROMイメージをMGLOADで強引にインストールする(とSCSI機器が無効になる)

「カーネル」って要は先頭2バイトがABで始まるDISK ROMイメージなのね。MSX-DOS(1)は16KB、DOS2は64KB、Nextorは128KB。で、そのカーネル(ASCII 8KタイプのNextor)をMegaSCSIへMGLOADでインストールするとSCSIもSRAMも潰れるけどFDDだけでNextorが起動するのね。自作DOS2カートリッジみたいなものか。 pic.twitter.com/E9YKuKsFFm — Takashi Kobayashi (@nf_ban) May 20, 2021
MegaSCSIはカーネルをSRAMへインストールした余りがストレージに化ける。製品版は1MBytesで、DOS2は960KB、Nextorなら896KBでいける計算。で、MGINSTは①カーネルROMのチェックとインストール、②SRAMストレージ部の初期化、③システムファイルのコピー、④SCSI関係の何かを処理してるんだろうなぁ。 — Takashi Kobayashi (@nf_ban) May 20, 2021
ってことは、SCSI関係はよく分からないけど、仮にMegaSCSIのSRAMへNextorのカーネル(128KBytes)をインストールしてSRAMを初期化することができたら、残量896KBytesでNextorが起動できるようにはできそうだ。まぁMegaSCSIのカーネルとして見えないと意味ないかもしれないけど… — Takashi Kobayashi (@nf_ban) May 20, 2021

 「MGINST」の代わりに「MGLOAD」を利用すればNextorが起動するのですが、SCSI機器の利用が停止になります。これではただの似非RAMディスクカートリッジになってしまいます。

WindowsSCSIバイスFAT16でフォーマットして、Nextorで認識するかを試みる(が失敗)

 WindowsでフォーマットしたストレージをNextorで認識できるかと思ったら、認識できませんでした。MegaSCSIで接続されたストレージだから認識できないのかもしれない。今回試したフォーマットの手順が正しい手順なのかもよく分からないのです。

SCSIをUSBへ変換するケーブルは今となっては貴重なので大事にしたい。これを使って230MBのMOをWindows10でフォーマットすれば、FAT16になるはず…? pic.twitter.com/6Md7Ft31Je — Takashi Kobayashi (@nf_ban) June 20, 2020
FAT12のパーティーション7つが全部ドライブとしてマウントされてしまういつもの光景 pic.twitter.com/drFPQW99bb — Takashi Kobayashi (@nf_ban) June 20, 2020
「コンピュータの管理」画面で、この「ディスク1」の領域を全部繋げないと1ドライブにならないのだよね…たしか… pic.twitter.com/5K0oC2YsRr — Takashi Kobayashi (@nf_ban) June 20, 2020
なぜか左から2番目のパーティーションだけがボリュームを開放できないのでそれ以外全部を開放してからSD FormatterでフォーマットするとFAT16のパーティーション1個になります。 pic.twitter.com/YKlp9QHwF3 — Takashi Kobayashi (@nf_ban) June 20, 2020
Windows 10でフォーマットすると例のSystem Volume Informationフォルダが作られてしまうので、MSXへ戻す前に予め削除しておきます。色々方法はあるらしいのですが俺はコマンドプロンプトで rmdir
で、Carninore2のNextorへ持ってくると、IDEのAドライブ(CF, FAT16 512MB)とSCSIのCドライブ(SD, FAT12 32MB)は認識するも、SCSIのDドライブ(MO, FAT16 230MB)はMSX-DOSのディスクでない的なエラーが出て認識しないという(BドライブはMegaSCSIのSRAMディスクなので除外)。Nextorで認識できないかなぁ。 pic.twitter.com/86eE5Zka6P — Takashi Kobayashi (@nf_ban) June 20, 2020
んー。まずはMegaSCSIをFAT16利用可能な環境に変更したうえで、WindowsでなくMSXの実機でFAT16でフォーマットとファイル読み書きできる仕組みを作らないと、これ以上はNextorのテストにならないかもね… — Takashi Kobayashi (@nf_ban) June 20, 2020

MegaSCSIのMSX-DOS2にFAT16パッチを当ててみる(が失敗)

MSX-DOS2のCOMMAND2,COMにOKEIさんのFAT16パッチを当てる様子。パッチ当てたあとのファイルサイズが変わらないから、新旧はタイムスタンプでしか見分けする方法が今のところ分からない。 pic.twitter.com/f9oIBg00X4 — Takashi Kobayashi (@nf_ban) June 20, 2020
あれ!?FAT16パッチがフリーズしてるんじゃないのかな…プロンプト出ないのだけれど pic.twitter.com/HMtpmOfLcZ — Takashi Kobayashi (@nf_ban) June 20, 2020
DOS2の常駐物が先にあるとダメなのか、RAMディスクを作成してしまうとダメなのか分からないけど、RRAMDISKの自動起動を止めたらFAT16パッチが常駐したらしい。これでFAT12もFAT16もいけるかな? pic.twitter.com/dKhYB4lSU2 — Takashi Kobayashi (@nf_ban) June 20, 2020
と思ったのだが、やはりFAT16のMOはアクセスできない様子。SCSIのデバイス認識は問題なし。COMMAND2もMMもFAT16パッチ当ててDOS2にFAT16を常駐したうえでWindowsで初期化したFAT16のドライブへアクセスできないとなれば、もうMSXの実機でFAT16で初期化しないと使えないんじゃなかろうか?どうかな? pic.twitter.com/cXCJFEAf7K — Takashi Kobayashi (@nf_ban) June 20, 2020

 MSX-DOS2に「FAT16パッチ」というものを適用する方法があるのですが、その利用法がよく分かりません。

 1chipMSXに付属していたMSX-DOS2はFAT16パッチが適用済みで、FAT16(最大容量 2GBytes)のSDカードが読み書きできるようになっていましたが、そのMSXDOS2.SYS と COMMAND2.COM を利用するだけではMegaSCSIのストレージを認識できませんでした。

 FAT16バッチのダウンロードは、OKEIさんのWebサイトへ。→ http://www.ucatv.ne.jp/~kmizuo/fat16/down.html

NextorPatcherを利用する(とMegaSCSIはNextorカーネルに変わるがSCSI機器が無効になる)

にが工房さんのNextorPatcherでインストール用ROMイメージが簡単に作れるかも?と思ったけど対応するNextorがMegaFlashROM SCC+SD専用(=純正ROM非対応)だから俺の用途には無理そうなんだよね…まだ試してないけど… — Takashi Kobayashi (@nf_ban) May 20, 2021
ダメもとでNextorPatcherで作成した1MBytesのROMイメージをMGINSTでMegaSCSIへインストールしたら初期画面がMegaFlashROM SCC+SDのものに変わったけどまさかのNextor起動OK。空き容量は誤差でこんなもんかな。さすがにESETは起動しない(フリーズ)。MegaSCSIのカーネルとして認識されるには何が必要か… pic.twitter.com/xknlV8V8r7 — Takashi Kobayashi (@nf_ban) May 20, 2021
設定例 pic.twitter.com/yKLYevnGQJ — Takashi Kobayashi (@nf_ban) May 20, 2021

 にがHP工房さんのWebサイトで配布されている「NextorPatcher」を用いると特殊なカーネルROMのイメージを作成できます。それをMegaSCSIへインストールすると確かにNextorで起動できることは確認しましたが、ストレージとして利用できるのはSRAMディスク(似非RAMディスク)だけであり、SCSIバイスは全く認識できませんでした。単にカーネルだけを載せ替えるだけでは意味が無いようです。

 NextorPatcherのダウンロードは、にがHP工房さんのWebサイトへ。→ http://niga2.sytes.net/sp/tutorial/nexpat.html

MegaSCSIでFAT16のフォーマットを試みる(が失敗)

あれっ。MegaSCSIでFAT16でデバイスをフォーマットする方法って、どうやるんだったっけか。あとで調べよう… pic.twitter.com/tWRQSPMvgb — Takashi Kobayashi (@nf_ban) June 18, 2020
CF単体のフォーマットでよければ、パーティーション切ったのちにwindowsなりでfat16フォーマットとかどうでしょう・・? x68000のCF-SCSIのパーティーションはそれでフォーマットした気がする・・ — applesorce (@applesorce) June 18, 2020
Windowsで初期化するのは簡単なのですがSystem Volume Informationフォルダが勝手に作成される昨今(MSX実機では削除できない)なので、できるだけ実機で初期化してみたかったんです。それと今回初期化したかったのはSCSIのMO 230MBです。USB-USB変換コネクタを持ってるから試してみます。 — Takashi Kobayashi (@nf_ban) June 19, 2020

そもそもDOS2+FAT16パッチの使い方が分からない件

 MSX-DOS2が起動してから FAT16.COM を実行することで、FAT16パッチが適用される。/H オプションを付けると、現在の状況を出力する。

 Sunrise ATA-IDEカートリッジでMSX-DOS2+FAT16パッチを活用する事例は存在します。FAT16パッチ適用後に専用フォーマッタ「IDEFDISK.COM」を起動すると、FAT16でデバイスをフォーマットできるようです。

 MegaSCSIも、FAT16パッチ適用後に「SFORM-2.COM」を起動すると、同じようにFAT16でフォーマットできるのか!?