MegaSCSIの似非RAM部分をウン十年ぶりに初期化しようと思いました。が、ノウハウをすっかり忘れたので忘備録。今回の作業で2回失敗して、3回目のカーネルインストールで成功しました。
- 公式の手順
- MSX-DOSカーネルをファイルに保存する(KSAVER)
- MegaSCSIへカーネルをインストールする(MGINST)
- エラーが出た場合の対処
- カーネルインストールに成功すると
- こぼれ話
ちなみにMegaSCSIの使い方備忘録はこちら。
公式の手順
マニュアルを読めばいたって簡単なんです。(なのにうまくいかない)
マニュアル(PDF)→ http://www.hat.hi-ho.ne.jp/tujikawa/ese/megaman.pdf
MSX-DOSカーネルをファイルに保存する(KSAVER)
マニュアルどおりに「インストレーションディスク(インストール用ディスク)」を作成し、MegaSCSIは抜いた状態でMSX-DOS2を起動し、以下のコマンドを実行します。
A>KSAVER <ファイル名>
保存に成功すると、65536バイトのファイルが生成されます。
MegaSCSIへカーネルをインストールする(MGINST)
MegaSCSIのカートリッジを本体に挿入し、カートリッジ裏側のSRAM無効化ボタンを押しながらインストレーションディスクのMSX-DOS2を起動し、以下のコマンドを実行します。
A>MGINST <ファイル名> /Sxx /D
/Sxx オプションは、MegaSCSIを差しているスロット番号。スロット1なら「/S01」です。
/D オプションは、各種設定を初期化し、「似非RAMディスク(ESE-RAM Disk)」と呼ばれるSRAMストレージのフォーマットを行います。せっかくだからやっておきましょう。
「Install Complete. Thank you.」と表示されたらインストールは成功したので、本体を再起動しましょう。
インストレーションディスクの作成時に MSXDOS2.SYS と COMMAND2.COM を含める指示がありましたが、カーネルインストール時にこの2ファイルをSRAMストレージへコピーしているようです。おそらくFDD環境でなくても(例えばCarnivore2のNextorのような環境でも)MegaSCSIのカーネルインストールは可能だと思うのですが、上記2ファイルがカレントディレクトリに配置されている必要がありそうです。
エラーが出た場合の対処
「Illigal DOS kernel」というエラー
私(nf_ban)が1回目のカーネルインストールに失敗した際のエラーメッセージは「Illigal DOS kernel」という、マニュアルには載っていないエラーでした。保存したカーネルのファイル構造に異常があるようです。
今思えば…1回目はMegaSCSIを差したままカーネルを保存していたので、本来取得できたであろう「本体に含まれるMSX-DOSカーネル」ではないもの(例えばMegaSCSIに含まれるカーネル)が生成されてしまったのかもしれません。
確実な方法は、MegaSCSIや各種カートリッジを外し、且つ素のFDD環境でMSX-DOS2を起動したうえでKSAVERコマンドを実行すること、ですね。
「Bad ERAMDISK」というエラー
私(nf_ban)が2回目のカーネルインストールに失敗した際のエラーメッセージは「Bad ERAMDISK」でした。MegaSCSI内蔵の似非RAMディスク(ERAMDISK)が認識していないようです。
マニュアルにエラーの解説が載ってはいましたが、原因は「スロット番号の指定が誤っている」・対策は「正しいスロット番号を指定する」とあり、参考になりませんでした。
端子の汚れでそんなエラーが出ることがあるの!?と半信半疑でしたが、念のためキムワイプでカートリッジ端子を拭き上げたら、3回目に正常に認識してカーネルインストールが成功しました。
本体側の接触不良でエラーが出る可能性もありそう。本体スロットのクリーニングも試せる選択肢の一つ、と。
SRAMバックアップ用のボタン型電池(CR2032)の劣化でSRAMストレージが認識できない可能性も無きにしもあらずですが、今回のエラーについては関係がありませんでした。
その他のエラー
れふてぃさんのWebページ「似非RAMディスクの作り方(How to make ESE-RAM Disk)」にも詳しい技術情報がありますので参考になります。主に自作向け。
http://www7b.biglobe.ne.jp/~leftyserve/ese-org/page-00.htm
カーネルインストールに成功すると
カーネルインストールに成功すると、MegaSCSIに含まれるSRAMストレージからMSX-DOS2が起動するようになります。めちゃくちゃ高速です!
SRAMストレージに各種アプリをぶっこむのも良し、SRAMは起動ファイルのみの最低限にしてSCSI接続のドライブに各種アプリを配置するという運用も良し…。
こぼれ話
MegaSCSIとは
MSXパソコン用のSCSI I/Fカートリッジです。元々は「MEGA-SCSI」という名称で同人サークル・似非職人工房(Ese Artists' Factory)からリリースされていました。私は個人的な好みで「MegaSCSI」と呼ぶことにしています。
似非職人工房のWebサイトはこちら→ http://www.hat.hi-ho.ne.jp/tujikawa/ese/
MegaSCSIは、最大7台までのSCSIデバイスを認識できます。とは言え、2021年の今SCSI規格の周辺機器はほぼ姿を消しました。1990年代はSCSI規格の全盛期で、ハードディスクを筆頭にMOドライブ(光磁気ディスク)、Zipドライブ(Zip圧縮アーカイブではない)、CD-ROMドライブ、PCカードリーダ(PCMCIA)、スキャナ(TWAIN)などなど幅広い周辺機器が発売されており、MSXでもこれらが制御可能な状態でした。
私が2021年現在に所有するSCSIデバイスは「PCカードリーダ」「MOドライブ」です。90年代当時はHDD、CD-ROMドライブ、EPSON製スキャナも接続していました。
MegaSCSIは「似非RAM」の流れを汲む自作ハードウェア
MegaSCSIの源流は「似非RAMディスク(ESE-RAM Disk)」というMSXのメガROMゲームカートリッジを改造して作成するSRAMストレージで、SRAMストレージの仕組みにSCSI I/Fを増設した形で自作向けの回路図やドキュメントが90年代のパソコン通信ネットで公開され、普及しました。
SRAMストレージの容量は本人の頑張り次第で増設できます。MegaSCSIを自作した猛者の方々は256K~2MBytes等の容量でおのおの製作されていたようです。私が2021年現在に所有するMegaSCSIカートリッジは後に発売された製品版(完成品)で、SRAMストレージの容量は1MBytesでした。
今の御時世1MBytesなんてみみっちい容量でしかありませんが、メモリの少ないMSXでは広大な容量でした。2DDフロッピーディスク 1枚の容量ですら1MBytesよりも劣る713KBytesでした。フロッピーよりも大きい容量で、ハードディスクよりも高速に起動できるSRAMストレージは、当時とても便利なアイテムの一つでした。
SCSIのPCカードリーダでmicroSDカードを利用する
PCカードリーダの話を出す前にPCカード(PCMCIA)の規格の話を書くとして。
PCカードとは、1990年代のノートパソコンで普及していたデバイス拡張規格の一つです。PCカードは名刺サイズ型・5mm厚の寸法になっていて、「FM音源カード」や「通信モデムカード」「SCSIカード」「フラッシュメモリカード」等の周辺機器をノートパソコンのPCカードスロットへ挿入して利用していました。
SCSI接続のPCカードリーダは「PCカードの形状になっているストレージデバイスをSCSI規格でマウントする装置」として重宝しました。
世の中には便利なことを考える人が居るもので、デジカメで普及したCompactFlashをPCカードの形状へ変換するアダプタが製造されていました。また、SDカードをCompactFlashの形状へ変換するアダプタも製造されていました。さらに、microSDカードを購入するとSDカードの通常サイズへ変換するアダプタが付属する場合もあります。
以上の便利なアイテムをマトリョーシカのように組み合わせるととどのつまり「ガラケーで使用した32MBまでのSDカード・miniSD・microSDをMSXでストレージドライブとして認識できる」わけです。MSXで利用する場合はファイルシステム FAT12の制限により、1ドライブの最大容量は32MBとなります(32MB以上のストレージは32MB単位でパーティーションを区切って使います)。
MSXのストレージドライブはMS-DOSとファイルフォーマットの互換性があることも幸いしました。2021年になっても特に意識せずMSXとWindows PCとでSDカード経由でファイル交換ができることは、たいへん貴重なことです。
課題:MSXに使える低容量ストレージが入手困難に
2021年現在のMSX界隈は、microSDカードやCompactFlash等のFlashメモリカードをMSXのカートリッジへ直接利用できる「多機能カートリッジ」と、FAT16に対応する新OS「Nextor DOS」の組み合わせがトレンドになっています。2021年にSCSI機器を揃えるのはもはや酔狂で、今はMegaSCSIではなくそれらを利用したほうが圧倒的に快適です。
とは言え喫緊の課題としては、MSXで利用できる各種ストレージは現在では低容量すぎて入手が困難になりつつあります。
フロッピーディスクは既に生産中止してますから言わずもがな、MegaSCSI(ファイルシステム FAT12)の最大容量32MBytesは今となってはもうゴミ同然です。NextorはFAT16対応ですが最大容量は2GBytesで、2GBytesのSDカードもそろそろ新品の購入が厳しい世の中になってしまいました。
2021年現在のSDカード界隈は、規格がSDXC(ファイルシステム exFAT、最大容量2TBytes)です。そんな中、低容量のメディアが再生産される可能性は殆ど無い状況かと思います。見つけたら買い貯めしておこうかな…
SDカードが物理的になくなった将来にMSXのストレージドライブを考えるにあたり一つの解決策となり得るのが、インターネット経由のクラウドドライブへ接続する方法です。SCSIがMSXで使えるということは、RaSCSIもMSXで利用できるということです。
MSXのMEGA-SCSIから見たRaSCSI(ラズパイ3B+https://t.co/oDe1uV7Ugr版アダプタ)のインクワイアリ情報。一応、認識はしている。しかしフォーマットまでは通るが、ドライブにアクセスするとエラーになってしまう。もうちょっと調べないとなー。 pic.twitter.com/87qABopfCb
— MSX研究所長 (@yoshimatsuTUQ) 2020年3月18日
RaSCSIでMSXのストレージドライブを仮想的に構築し、MSXからはSCSI機器に接続する体でアクセスできます。データはRaSCSI上のストレージにもクラウド上にも置けますがMSXの処理速度の遅さから言えば体感速度はほとんど無いと思われます。フロッピーよりは確実に速い。
しかしMegaSCSIはそのままではFAT12環境であるところが「惜しい」のです。
MegaSCSIでNextorを動作させる手段は今のところ存在しないと思います。MegaSCSIをFAT16環境へアップグレードする方法もあるらしいですが方法が分かりません。情報がありましたらぜひお寄せください。よろしくお願いします。→ https://twitter.com/nf_ban/