★★★★【msdコマンド実行】による解析の操作方法(要点)★★★★ ◆装着した拡張カードが "初使用のカード" で かつ 起動できるWindowsが HDDに存在しない場合は、 FD起動(EMM386.exeを読み込まず)して msdを実行するのが無難でしょう。 ◆msdコマンドの使用目的は 例えば【SCSIカードの占有領域】を確認する事ですが、 だからといって msd実行時に【SCSIマネージャ・SCSIドライバ】を読み込む必要は ありません。 ◆msdコマンド実行の前に 通常は【mouseコマンド】を実行して下さい。 ◆ここでの msdにおける操作対象となるキー操作は 次の2種類です。 1.msdのメニュー画面が表示されたら 左上2番目に【Memory】というメニューブロックがあります。 ここをマウスでクリックします。キーボードなら【M】を押します。 (この1の操作だけで充分 用が足ります。) 2.一番上のタイトルバーにも【文字列メニュー】があります。 この内 Utilities というメニューをクリックします。 キーボードなら【Alt ⇒ 右矢印】です。 Utilitiesメニューでは 2つのサブメニューが表示されます。 @ Memory Block Display A Memory Browser msdを終了するには【F3キー】を押します。    ※msdコマンドは windowsのGUIで実行するのはお勧め出来ません。     windowsのGUIで実行すると msdの分析結果はハードウェア構成を     正確に反映しません。     PCを起動した時の'Dos環境'で実行して下さい。 ====================================== ★【EMM386.EXE の device文】の【X=〜〜-〜〜指定】についての解説(要約)。 (例えば X=A000-CBFF) この指定は、 【EMM386.EXEさん、ここを使うなヨ!】という意味で EMM386.EXEに対して「特定エリアの使用禁止」を指示する "範囲指定" です。 ◇この Xスィッチを指定する目的は  例えば ビデオカードやSCSIカード等の【拡張カードの占有領域】を指定  するためです。 ◆自分のPCで X=〜〜-〜〜 の範囲を確認するためには、 2通りの方法があります。 A.デバイスマネージャの【デバイスのプロパティ】⇒【リソースタブ】 B.起動Dosで msd を実行する。 ========================= ≪A.デバイスマネージャで確認≫ デバイスマネージャの【リソースタブ】で 【メモリの範囲】を見て、 「8桁の英数字 ― 8桁の英数字」の複数データの内  【右辺も左辺も "上位3桁が 000" となっているデータ】を探します。 このデータ形式を少し操作した物を 【EMM386.EXE の Xスィッチ】で指定します。 ※"−の左の4桁" を【Baseアドレス】と呼びます。 "−の右の4桁" を【Endアドレス】と呼びます。 ※データの形式の"操作方法" は 次の通り。 1.8桁の内 上位の "左側3桁の 000" を削除して下さい。 【重要】⇒ 2."下位1桁"を削除して下さい。 3."Baseアドレス" も "Endアドレス" も、 4桁の内の "下位2桁" は 00 か ff となるように指定して下さい。 そして、【Baseアドレス】は 00 と記述し、 【Endアドレス】は ff と記述して指定して下さい。 【注意】: emm386.exe の【Xスィッチ指定】での注意 ↓ 【Baseアドレス】・・・下位2桁に 半端な分があれば 切り下げる。 (数値を小さくする) 【Endアドレス】 ・・・下位2桁に 半端な分があれば 切り上げる。 (数値を大きくする) 例えば、(Xスィッチ) cc80-d17f の場合なら cc00-d1ff と指定してやります。 ========================= 【注意】: Dosでは "メモリの領域" を アドレス表現する時は 【4D00〜4DFF】という風に 【Baseアドレス】では 下位2桁は 00 となる形で記述し、 【Endアドレス】 では 下位2桁は ff となる形で記述して下さい。 詳しくは '起動フロッピー.SE'フォルダの【_★使い方と応用.txt】を参照して下さい。 ========================= Dosで【4桁で アドレスを16進数表記する】時は、 C800 ← この 下から3桁目(C800 の 8)の1数字が、4KBです。   (「1数字4KB」とは つまり 8を1つ加算して C800〜C900 が4KBという意味)     余談ですが、注意すべき事として、     上記の【Dosでの4桁表記】は '便宜上'行なわれているモノです。      (16bitCPU時代の名残り)     【Dosで C800 と表記したアドレス】は【デバイスマネージャの C8000】と同じ意味。     【Dosの C800〜C8FF】=【デバイスマネージャの C8000〜C8FFF】です。 10進数の 0〜100 は 値の"個数" としては 101コ分です。 100コ分としては 0〜99 までです。 同じように、 4KB(4096コ)分の"個数" としては 【C800〜C900】ではなく、【C800〜C8FF】が正解です。 即ち、4KBの領域をアドレス表現すれば 【C800-C8FF】とか【CD00-CDFF】という記述になります。 ========================= ◆次の2つの練習をしておくと、 msdで "占有領域" を確認した後の【emm386.exe でのアドレス指定】が簡単です。 【練習1】: ◆【アドレス C800】から始まる'20KB'の領域は どう記述すれば良いのでしょう。 20KB÷4KB=5 ですから  下位3桁目の数字(16進数)を 5回加算すれば良いのです。 C800 ⇒ C8FFで まず4KB。 (下位2桁の 00 と FF がややこしいですから先に済ませましょう。) C8FF の8について 残り4回加算します。 8 ⇒ 9、A、B、C と "指折り数えて" 残り4回を加算するのです。 C800 ⇒ C8FF(4KB)・・・ C8FF ⇒ CCFF となって、 答えは【C800-CCFF】です。 【練習2】: ◆【アドレス CD00】から始まる'20KB'の領域は どう記述すれば良いのでしょう。 CD00 ⇒ CDFFで まず4KB。 CDFF ⇒ CEFF、これで8KB。 CEFF ⇒ CFFF、これで12KB。 さあ、CFFF の次は・・・。下位3桁目のF を1加算します。 ※'16進数のF'の次はありませんので "繰り上げ" をします。 CFFF ⇒ D0FF、これで16KB。 D0FF ⇒ D1FF、これで20KB です。 で、答えは【CD00-D1FF】です。 ※アドレスCCFF の1つ後ろ(16バイト分)は CD00 です。 (CCFFは'下位1桁を省いた記述法'で、本当のアドレスは CCFFF。) ========================= ≪B.msdコマンドで確認≫ ◆msdコマンド実行した時の【メモリエリアグラフ】の見方 【メモリエリアグラフ】の 横1列が16KBで、マウスカーソルの1個が1KBです。 【メモリエリアグラフ】の左側に C800 と表示されている箇所を探して下さい。 この箇所の "左端の1マス" でマウスカーソルを照準できた所が「C800以降1KB」 の "範囲" です。 で、 1マス右に移動する度に1KBずつ加算していけば良いのです。 そして、C800等とアドレス表現する時は、下から3桁目の1数字が 4KBです。 ( C800 の場合なら 8 ) (「1数字4KB」とは ↑この8が9に増えれば4KB加算された・・という意味) 例えば、 4KB×4=16KB(グラフの横1列分)を加算すれば 「グラフの1つ上の左端」に 移動する事になりますが、 C800 に「4KB×4」を加算する事は 下から3桁目の数字に4加算する事です。 グラフの左端の C800 の1つ上段は CC00 と表示されています。 つまり、C800 の8に 数字を1ずつ4回加算すると C900、CA00、CB00、CC00 となります。 【メモリエリアグラフ】は 黒とグレーで'色分け'されており、 何に使われているかの「分類」が 上部タイトルの近くに項目表示されています。 項目は Ram、Rom、freeUMBs、usedUMBs、Available(利用可能)、 そして Possibly_Available(利用可能かも知れない) 等があります。 ここで【Xスィッチ】として指定するエリアは Rom の部分です。 ただし、f000近辺以降の上の領域は マザーボードの'システムRom'であり、 ここは emm386.exeが確実に自動判定できるので「使用禁止指定」は不要です。 (ここは UMBエリアの外です。) UMAは A000-FFFF。(【UMA】= Upper Memory Area) この内 'システムRom' と "拡張カードの占有領域" を除外した部分が UMB です。(【UMB】= Upper Memory Block) この空間に ドライバをロードしたり、【EMSページFrame領域】として使われます。 (このUMBエリアを emm386.exeが検出する時にミスが生じる事がある。) さて、 "拡張カードの占有領域" は A000 から始まるエリアに 下位のアドレスから 順番に割り当てられます。 【ビデオカードエリア】の次に【他のPCIカードエリア】が割り当てられます。 ※ISAスロットは未使用と仮定します。 ISAカードを使う人は「自分で調整できる」人か、トラブルかのどちらかです。 ◇【Inno3D GeForce2 MX/MX 400】の場合、【ビデオカードエリア】=A000-CBFF ですから、A000-CBFF は【Xスィッチ】で範囲指定します。 あと 例えば SCSIカード1枚だけが PCIスロットに装着されているなら、 その次の領域から 【SCSIカードの占有領域】であり、 その分も【Xスィッチ】で範囲指定します。 この場合は CC00 から後ろが 例えば 20KB が占有されます。 (占有領域サイズは SCSIカード型番ごとに異なる。) (「SCSI_BIOS有効・無効」の設定によっても異なる。) その場合は メモリエリアグラフで【マウスカーソル 20個分】が "Rom" として表示されているハズです。  ※ただし、18KB(カーソル 18個)であった場合は、20KBに切り上げて  【Xスィッチ】で範囲指定します。 (【半端なアドレス】の分は 4KB単位で "キリの良いアドレス" を指定) ◇【メモリエリアグラフ】を見れば判りますが、 "拡張カードの占有領域" の後ろは 【usedUMBs】か【freeUMBs】か【Possibly_Available】あるいは【Ram】 として表示される事が多いです。 ここまでで【Xスィッチ指定】する範囲は 終わりです。 即ち、【A000から ここまでの領域】を【Xスィッチ】で範囲指定すればOKです。 これで、"emm386.exeの【Xスィッチ】に焦点を絞った msd実行" は完了です。 あとは メモを記録して、 ここで把握した【EMM386.EXEさん、ここを使うなヨ!】のデータを config.sys で指定して 一件落着 です。 ちなみに、 最後方の【拡張カードの占有領域】が終わった後ろの領域なんですが、 マザーボードによって "UMBとして無駄なく使われる場合" と "随分と無駄な空きが生じる場合" とがあります。 ここで【Iスィッチ】の出番なのですが、【Iスィッチ】は危険も伴なうので、 マザーの情報やクセを把握し msd も使い慣れてからにしましょう。 もう一つついでに、 前述の"後ろの領域"ですが、 (UMBとして無駄なく使われているマザーボードの場合) 最後方の【拡張カードの占有領域】= 18KB といった風に 半端の2KBが無駄 になっている場合は、最後の2KBが【Available】として認識されます。 さて その直ぐ後ろから【usedUMBs】として表示されているでしょうか? 違うんです。 その前に 5〜6KB程度の【Ram】として表示されている部分があります。 これ、調べた事も無く、書籍やマニュアルにも記述されてませんし、 よく判りません。 想像ですけど、 【Upper_Memory_Area の一部を UMBとして利用するための管理エリア】 だと思います。 ◆msd実行 ⇒【メモリエリアグラフ閲覧】で、 "拡張カードの占有領域" を どう確認するか? A000-C7FF は【PC/AT標準のビデオカードエリア】ですが、 残念ながら、ビデオカードの【作業領域】は msd実行では 正確に判定できません。   ※「Available・Ram・Rom」の3種類で "混在表示" されてしまいますが、    ビデオカードエリアは 全て【Xスィッチ】で    使用禁止の範囲指定をした方が良いでしょう。 "A000〜C7FF領域" は windowsでは間違いなく占有されますし、 (Dos起動の状態ではVGA表示なので かなりの領域が未使用ですが、 何か 画面関係のツールを起動すると【描画作業領域】として使われます。) ビデオカードエリアを windows9x が間違えて使う事は ほとんど無いのですが、 圧縮ファイルの解凍時に Dosプロンプトが起動する場合は 危ないです。 windowsが起動する時の config.sysで【Xスィッチ指定】しておけば、 その設定を windowsが使ってくれますから "やれ安心" です。 <注意>: 【"A000〜C7FF領域"よりも広い領域を使用するビデオカード】が存在します。 余分に使われる領域は +16KB だったり +128KB だったりします。 【余分に領域を使用するビデオカード】の場合は、 msdを実行する前に メーカーかデバイスマネージャで確認する方が手っ取り早いです。 【ビデオカードエリア】の次の領域が =「PC起動時に1番目に検出されるPCIスロット」の拡張カード領域です。 ◇「X=A000-C7FF X=C800-CBFF X=CC00-D1FF」という風に 個別にエリアを特定しなくても構いません。 上記の3つのエリアは連続していますから、 【EMM386.EXEのdevice文】で X=A000-D1FF という風に 一括で指定してOKです。 だから、グラフで「ROMエリア」として表示されている領域を 全て把握して、 この領域を 一括で指定すればOKです。