0

エミュレーターを書くことはいつも私を魅了してきました。次に、IBM PC用のエミュレーターを作成し、その上でMS-DOSを実行します(フロッピーイメージファイルがあります)。

私はC++とCの経験が豊富で、アセンブラとCPUのアーキテクチャに関する基本的な知識があります。また、私がやりたいことを正確に実行しているエミュレーターが何千もあることも知っていますが、これは純粋な喜びのためだけに実行します。

  • どのくらいの仕事を期待する必要がありますか?(私の目標がDOSを起動し、それを使用してテキストファイルを作成することである場合、すべてエミュレートされます)

  • どのCPUをエミュレートする必要がありますか?マシンコードがどのように編成され、どのオペコードが何を意味するかについてのドキュメントはどこにありますか?それで、エミュレーターでそれらを正しく解凍して実行できますか?

  • MS-DOSはまだ最新世代のプロセッサで動作しますか?理論的には、最新のメインボード、HDD、RAMなどを搭載した64ビットAMD Phenom 2プロセッサでネイティブに実行できますか?

  • CPUをエミュレートする以外に、(難易度の観点から)重要な要素になる可能性があるものは他にありますか?私は、ホストシステムのコンソールを介してシステムにテキストを出力/入力することのみを目的としており、音声やその他のより高度なIOなどはありません。

  • エミュレーターはもう作成しましたか?あなたの最初のものは何でしたか?どれくらい大変でしたか?何か特別なアドバイスはありますか?

前もって感謝します

4

2 に答える 2

2

エミュレータで DOS を実行するために何が必要かを知るには、DOS クローンを再実装したFreeDOSプロジェクトに目を向けるのが一番だと思います。ソースを調べることで、要件のリストを作成できるはずです。

オペコードについては、X86 Opcode and Instruction Referenceまたは Intel のドキュメントを参照してください。また、仮想化に最新のプロセッサ機能を使用することも検討する必要があります。

DOS は最新の PC を起動できるはずですが、おそらくほとんどのハードウェアを使用できません (ドライバーがないか、「OS」固有の制限のため)。

MS-DOS (またはクローン) を実行できるように PC を完全にエミュレートしたい場合は、次のことを行う必要があると思います。

  • オペコードをデコードして解釈する
  • メモリ コントローラをエミュレートする
  • BIOS および VGA BIOS をエミュレートする
  • 必要な BIOS syscall を実装する

免責事項: 私はエミュレーターを作成していません。

于 2011-01-03T12:39:19.493 に答える
-2

MSDOS は純粋な 16 ビット コードであるため、64 ビット プロセッサでネイティブに実行することはできません。

于 2011-01-03T13:26:42.723 に答える