過去の桐井戸端BBS (桐ver.5) |
4600 | EMSメモリが動作しません | 森本 勝彦 | 2000/02/12-05:18 |
Windows 98 Second Editionを使用して桐Ver5(DOS)を起動させると"プログラム が大きくメモリ内に収まりません"と表示します。 桐ショートカットプロパテイのメモリを見ると、EMSメモリに"このコンピュターで はMS-DOSセッションのEMSメモリが設定されていません"と表示します。 [CONFIG.SYS] device=c:\windows\himem.sys device=c:\windows\emm386.exe ram devicehigh=C:\WINDOWS\biling.sys devicehigh=C:\WINDOWS\jfont.sys /p=C:\WINDOWS devicehigh=C:\WINDOWS\jdisp.sys devicehigh=C:\WINDOWS\jkeyb.sys /106 C:\WINDOWS\jkeybrd.sys devicehigh=C:\WINDOWS\kkcfunc.sys devicehigh=C:\WINDOWS\COMMAND\ansi.sys files=30 DOS=HIGH,UMB [コンベンショナルメモリ] 553k Windows 98 Second Edition以前のWindows98・Windows95ではEMSは正常に動作 します。何か特殊な設定があるのでしょうか。 どなたか教えて下さい。 | |||
4603 | Re:EMSメモリが動作しません | hidetake | 2000/02/12-08:08 |
記事番号4600へのコメント Windows98 SE だからと言って、EMS が確保できなかったことは ありません。桐も動作させたことがあります。 >Windows 98 Second Edition以前のWindows98・Windows95ではEMSは正常に >動作します。何か特殊な設定があるのでしょうか。 これは同じマシンでと言うことでしょうか? 桐で使用できる EMS を確保するには UMB 領域に64KB 以上連続した EMS ページフレームを取れるだけの空きが必要です。 これは PC (マザーボード)とか、搭載している拡張カードとかが影響して きます。 例えば、私のところでは、SCSI カードと IDE HDD を使う IDE ボードの 両方を搭載した場合、両方の BIOS が UMB を使ってしまい、EMS を確保 する領域が無くなり、EMM386.EXE RAM を指定しても実際には EMS を確保 できなくなりました。こんな場合は、BOOT しないほうの BIOS を使わない ように設定する必要があります。 ボードを搭載せず、この様な症状が発生する場合は、マザーボードの作り やグラフィックボード BIOS の位置に関係する場合がありますが、 強制的に UMB を探しだし無理やり使ってみる HIGHSCAN オプションという ものもあります。 DEVICE=\WINDOWS\EMM386.EXE HIGHSCAN RAM ただし、これは巧く動作する場合と、間違って必要な領域を割り当ててしまい 起動時ハングアップしてしまう場合があります。 また、UBM の空き領域の位置の関係で EMS の空き領域が確保できない場合 は、FRAME オプションで場所を手動で割り当てなければならない場合も あります。 DEVICE=\WINDOWS\EMM386.EXE HIGHSCAN RAM FRAME=CC00 ただし、この場合 UMB のメモリマップを把握している必要があります。 最後に、一番有効かなと思うのは、グラフィックで使う UMB 領域のうち モノクロ領域を強制的に UMB に割り当て、その領域を EMS 以外に使える ようにし、EMS 領域が確保しやすくするには I=B000-B7FF とします。 DEVICE=\WINDOWS\EMM386.EXE RAM I=B000-B7FF 何れにせよ、そのパソコンのメモリマップを把握している必要があります。 ちなみに、そのパソコンとはどこのメーカーでしょう? 使っているボードとかは? 私の現在の設定は DEVICE=\WINDOWS\HIMEM.SYS /TESTMEM:OFF rem DEVICE=\WINDOWS\EMM386.EXE HIGHSCAN RAM FRAME=CC00 I=B000-B7FF I=CA00-F7FF rem DEVICE=\WINDOWS\EMM386.EXE RAM FRAME=CC00 I=B000-B7FF I=CA00-F4FF DEVICE=\WINDOWS\EMM386.EXE RAM FRAME=D400 I=B000-B7FF I=D400-E3FF です。 詳しくは C:\WINDOWS にある CONFIG.TXT や MSDOSDRV.TXT をごらん下さい。 | |||
4604 | Re:EMSメモリが動作しません | hidetake | 2000/02/12-08:13 |
記事番号4603へのコメント あと、雑ネタになるけれど、Windows98 の跡継ぎの Windows ME は DOSが本当に動きにくくなるようですね。 CONFIG.SYS や AUTOEXEC.BAT も参照しなくなるみたいで、環境変数 を扱うものも駄目みたい。EMS はどうなるのかわかりませんが、 こんな状況なら、使い無くたくても新しい機種では Windows2000 を 選択しなければならないのか... | |||
4634 | Re:EMSメモリが動作しません | Ogo | 2000/02/14-02:36 |
記事番号4604へのコメント 以前、宮城さんのページで、ご本人が四苦八苦した状況が書いてありました けど、最新の機種の中には「 EMS と SCSI ボードが両立できない」タイプ が出現しているようです(メーカーサポートの正式解答結果による)。 EMS という規格自体が「メモリ 16M の壁」を前提にしてありますからね。 Linux などでも、この付近のメモリをどう扱うか( BIOS の設定やマザー ボードの種類)で連続したメモリを認識できずに、「メモリ 64M 積んでも OS が 15M しか認識しない」という悩みを時々聞きます。 | |||
4638 | Re:EMSメモリが動作しません | hidetake | 2000/02/14-07:39 |
記事番号4634へのコメント >けど、最新の機種の中には「 EMS と SCSI ボードが両立できない」タイプ >が出現しているようです(メーカーサポートの正式解答結果による)。 すみませんが、この辺については知りませんので メーカー名とか機種名とか教えてください。 _o_ | |||
4646 | Re:EMSメモリが動作しません | hidetake | 2000/02/14-08:55 |
記事番号4638へのコメント >>けど、最新の機種の中には「 EMS と SCSI ボードが両立できない」タイプ >>が出現しているようです(メーカーサポートの正式解答結果による)。 ついでに書くなら、このような制限がある M/B ボードなら、 EMS に限らず、使えないボードがあるとか、他のメモリ マップ上の制限も出てきそうなハードですね... | |||
4647 | Re:EMSメモリが動作しません | 宮城 | 2000/02/14-10:35 |
記事番号4638へのコメント たとえばコンパックだと・・・。 http://www.compaq.co.jp/service/faq/faq0406.html これはあくまでも例で他社でもあるようです。 | |||
4648 | Re:EMSメモリが動作しません | hidetake | 2000/02/14-11:05 |
記事番号4647へのコメント 宮城さん、ありがとうございます。 Compaq ですと独自マザーですか... 現在となってはメーカーもこの程度の対応の方が 楽なのでしょうね。 | |||
4649 | Re:EMSメモリが動作しません | hidetake | 2000/02/14-11:22 |
記事番号4648へのコメント >現在となってはメーカーもこの程度の対応の方が >楽なのでしょうね。 何故なら、上記 FAQ は EMS を使うようにするには どうしたら良いかでは無く、単に SCSI を入れたら 途中で止まることに対する対応だから... しかし Compaq とか使ったことは無いけど、どんな メモリマップをしているのかな? 機会があったら見てみたいな... (^_^ゞ それに、上に書いたけど、これキシのことで UMB に 空きが無くなるなら、増設できるボードも制限がキツ そうですね。 | |||
4652 | Re:EMSメモリが動作しません | hidetake | 2000/02/14-17:33 |
記事番号4649へのコメント >http://www.compaq.co.jp/service/faq/faq0406.html あと、上記例を推測するに SCSI を追加した場合に EMS を確保する領域が持てなくなる のは、機種によってはグラフィックボードの BIOS が C7FF を越えて専有しているものがあり、その為に SCSI BIOS も 通常の C800-CBFF の 16KB が後ろへ押しやられている場合 があります。Adaptec の場合もう少し喰って 24KB かな? ひょっとして Compaq だから純正では Adaptec を使うだろ うから、更に空き領域を食潰すのかな? そんな場合に、EMM386 自体が使うメモリが、通常 EMS に 割り当てられる D000-DFFF にかかってしまい EMS 領域が 確保でき無かったと考えられます。 EMS のページフレームは 400h ごとにしか取れないないの で、少しずれただけで自由度は無くなります。 こんな場合、NOMOVEXBDA オプションで UMB をなるべく使わ ないように指定するとか、FRAME オプションで積極的に EMS の使うべき領域を指定します。 それと、SCSI BIOS で使われた分ぐらい、I=B000-B7FF で 通常使われない領域を UMB として強制的に割り当ててみたら いかがでしょう? SCSI BIOS の 16KB とか 24KB やそこら これで充分補えると思いますが... あと、Ogo さんがどこかで書かれていた、最悪 DOS を立ち 上げればよいという幅田さんのコメントに、今回と同じよう 文面を書かれておられましたが、どうしてもと言うのであれ ば、PC/AT 互換機には QEMM と言う、それは凄い EMS ドラ イバがあります。ステルス機能で ROM 領域も RAM に割り 当てられるので、その気になればたいした問題では無いで しょう。 それに、QEMM はステルス機能は無理ですが、Windows でも 使え、EMM386 よりは賢く UMB も効率良く使えます。 さすがに今ではそこまでする人もメリットも無いと思われ ますが... 昔やってました (^_^; |