[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 1755] from OSASK BOARD



このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに、返事書く場合は、下のURLから、書き込みを行なって下さい


http://www.imasy.or.jp/~mone/osask/index.cgi?REFER=3b263756_f390

From: 川合秀実
Message-ID: 3b263756_f390
Date: 2001/06/13 00:37
Subject: Re: 質問です

> えっと、これはIA-32用のOSのエミュは、そのOSのAPIを
>実装することなどで処理するというようなことですよね?
>僕はてっきり、IA-32のコードインタプリタでも作る気か?、と
>わくわくしながら心配していたのです(笑。

 もしかしたら、その期待と心配は的中しているかもしれません。先の僕の書き
込みの「仮想386モード」という説明は、かえってわかりにくかったかもしれませ
ん。

 たとえば、FM-TOWNSのエミュレーターを作ると想定しましょう。
FM-TOWNSのソフトウェアはTBIOSを利用するものが大半だとは思われますが
中にはハードウェアを直接叩くような、おぎょうぎの悪いソフトもあるでしょう。
それら全てを例外で拾ってやれば動くには動きますが、遅くなってしまうのは
確実です。

 おそらくVRAMに直接アクセスするソフトウェアはたくさん存在すると思われるの
で、この問題は重要です。

 しかし一方、インタープリターにしてしまったらもっと遅いんです。そこで僕が
選んだ方法はトランスメタのクルーソーで有名な「コード・モーフィング」です。
ちなみにこれはクルーソーのおかげで思い付いたわけではなく、以前より提唱して
いました。DECがalpha用にFX!32とかを作っていましたが、あれも同様な技術でし
ょう。僕が言っているIA-32エミュレーターとは、このコードモーフィングをやる
ためのプログラムのことです。これができてしまえば、システムコールやI/O命令
に関するモーフィング規則を追加するだけで、IA-32のCPUを使ったマシンのエミ
ュレーターは出来上がります。

 非常に古い資料で申し訳ないのですが、以下のページが参考になるかもしれま
せん。

 ・"僕の抱いている野望"
  http://www.imasy.org/~kawai/osask/ambition.html#emulation

>あと、要望です。
>OSASKのQ&Aの「PC-9801やFM-TOWNSやX68000の」を
>「PC-9801やFM-TOWNSやX68000やMSXの」にしてください(笑。

 あー、そうしたいのは山々なんですが、そうなるとPC-8801やFM-7やX1も入れな
きゃいけないし、歯止めがかからなくなってしまいます(笑)。お許しください。

 明記されていなくても、いつかはこれらの機種のエミュレーターを書きたいと
思っています。ご安心ください。

>ありがとうございました。がんばってください。応援してます。

 ありがとうございます。今後ともどうぞよろしく。