MS-DOS Player 2024/9/7版が更新されました。
以下更新内容です。
-----------------------------------------------------------
2024/9/7
プロセスの起動周りのコードを整理しました。
影響の大きそうな変更も入っていますので、テストにご協力お願いいたします。
「COMMAND.COM /C TYPE (file)」のように、子プロセスで内部コマンドを実行する場合、
A-Z:/CHDIR/PATH/SETは、MS-DOS Playerの内部処理で実行するようにしました。
子プロセスでこれらのコマンドを実行しても、呼び出し元に反映されないためです。
その他のコマンドは、COMMAND.COMを子プロセスとして起動して実行をします。
COMMAND.COMがない場合、system()でcmd.exeに渡してWindows側で処理しますが、
TYPEコマンドについては、INT 29hを通るように、MS-DOS Playerの内部処理で実行します。
「COMMAND.COM /C 実行ファイル」を起動しようとして、COMMAND.COMがない場合は、
実行ファイルを直接起動しますが、このとき新しいプロセスの第1・第2のFCBを更新して、
実行ファイルに指定された引数が入るように修正しました。
INT 10hやINT 21hで文字を画面に表示する際、INT 29hを経由して表示した場合に、
(INT 29hをフックしている場合のみ、INT 29hを経由するようになっています)
INT 29hを直に呼んだように、制御コードがシンボルとして表示される問題を修正しました。
起動時にCOMMAND.COMを探す際に、PATHおよびMSDOS_PATHに指定されたパスを
探索していなかった問題を修正しました。
過去にコードを整理していたときに、処理の順番を誤って変更してしまったようです。
-----------------------------------------------------------
更新ありがとうございます。
最近更新した COMMAND.COM 関連などを整理した感じですかね。
気が付いたことがあればここに書いていきます。