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

[OSASK 2584] Re: OSASK ver.1.9 on Virtual PC



  こんにちは、川合です。


Koyanagi Masaaki さんは 2001/12/02 01:02:45 の「[OSASK 2582] OSA
SK ver.1.9 on Virtual PC」で書きました:

>OSASK19I.BIN を書き込んだ FD を試しましたがとりあえず問題はないようで
>す。

  ご報告ありがとうございます。

>試しに Virtual PC 4.2 trial で OSAT19I.BIN を書き込んだ DISK IMAGE を
>起動してみました。Virtual PC では超漢字が動くそうです。
>
>pokon のファイルリストが無い状態まで画面の描画がされたところで止まって
>何かキーを押した瞬間に
>
>INT 0x03 Break Point
>CS:EIP = 40:679
>
>が出ました。Keyboard か mouse の初期化に問題があるみたいです。
>VMware と違って、VESA Function や LLDT の部分はパスしていますね。

  ソースで0x0679のあたりを見てみると、どうやらKeyQueCmd_AckSendD
ata()のAck待ちから先に進まなくなっているようです。

  小柳さんのご報告から想像すると、Virtual PCはキーボードリセット
コマンド、スキャン停止コマンド、スキャン開始コマンドの3つのうち
のどれかでエミュレーションに手抜きがあって、コマンドを受け取った
時に返さなければいけないAckキャラクターを返してくれないようです
。

  キーボードインターフェースの初期が完了しないとプロテクトメモリ
へのアクセスができないので(AT互換機というのはそういう仕様なので
す)、ディスクキャッシュ用のバッファが確保できず、ディスクアクセ
スが待たされっぱなしになっているのです。・・・初期化は非同期に行
っているので、他の部分は一通り初期化が済んで動いていますが。

  そんでもって、キー入力があるとそれがAckかNackだとOSASKは思って
いるので、どちらでもなくて大いに混乱している訳です(混乱すると、
ブレークポイントで止まります)。

  ・・・なんだかOSASK/ATって、どのエミュレーターでも素直には動か
ないんですねえ・・・。普通のOSがいい加減にしか確認しないようなハ
ードウェアからの情報もOSASKでは大いに利用するので、そのへんも忠
実にやってくれないとうまくいかないみたいです。やっぱり、bochsを
いじってエミュレーション度をあげてやらなければいけませんね・・・
。

  エミュレーター泣かせのエミュレーターOSか・・・。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/