Repository navigation
v0.1.18
v0.1.17 からの変更。実機で報告された「メニューが表示されたまま固まる」件の、2 つめの修正です。動作確認は PC-98 エミュレータ(NP21/W と DOSBox-X)の上で行っています。エミュレータではこの現象そのものが起きないので、直ったかどうかは実機では未確認です。
v0.1.17 について(訂正)
v0.1.17 の修正は効いていませんでした(PC-9821Ap2 での報告とログ)。リリースノートに書いた原因の説明(BIOS がキーを受けるたびに行っている応答をしていなかった)も、誤りでした。いただいた 1 回ぶんのログから原因を決めてしまったためです。その応答を足しても、キーボードは止まったままでした。
直したこと
-
CTRL + GRPH + HELP のメニューや、CTRL + GRPH + STOP の終了の確認が、表示されたままキーを受け付けずに固まる件(PC-9821Ap2、MS-DOS 6.2、EMM386.EXE の下。v0.1.14 から v0.1.17)
これまでのログを全部並べ直すと、次のことが分かりました。
- VBM98 は、ホットキーのキーそのものは「キーボードからの割り込み」で受け取り、キーを離したときの符号は「キーボードの受信を見張って、届いた直後に読む」やり方で受け取っていました
- 割り込みで受け取った符号のあとは、次の符号が毎回届いています。キーボードが止まるのは、見張って読んだ符号のあとでした(毎回ではありません)
PC-98 のキーボードは、本体が受信したデータを読むまでのあいだ「待て」の合図を受け取り、読まれると次を送ります。届いた直後に読むと、この「待て」が極端に短くなります。キーボードがそれを見落として、次を送る合図を待ったまま止まる、と見ています(資料と観測からの見立てで、確かめられてはいません)。
そこで、離したときの符号も、割り込みで受け取ってから少し間を置いて読むようにしました。メニューを開くときには、「待て」の合図をはっきり 1 回出し直します。
試していただける方へ
メニューや終了の確認が固まっていた環境で、オプションを付けずに(-log だけは付けていただけると助かります)、同じ操作を何回か繰り返してみてください。これまでも毎回固まるわけではなかったので、1 回通っただけでは直ったと言えません。5 回ほど続けて通れば、直ったと見てよさそうです。
VBM98 -fdd0 GAME.HDM -log VBM98.LOG
- 固まらなくなっていれば、何回試して何回通ったかをお知らせください
- まだ固まる場合は、
-logと-kbdprobeを付けて同じ操作をし、固まった直後から、ESC か数字のキーを 1 秒おきくらいに押し続けてください(今回は待たずに押してください)。20 秒ほどのあいだに、VBM98 がキーボードの立て直しを 3 段階で試します。どの段階のあとでキーが効いたかがログに残ります。そのログを送ってください
これまで問題なく動いていた機種でも、ホットキーの受け取り方が変わっています。ホットキーが効かない、ホットキーのあとキー入力がおかしい、という場合もお知らせください。
動作環境
- 80386 以上の PC-98x1(ノーマルモード)、MS-DOS(リアルモードか、VCPI のある EMM の下)、XMS ドライバ。空きコンベンショナルメモリ 256KB 以上、拡張メモリ 700KB 以上。イメージをメモリに読み込むには、さらに 1 枚あたりイメージの大きさぶん
- MS-DOS 6.2 の EMM386.EXE は、
/DPMIを付けないと VBM98 が使う機能(VCPI)を提供しません
まだ動かないもの
- 機種判別フラグの PC-9801VM 化、サウンド BIOS の INT D2h の登録、ホストの CPU が例外にせずに実行してしまう V30 の並び(Pentium 以降の RDTSC など)
- DMA の転送(対応予定)、D88 形式(対応予定)、BKDSK の HDB 形式(対応予定)
- メニューからブランクディスクを作る機能(ご要望をいただいています。検討中)
zip に入っている VBM98.DOC は、PC-98 で読める説明書(Shift-JIS)です。詳細は README(PC-98 では VBM98.DOC)を参照。