Gigamix Online

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

MegaSCSI:MSX用SCSI I/Fをカーネルインストールからやり直す

 MegaSCSIの似非RAM部分をウン十年ぶりに初期化しようと思いました。が、ノウハウをすっかり忘れたので忘備録。今回の作業で2回失敗して、3回目のカーネルインストールで成功しました。

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

 ちなみにMegaSCSIの使い方備忘録はこちら。

gigamix.hatenablog.com

公式の手順

 マニュアルを読めばいたって簡単なんです。(なのにうまくいかない)

  1. 「インストレーションディスク(インストール用ディスク)」を作成する
  2. MSX-DOSカーネルをファイルに保存する(KSAVER)
  3. MegaSCSIへカーネルをインストールする(MGINST)

 マニュアル(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」という、マニュアルには載っていないエラーでした。保存したカーネルのファイル構造に異常があるようです。

MegaSCSIのカーネル復旧に失敗する図。たいして難しくない正規の手順でやってるはずなんだけどな…🤔 pic.twitter.com/1Ntq8j9BoP — Takashi Kobayashi (@nf_ban) 2021年5月15日

 今思えば…1回目はMegaSCSIを差したままカーネルを保存していたので、本来取得できたであろう「本体に含まれるMSX-DOSカーネル」ではないもの(例えばMegaSCSIに含まれるカーネル)が生成されてしまったのかもしれません。

 確実な方法は、MegaSCSIや各種カートリッジを外し、且つ素のFDD環境MSX-DOS2を起動したうえでKSAVERコマンドを実行すること、ですね。

「Bad ERAMDISK」というエラー

 私(nf_ban)が2回目のカーネルインストールに失敗した際のエラーメッセージは「Bad ERAMDISK」でした。MegaSCSI内蔵の似非RAMディスク(ERAMDISK)が認識していないようです。

2回目。状況が悪化してる!? pic.twitter.com/OfMtaePZY4 — Takashi Kobayashi (@nf_ban) 2021年5月15日

 マニュアルにエラーの解説が載ってはいましたが、原因は「スロット番号の指定が誤っている」・対策は「正しいスロット番号を指定する」とあり、参考になりませんでした。

Badはスロット端子が汚れてると出がちです。電池はなくても認識には関係ないです(電源切ると消えるけど) — MSX研究所長 (@yoshimatsuTUQ) 2021年5月15日

 端子の汚れでそんなエラーが出ることがあるの!?と半信半疑でしたが、念のためキムワイプでカートリッジ端子を拭き上げたら、3回目に正常に認識してカーネルインストールが成功しました。

おお、復旧がうまく行ったようで何よりです。カートリッジ側の端子もですが、そろそろ製造から30年モノとなると本体スロット側も汚れて接触不良を起こしがちなので、ペンチで平たく潰した綿棒で掃除したりしてました。もしもの時という感じですが。 — MSX研究所長 (@yoshimatsuTUQ) 2021年5月16日

 本体側の接触不良でエラーが出る可能性もありそう。本体スロットのクリーニングも試せる選択肢の一つ、と。

前回使ったのが何年前なのか何十年前なのかもう分からないけど、MSXのSCSI I/F「MegaSCSI」を発掘した。恐ろしいことにCR2032の電池が入れっぱなしだった…見たところ汚れや液漏れは無いようだが、電池交換したら使えるのかな…? pic.twitter.com/NGWKcoADqN — Takashi Kobayashi (@nf_ban) 2018年3月8日

 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が起動するようになります。めちゃくちゃ高速です!

MegaSCSIのカーネルインストールに成功。素の状態ではMSX-DOS2のシステムファイル2つが入った容量1MBytesの似非RAMディスクで起動する。ストレージの残量が932KBytesだからFDD起動(MAX 713KBytes)ではないことが分かる。さあ、アプリをどんどん入れるぞ〜 pic.twitter.com/XNxp9BhL6k — Takashi Kobayashi (@nf_ban) 2021年5月15日

 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でもこれらが制御可能な状態でした。

高校野球のシーズンだから野球ツイート多めですけど、MSXのフロッピーディスクのバックアップは変わらずちびちび進めていますので〜。SCSI環境が動いてる間はどんどん使っていきたい… pic.twitter.com/My3s9KLLpX — Takashi Kobayashi (@nf_ban) 2019年7月24日

MegaSCSIに繋ぐテスト。昔MSXとかMacで使ったMOが未だに大量に残ってて、そろそろ処分したいけど中身を確認してから…。まぁ今日はMOドライブが使えるかどうかの目処くらいは付けたい。 pic.twitter.com/BYPNqv3Re7 — Takashi Kobayashi (@nf_ban) 2018年3月24日

 私が2021年現在に所有するSCSIバイスは「PCカードリーダ」「MOドライブ」です。90年代当時はHDD、CD-ROMドライブ、EPSON製スキャナも接続していました。

MegaSCSIは「似非RAM」の流れを汲む自作ハードウェア

 MegaSCSIの源流は「似非RAMディスク(ESE-RAM Disk)」というMSXのメガROMゲームカートリッジを改造して作成するSRAMストレージで、SRAMストレージの仕組みにSCSI I/Fを増設した形で自作向けの回路図やドキュメントが90年代のパソコン通信ネットで公開され、普及しました。

MEGA-SCSIも一度似非RAM作ってからそこにSCSI増設するような仕組みでしたね。ジャンパー線の山で作るのに苦労しました。ボタン電池でなくキャパシタなので定期的に火入れしてやらないとカーネルもデータも消え去りますがw SDカード使える機器が欲しい・・・#MSX https://t.co/DKrURYOMKB pic.twitter.com/2ZCyjG8PIf — あさひたか (@asahitaka_honjo) 2020年1月16日

When I built mine in 2000 I used Sanyo ML2430 Manganese Litium rechargeable cell with diode/3300r resitor for charging. Kernel stays over 1 year without erase. pic.twitter.com/9ZYEtXUGth — Leo Oliveira (@leo__oliveira) 2020年1月17日

こんなの発掘してしまった。つじかわさんが開発された似非SCSIに、SCC音源を強引に乗っけた基盤ですw 確か似非SCSI初期のプロトタイプの頃で、紙に印刷された回路図を見ながら作った記憶があります。それにしても配線が汚い。。 pic.twitter.com/7w3LQVqHRn — たかを⁧⁨🎯_(:3」∠)_ (@takawo_n) 2020年12月22日

最近仕事が忙しすぎて物作りの時間が取れていないので、懐かしの制作物のご紹介 1995年、大学一年生の時に師匠のつじかわ先輩の手解きで作ったMEGA-SCSI(MSX用SCSIアダプタ)です こんなのを個人で設計できる人が居るのかと衝撃を受けてハード工作に目覚めたキッカケの一品です😀#msx pic.twitter.com/bmgpy18qIQ — くにちこ(Kunihiko Ohnaka) (@kunichiko) 2021年5月30日

 SRAMストレージの容量は本人の頑張り次第で増設できます。MegaSCSIを自作した猛者の方々は256K~2MBytes等の容量でおのおの製作されていたようです。私が2021年現在に所有するMegaSCSIカートリッジは後に発売された製品版(完成品)で、SRAMストレージの容量は1MBytesでした。

 今の御時世1MBytesなんてみみっちい容量でしかありませんが、メモリの少ないMSXでは広大な容量でした。2DDフロッピーディスク 1枚の容量ですら1MBytesよりも劣る713KBytesでした。フロッピーよりも大きい容量で、ハードディスクよりも高速に起動できるSRAMストレージは、当時とても便利なアイテムの一つでした。

SCSIPCカードリーダでmicroSDカードを利用する

 PCカードリーダの話を出す前にPCカード(PCMCIA)の規格の話を書くとして。

 PCカードとは、1990年代のノートパソコンで普及していたデバイス拡張規格の一つです。PCカードは名刺サイズ型・5mm厚の寸法になっていて、「FM音源カード」や「通信モデムカード」「SCSIカード」「フラッシュメモリカード」等の周辺機器をノートパソコンのPCカードスロットへ挿入して利用していました。

久々にMSXの火入れをしたらSCSIのPCカードリーダーへアクセスできなくなって焦る。①うちの子が勝手にPCカードのスロットを入れ替えていたずらしていた、②SDカードのアダプタを交換したらmicroSDが見えるようになった、など綱渡りな運用になっちゃってる…まぁとりあえず復活して良かった。 pic.twitter.com/XCHnAngv8t — Takashi Kobayashi (@nf_ban) 2019年9月21日

 SCSI接続のPCカードリーダは「PCカードの形状になっているストレージデバイスSCSI規格でマウントする装置」として重宝しました。

はい、次はPCカードリーダーをMegaSCSIに繋ぐテストです。これはMSXでの利用経験が無いので、どうなるかは全く分からないな…本体死んでるかもしれんし… pic.twitter.com/JO4hcOKvFY — Takashi Kobayashi (@nf_ban) 2018年3月24日

 世の中には便利なことを考える人が居るもので、デジカメで普及したCompactFlashをPCカードの形状へ変換するアダプタが製造されていました。また、SDカードをCompactFlashの形状へ変換するアダプタも製造されていました。さらに、microSDカードを購入するとSDカードの通常サイズへ変換するアダプタが付属する場合もあります。

32GBでなく32MBのSDカードを2018年のいま用意しようと思うと結構大変で、とりあえずガラケーで使ってたminiSDの32MBが1枚だけ見つかったので、これでやることにする。次に容量の少ないカードは128MBか…ムーアの法則よろしく容量が短期間で倍々に増えていった時代の産物… pic.twitter.com/IABfwdDqmH — Takashi Kobayashi (@nf_ban) 2018年9月29日

 以上の便利なアイテムをマトリョーシカのように組み合わせるととどのつまり「ガラケーで使用した32MBまでのSDカード・miniSDmicroSDMSXでストレージドライブとして認識できる」わけです。MSXで利用する場合はファイルシステム FAT12の制限により、1ドライブの最大容量は32MBとなります(32MB以上のストレージは32MB単位でパーティーションを区切って使います)。

 MSXのストレージドライブはMS-DOSとファイルフォーマットの互換性があることも幸いしました。2021年になっても特に意識せずMSXWindows PCとでSDカード経由でファイル交換ができることは、たいへん貴重なことです。

課題:MSXに使える低容量ストレージが入手困難に

 2021年現在のMSX界隈は、microSDカードやCompactFlash等のFlashメモリカードMSXのカートリッジへ直接利用できる「多機能カートリッジ」と、FAT16に対応する新OS「Nextor DOS」の組み合わせがトレンドになっています。2021年にSCSI機器を揃えるのはもはや酔狂で、今はMegaSCSIではなくそれらを利用したほうが圧倒的に快適です。

Carnivore2のFlashROM退避先としてMegaSCSIの各種ストレージを、MegaSCSIのSRAM(メガROM)退避先としてCarnivore2のCFカードを用意しておけば、それぞれの復旧が簡単になることが今回分かった。んーでも、MSXで大容量ストレージ(最低8MB)を複数用意するのって実際は大変ではなかろうか? pic.twitter.com/s1xm39Ts1K — Takashi Kobayashi (@nf_ban) 2020年9月29日

 とは言え喫緊の課題としては、MSXで利用できる各種ストレージは現在では低容量すぎて入手が困難になりつつあります

 フロッピーディスクは既に生産中止してますから言わずもがな、MegaSCSI(ファイルシステム FAT12)の最大容量32MBytesは今となってはもうゴミ同然です。NextorはFAT16対応ですが最大容量は2GBytesで、2GBytesのSDカードもそろそろ新品の購入が厳しい世の中になってしまいました

 2021年現在のSDカード界隈は、規格がSDXC(ファイルシステム exFAT、最大容量2TBytes)です。そんな中、低容量のメディアが再生産される可能性は殆ど無い状況かと思います。見つけたら買い貯めしておこうかな…

MSXのユーザとして今一番の困り事はストレージ。2DDは生産中止、カセットテープは虫の息、SASIは死亡、SCSIは下火、1チップMSXでSDカード対応したが2GB以下は既に低容量の部類となり危険信号…。クラウド方面に逃げるしかないんじゃないかと思ったり。 — Takashi Kobayashi (@nf_ban) 2011年2月23日

 SDカードが物理的になくなった将来にMSXのストレージドライブを考えるにあたり一つの解決策となり得るのが、インターネット経由のクラウドドライブへ接続する方法です。SCSIMSXで使えるということは、RaSCSIMSXで利用できるということです。

retropc.net

 RaSCSIでMSXのストレージドライブを仮想的に構築し、MSXからはSCSI機器に接続する体でアクセスできます。データはRaSCSI上のストレージにもクラウド上にも置けますがMSXの処理速度の遅さから言えば体感速度はほとんど無いと思われます。フロッピーよりは確実に速い。

 しかしMegaSCSIはそのままではFAT12環境であるところが「惜しい」のです。

 MegaSCSIでNextorを動作させる手段は今のところ存在しないと思います。MegaSCSIをFAT16環境へアップグレードする方法もあるらしいですが方法が分かりません。情報がありましたらぜひお寄せください。よろしくお願いします。→ https://twitter.com/nf_ban/