SL9821

はじめに

ダウンロード

使い方

前準備

設定

FAQ

実行画面

技術的なはなし

このページでは、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.ROME8000h - FFFFFh96KByte
ITF.ROMF8000h - FFFFFh32KByte(バンク切り替え後の領域、起動直後の自己診断プログラム)
BANK.ROMF8000h - FFFFFh32KByte * 4(バンク切り替え後の領域、ソフトウェアディップスイッチの設定等)
SNDBIOS.ROMCC000h - CFFFFh16KByte
IDEBIOS.ROMD8000h - D9FFFh8KByte
SCSIBIOS.ROMDC000h - DCFFFh4KByte * 2
FONT.DAT282KByte
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.23MB2HD(77/2/8/1024)
737,280バイト720KB2DD(80/2/9/512)
655,360バイト640KB2DD(80/2/8/512)
1,228,800バイト1.2MB2HC(80/2/15/512)
1,474,560バイト1.44MB2HD(80/2/18/512) ※認識はしますがエミュレータ上で読み書きはできません
1,021,696バイト1.0MB2HD(77/2/26/256) ※N88-BASIC(86)用フォーマット

640KBの2DDをイメージ化すると作成されるファイルは720KB相当のイメージが作成されますが、エミュレータ上では640KBのメディアとして正しく認識されるようです。
上記以外のフォーマットはアンフォーマットのメディアとして判断します。
ブランクメディアのイメージの作成は、ファイルサイズ0バイトのファイルを新規作成するだけで可能ですが、フロッピーディスクイメージではないファイルをマウントした場合でも、アンフォーマットメディアと判断してしまうためフロッピーディスクイメージ以外のファイルをマウントしないよう注意してください。
ブランクメディアを使用できるようにするためにはMS-DOSのformatコマンド等でフォーマットしてください。

0.3 実行環境の確認

アプリケーションを実行するフォルダに制限はありませんが、同一フォルダに以下のファイルおよびフォルダがあることを確認します。

SL9821.exeアプリケーション本体(主にUI部分の実装)
9821edll.dll98エミュレータ本体
ROMフォルダ、前述の実機で作成した8ファイルをこのフォルダに格納します。