[HOME]  [リストへもどる]
一括表示

  MS-DOS Player 12/30版 - konno 21/12/31-00:53 No.10145
  ┗ Re: MS-DOS Player 12/30版 - konno 21/12/31-19:55 No.10146

(10145) 10145MS-DOS Player 12/30版  投稿者:konno   2021/12/31(金) 00:53
   コメント数 1

MS-DOS Player が更新されていました。12月30日の版です。
更新内容を張り付けます。

---------------------------------
2021/12/30
QEMUのtesti386.exeを参考に、NP21/WのI386コアを修正しました。
ia32_x86版のバイナリで、実機と同じ結果が得られるようになっています。
具体的な変更点は以下の通りです。

    DAA/DAS/AAA/AAS/AAM/AAD命令を、DOSBoxの実装を基に修正しました。
    SHLD/SHRD命令で、16bit以上シフトしたときの処理を修正しました。
    FCOM/FCOMI/FXAM命令で、NaNやINFのときのC1,C2,C3フラグの値を修正しました。
    FDECSTP/FINCSTP命令で、C1をクリアするよう修正しました。
    FLD系命令で、スタックオーバフローの有無でC1をセットまたクリアするよう修正しました。
    FSTENV/FLDENV/FSAVE/FLDENV命令で、data16プリフィックスを反映するよう修正しました。

なお、ia32_x64版だと、浮動小数点のテストで例外が発生してしまいます。
x86ビルドとx64ビルドで、何かしら処理が等価になっていないようですね、要調査。

---------------------------------------


さっそく使ってみましたが、ia32版では、自作のアプリでエラーが出ます。
自作アプリとは、turbo basic の古いプログラムで、VGAでないと動きません。

実は、今までの MS-DOS Player では、エラーが出て使えませんでした。
軟式さんの DOSVAXJ3 では使えていました。


確認のために、今回の版の全てのバイナリを試してみました。


i86_x86		VZ起動時に落ちる。VZは、186コードを含んでいます。
i86_x64		VZ起動時に落ちる。VZは、186コードを含んでいます。

i286_x86	問題なし。
i286_x64	問題なし。

i386_x86	問題なし。
i386_x64	問題なし。

i486_x86	問題なし。
i486_x64	問題なし。

ia32_x86	数字4桁の入力で、OE+2?? (??は数字によって変わる)エラーで止まる
ia32_x64	数字4桁の入力で、OE+2?? (??は数字によって変わる)エラーで止まる


数字4桁の入力は、裏で変換の計算をしているので、どこかで引っかかっているのかなと思いました。

私のプログラムか環境のせいだとは思いますが、一応作者の武田さんにご報告をさせていただきました。

今回、MS-DOS Playerで自作の古いアプリが動くようになりましたので、非常にありがたいです。
作者様に感謝いたします。m(__)m

      - No.10145 -    このTreeへ           [リストへもどる] pre


(10145) 10146Re: MS-DOS Player 12/30版  投稿者:konno   2021/12/31(金) 19:55
    10145 番 konno さんへのコメント

V30 のテストをしていませんでした。これは、186 相当なのですね。

V30_x86	問題なし。
V30_x64	問題なし。

ということで、VZも問題なく起動できます。


今まで常用していた版は、ia32_x64版でした。

 \MSDOS\BINARY\IA32_X64 のディレクトリ
2020/05/10  16:18           833,024 msdos.exe

サイズで確認したので、間違いないと思います。
この版の、i486_x64 と、x86 は問題なく動作しました。
つまり、ia32 固有の以前からの問題だったようです。

今回、動作検証のために自作アプリを武田さんに送りました。
そのため turbo basic でコンパイルし直してみましたが、ia32版だけ失敗します。
問題になるコードを TB 内部でも使用しているんでしょうかね。


      - No.10146 -    このTreeへ    コメント元:10145 へ [リストへもどる] pre