MS-DOS Player 2017/07/27 - 模擬器

Jessica avatar
By Jessica
at 2017-07-27T00:09

Table of Contents

http://takeda-toshiya.my.coocan.jp/msdos/index.html

2017/7/27

通常のMS-DOS環境上で、Win32/64のプログラムを実行すると、
This program cannot be run in DOS mode.
と表示されて、そのままプログラムが終了するようになっています。
これは、Win32の実行ファイルのヘッダ内に、このようなメッセージを表示して
そのまま終了するようなMS-DOS用スタブプログラムが埋め込まれて、
MS-DOS環境ではそちらが実行されるようになっているからです。

MS-DOS Player上でWin32のプログラムを実行した場合も同様の動作でしたが、
INT 21h, AX=4B00h, INT 2Eh, またはINT 2Fh, AX=AE01hなどのサービスで、
Win32のプログラムを子プロセスとして起動しようとした場合は、
system() Win32 APIを使って、Win32の子プロセスとして実行するようにしました。
このとき、子プロセスが終了するまで、MS-DOS Playerは待機します。

ただし、INT 21h, AX=4B01h/4B03hなど、プログラムファイルをロードするだけで、
実際には実行しない場合は、プログラムファイルがそのままロードされます。
その後に、メモリ上にロードしたプログラムに処理が移った場合は、従来通り、
This program cannot be run in DOS mode.が表示されて終わりです。

なお、指定されたコマンドラインをそのまま丸ごと、system()に投げています。
16bitのプログラムとパイプで繋ぐようなケースは考慮していません。
また、子プロセスがコンソールに文字を表示する際、MS-DOS Player側のINT 29hは
経由されませんのでご注意ください。

こちらの処理は、あくまで子プロセスの起動時のみとなります。
「msdos (プログラム名)」で起動時に指定したプログラムがWin32の場合は、
This program cannot be run in DOS mode.が表示されますが、
この場合は素直に対象のプログラムを直接起動してください、ということで(を

MS-DOS PlayerでCOMMAND.COMを実行して、その上でWin32のコンソールアプリを
シームレスに使用できるようになっているかと思います。

Windows上でVZエディタを使用する際、CLPPST.EXEというWin32のプログラムを使って、
Windows側のクリップボードと連携しているそうです。
今回の修正で、この仕組みが動くようになっているといいのですが…。
素直にINT 21h, AX=4B00h辺りを使っててくれれば大丈夫だと思うんですけどね。

# DOS時代はSEDIT派でしたので、VZエディタの使い方をよく知らなかったり(苦笑)
# 検証ご協力お願いいたします>今野様

--

All Comments

全球首款iOS模擬器出現

Todd Johnson avatar
By Todd Johnson
at 2017-07-26T17:56
全球首款iOS模擬器出現,支援ARM和X86雙架構 https://www.techbang.com/posts/52789-the-worlds-first-ios-emulator- appears-support-arm-and-x86-architecture 中國最近有開發小組在中國的視訊平台上 ...

Cemu 1.8.2b

Ingrid avatar
By Ingrid
at 2017-07-26T09:14
Cemu Emulator http://cemu.info/ v1.8.2 | 2017-07-25 Recompiler performance improvements Audio improvements Better support for softdec videos Minor compati ...

SNE9X 無線手把關機後重開如何恢復連接?

Isabella avatar
By Isabella
at 2017-07-25T08:31
PCSX2跟EPSXE在手把關機後重開都可以自動恢復連接, 就這個SNE9X不行,請問該如何讓他恢復連接而不是我非得把程式關掉重開?? - ...

支援震動的模擬器?遊戲?

Ula avatar
By Ula
at 2017-07-25T06:51
1.請問模擬器除了project64, ePSXe, Nebula還有其他模擬器支援震動嗎? 2.MAME完全不支援震動嗎?有沒有方法可以支援震動? 3.project64遊戲支援的震動好像只有super Mario 64,還有其他遊戲支援震動嗎? 4.Nebula模擬器必須要有震動包(*.ht2)才能 ...

筐體類 仿HSS-0130 (NAC筐體操作台)

Elizabeth avatar
By Elizabeth
at 2017-07-24T09:36
早上起來看到臉書社團有人分享 其實之前台灣有人打算要做 但是如同那個網友說的對岸複製速度價格有優勢 所以台灣廠商似乎就沒下文了 看一下價格似乎也不算太貴 連裡面阿裡阿雜的月O寶盒加運費也才5000台幣 對於這類產品來說是不便宜 因為這類產品就是智財權意識為零的對岸才會出來的 肯定都是殺到見血見骨 就我知外觀還 ...