コラム PC カードをめぐる悩み

PC カードとメモリの空きは共存できるか?


 ようやく利用可能になった PC カードですが、まだ問題があります。PCMCIA を利用するために必要とするドライバ類は、アプリケーションが利用するメモリ(コンベンショナルメモリといいます。メインメモリと呼ばれることもあります)を消費します。少しであればよいのですが、もともと MS-DOS では 640KB しかないメモリですから、ドライバの種類が増えることで、アプリケーション用に使えるコンベンショナルメモリが減少することになり、場合によっては、肝心のアプリケーションが使用できなくなります。具体的にいえば、PC カード接続のWindows 起動ディスクを作成したものの、その起動ディスクで PC を立ち上げると、Windows のインストーラである setup.exe が実行できなくなる、というようなことが発生するのです。Windows をインストールするために、PC カードを利用可能にしたにもかかわらず、肝心の Windows がインストールできなくなってしまうのです。  この状態で、コンベンショナルメモリの空きが 500KB をぎりぎり超える程度になります。これに、さらに使用する PC カードのドライバを追加すると、コンベンショナルメモリの空きは 450KB を割り込むようになります。そこで、ドライバ類をコンベンショナルメモリの外に可能な限り逃がす設定が必要になります。

C:\CONFIG.SYS

   buffers=32
   files=64
   shell=A:\COMMAND.COM A:\ /P /E:16

   device=A:\HIMEM.SYSM
   device=A:\EMM386.EXE RAM HIGHSCAN

   DEVICEHIGH=A:\IBMDSS04.SYS
   DEVICEHIGH=A:\IBMDOSCS.SYS

   DEVICEHIGH=A:\JFONT.SYS
   DEVICEHIGH=A:\JDISP.SYS
   DEVICEHIGH=A:\Jkeyb.SYS

 これで、500KB 近くまで空けられるはずです。機種限定ですが、ThinkPad 560 FJE の場合は、次のようにすることで、最大限のコンベンショナルメモリの空きを確保できます。

C:\CONFIG.SYS

   buffers=32
   files=64
   shell=A:\COMMAND.COM A:\ /P /E:16

   device=A:\HIMEM.SYSM
   device=A:\EMM386.EXE RAM FRAM=E000

   DEVICEHIGH=A:\IBMDSS04.SYS
   DEVICEHIGH=A:\IBMDOSCS.SYS

   DEVICEHIGH=A:\JFONT.SYS
   DEVICEHIGH=A:\JDISP.SYS
   DEVICEHIGH=A:\Jkeyb.SYS

 EMS のページフレームを E000-EFFF の 64KB に設定することで、通常はページフレームとして使用される C000-CFFF の 64KB を UMB に組み込んで使用しています。なお、E000-EFFF に拡張 BIOS が存在する場合には、最悪システムがハングアップしてしまいます。


Last Update is 2004.06.06