MS-DOS の基礎講座 Vol 5.

MS-DOS で日本語変換を行うためには?


 Windows の起動ディスクを使った場合、漢字はもちろんですが、かな文字やカナモジを入力できなくなったことがありませんか?MS-DOS の標準機能には、日本語の表示は含まれますが、日本語の入力は含まれていないため、起動ディスクを使用した場合に、日本語を使用したフォルダへアクセスできなくなる、という障害が発生します。具体的には、デスクトップフォルダの実態は、C:\Windows\デスクトップ(実際はデスクトップは半角になっています。)ですが、起動ディスクで立ち上げた場合には、移動先のフォルダ名が入力できないため、その中にあるファイルを取り出すことができなくなります。

 Windows 登場前は、漢字かな混じりのファイル名は、文字数の制限(半角8文字まで)もありましたが、コマンド操作時の扱いにくさから、あまり用いられることはなかったのですが、Windows 95 以降では、ファイル名の文字数制限が緩和された(半角250文字まで使用可)ため、漢字かな混じりのファイル名を付けてしまうことが多くなり、緊急時に MS-DOS からアクセスできなくなってしまうことが少なくありません。

 さて、MS-DOS で日本語入力を行う方法はないのでしょうか?そんなことはありません。Windows 95 の〔MS-DOS プロンプトのプロパティ〕を開くと、〔バッチファイル〕の欄に〔DOSIME〕と記載されていることがあります。これは、MS-DOS プロンプトで DOSIME というファイル名のバッチファイルを実行すると、日本語変換機能が利用できる、という意味になります。ということは、DOSIME の中を調べてみれば、MS-DOS モードでも日本語変換機能を使用できるようになるかもしれない、という可能性がでてきます。

DOSIME をしらべてみよう!

 DOSIME は正式には DOSIME.BAT というバッチファイルです。記録されている場所は C:\Windows\COMMAND になります。それでは、その中身はどのようになっているのでしょうか?次のコマンドを MS-DOS プロンプトで入力してみると、DOSIME.BAT の中身が表示されます。

   C:\WINDOWS> TYPE COMMAND\DOSIME.BAT
   @ECHO OFF
   ADDDRV DOSIME.SYS
   %1 %2 %3 %4 %5 %6 %7 %8 %9

 @ECHO OFF は実行するコマンドの ECHO 表示を止めるもので、以後バッチファイル中のコマンドを実行する際に、画面へ実行するコマンドを表示しなくなります。次の行にある ADDDRV は見たことのないコマンドです。ADDDRV とはどのようなことを行うコマンドなのでしょうか?

 MS-DOS のコマンドは、/? を付けることで、ヘルプを表示することができます。MS-DOS プロンプトで ADDDRV /? を実行してみましょう。

   C:\WINDOWS>ADDDRV/?
   キャラクタ型デバイスドライバを組込みます。

   ADDDRV [ドライブ:][パス]ファイル名
          [ドライブ:][パス]ファイル名  定義ファイルを指定します。

 デバイスドライバの中には、データを文字単位でやりとりするキャラクタ型デバイスドライバと、まとまった形でやりとりするブロック型デバイスドライバの二つの種類があります。ブロック型デバイスドライバの代表は、RAMDISK があげられます。キャラクタ型デバイスドライバの代表が、日本語変換ドライバです。

 デバイスドライバは原則として CONFIG.SYS で組込まれますが、MS-DOS の肥大化に伴い、すべてのドライバを CONFIG.SYS で組込むと、メモリ不足となってしまう状況が発生してしまいました。そこで、一部のキャラクタ型デバイスドライバについては、必要となった時点で組込めるように、仕様が変更されました。このキャラクタ型デバイスドライバを組込むために新設されたのが ADDDRV(アドドライブ、Add Driver から)コマンドです。

 さて、ADDDRV コマンドには、引数として定義ファイルが必要となります。バッチファイルをもう一度見てみると、DOSIME.SYS が定義ファイルのようです。それでは定義ファイルの書式をみてみましょう。しかし、DOSIME.SYS というファイルはなぜか見つかりまん。検索をかけてもみつかりません。しかし、C:\ にはきちんとファイルがあります。

  DOSIME.SYS
   device=C:\Windows\COMMAND\msimek.sys /A1
   device=C:\Windows\COMMAND\msime.sys /D*C:\Windos\COMMAND\msimer.dic /C1 /N /A1 /DC:\DOS\MSIME.dic

 どこかでみたことがあるような記述です。そうです、config.sys への device 文の書き方とまったく同一なのです。ADDDRV が使用する定義ファイルは、config.sys の device 部分だけを切り取った形になっています。これをうまく活用すれば、日本語変換機能を使用することができそうです。

日本語変換機能を使うために必要なファイル

 DOSIME.SYS に記載されているファイルだけでは、日本語変換機能は使用できません。というのは、この MS-IME/DOS は、明示的に指定されているドライバだけでなく、ドライバが別のドライバを呼び出す構造となっているため、このドライバから呼び出されるドライバファイルも持ってこなければなりません。

 もう一つの問題は、辞書ファイルのサイズです。辞書ファイルだけで 626KB ほどありますので、これを入れるだけの空き容量を作ることが、一つの問題になります。

 ということで、日本語変換に絶対必要なファイル群は下記の通りです。

  MSIMEK.SYS  65,165   MS-IME ドライバ1
  MSIME.SYS   40,493   MS-IME ドライバ2
  MSIMED.SYS  13.419   MS-IME ドライバ3
  MSIME.DIC   2,048   ユーザー辞書
  MSIMER.DIC  641,024   システム辞書
-------------------------------------------------------------
            762,149 Bytes

 MSIME 関連のツールまで含めると約 1MB 近くに達します。

  MSIME.DIC        2,048
  MSIMED.SYS      13,419
  MSIMER.DIC      641,024
  MSIMEKEY.EXE    102,148 --------------- キーボードユーティリティ
  MSIMELST.EXE    110,744 --------------- 単語登録ユーティリティ
  MSIMERGN.EXE    42,692 --------------- ローマ字ユーティリティ
  MSIMESET.EXE     49,620 --------------- 環境設定ユーティリティ
  MSIMEKEY.INI     13,158 --------------- キーボード定義ファイル
  MSIME.SYS       40,493
  MSIMEK.SYS      65,165

日本語変換 FD の作成

 日本語変換 FD を作成することは、実に簡単です。一枚、新品のエラーフリー FD を用意します。エラーフリーとは、強制 Format を実行して、エラーセクタを全く含まないものを指します。新品の FD はエラーフリーかというと、決してそんなことはなく、一定率のエラー FD を含んでいます。かつて、50枚パックを4箱購入したところ、最初の2枚連続でエラー FD にぶち当たり、二度とこのメーカーは買わない、と固く誓ったものでした(爆笑)

 なぜエラーフリー FD でなければならないのか、というと、頻繁に書き込みが発生するためです。日本語変換を行うと、その結果をユーザー辞書に記録し、次回の変換に反映させることで、変換効率をあげているため、かなりの頻度で書き込みが発生します。この時、エラーセクタを含んだ FD を使用していると、ユーザー辞書がそのエラー領域を使用したときに、システムロックに陥る危険性があるためです。

 エラーフリー FD ができれば後は非常に簡単です。C:\WINDOWS\COMMAND に関連ファイルがありますので、これらを FD に複写します。

  C:\WINDOWS>copy COMMAND\MSIME*.* A:\

 次に環境設定を行います。カレントドライブを A: に変更して、ユーティリティを起動します。

  C:\WINDOWS>A:
  A:\>MSIMESET


MS IME環境設定 1/2                      Ver 2.53
-------------------------------------------------------------------------------
                    ↑↓←→:選択 Enter:決定 ESC:終了
入力ファイル [A:\MSIME.DEV                        ]
出力ファイル [A:\MSIME.DEV                        ]
システム辞書 [A:\MSIMER.DIC                        ]
ユーザー辞書 [A:\MSIME.DIC                        ]
環境ファイル [                                  ]
システムパス [A:\                                ]
展開バッファ [ 32]  KB  (5〜32)
辞書バッファ [ 16]  KB  (5〜32)
入力方式   [ローマ] [かな]
文字幅    [全角]  [半角]
変換方式   [連文節] [複合後優先] [自動] [無変換]
辞書学習   [する]  [しない]
コード    [JIS] [シフトJIS] [JIS句点]
句読点    [、。]  [,.]   [、.]   [,。]
記号     [「」・] [[]/]  [「」/]  [[]・]
入力位置   [システムライン] [エコー]


 上記の設定は私のお勧めです。展開バッファとは入力された文字を分解するために使用され、大きめに確保しておいたほうが、より柔軟に変換されるようになります。辞書バッファとは、辞書ファイルから読み込んだデータのキャッシュとして使用されるため、大きめに確保しておくと、変換が少し早くなります。ただし、両方を大きくすると、使用するメモリ量もかなり大きくなってしまうため、私は展開バッファを最大で確保し、辞書バッファは半分程度に限定しています。辞書バッファについては、RAMDISK などを使うことで、あるていどカバーできますが、展開バッファはそうはいかないので、このようになっています。

 ローマ字入力とし、自動変換を設定しています。入力位置のシステムラインとは、画面の最下行を使うもので、エコーとはカーソル位置で入力を行うものです。アプリケーションさえ対応していれば、エコーの方が良いわけですが、対応していない場合は、システムラインで使うようになります。現在のアプリケーションでは、エコー入力に対応できているので、エコーの設定で問題がでることは少ないです。

 最後に、ADDDRV コマンドを日本語変換 FD に複写しておきます。この際、ADDDRV.EXE だけとしてしまうと、用がなくなったとき切り離せなくなりますので、DELDRV.EXE も忘れず複写しておきましょう。

使用前
  ADDDRV MSIME.DEV

使用後
  DELDRV