このページでは、SL9821を実行前に準備しておく作業について記述します。
0.1 前準備
実機上でエミュレータ動作に必要なファイルを作成します。
作成ツールは2つあります。ツールは実機のPC-9821のMS-DOS上で実行します。
- MKROMIMG.EXE
- 各種ROMデータのファイル化とフォントデータを格納したファイル、およびCD-ROMドライブをエミュレータで認識させるために必要な情報を取得します。
本プログラムは、EMM386.EXE等MS-DOSが仮想86モードで動作するデバイスドライバを使用していると正常なファイルが作成できないため、この種のデバイスドライバを外した環境で実行してください。
IDE BIOSのファイル化には本体にハードディスクを接続したうえで、システムセットアップメニュー(2/4)で「固定ディスク」を「使用する」に設定する必要があります。この状態でないとIDE BIOSがメモリ上に現れないため取得に失敗します。
同様にSOUND BIOSとSCSI BIOSのファイル化のためにシステムセットアップメニュー(4/4)でそれぞれ「サウンド」を「使用する」、「SCSI ROM」を「使用する」に設定しておく必要があります。
ツール上でチェックサムの確認をしているので、念のため画面上の出力結果も確認してください。
ただし、このチェックは単純にファイル化するROM領域のチェックサムを確認しているだけであってエミュレータで使用できることを意味しているわけではありません。仮に初代のPC-9821以外で本ツールを使用しチェックがOKであったとしてもエミュレータが動作することを保証するものではありません。
本ツールで作成されるファイルと読み出している領域、ファイルサイズは以下のとおりです。
BIOS.ROM | E8000h - FFFFFh | 96KByte | |
ITF.ROM | F8000h - FFFFFh | 32KByte | (バンク切り替え後の領域、起動直後の自己診断プログラム) |
BANK.ROM | F8000h - FFFFFh | 32KByte * 4 | (バンク切り替え後の領域、ソフトウェアディップスイッチの設定等) |
SNDBIOS.ROM | CC000h - CFFFFh | 16KByte | |
IDEBIOS.ROM | D8000h - D9FFFh | 8KByte | |
SCSIBIOS.ROM | DC000h - DCFFFh | 4KByte * 2 | |
FONT.DAT | | 282KByte | |
- RECRTM.EXE
- リズム音源を内蔵PCM音源で録音し、PCMデータ化するツールです。
RHYTHM.DATというファイルを作成します。
実機で上記の計8ファイルを作成し、SL9821の実行ファイルsl9821.exeと同一階層にある「ROM」フォルダに作成したファイルを格納します。
バージョン0.2.x以降にはエミュレータ本体にITF.ROM、IDEBIOS.ROM、SCSIBIOS.ROMの代替機能が実装されたため、必ずしも必要ではなくなりました。詳細についてはダウンロードファイルに格納されているファイルを参照してください。
0.2 フロッピーディスクイメージファイルの作成
エミュレータ上でフロッピーディスクを使用する方法には、ホストに接続されたフロッピーディスクドライブを直接使用する方法と、イメージファイルを作成しそのイメージファイルをエミュレータでフロッピーディスクとして認識させる方法があります。
フロッピーディスクイメージファイルを作成するにはホストコンピュータにフロッピーディスクドライブが必要です。またPC-98x1で2HDメディアとして使用される容量1.23MBのフロッピーディスクをイメージ化するには3モード対応のフロッピーディスクドライブが必要になります。
イメージを作成するには、イメージ化したいフロッピーディスクをフロッピーディスクドライブに挿入し、コマンドプロンプトからfd2bin.exeを実行します。
fd2bin [/force] drive: outputfilename
必要なオプションとして、drive:はイメージ化したいメディアが挿入されているフロッピーディスクドライブのドライブレター、outputfilenameはイメージ化したファイルのファイル名になります。
/forceオプションは、通常セクタの読み出しに失敗した場合その時点でイメージファイルの作成を中断し作成に失敗しますが、オプションを追加することで、読み出しに失敗したセクタはダミーデータを書き込みイメージ作成を継続します。
エミュレータではファイルサイズによりメディアのタイプを判定しています。
エミュレータが認識可能なメディアは以下の通りです。(括弧内はシリンダ、ヘッド、セクタ、セクタサイズの値)
1,261,568バイト | 1.23MB | 2HD(77/2/8/1024) |
737,280バイト | 720KB | 2DD(80/2/9/512) |
655,360バイト | 640KB | 2DD(80/2/8/512) |
1,228,800バイト | 1.2MB | 2HC(80/2/15/512) |
1,474,560バイト | 1.44MB | 2HD(80/2/18/512) ※認識はしますがエミュレータ上で読み書きはできません |
1,021,696バイト | 1.0MB | 2HD(77/2/26/256) ※N88-BASIC(86)用フォーマット |
640KBの2DDをイメージ化すると作成されるファイルは720KB相当のイメージが作成されますが、エミュレータ上では640KBのメディアとして正しく認識されるようです。
上記以外のフォーマットはアンフォーマットのメディアとして判断します。
ブランクメディアのイメージの作成は、ファイルサイズ0バイトのファイルを新規作成するだけで可能ですが、フロッピーディスクイメージではないファイルをマウントした場合でも、アンフォーマットメディアと判断してしまうためフロッピーディスクイメージ以外のファイルをマウントしないよう注意してください。
ブランクメディアを使用できるようにするためにはMS-DOSのformatコマンド等でフォーマットしてください。
0.3 実行環境の確認
アプリケーションを実行するフォルダに制限はありませんが、同一フォルダに以下のファイルおよびフォルダがあることを確認します。
SL9821.exe | アプリケーション本体(主にUI部分の実装) |
9821edll.dll | 98エミュレータ本体 |
ROM | フォルダ、前述の実機で作成した8ファイルをこのフォルダに格納します。 |
|