M88によるエミュレータ体験記


時代は変わったもんです。今や Windows の上で 88SR 以降の環境がそこそこ甦るというのですから。CPU パワーはそこそこ必要ですが、FM音源の音もエミュレートされています。

ここでは、M88 というエミュレータが私の Windows98 マシンで動くようになるまでの過程を説明することにします。5インチ2Dユーザだった人は見る価値はあるかも?


エミュレータをゲットする
M88はフリーソフトとして公開されています。ダウンロード及び詳しい説明などに関してはM88 のページをご覧下さい。ただし、提供される機能はあくまで「88のハードウェア環境」のみですから、BASIC ROM のイメージがないことにはシステムの起動すらできません。この BASIC ROM を得るためには、やはり実機(つまり88シリーズ本体)が必要となります。
今手元には、昔使っていたSRはないのですが、代わりに貰い物のFRがありましたので、これをベースに使ってみることにしました。なお、M88は88シリーズ以外にも80シリーズのエミュレーションにも対応しています。
データの転送方法
私の持っている機材を利用して、88から各種データをサルベージする方法は次のようなものがありました。
PC-98x1の5インチドライブからファイル化
私は PC-9801DA の5インチモデルも持っているので、これで 2D のフロッピーを読み書きすることができるはずです。が、ドライブの調子が悪かったこともあり、うまくいかなかったので、この方法でのサルベージ作戦は諦めました。
Windows マシンと PC-88 を RS-232C クロスケーブル接続
気が遠くなりそうな手法ではありますが、データを読み出す機種が88そのものであるという点で、一番確実な方法とも言えます。コネクタの形状の違いなど色々問題はありましたが、部屋にあるケーブルや変換コネクタを見た結果、モデム用のストレートケーブル+Dsub 25pin のリバースアダプタを発見、これを利用することにしました。
下準備
88/Windows マシンを起動可能な状態にする
転送に使用する2機種の電源及びディスプレイ、キーボード等が使える状態にし、両者を RS-232C 経由でクロス接続します。
Windows(DOS窓)から88にホストプログラムを流し込む。
クロスケーブル経由の転送には、Windows 版の xdisk を使います。M88 のページ から入手してください。
Windows では COM ポートのアドレス、IRQ などに注意しながら、ドキュメントに従いコマンドを入力します。
88では DISK BASIC を起動し、LOAD"COM:N81XN" します。
起動するのは別に ROM BASIC でも良いのですが、転送後のプログラムがフロッピーに保存できた方が次回以降が楽かなと思います。
Direct statement in file のエラーが出たら転送完了です(これは終了させるために故意に埋めてあるもので、異常ではない)。心配な人は list コマンドで確認してみましょう。 [f.4] キーが list  に割り当てられていますよね。
88でBASICプログラムを保存する
88に転送されたBASIC(実は中身はマシン語)プログラムは、これだけでBASIC ROM の転送とフロッピーの転送を引き受けてくれます。
BASIC ROM のサルベージはそう頻繁にすることはないでしょうからいいのですが、フロッピーのサルベージは何度かに分けてすることになるでしょう。そのため、プログラムの転送に成功したら、N88-BASIC が使える人はこれをセーブすることをおすすめします。そうすることで作業が効率化できるでしょう。N88-BASICでフォーマット済みのフロッピーを用意し、save "xdisk.bas" などとすれば良いでしょう。
BASIC ROMイメージのサルベージ
Windows(DOS窓)/88でそれぞれコマンドを実行する
Windows では先程同様、COM ポートのアドレス、IRQ などに注意しながら、ドキュメントに従いコマンドを入力します。コマンドラインオプションのみ、BASIC ROM を吸い出すものにします。88では先程流し込んだプログラムを run するだけです。run させるのには [f.5] キー一発で良かったですよね(笑)。
しばらく時間がかかった後、DOS窓に正常終了のメッセージが出たら転送完了です。このイメージファイルは大切に保存することにしましょう。
フロッピーイメージのサルベージ
コピープロテクトなどがないか確認する
いわゆるコピープロテクトがかかっているようなソフトは、よほど簡単なプロテクトでもない限り、エミュレータ上でもプロテクトに引っかかって起動しなかったりします。という訳で、何らかの方法で予めプロテクトを解除しておくことをおすすめします(外す方法に関しては、ここでは言及しません。メールで質問等されても無視します)。
Windows(DOS窓)/88でそれぞれコマンドを実行する
Windows では先程同様、COM ポートのアドレス、IRQ などに注意しながら、ドキュメントに従いコマンドを入力します。コマンドラインオプションのみ、フロッピーのイメージを吸い出すものにします。88では、サルベージしたいフロッピーをドライブにセットし(どのドライブかはDOS窓のコマンドラインオプションで指示する)、先程流し込んだプログラムを run するだけです。
しばらく時間がかかった後、DOS窓に正常終了のメッセージが出たら転送完了です。
作成したイメージの情報を書き換えよう
作成したイメージを結合することで、「ディスク数枚組」というソフトも1ファイルで管理できるようになります。システムディスクとデータディスクをまとめておけば、バラバラになる心配もありません。
私は適当なツールを探さなかったので、バイナリエディタで直接書き換えてしまったのですが、フロッピー名の編集・ライトプロテクト操作のツールや分割・結合ツールを使って、フロッピー名(DISK 1 とか)や、ライトプロテクトを設定しなければいけない物は設定しておきます。
バイナリエディタで直接書きこむ場合、先頭アドレスからのオフセット値はこんな具合になってますので、参考にして下さい。
オフセットアドレス 内容
0x0000 〜 0x000f ディスクタイトル(ASCIIZ 文字列)
0x001a ライトプロテクト(00:書きこみ可/10:書きこみ不可)

そして実行!
少なくとも、BASIC ROM さえあれば BASIC は起動します。
M88のアーカイブを展開し、そこに先程作った BASIC ROM のイメージも置きます。準備ができたら M88.exe を実行してみてください。こんな画面が出たら成功です。

How many files(0-15)?
How many files(0-15)? は実機同様、BASIC ROM による出力画面です。フロッピーがセットされていないと、ROM BASIC が起動するようになっているので、この画面が出ます。先程サルベージしたフロッピーから起動したい場合は、メニューバーの Disk でフロッピーを仮想的に交換することができます。

今だから使うPC-88へ戻る

工場のご案内(Top page)へ戻る