VZエディタを入手できたので、MS-DOS Player上での動作確認をしてみました。
IMEから漢字を正しく入力できない件を除いて、そこそこ動作していたようですね。
漢字の問題は、キーボードBIOSでキー入力の検出とキーコードの取得をしているのに、
何故かマルチバイト文字の2バイト目はMS-DOSのシステムコールで行っているのが原因でした。
キーボードBIOSでキー入力を検出、MS-DOSのシステムコールでキーコードを取得するケースは
EXDEBのために修正していたのですが、このケースは想像できなかった(苦笑)
取り急ぎ、今晩のリリースで修正しています。
VTDOSで動かす方が快適だろうとは思いますが、まあネタ程度に。
(2014/11/19 0:20追記)
BUPDATEでファイルを更新した際に、タイムスタンプが正しく更新されない不具合を修正しました。
Twitterの方でご指摘いただいた方、多謝多謝です。
(2014/11/30 17:30追記)
キーボードコントローラ経由でのA20ラインの制御をサポートしました。
「はじめて読む486」のサンプルプログラムが幾つか動くようになっています。
ついでに、今回から486版のバイナリもビルドするようにしました。
また、int21h ax=5800h/5801h/5802h/5803hの仮サポートを行いました。
ただしUMBは未サポートのため、これらのサービスを実行してもエラーを返さない程度です。
例によって、Twitterの投稿から更新ネタを拾っています(を
不具合情報もっともっとプリーズです。
(2014/12/4 21:30追記)
「はじめて読む486」のサンプルプログラムが更に幾つか動くようになりました。
テキストVRAM、UMB、キーボード割り込みの対応、タイマ割り込みの改良など、
ソースをもりっと大幅に書き換えています。
一通りテストはしていますが、何か不具合がございましたらお知らせください。
タイマ割り込みの改良ついでに、CPUBENCHをテストしてみました。
私の開発環境では、i286版で80486DXの257MHz相当、i386版で102MHz相当の速度です。
思ったより高速に動いている感じですね。
(2014/12/6 14:40追記)
VZエディタのGEME.DEFマクロが動くようになりました。
0x3daにあるCRTCのステータスレジスタの垂直同期信号をチェックしていたようです。
i386/i486版の高速化を図りました。
CPUBENCHでみた限りでは、26%程度の高速化になっているようです。