← ジョン・ドウ レポート
MEGA-SCSI · 開発報告

MEGA-SCSI 用 Nextor 3 ドライバ 開発報告

似非職人工房の MEGA-SCSI には、これまで Nextor のドライバがなかった。そこで Nextor 3 用のドライバを作り、Nextor のカーネルと合わせた 128KB の ROM イメージにして、MEGA-SCSI の SRAM に書き込んで使えるようにした。対象はノーマル版(アスキー製メガロムコントローラ互換)と SCC 付き版(コナミ製メガロムコントローラ使用、通称 WAVE-SCSI)で、SRAM に書き込むインストーラ NXMSINST も作った。実機(FS-A1ST + SCSI2SD V4)で、両機種のインストール、起動、読み書きを確かめた。

Nextor 3.0.0 はまだベータ版である。 この報告は Nextor 3.0.0 Beta2 で確かめたものである。「できていること」「できていないこと」、「6. Nextor 3.0.0 Beta2 での注意」に挙げたことはもちろん、挙げていないことも、今後の Nextor の更新で直ったり変わったりすることがある。

1. MEGA-SCSI について

MEGA-SCSI は 似非職人工房 の SCSI カートリッジである。SCSI コントローラ(富士通 MB89352A、以下 SPC)と、カーネルを入れる SRAM を持つ。

Nextor 2 / 3 のどちらにも MEGA-SCSI のドライバはなかった。Nextor 3 からはドライバが本体とは別に作られるようになったので、今回は Nextor 3 用として作った。

2. 作ったもの

ファイル内容
NXMS_A8.ROMノーマル版用の Nextor 3 ROM イメージ(128KB)
NXMS_SCC.ROMSCC 付き版用の Nextor 3 ROM イメージ(128KB)
NXMSINST.COMインストーラ。SRAM の先頭 128KB に ROM イメージを書き込み、照合する。バックアップと復元もできる

3. ドライバの仕組み

3.1 SPC の扱い

SPC は 4000h〜5FFFh にしか出せないので、ドライバのバンクを前半(4000h〜5FFFh)と後半(6000h〜7FFFh)に分けた。

SCSI の手順(選択、コマンドの送り方、ステータスとメッセージの受け取り)は、元の MEGA-SCSI BIOS を解析して、それと同じにした。

3.2 読み込みと書き込み

依頼人からの注文は「読み込みはできる限り速く、書き込みは安全に」だった。動画プレイヤーのように、ディスクから連続して読むソフトを想定している。オリジナルの MEGA-SCSI(MSX-DOS2 カーネルベース)では、昔の HDD や MO は問題ないが、SCSI2SD や SCSI2CF への書き込みで問題が出ていた。

3.3 機器の検出

3.4 ハングしないための上限

実機で、SCSI 機器がつながっていない、または電源が入っていないと、起動時の検出で止まることが分かった。SPC の状態を待つループに終わりがなかったためである。

4. インストーラ NXMSINST

NXMSINST イメージ [/B[:バックアップ]] [/S:スロット]
NXMSINST /B[:バックアップ] [/S:スロット]

実機で直したこと

5. 確かめたこと

実機(Panasonic FS-A1ST + SCSI2SD V4、2GB)

機種確かめたこと
SCC 付き版 1024KBインストール、SCSI2SD からの起動、Z80 / R800 での読み書き(720KB のフロッピーのイメージを 5 回コピーし、内容が一致)、CALL FDISK でのメディアの認識
ノーマル版 1024KB/S:1 でのインストール、720KB のファイルの読み書き(Z80 / R800)
共通SCSI 機器の電源を切った状態でも起動が止まらない

エミュレータ(openMSX、FS-A1ST)

6. Nextor 3.0.0 Beta2 での注意

MEGA-SCSI のドライバではなく、Nextor 3.0.0 Beta2 のカーネルやほかのドライバの動きである。Beta 版なので、今後変わる可能性がある。

6.1 ドライブの割り当て

Nextor 3 では、起動時にメディアがある機器から先にドライブ名が割り当てられるようである。MegaFlashROM SCC+ SD(Nextor 3 用ドライバ)では、SD スロット 2 つと ROM ディスクのドライブ名が、SD カードの有無で次のように変わった。

スロット 1スロット 2A:B:C:
なしなしROM ディスクスロット 1スロット 2
ありありスロット 1スロット 2ROM ディスク
ありなしスロット 1ROM ディスクスロット 2
なしありスロット 2ROM ディスクスロット 1

6.2 Nextor 2 のカートリッジを認識しない

Nextor 3 のカーネルが起動すると、同時に挿した Nextor 2 のカートリッジにはドライブが割り当てられない。

7. できていること・できていないこと

できていること

できていないこと・確かめていないこと

8. 権利