似非RAMディスクを作りました

昔憧れていた似非RAMディスクを作製しました。出来上がるまでに色々あったのでメモがてら記載しておこうと思います。

似非RAMディスクとは?

似非職人工房の辻川さんが考案されたもので、メガロムゲームのROMをSRAMに置き換え、Disk BIOSにパッチを当てたものをSRAMに書き込むことで、Ramdiskのように使えるようにしたものです。

メガロムコントローラによって最大容量は変わりますが、最大1MBのSRAMを搭載できるようです。MSXで使えるフロッピーディスクが 2DD 720KBなので、それ以上の容量を高速アクセスできるのは魅力的です。

個人的に似非RAMディスクで一番すごいと思っているのは、Disk BIOSに独自にパッチを当てて、FDDアクセスをSRAMアクセスに完全に置き換えているところです。BASICからもMSX-DOSからも全てのディスクアクセスが問題なく行えるように、ソース非公開のDisk BIOSを改造するのは至難の業だと思います。すごい人がいるものですね。

似非RAMディスクを作るねらい

私が持っているFS-A1にはFDDがついていません。なのでPCとデータのやり取りをする手段が一切なく、PCに残っている過去のMSXのソフトを動かしたり、今後PCで開発したソフトを実機で動かすことができない状態です。

そこで似非RAMディスクを作製し、先日作ったROMカートリッジリーダ/ライタを使って似非RAMディスクにROMイメージを書くことでPCとMSX間でファイルのやり取りができないかと考えています。

ちょっと話は飛ぶのですが、(MSX界では世界的に有名な)konamimanさんがMSX-DOS2互換のOS、Nextor を開発・公開されています。そして、(MSXの改造で有名な)にがさんがこの Nextor にパッチを当てて似非RAMディスク用のイメージを作成する NextorPatcher を公開されています。

NextorPatcherでは、あらかじめROMイメージにファイルを組み込むことができます。この機能を使えば、PCのファイルをMSXに受け渡すことができそうです。これがまずやりたいことです。

MSX→PC側はSRAMイメージからファイルを取り出すための開発が必要になりますが、PC→MSX側の受け渡しさえできれば技術的なハードルはめちゃくちゃ下がります。

ということで似非RAMディスクを作ってなんとかPCからMSXにファイルを受け渡すことが目的です。

…続きを読む

メガロムコントローラを制御してみました

前回MSXのROMカートリッジのリーダーを作成しました。メガロムではないROMカートリッジはそのままアドレスを指定するだけでデータが読み出せますが、メガロムのゲームではメガロムコントローラを制御してページ切り替えを行ってROMにアクセスする必要があります。

今回はメガロムコントローラを制御してみます。

前回の記事はこちら

メガロムコントローラとは?

Z80はアドレスバスが16bitのため、アドレス空間が64KB(512Kbit)までしかありません。MSXでは64KBを4つのページに分割して、スロットごとに切り替えられる仕組みがあります(詳細は前回の記事を参照ください)

4つ全てをカートリッジのROMにすることもできますが、RAMなどのワークエリアが必要なため、基本的には0x4000〜0xBFFFの32KB分をROMに割り当てて使用するように設計されているようです。

…続きを読む