[今更誰得] PC上にあるディスクイメージをMSXの仮想FDDとしてアクセスできるようにする「MSXDISK」について #MSX #MSXDISK

最近ずっと「MSXDISK」というソフト(ソリューションといった方がよいのか)について何かと取り上げているのですが、そういえば、ちゃんと整理された形で紹介していなかったよなあと思いました。

CX5Fとかでうまく動かなかったのでその対応とか、PB-1000と繋ぐとか、そのへんのネタとごちゃごちゃになって整理されていなかったかんじだったので、MSXDISKについてだけまとめてみることにしました。

MSXDISKとは何か


タイトルにもあるとおりですが、MSXDISKは、PC上にあるディスクイメージ(エミュレータなどで良く用いられている.dsk形式のファイル)をMSXの仮想FDDとして操作できるようにするためのソフトウェアです。



標準のDISK BIOSをカスタマイズする形で実装されているので、MSX-DOSやDOSコマンド、DiskBasicのディスクアクセスコマンドやDISK BIOSを使うソフトでもそのまま動くと思います。

ただ、市販ソフトなどでDISK BIOSを使わずにディスクアクセスをしているソフトがあるとおそらく正常に動作できないので注意が必要です。

MSXとPCの接続には、MSXの汎用入出力ポート(いわゆるジョイスティックポート)を経由してPCのシリアルポートに接続します。

ベースになっているソリューションはJoy232というもので、MSXDISKはこれをベースに大幅な拡張を施したものになります。

大変面白いソリューションなのですが、MSXDISKというネーミングが、何を示すものなのかが非常にわかりにくいというのが難点です。ほとんどのケースで注釈を付けないと、ただ「MSXDISK」と表記しても何をするものなのかが理解しにくいんですよね・・・。


必要な道具


(1) MSXDISKのソフトウェア

こちらからダウンロードできます。

MSXDISK
https://msxdisk.ocitygate.com/

(2) ディスクイメージファイル

ディスクイメージファイルを準備します。
何も持っていない場合は、ブランクのイメージファイルを用意しましょう。
ブランクのイメージファイルを簡単に作成するには、WebMSXが便利です。

WebMSXでブランクのイメージファイルを準備する手順

PC側でWebMSXを起動します。
  • Disk→Add Blank Diskを選択し、ブランクディスク(空のFDDイメージファイル)を作成します。
  • Disk→Save Disk Imageを選択すると、ブランクディスクのディスクイメージファイル(DSK)がPCにダウンロードされます。

(3) 汎用入出力ポートとPCをシリアル接続できるケーブル

今時のPCは標準でシリアルポートが装備されていないので、USB→シリアル変換キットを利用して、そこから汎用入出力ポートに接続するのが無難かと思います。

USB→シリアル変換キットは、いろいろなものがあると思いますが、秋月電子で販売しているAE-UM232Rが使いやすくて良いと思います。

FT232RL USBシリアル変換モジュール: 半導体(モジュール) 秋月電子通商-電子部品・ネット通販
 
AE-UM232R

これ、キットの基盤にピンアサインも書いてあるし、電源共有もPC側のUSBからやってくれるし、電圧レベルの相互変換とかそういう面倒なこともいらないし、あと正論理・負論理の切り替えもPC上のソフトから行えたりするので、いろいろ遊ぶにはちょうどいいなーと思っています。

あとは、ジョイスティックポート用ケーブルですね。こちらは、現在でもいくつか入手手段がありますが、同人ハードですといつでも安定的に調達できるわけでもないので、見つけたら買えるうちに買っておきましょう。入手しやすいのはこのあたりでしょうか。

AMP9ピンケーブル | 同人ハード(キット),余熱@れすぽん | | 家電のケンちゃん(@kadenken)
https://www.kadenken.com/view/item/000000000862 

通信には9ピンすべてを使うわけではないので、FC互換機などでATARI9ピンケーブルが使われているものがあれば、そこから流用することも可能です。FC互換機のケーブルは内部で5ピンしか結線されていませんので、MSXDISKで必要なピンに結線を繋ぎ変えれば利用できます。ただしそのためにはコネクタのカバー部を除去して中の結線を付け替えられるようにしなければいけないので注意が必要です。

これらが揃いましたら、次のようにジョイスティックケーブルとAE-UM232Rを接続します。
  • MSX側ポートの9番ピン→AE-UM232RのGND
  • MSX側ポートの6番ピン→AE-UM232RのRxD
  • MSX側ポートの1番ピン→AE-UM232RのTxD
ちなみに、中の人はビビりなのとAE-UM232Rを別の用途でも利用できるようにしたかったので、直接はんだ付けはせず、ブレッドボード経由で接続しました。

これ以外の道具は、お持ちの装備に応じて少し変わります。

(a) MegaFlashROMを持っている方

上記(1)~(3)とMegaFlashROM(以下MFR)だけでOKです。(1)のMSXDISKのパッケージに含まれている、DISK.ROMを、FlashROMに焼いてください。


(b) EPROMライタとEPROM/ROMカートリッジ基板を持っている方

上記(1)~(3)とEPROMライタとEPROM/ROMカートリッジ基板だけでOKです。(1)のMSXDISKのパッケージに含まれている、DISK.ROMを、EPROMライタで焼いてください。DISKROMは、4000H~7FFFHに配置する必要がありますので、焼き込む際の位置にご注意ください。詳しくは、以下エントリも参考にしてください。

mobileFF's blog: [今更誰得] MSXDISKをROMカートリッジ化してテープロードを省略する手順 #MSX #MSXDISK
https://mobileff.blogspot.com/2022/03/msxdiskrom-msx-msxdisk.html


(c) MFR/EPROMライタのどちらもお持ちでない方

カセットインターフェースケーブルが必要になります。カセットインターフェースのLOAD端子をPCのスピーカー(LINE OUT)端子に繋いでください。


(d) 上記(a)(b)に該当かつ、ヤマハCX5F/YIS503、ビクターHC-6、カシオ製MSX(PV-7/16,MX-10/101)など、スロット0にメインRAMが8KB~32KB実装されている機種をお持ちの方

※2023/1/17追記:MX-101はMSXDISKが動作しないという情報をTwitterで頂きました。情報提供ありがとうございました。PV-7/16/MX-10は動作するとのことです。

MSXDISK標準のDISK.ROMの判定ロジックですと、拡張RAMを挿しても認識しないため、MSX-DOSが起動できません。その場合は、スロット1に拡張RAMを装着する前提ですが、中の人がカスタムしたROMイメージがありますので、こちらを利用してください。

MSX-DOSを使うつもりがなく、標準の32KB RAMでDiskBasicが使えればOKの方は、DISK.ROMはMSXDISK同梱のものをそのままお使いください。


(e) 上記(c)に該当かつ、ヤマハCX5F/YIS503、ビクターHC-6、カシオ製MSX(PV-7/16,MX-10/101)など、スロット0にメインRAMが8KB~32KB実装されている機種をお持ちの方

※2023/1/17追記:MX-101はMSXDISKが動作しないという情報をTwitterで頂きました。情報提供ありがとうございました。PV-7/16/MX-10は動作するとのことです。

MSXDISK標準のROMLDR(DISKROMをPC→MSXに転送して再起動するローダープログラム)の判定ロジックですと、拡張RAMを挿してもROMLDRから認識されないため、MSXDISKのDISKROMで起動できません。

その場合は、スロット1に拡張RAMを装着する前提ですが、中の人がカスタムしたROMLDRがありますので、こちらを利用してください。

また、DISK.ROMも同じロジックでRAMのスロットを判定しているため、DISK.ROMも同じ前提でカスタマイズしたものに入れ替えておいてください。




起動手順


(1) MFRにDISK ROMを焼いた方

  • MSXとPCを上記(3)のケーブルで接続します。
  • PC上でMSXDISKを起動し、A:ドライブにディスクイメージをセットしておきます。
  • 次に、MFRをスロットに挿してMSXを起動しますが、このとき、起動時に「R」キーを押し続けてください。MSXDISKのディスクエミュレーションと、MegaFlashROM自体のディスクエミュレーション機能がバッティングしてしまうようで、そのまま起動するとうまくいきませんでした。
    ※MFRを挿したMSXの起動時に「R」キーを押すと、スロット2に装着しているMegaFlashROMのFlashROM以外の各種機能(拡張RAMやSDカードスロットのFDDエミュレーション)が無効になります。

  • MSXからPC上のディスクイメージへアクセスが実行され、ディスクイメージが起動可能(MSX-DOSがインストールされている、autoexec.basがあるなど)であれば、それらからの起動が行われます。

(2) EPROM+ROMカートリッジにDISK ROMを焼いた方

  • MSXとPCを上記(3)のケーブルで接続します。
  • PC上でMSXDISKを起動し、A:ドライブにディスクイメージをセットしておきます。
  • ROMカートリッジをスロットに挿してMSXを起動します。
  • MSXからPC上のディスクイメージへアクセスが実行され、ディスクイメージが起動可能(MSX-DOSがインストールされている、autoexec.basがあるなど)であれば、それらからの起動が行われます。ディスクイメージが起動可能でない場合は、DiskBasicが起動します。

(3) MFR、ROMカートリッジをお持ちでない方(上記(c)(e)に該当する方)

  • MSXとPCを上記(3)のケーブルで接続します。
  • PC上でMSXDISKを起動し、A:ドライブにディスクイメージをセットしておきます。
  • MSXを起動します。
  • カセットインターフェースのLOAD端子とPCのスピーカー端子が接続されていることを確認します。
  • BASICから、
    BLOAD "CAS:",R
    とコマンドを実行します。
  • PC上のMSXDISKで[Play Casette]ボタンをクリックし、ROMLDRのプログラムファイルの音声を再生します。
  • カセットインターフェースからROMLDRがロードされ、起動します。
  • PC上のMSXDISKで[Send ROM]→[DISK.ROM]を選ぶとDISK ROMのイメージがPCからMSXに転送され、転送が完了するとMSXが再起動します。
  • 再起動後、MSXからPC上のディスクイメージへアクセスが実行され、ディスクイメージが起動可能(MSX-DOSがインストールされている、autoexec.basがあるなど)であれば、それらからの起動が行われます。ディスクイメージが起動可能でない場合は、DiskBasicが起動します。

起動手順は以上です。

用意する道具は少し多い(ケーブルを準備する必要がある)のですが、物理的なディスクドライブがなくてもMSX-DOSが起動できたり、ディスクやドライブの劣化や破損を恐れることなくディスク対応のプログラムが利用できるので、個人的にはかなり面白いと思います。

スゴいソフトを作った方々に敬意を表します。




コメント