TriDent Memory Clock Version 1.10 Copyright Ken.Ando 1997-04-12 【TDMC.EXE の目的】=========================================================== Panasonic WOODY CF-32GP(TRIDENT 9440) と IBM Aptiva 5xx/7xx (Pentium+Trident) のビデオメモリの周波数を限界まで高くする事で、Windows 95の 描画性能を 向上させます。およそ 10数% ぐらい高速になるのではないかと思われます。 【変更履歴】================================================================== Version 1.10 2版 1997-04-12 TDMC.EXE 37,376 97-04-12 1:40 TDMC.VXD 5,757 97-04-09 0:34 TDMC.INI 2,676 97-04-12 23:24 TDMCDOS.EXE 2,012 97-04-07 22:26 主な変更点: (1) 各画面モードごとに設定値を保持 (2) 画面モードに自動追従 (3) タスクトレイにロード/アンロード (4) アイコンを多少ましにしました。(Trident = 3つに別れたヤリ のつもりです。) (5) ロングファイル名のディレクトリに展開すると VXD のロード エラーが発生する問題を修正しました。 (6) Aptiva 5xx/7xx (Pentium Trident)を考慮。 (7) 起動不能になるトラブルを修正 Version 1.00 初版 1997-03-22 TDMC.EXE 23,040 97-03-22 2:39 TDMC.VXD 4,689 97-03-22 2:41 TDMC.INI 662 97-03-22 2:46 【動作環境】=================================================================== Panasonic WOODY CF-32GP Windows 95. IBM Aptiva 5xx/7xx (Pentium+Trident) Windows 95. (他社のマシンでも TRIDENT 9xxx シリーズならおそらく使用可能、設定値はユーザ が自分で調査する必要があります。機種選択は、Aptiva を選択すれば流用可能と おもいます。) 【TDMC.EXE の使用方法】======================================================== システムのメモリ速度と同様に、ビデオメモリの速度が高速になれば画面の描画性能 は向上します。通常この値は、BIOS ROM あるいは、Windows の Driver で固定の値が 設定されていますが、この値を変更する事で、ビデオ性能を限界まで高速にする事が できます。WOODY CF-32GP の場合、標準では、0x66 の値です。実験したところ 0x87 の 64MHz を設定してもちゃんと動作するようです。さすがに 0x8E の 75MHz は、 画面が乱れて実用になりませんでした。個体差やロットで動作が違うため変更する値 は、TDMC.INI ファイルに設定してありますから、それを変更してみてください。 【WOODY 設定値サンプル】や【APTIVA 設定値サンプル】が参考になると思います。 Windows 95 から TDMC.EXE を起動すると、初めて TDMC を起動した時には、 機種の選択ウインドウが表示されます。WOODY か APTIVA のどちらかを選択して ください。この 2 機種以外の場合は、APTIVA を選択してください。なお WOODY 以外の機種で誤って WOODY を選択してしまうと、いきなり画面が乱れたり見えなく なります。この選択は1度のみで以後聞かれる事はありません。(TDMC.INI の MACHINE=で記憶しています) Ver 1.10 では、タスクトレイ(メニューバーの時計の隣)にTDMCのアイコンが追加され ます。Ver 1.10 では TDMCがロードされている間は、画面の解像度が変更されると、 TDMC は、その解像度に自動的に追従します。これにより Ver 1.00 では、 Win95 の画面用に設定値を変更して、その後、FULL DOS BOX 等を使用する時に画面にノイズ が発生するなどの障害がありましたが、Ver 1.10 では、これを自動的に回避できる ようになります。 タスクトレイのTDMCアイコンをマウスの左クリックか右クリックでメニューの 「設定値の表示」を選択すると、TDMC のダイアログウインドウが表示されます。 このウインドウには: TRIDENT VIDEO BIOS のバージョン (私の CF-32GP では、Version A5.4) TRIDENT VIDEO BIOS の日付 (私の CF-32GP では、03/24/95) TRIDENT VIDEO RAM サイズ (私の CF-32GP では、256KB*4) 現在の解像度 現在の画面モード 初期値(TDMC 起動前に設定されていた値) 現在の値(画面モード変化時かダイアログウインドウ表示に値を再表示します。) 起動時に TDMC.INI からロードした各解像度ごとの設定値.(起動中に TDMC.INI を変更しても、いったん TDMC.EXE をアンロードして再起動しないと値は読み込 まれません。) が表示されます。現在値に直接値を入力して、「変更」のボタンを押して、一時的 に値を変更する事もできます。(ただし、FULL DOS BOX や別の解像度に画面を切り 替えた場合は、TDMC.INI の設定値に自動的に戻されます。) なお TDMC.INI の設定値で 1280x1024x8/1024x768xHighColor/800x600xTrueColor は、 WOODY PD CF-32GP の場合は、ビデオRAM 1MB では表示できないモードですが、ビデオ RAM を無理矢理増設した人のために用意しました。(数値は、メーカーの初期値 0x66 にしておいたので自分で値を試して決める必要があります。値がわかったら、TDMC.INI を変更してください 次回 TDMC を起動するとその値が使用されるようになります。) APTIVA の場合は、[APTIVA] セクションの設定は、すべて 0x00 になっています。 TDMC.EXE は、設定値が、0x00 の場合に、起動時に APTIVA に適切と思われる値を 自動的にセットします。初期値 0x07 の場合は、0x27 がセットされます。初期値が 0x5F の場合は、0x6F がセットされます。あらかじめ使用する値がわかっている場合 は、0x00 の部分にその値をセットしておいてください。TDMC.EXE は、初期化せず その値を使用します。 TDMC を終了させるには、タスクトレイの TDMC アイコンを右クリックし、 「TDMCをアンロード」を選択してください。設定は初期値に戻され TDMC は終了します. ご注意:ショートカット経由で TDMC.EXE を起動する場合は、実行時の大きさに 「最小化」を指定しないでください。「通常のウインドウ」で使用してください。 【WOODY 設定値サンプル】======================================================= 以下は、栗原 健太郎 さん が調査された。設定値の一覧です。(彼の WOODY は、かなり高い周波数 0x8E/0xA7 で使用可能なようです。(^_^;) 以下 データをほぼそのまま引用させていただきました: 一番下のISAバススロットを開けて、外気の取り入れ口にしているので、それが 影響している可能性があります。それでMyWoodyでは 0x8E 0xA7 が可能なのかもしれ ません。 調査機種: Panasonic WOODY PD CF-32GP CPU AMD Am5x86-P75 ADZ BIOS V1.0L20 clock 40MHzx4=160MHz Writeback ON 2ndcache 64*8を4個+32*8(Tag)=256Kbyte 15ns Main Memory 8M + 16M=24Mbyte 70ns Display driver Trident 9320/9440/9660/968X,Linear Accelerated For ISA/VL V1.0 setupcs R33: 8F Video 1024*768 8bit Bus-Slot 一番下を開放 HDD FB-TM2500ATを増設 「正常に表示される」基準は ・画面にノイズ、歪みが無いこと ・「マイコンピュータ」のウィンドウの移動を数回繰り返し、表示が乱れないこと ・ハングアップしないこと としています 設定値の決めかた TDMCでいろいろな値を試していったところ、 0x?5, 0x?6, 0x?7, 0x?E, 0x?F が正 常に表示される様であったので、それを片っ端から試していっただけです。 とくに理論的な根拠はありません。 設定値 WinTach v1.2 Overall/ C8(2-3回計測して速かった方を採用) 0x5E 61.32 ノイズ小 53.69MHz 0x56 61.56 ノイズ小 50.11MHz 0x67 65.47 50.91MHz 0x6F 71.18 54.09MHz 0x66 74.68 57.27MHz (WOODY CF-32GP の初期値) 0x77 74.89 57.27MHz 0x7F 75.44 60.45MHz 0x6E 82.57 60.85MHz 0x87 83.75 63.64MHz 0x76 84.17 64.43MHz 0x7E 84.94 68.01MHz 0x65 85.51 65.45MHz 0x8F 87.75 66.82MHz 0x97 89.76 70.00MHz 0xCF 90.15 ノイズ大 92.27MHz 表示不可 0x86 92.17 71.59MHz 0x75 93.99 73.64MHz 0x9F 95.48 73.18MHz 0x8E 96.05 75.17MHz 0xA7 96.60 76.36MHz −−−−−標準状態ではここまでが正常に表示される。 0x96 97.88 78.75MHz 0xAF 98.72 79.55MHz −−−−−Tridentにヒートシンクを乗せるとここまで正常に表示可。 0x85 99.39 81.82MHz 0xAE 99.40 89.49MHz 0xC7 99.95 89.09MHz 0x95 100.30 ノイズ大 90.00MHz 表示不可 0x9E 100.35 82.33MHz −−−−−Tridentにペルチェクーラーではここまで正常(0x85 0xC7は何故か不可) 0xB7 100.78 82.33MHz 0xBF 102.86 85.91MHz 0xA6 103.51 85.91MHz 0xB6 111.23 93.07MHz 0xD7 111.39 95.45MHz 0xC6 113.56 100.23MHz 0xBE 114.33 96.65MHz 0xA5 115.55 98.18MHz 0xCE 116.19 103.81MHz 0xB5 116.94 106.36MHz 0xE7 118.39 これ以降は、TELLSET の画面が乱れすぎて見えない(^_^;) 0xD6 118.43 0xEF 118.85 0xF7 119.51 0xDE 120.87 0xFF 120.94 0xE6 121.12 0xC5 122.44 0xEE 123.34 0xD5 124.93 0xE5 125.75 0xF5 130.55 調査データをこころよく提供していただいた 栗原 健太郎 さんに感謝します。 (メモリ周波数の部分は、TDMCDOS.EXE と TRIDENT社の TELLSET.EXE を使用して 得た情報を私が付け加えました。ベンチマークと周波数が逆転している部分があり ますが計測誤差と思われます。TELLSET.EXE は、TRIDENT社のホームページ からダウンロード可能です。'TELLSET'で捜せば見つかるはずです。) 【Aptiva 設定値サンプル】===================================================== 以下は、NIFTY FIBMJ Kazu. さんの計測データです: ★ ★ ★ HDBENCH Ver 2.284 ★ ★ ★ 使用機種 Aptiva560 プロセッサ 133MHz 解像度 800×600 65536色 Display GA-DRx/PCI GA-DRVx/PCI メモリ 31,840Kbyte ドライブ C:\ 0MB使用 オプション 窓最大化 ON CD-ROM方式 OFF ALL (浮)CPU(整) (矩) (円) (テキスト)(スクロール) 0x5F 1616 0 0 8023 3297 3153 70 (デフォルト) 0x67 1907 0 0 9258 4010 3823 72 0x6F 1944 0 0 9492 4024 3913 74 これ以降は格子状のちらつきが出ますが、参考までに 0x87 1891 0 0 10235 3318 3393 80 0x8E 2275 0 0 11634 4215 4533 96 (文字は見えません) ------------------------------------------------------------------------------ 以下は、NIFTY FIBMJ masa (V)o\o(V) さんの計測データです: ★ ★ ★ HDBENCH Ver 2.284 ★ ★ ★ 使用機種 Aptiva740 (CPU 変更) プロセッサ Pentium166 解像度 800×600 65536色 Display Trident 9660/968x/938x, Linear Accelerated for PCI (v4.02.12) メモリ 64,616Kbyte ドライブ C:\ 0MB使用 解像度 800×600 65536色 ALL (浮)CPU(整) (矩) (円) (テキスト)(スクロール) 0x06 1422 0 0 5199 3966 3582 52 若干のにじみ 0x07 1229 0 0 4639 3698 2682 43 0x0E 1447 0 0 5330 4046 3594 54 画面に色ずれ 0x0F 1323 0 0 4749 3774 3338 45 0x17 1352 0 0 4912 3827 3389 47 0x1F 1374 0 0 4972 3861 3489 49 0x27 1412 0 0 5158 3947 3552 51 0x2F 1433 0 0 5259 3982 3610 53 画面に色ずれ等 0x37 1454 0 0 5310 4084 3637 55 画面に色ずれ 解像度 800×600 1677万色 ALL (浮)CPU(整) (矩) (円) (テキスト)(スクロール) 0x06 653 0 0 2263 2024 1582 14 画面ににじみ 0x07 516 0 0 1803 1655 1179 11 0x0E 684 0 0 2400 2079 1662 15 0x0F 548 0 0 1885 1712 1325 12 0x17 576 0 0 1986 1787 1404 12 0x1F 598 0 0 2060 1860 1449 13 0x27 629 0 0 2204 1921 1523 14 0x2F 656 0 0 2292 2003 1595 15 画面に色ずれ等 0x37 698 0 0 2440 2133 1696 16 画面に色ずれ 計測しなかった値 0x16 ノイズとにじみ 0x1E 格子模様 0x26 格子模様で使用できず 0x2E 0x36 画面がみだれて使用できず 0x37 色ずれ 0x3E 格子模様で使用できず 0x3F ノイズとみだれ 以降 0x47 0x57 0x67 0x87 0x97 0xA7 0xB7 0xC7 0xD7 0xE7 0xF7 0x4F 0x5F 0x6F 0x8F 0x9F 0xAF 0xBF 0xCF 0xDF 0xEF 0xFF は、じぇんぶペケでした。(^^;) 調査データをこころよく提供していただいた Kazu.さん、masa (V)o\o(V) さんに 感謝します。 【TDMCDOS.EXE使用方法】======================================================= TDMCDOS.EXE は、DOS 上で TRIDENT社の TELLSET.EXE でパラメータと周波数の関係 を表示させるために、設定値の表示/変更を行います。 パラメータなしで起動すると、現在ポートに設定されている値を 16進で表示し ます。パラメータとして 16進の数値を指定すると、その値をポートにセットします。 【プログラムコード】========================================================== 他の OS 用(OS/2,WINDOWS NT,Unix 等)のプログラムを作成する人のために何をすれば いいのかを簡単に説明します。 I/O ポート 43c6h のワードデータに video memory clock に対応する値を設定します.このポートは、READ/WRITE 可なので、現在の設定 値を読む事もできます。ただし、このポートは、通常は、ロックされています。 そのためこのポートへアクセスする時にポートのロックを解除し、アクセスが終わっ たら、ロックを元に戻すようにします。ロックは、port 3c4h index 0eh の bit 7,1 で行われています。bit 7,1 を立てると、ロック解除です。 pushad cli mov dx,3c4h in al,dx push ax mov al,0eh out dx,al ;set index 0eh IODELAY inc dx in al,dx mov bl,al ;前の値を bl に覚えておく or al,82h ;ロック解除ビットをセット out dx,al ;ロック解除 IODELAY mov dx,43c6h xor ax,ax in ax,dx ;現在の Video memory clock の設定値読み出し IODELAY ax を使って何かの処理(注意:割り込み禁止中) mov dx,3c5h mov al,bl out dx,al ;ロックを前の状態に戻す IODELAY pop ax mov dx,3c4h out dx,al sti popad このプログラムを作成していて気づいたのですが、WOODY の場合、Windows 95 の TRIDENT ドライバのリソースに I/O ポート 43C6 は、含まれていません。つまり ポート 43C6 は、他の周辺装置が使っていて、TRIDENT のポートとして使えない 可能性がありうると言う事です。予約しておかなくていいの?>TRIDENTさん。 【TRIDENT VIDEO MODE】========================================================= このプログラムを作っていて、Windows 95 では結果以下のようなビデオモードが使用 されていることがわかりました。(BIOS INT 10H AH=0,AL=video modeです。なお、 TRIDENT社のドライバでの調査結果です。なおここの数値は、画面モードです。 クロックの設定を行うための数値とは無関係ですので誤解しないようにしてく ださい。) 解像度 WOODY APTIVA 1280x1024x8 ------------ 0x64 1024x768x8 0x62 0x62 800x600x8 0x5E 0x5E 640x480x8 0x5D 0x5D 1024x768x16 0x78 0x79 (HighColor) 800x600x16 0x76 0x77 (HighColor) 640x480x16 0x74 0x75 (HighColor) 800x600x24 0x6D --------- (TrueColor 24bit) 640x480x24 0x6C --------- (TrueColor 24bit) 800x600x32 ------------ 0x6D (TrueColor 32bit) 640x480x32 ------------ 0x6C (TrueColor 32bit) このようなビデオモードが使用されています。おもしろいのは、HighColor が WOODY と APTIVA では、異なるビデオモードが使用されています。逆に TrueColor 24bit と 32bit は、同じビデオモードが使用されています。 【その他、使用・再配布について】============================================== このプログラムは、フリーウエアです。以下の使用条件をまもる事を前提に だれでも自由に使用する事を許可します。 (1) このプログラムおよびドキュメントファイル TDMC.EXE,TDMC.VXD,TDMC.TXT を一切変更してはなりません。 (2) このプログラムを第三者へ提供する場合、(1) の条件をまもれば 再配布を許可します。 (3) このプログラムを使用した事により発生した損害等に関して作成者は 一切の責任を持ちません。 (4) ネットワーク、製品、雑誌等へ添付する場合も自由です。 (作者の許可を得る必要はありませんが、面倒でなければ「xxxに 掲載するよ」とメールをください。) (5) 基本的に作者は、このソフトウエアをアップデードする義務を負い ませんが、何か問題があればメールをください。アップデートする かもしれません。 【連絡先】==================================================================== PSE-NET kando@pse.co.jp 安藤健四郎 NIFTY-Serve QFG02543@niftyserve.or.jp 安藤健四郎 【最新版の所在】============================================================== NIFTY-SERVE FPANAPC LIB 4 もしくは、FIBMJ LIB 7 を参照してください。 関連メッセージチェーン: FPANAPC (3) WOODY #4523 FIBMJ (11) Aptiva(Pentium) #5367 【感謝】====================================================================== このプログラムの作成に協力していただいた NIFTY FPANAPC/FIBMJ のみなさんに 感謝します。 【終わり】