dポイントプレゼントキャンペーン実施中!

現在WindowsXPを使用しているのですが、MS-DOSのソフトを使用するには
どのようにしたらよいですか?

A 回答 (4件)

動く動かないは、そのアプリケーションがどのような環境で動作するのかを知らねばなりません。


ANo.3さんの回答のように、MS-DOSは国内外を問わず様々なマシンにそれぞれ独自のものがインプリメントされています。
ゲームなどではハードウェアに依存するし、ほとんどの商用ソフトは実行速度を稼ぐためにビデオメモリに直アクセスしているのが現実です。

ANo.2さんの方の回答はある意味その通りなのですが、誤解があるといけませんので補足します。
DOSは書いて字のごとくディスク・オペレーティング・システムなので基本的にはテキストモードにおいてディスクや基本IOに対して共通の操作(開発)性を提供するのが目的のOSです。
グラフィックス機能やシリアル・パラレル通信機能は、BIOSというマシンにあらかじめ組み込まれた割り込みを利用したサブルーチン群(今でいうマザーボードの設定のことではありません)またはハードを直接あるいはデバイスドライバから間接的に制御する必要がありました。
表示処理を早くしたり、グラフィックスなどを制御する場合は、DOSで用意された「ファンクションコール」だけでは実現できないのです。
ですので、けっして「行儀が悪いプログラム」ではないのです。

いまのXPはVMSというDOSとは流れの異なるOSがベースになっていて、DOSがベースのWindowsはMEまでとなっています。
OSの根本が異なるため、直接動作する可能性は低いと見たほうが良いでしょう。

どうしても動作させるならそのソフトが動いていた環境のエミュレータをそろえるしかないと思います。
XPでなくOpenDOSなどで中古マシンからDOS専用マシンを作ってはどうでしょうか。
    • good
    • 0

そのMS-DOS用ソフトはIBM AT用ですか。

NEC98用など古い日本製パソコンを対象にしているものだと難しいですね。NEC98はエミュレータがあるかもしれませんが、BIOSなどの関係で合法的に用意するのは難しかったと思います。

IBM AT用でMS-DOS自体も用意できるならVirtual PCなど仮想PCソフトウェアを用意すれば動作させられる可能性は高いでしょう。
http://www.microsoft.com/japan/windows/virtualpc …

ただし、プログラムによっては現在のPCは速すぎてタイミングが上手く取れず正しく動作しないこともあります。
    • good
    • 0

>NTVDM CPUは不正命令を検出しました。



Windowsが動作している環境では「I/Oポートに直にアクセスしたり、BIOSを直接呼び出すなど、MS-DOSやWindowsを経由しないでハードウェアを直接制御しようとするプログラム」に対し「不正命令を検出」します。

昔のMS-DOSのソフトの一部には「MS-DOSのサービスコールを使用しないで、I/Oポートに直にアクセスしたり、BIOSを直接呼び出す、お行儀の悪いソフト」が存在しました。

そういう「お行儀の悪いソフト」がWindowsが動作している環境で動作してしまうと「ハードウェアが想定外の動作をしてしまい、それが原因で、他のアプリケーションに致命的ダメージを与える可能性」が出てしまいます。

なので「そういう、お行儀の悪いソフトは、Windowsが動作している環境では動作しない」ようになっていて「例外命令を検出して、悪影響が出る前に強制終了」するようになっています。

そういう「Windowsで動いちゃいけない」お行儀の悪いプログラムを「どうしても動かしたい」と言う場合は、PCを再起動し、起動時に「F8キー」を押してブートメニューを出して「Command prompt only」(または「コマンドプロンプトのみ」)を選び、擬似DOSモードで起動して動かしましょう(これでも、マトモに動く保証は一切ありません。多分、ハングアップして死ぬでしょう)

ぶっちゃけ「そのソフトは、WindowsXPがインストールされている環境では、99.99%、動かない」です。
    • good
    • 0

スタートからコマンドプロンプトを起動すれば、仮想的にMS-DOSが


立ち上がります。MS-DOSの基準に忠実に従ったプログラムなら、
この「コマンドプロンプト」上で動作するはずです。
(例えばLHA.EXEは全く問題なく動作します)

この回答への補足

早速の回答ありがとうございました。
コマンドプロンプトからインストールを実行しようとすると
「16ビットMS‐DOS サブシステム」
NTVDM CPUは不正命令を検出しました。

という、メッセージが出てしまうのですがどうしたらよいでしょうか?

補足日時:2008/01/18 14:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!