MS-DOS の基礎講座 Vol 7.

PCMCIA を起動ディスクから利用可能にするには?


 MS-DOS に用意されている機能は非常に基本的なものばかりで、各種デバイスを扱うためには、CONFIG.SYS に設定を行い、機能拡張を行わなければなりません。これは、MS-DOS 上から CD-ROM ドライブを扱うために、CD-ROM ドライバを CONFIG.SYS へ登録しなければならないことからもわかります。Desktop PC ではこれだけで済みますが、Note PC ではさらに、CD-ROM ドライブを接続するためのインターフェイスである PCMCIA も拡張機能にあたるため、CONFIG.SYS の設定が必要となります。Desktop PC などの PCI や ISA といったインターフェイスについては、MS-DOS の標準機能に含まれているため、このような手間が必要なくなっています。

 現在 PCMCIA には大きく分けて二つの種類が存在しています。一つは 16bit のみの対応であるもの(このページでは、これを 16bit PCMCIA と呼びます)であり、もう一つは 32bit まで対応している CardBus です。どちらを使っているかによって、必要とするドライバが異なりますので、注意してください。ThinkPad でいえば、英字+数字となったシリーズ(T,X,A,s)については、すべて CardBus ですが、それ以前の数字3桁シリーズ(2,3,5,6,7)についてはモデルによって異なります。たとえば、ThinkPad 560 と ThinkPad 760EL はほぼ同時期の PC ですが、ThinkPad 560 では 16bit PCMCIA を搭載していますが、ThinkPad 760EL は CardBus を搭載しています。

 PCMCIA を利用可能にするソフトウェアを PC カードドライバと呼びます。この PC カードドライバは、PC 本体のメーカーが供給していますが、本体の HDD 上のみに存在するものが多く、後から Web などで入手しようとすると、途端に困難になることが少なくありません。ひどい会社になると、リカバリイメージの中にのみおいているとなり、肝心のリカバリ時点では使用不能になっている会社さえもあります。まずは、このドライバを入手することから、始まります。

 PC カードドライバは、二つの部分から構成されます。一つは PCMCIA ソケットを調整するソケットサービスと呼ばれるものであり、もう一つは PC カードを扱うカードサービスとよばれるものです。このように分離していることには理由があります。

 PCMCIA ソケットは、単一のメーカーが製作しているわけではなく、複数のメーカーが提供しています。このため、あるメーカーに対応したドライバを作った場合には、別のメーカーに対応したドライバを新たに開発することとなります。カードサービスとソケットサービスに分割していることで、変更が必要な部分をソケットサービスだけで済むことになります。もし、カードサービスとソケットサービスが一つの塊となっていると、丸ごと変更しなければならず、対応が非常に大掛かりなものとなります。このような理由から、カードサービスとソケットサービスの二つで PCMCIA を利用できるようにしているのです。なお、この構成は Windows 2000 でも変わっていないようです。


7-1 Card Director の設定

 16bit PCMCIA 対象の機種は、この PC Card Director を使います。PC Card Director は IBM の Web サイトから入手することができます。PC Card Director の配布ファイルは hrp209.exe という自己解凍型ファイルとなっています。この自己解凍型ファイルとは、それ自体を実行することで、展開されるもので、展開するためのツールが不要となっています。ここでは、配布されているファイル(hrp209.exe)が C:\DL に存在するものとし、C:\PCMCIA というフォルダに PC Card Director を展開することとします。

 まずは、展開先となる C:\PCMCIA というサブディレクトリを作成します。下記のコマンドを実行します。

C:\Windows>mkdir C:\PCMCIA

 次に、配布ファイルを複写します。

C:\Windows>copy C:\DL\HRP209.EXE C:\PCMCIA

 カレントディレクトリを C:\PCMCIA に変更します。

C:\Windows>chdir C:\PCMCIA
C:\PCMCIA>

 配布ファイルを実行します。

C:\PCMCIA>hrp209

 これで、PC Card Director のファイルが展開されます。かなり多くのファイルがありますが、この中で重要なファイルは、次のものとなります。

注)ソケットサービスの区分については、独自調査によるものであり、IBM の公式発表ではありません。

 かなり大雑把ですが、CPU に i486 を搭載している ThinkPad シリーズは ISA ベースであり、CPU が Pentium となった ThinkPad シリーズが PCI ベースですので、使うソケットサービスを間違えないように、注意してください。

 カードサービスとソケットサービスは、CONFIG.SYS で組み込みます。組み込む場所はメモリドライバの直後となります。なお、これらのドライバを組み込むことで、MS-DOS で利用できるコンベンショナルメモリ(メインメモリとも呼びます)が減少します。このため、ドライバの組み込み方に注意が必要となります。標準的な CONFIG.SYS は次のようになります(ThinkPad 560:2640-FJE 用のサンプルです)。

A:\CONFIG.SYS

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

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

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

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

 PC カードドライバは、組み込み順番がありますので、注意してください。最初にソケットサービスを組み込んで、さらにカードサービスを組み込むことで、PCMCIA が利用可能になります。順番を誤ると、エラー表示となります。

 このようにして、ようやく PCMCIA が利用可能になります。PC カードを使うためには、さらに使用する PC カードのドライバをここに組み込みことが必要になります。そうすると、コラムのような悩みが出てくるようになります。組み込むことで、ようやく MS-DOS から PC カードが利用可能になります。

7-2 CardSoft の設定

 Cardbus を搭載した ThinkPad は、この CardSoft を使います。なお、似たような名前に CardWorks というものがあります。これは、Windows 用のユーティリティですので、間違えないようにご注意ください。CardSoft は IBM のサイトから入手できます。配布ファイルは itp435.exe という自己解凍型ファイルとなっています。ダウンロードしたファイルが C:\DL にあり、C:\CardSoft へ展開するものとします。

 まずは、展開先となる C:\CardSoft というサブディレクトリを作成します。下記のコマンドを実行します。

C:\Windows>mkdir C:\CardSoft

 次に、配布ファイルを複写します。

C:\Windows>copy C:\DL\itp425.EXE C:\CardSoft

 カレントディレクトリを C:\CardSoft に変更します。

C:\Windows>chdir C:\CardSoft
C:\CardSoft>

 配布ファイルを実行します。

C:\CardSoft>itp425

 これで、CardSoft のファイルが展開されます。かなり多くのファイルがありますが、この中で重要なファイルは、次のものとなります。

 ソケットサービスが二つに分かれています。ThinkPad の多くは Ti チップを CardBus コントローラとして使用していますが、一部 Cirrus Logic の CL-D67xx を搭載しているものもあるため、このようになっているようです。

 カードサービスとソケットサービスは、CONFIG.SYS で組み込みます。組み込む場所はメモリドライバの直後とします。なお、これらのドライバを組み込むことで、MS-DOS で利用できるコンベンショナルメモリ(メインメモリとも呼びます)が減少します。このため、ドライバの組み込み方に注意が必要となります。標準的な CONFIG.SYS は次のようになります(ThinkPad 570:2644-3AJ 用のサンプルです)。

A:\CONFIG.SYS

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

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

   DEVICEHIGH=A:\SSCBTI.SYS
   DEVICEHIGH=A:\CS.SYS

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

 PC カードドライバは、組み込み順番がありますので、注意してください。最初にソケットサービスを組み込んで、さらにカードサービスを組み込むことで、PCMCIA が利用可能になります。順番を誤ると、エラーが表示されます。

 CardBus 搭載 ThinkPad では、その多くが Ultrabay や Ultrabase などを利用可能となっているため、MS-DOS から PC カードを利用する局面は少なくなっています。私自身でいえば、CardBus を搭載した ThinkPad で、CD-ROM ドライブを内蔵できないものは手元にないため、ほとんど実施していません。ThinkPad 760 系でさえ、内蔵用 CD-ROM ドライブがありますので、外付け CD-ROM ドライブからインストールする必要が生じたことがありません。ThinkPad 560X ないしは 560Z あたりを入手すると、そうも言ってられないかと思われますが、それでも、ThinkPad 600 あたりで仮腹インストールしてしまうでしょうね(笑)

7-3 PC カードイネーブラ

 MS-DOS 上で PC カードを使うと、必ずメモリの取り合いが発生します。これは、PCMCIA のドライバ x2 + PC カード自体のドライバを使う必要があるためです。もし、PC カードのドライバで、PCMCIA が利用可能になってくれれば、メモリを余計に消費する PCMCIA のドライバは不要になるわけです。

 ごく一部の PC カードのドライバではありますが、このように PC カードのドライバが PCMCIA を利用可能にしてくれるものがあります。このようなドライバを PC カードイネーブラ(PC Card Enabler)と呼びます。私の知っている範囲では、NOVAC の DVD/CD Station と Panasonic KXL820 に付属したドライバには、PC カードイネーブラを内蔵したものが含まれていました。

 PC カードイネーブラは、特定の条件を満たした環境でしか動作しません。従って、イネーブラ部分が対応していない PCMCIA コントローラが使われている場合には、使用できません。また、特定のアドレスに直接アクセスすることから、メモリドライバの後では機能を果たさないことがあります。このように、扱いが若干面倒なことはありますが、うまく動けば、メモリを節約することができるため、非常に重宝します。

 PC カードイネーブラを使えるかどうかは、i82365 互換機能をもっているかどうかで判断できます。とはいえ、このような情報は明らかにはされていませんので、実際には試してみて使えればそれで良し、と判断せざるをえません。

 それでは PC カードイネーブラ内蔵の KXL-820AN を使った場合にはどのようになるかみていきましょう。KXL-820AN のドライバのリストは下記のとおりです。

  1. KME365.SYS ------------------ PC カードイネーブラ
  2. KMEASPI.SYS ----------------- KXL I/F 専用 ASPI マネージャ
  3. KMEKCD.SYS ------------------ ASPI CD-ROM ドライバ
  4. KMEMGR.SYS ------------------ 通常版 PC カードドライバ

 2. と 3. はセットで使います。1. が PC カードイネーブラになります。CONFIG.SYS への組み込み例は次のようになります。

A:\CONFIG.SYS

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

   DEVICEHIGH=A:\KME365.SYS
   DEVICEHIGH=A:\KMEASPI.SYS
   DEVICEHIGH=A:\KMEKCD.SYS

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

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

 正常に組み込めた場合には、CD-ROM ドライブに通電されます。うまくいかない場合は、PC が搭載している PCMCIA コントローラが KME365.SYS では扱えないもの、ということになります。これまでのところ、ThinkPad 760EL 、 ThinkPad 560 、 ThinkPad 365X 、ThinkPad 755C では、KME365.SYS が利用可能でした。

 Last Update is 2004/06/06