こんばんは、川合です。
Hidemi KAWAI は 2004/04/11 01:17:57 の「[osask 6910] qemu.」で書
きました:
> qemuはすでに仮想86モードをサポートしているらしく、vesalistはで
>きます。しかしsetvesaするとおかしくなります。Windowsそのものを不
>安定にしかねないほど不調になるので、setvesaしないことをおすすめ
>します。F1とF2の切り替えはOKです。
これについて調べたところ、どうもqemuは、
IMUL(EAX, -16); や IMUL(EAX, -8);
を正しく計算できないことが問題のようです。これらを、
SHL(EAX, 4); NEG(EAX); や SHL(EAX, 3); NEG(EAX);
に置換したところ、画面切り替えの問題も解決しました。IMULの全てが
ダメというわけではなくて、
IMUL(EAX, 0x55); や IMUL(reg, mem);
などは問題ないようです。
ということで好きなだけsetvesaできるバージョンを用意しました。
http://k.hideyosi.com/qemimg0b.lzh (458KB)
これでカーソルキーやIns/Del/Home/Endなどがちゃんと動くようになっ
て、さらに実時間とのシンクロも改善されたら、もうbochsは使わなく
ていいかな、という感じです。
それでは。
--
川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! osask.jp kawai@imasy.org
Homepage http://osask.jp/