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

[OSASK 1161] Re: alekto4.



  こんにちは、川合です。


Koyanagi Masaaki さんは 2000/09/18 23:39:22 の「[OSASK 1160] Re:
 alekto4.」で書きました:

>私のノートのチップセットは 440BX AGP set ですが、テンポが狂う問題は
>解決しました。VM ware 上でもタイマが停止することはなくなりました。

  ご報告ありがとうございました。これで安心できます。

>しかしVM ware 上で実行すると、タイマ割込間隔が普通の1.6倍程度遅くなって
>しまいます。COWNTDWN の60秒を時計で測ったら98秒かかっていました。
>音楽もゆっくりで曲の最後まで聞くのに気力がいります。
>ABALL1ではボールがゆっくりなので、下で打ち返して、上で打ち返して
>というのが毎回できたりします(^^;

  あららら・・・。それはまた、ひどい状況です。間延びしている曲は
さぞかしじれったいでしょう(笑)。

>SSIZZ2で本来はPIT1=18と表示されるのに、VM ware 上では24とか25とか
>表示されたりしているので、タイマの基準がうまく取れていないせいかと思

  これはおかしいです。PIT1の測定方法は、CPUの速さに全く依存しな
い方法でやっています。PIT0とPIT1に同じクロックが供給されるのが
AT機の仕様で、それをもとにPIT0とPIT1のカウント値の変化を観察し
PIT1の値を推測するというアルゴリズムなのです。

  僕の予想では、VM wareのエミュレーションがAT機に忠実ではないせ
いだと思います。ssizz2があまりに変則的な方法でPITを使うので、エ
ミュレーションにぼろが出ているんだと思います。

>COUNTUP1, COUNTUP2 の数値を見る限りでは、パフォーマンスは
>これほどは落ちていません。

  この場合、kc/sの表示は全く信用できません。なぜなら、時間を測る
機構そのものが狂っているからです。起動してから、カウンターが0に
戻るまでの時間を時計で測ったりして比較しなければいけないでしょう
。

  おそらく、VM wareとしては、CPUがエミュレーションによって減速し
ているぶんだけ、PITに供給するクロックを下げているんだと思います
(というか、下げられたクロックが供給されているかのようにエミュレ
ーションしている)。そのおかげで、countupの値が変わっていないよ
うに見えるのではないでしょうか?

>います。コマンドオプションで強制的に設定できないでしょうか?

  もちろん、その辺を設定可能にできないことはないのですが、ようや
くalekto4が安定しているようなので、今はあまり手を加えたくないと
いうのが本心です。ということで、今はバイナリを直接いじってくださ
い。

    offset +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
    ------------------------------------------------------
    007490 E6 43 B0 A9 E6 40 B0 04 E6 40 9D C3 00 00 00 00

上記は、ALEKTO4.EXEのファイルダンプの一部です。PIT0の設定値は、

  007493 A9 ... 下位バイト
  007497 04 ... 上位バイト

で設定されています。今の値は0x04a9、つまり1193です。この値を1.6
で割った値を求めて、007493と007497にその値を書き込めば、目的は達
せられると思います。

>あと今日気がついたのですが、
>一枚のディスクで何度も CTRL + ALT + INSERT
>してアプリケーションを実行していると、たまに
>読込のディスクアクセス無しにアプリが実行される時がありますね。
>少し驚きました。
>これはキャッシュに入っているということなのでしょうか。

  はい、そうです。でも、Ctrl + Alt + Insertとは無関係です。Ctrl
+ Alt + Insertは、ディスクキャッシュをフラッシュするようになって
いるからです。ディスクキャッシュをフラッシュしない再初期化も作ろ
うと思ったのですが、付け忘れたままになっています。

  キャッシュを体感するには、OSASKBS0.BINなどの正しくないファイル
を選択し、その後に正しい.BINファイルを選択したりするといいでしょ
う。もし、その.BINファイルがOSASKBS0.BINと同じトラック上にあれば
、ノンアクセスでアプリが起動するでしょう。また、ANK16.FNTが格納
されているトラックも起動時にキャッシュされているでしょうから、そ
のトラック内にある.BINファイルの起動も速いでしょう。


  それでは。

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