前書新PocketDOS概要新PocketDOS日本語化
旧PocketDOS(英)XT-CE(英)XT-CE(日)旧PocketDOS(日)コネパク日本語入力(FEP)FAQ and TIPS参照・参考

HP200LX のフラッシュメモリカードを有効活用
Jornada720 DOS遺産継承作戦 6

作戦五号「ついに日本語入力」

とっくに公表されていた

 2001晩秋、読者の方からmailを頂きました。曰く、月刊ASCIIの2001年4月号に日本語入力の記事が出てて、@niftyのFHPPC/MES14/11180でも話題が出ているとのこと。がああ、不覚。早速ASCIIのバックナンバーを買いに走ったのは言うまでもありません。

FEP起動tool"FEPCTRL"

 DOSエミュレータに日本語入力FEPを組込むこと自体は、日本語化が成功した当初から出来ていました。しかし実際に入力が出来なかったのは、FEP起動キーコードがフックされてDOSまで届かなかったからです。私はFEP側のカスタマイズで起動キーコードをフックされないで受取れるなんらかの組合わせに変更すればいいのだろう、と思っていたのですが、この問題を解決するためにASCII誌に紹介されていた方法は、

FEPをコマンドラインで制御できるFEPCTRLを用いてWXPをON/OFFしよう。(ASCII,Vol25,#4 April 2001 p366 薮内雄実:WindowsCE Fan

という、虚を突かれたものでした。そら、そんなtool知らなきゃ気付かんわ。

んで早速このtoolの検索にかかったわけですが、あっさり@niftyベクターにありました。

WX2+を組込む

 今やDOS版日本語FEPの入手は大変困難になっています。そのためか件のASCIIの記事ではJ3100用WXPにDOS/Vバッチをあてて、などという方法が紹介されていますが、その記事はどうもWin9X以降にコンピュータ始めた人に向けて書いてあるようです。私は初めに申しましたとおり、「DOSの知識と郷愁持った人」対象にしていますので、組込むべきFEPは当然持ってるものとして、LXerの標準(JKITの高いほうに付いてたから)、WX2+を組込んでみます。

config.sysには組まない

 そんな素人臭いマネはプライドが許さない、というのはまあ半分冗談で、これにはれっきとした理由があります。

ファイルを重複させるのは無駄
 PocketDOSにせよXT-CEにせよ、config.sys実行中に読込める場所は限られます。日本語ドライバとフォントは仕方ないので我慢もしましたが、巨大なFEPまで無意味に重複(基本方針としてLXから抜いたフラッシュを追記最小で併用することを目指しています)させたくありません。また、辞書の学習成果を分散させてしまうのも賢いことではありません。autoexec.batまで我慢できれば、ファイルシステムリダイレクタ(以降FSR)によりストレージ全域が見えるようになり、今ある箇所の辞書やドライバが使えます。
いらないときははずしておきたい
PocketDOSにせよXT-CEにせよ、EMSのバージョンは3.2です。WX2+はEMS4.0にでないと追出すことができず、メインメモリを圧迫します。となると、必要ないときはFEPを外しておかないと、コンペンショナルメモリが心許ない事この上ないわけです。デバイスドライバをconfig.sysで組んでしまったら、もう外せなくなります。
いまさら三番煎じなんかWEBに載せたってしょーがあんめえ。

前準備 環境確認

 さて、では実際に組込んでみましょう。今度の例は少々長い前置きが必要です。いままではエミュレータが何処にインストールされていようと、エミュレータの機能により名称固定されているドライブでのお話しかしてこなかったので、誰でも共通だったのですが、今度はファイルシステムリダイレクタので割り当てたドライブを利用しますので、人によってドライブレターやディレクトリ構造が大きく異なります。私は以下の前提で話をすすめていきますので、みなさんは適宜ご自分の環境に読み替えてください。

下準備 ツール類の調達とデバイス組込みファイルの準備

用意するもの

  1. FEPCTRL
  2. LPKKCKKCFUNCサポートドライバKKCFAKEなどのKKCFUNC.SYS互換ドライバ
  3. 任意の日本語入力FEP(DOS/V対応版)

 FEPCTRLは、適当にパスを切った位置に解凍します。必要なのはFEPCTRL.COMだけです。私の環境の場合は、E:\FRというディレクトリにオンラインツールを無雑作に突っ込む習慣があるので、ここにおきます。

 KKCFUNK.SYS互換ドライバは、普通ですと起動時に読込むドライバなので、A:\FREEなどconfig.sysからでも見える位置に置くものですが、今回は、FEPのドライバ群と同じ位置、私の例ではE:\WX2\におきます。

FEP組込み用ファイルの作成

 LXのフラッシュデバイスにあるJKITによるconfig.sysは、素のままだとこの様な雰囲気ではないでしょうか。

files=20
buffers=20
shell=d:\dos\command.com /p /e:512
rem add by O.S.W 
device=a:\jkit\lxjex.sys
device=a:\jkit\lxfont.exe -fa:\jkit\lxfont.ini
device=a:\jkit\lxdspd.exe -fa:\jkit\lxdspd.ini
device=a:\jkit\lxansi.exe
device=a:\jkit\lxemm.exe
device=c:\jkit\lxkkc.sys
rem use only FULL SET
device=A:\wx2\wxk.sys /a1
device=A:\wx2\wx2.sys /a1 /dA:\wx2.dic

 着色した最後尾4行が(rem文混じってますが)JKITのフルバージョンに付属のWX2+を組み込んでいる部分です。末尾2行を新規テキストファイルにコピーし、次の様にドライブレターを修正後、wx2.devとでも命名してe:\ドライブのルートにおきます。

device=E:\wx2\wxk.sys /a1
device=E:\wx2\wx2.sys /a1 /dE:\wx2.dic

 で問題はLXKKC.SYSですね。勿論これがJKIT版のKKCFUNC.SYS互換ドライバ(dos5.0以上でFEPの組込みに必要)ですが、そもそもPocketDOSのROM-DOSでは動かないJKITからこれだけ持ってくるというのも何ですので、先に上げたものをどれかを使いましょう。LPKKCMIN.SYSまで含めて、どれでも使えることを確認しました。で、KKCFUNC.SYS互換ドライバも一緒に書込んだFEP組込みファイルがこれです。折角ですから(無駄かもしれないけど)できるだけUMBに放り込むべく悪足掻きもしておきます。

e:\wx2.dev

devicehigh=E:\wx2\lpkkcmin.sys
devicehigh=E:\wx2\wxk.sys /a1
devicehigh=E:\wx2\wx2.sys /a1 /dE:\wx2.dic

 このdevファイルは、PocektDOSとXT-CE、なんでしたら元のLXやモバDOSでも共通に使えます。

PocketDOSにWX2+を組込む

中級編1 autoexec.batに組む

 config.sysに組んでしまうのが初級ですが、それには触れません。でま、定番ですがautoexec.batに組んでみます。

 PocketDOSの互換OS部分であるROM-DOS6.22では、古の定番ADDDEV/DELDEVが通りますので、10年選手には簡単です。autoexec.batのできるだけ前方でadddevを解凍したディレクトリにパスを切ります。私の環境の場合はLX時代から前述のe:\FR\においてありましたんで、こんなかんじです。

path=e:\fr;%path%

そして、autoexec.batできるだけ後ろに以下の一文を加えます。

adddev e:\wx2.dev

 いえ、ほんとにこれだけです。メモリ関連のエラーを出しながらも、下位に常駐します。エラーメッセージが見たくない方はwx2.devの中に記述したWXの常駐位置オプションを削除して下さい。私はEMSドライバの改良に望みを託して、あえてそのままにしています。

中級編2 日本語FEPの活性化、不活性化、取はずし

 コマンドラインに以下の様に入力すれば、日本語入力出来るようになります。

FEPCTRL on[Retune]

 以下の様に入力すれば、日本語入力は解除されます。

FEPCTRL off[Retune]

いずれの場合も、on/offは小文字で入力しなければなりません、って…あー、うざったい。なにこれ、普通だったら2キーで済むものを。こういうときはバッチ組んじゃいましょう。勿論私はそれもe:\fr\におくわけです。

FEP起動バッチ FEPON.BAT

E:\fr\FEPCTRL on

FEP停止バッチ FEPOFF.BAT

E:\fr\FEPCTRL off
キー入力が短縮され、しかも大文字だの小文字だの気にせず済みます。あ、もっと短い名前でもいいですよ、覚えてられて重複しなければ。で、何らかの理由(ゲームとかゲームとかゲームとか)でメモリを空けねばならない場合は、以下のように入力します。
deldev[Retune]

 このコマンドは組込まれたのと逆順でだけドライバを外しますので、それ以上の指定は必要ありません。でも、再び日本語FEPが必要になったときは、

adddev e:\wx2.dev[Retune]

と、ドライバファイルの指定が要ります。

上級編 使うときだけ組込む

 上の操作を分析すれば、FEPを組込んでかつ起動した時ににだけ日本語が打てるんであって、起動してない常駐FEPは単なるメモリのお荷物であるということはすぐ判ります。そこで、FEP起動・停止バッチをそれぞれ以下のようにすれば、その平時の無駄なメモリふさぎを避けることができます。もちろん、そういうマネをする際には、config.sysでもautoexec.batでもFEPを組込んではいけません、無駄に重複してしまいますので。

FEP組込起動バッチ FEPADD.BAT

adddev e:\wx2.dev
FEPCTRL on

FEP停止削除バッチ FEPDEL.BAT

FEPCTRL off
deldev

さらにさらに。そもそも日本語起動してどうするのかといえば、フツー、コマンドラインに流れ去る日本語なんか書きたいわけでなく、アプリの内部で日本語を記録したい訳です。ですから、日本語入力が必要なアプリケーションの起動バッチとして事前のFEP組込みから事後の取り外しまで全部一連に書いてしまうのが一番手間いらず、ということになります。以下に示すのはフリーウエア日本語エディタの定番の一、JEDの日本語起動バッチの例です。

JED日本語編集バッチ JEDFJ.BAT

adddev e:\wx2.dev
FEPCTRL on
jed %1 %2 %3 %4 %5 %6 %7 %8 %9
FEPCTRL off
deldev
JEDで日本語入力

 「JED」の位置にお好みのアプリケーションの起動コマンドを書きかえれば、そのアプリ用の日本語入力バッチが出来上ります。最初からバッチファイルで起動するタイプのアプリケーションでは、そのバッチの前後をFEPADD.BATとFEPDEL.BATではさみ込むように手を加えてしまいましょう。

中の上 組込みっぱなしだけどアプリ起動バッチは使う

 上級技は、確かに目論見どおりに動きはするんですが、どうもその後エミュレータが不安定になって、何かの拍子(気難しいアプリの起動や、同バッチの2度目以降の起動など)にエミュごと落ちやすくなる様な気がしなくもありません。そこで、FEP自体はautoexec.batで組込んで捨置き、次例の様にアプリとFEPの起動だけ連携させるのが実用的かもしれません。

JED日本語編集バッチ JEDJ.BAT

FEPCTRL on
jed %1 %2 %3 %4 %5 %6 %7 %8 %9
FEPCTRL off

XT-CE / PocketDOSの新モード上のPC-DOS7にWX2+を組込む

 本物のAT互換機上でも、PC-DOS7.0ではADDDEV/DELDEVが走りません。setverで騙してもだめです(自分のsetverにadddevが登録されていたのを発見して思い出しました)。代わりに(?)純正でdynaloadというほぼ同用途の外部コマンドが用意されていて、こちらが使えます。但し、どうもこのdynaload、デバイスを組むだけで外せないようです。となると、ROM-DOSの場合の「中級」、つまりautoexec.batで組み込む事しかできなさそうです。その場合の書式は、autoexec.batできるだけ後ろに以下の一文を加えます。

dynaload e:\wx2.dev
以上です。これで、「中級」「中の上」としてご紹介した、adddev/deldevを含まないバッチは同じように使えます。

悪あがき WX2+の起動オプション

jkitの別冊付録に拠れば、WX2+2.71の常駐に関するオプションは次のとおりです。
WX2??.SYSのパラメータ
(WX2??.SYSのデバイス行およびWX2SYS.INIの OPTION= で有効です)
パラメータパラメータ指定時の解釈パラメータ未指定時の解釈
/A{?1}使用する拡張メモリ種類1,2,3
?1 拡張メモリ種類
1 EMS
3 EMS
5 EMS+UMB
使用しない
/D{?1}辞書パス名指定
?1 辞書パス名
辞書パス名 A:WX2.DIC
/D*{?1}システム辞書パス名指定
?1 システム辞書パス名
辞書はひとつだけ使用する
-中略-
/INI={?1}環境ファイル名指定
?1 環境ファイル名
環境ファイル名 WX2??と同じディレクトリのWX2SYS.INI
HP200LX日本語化キット ユーザーズマニュアル WXII+ Ver2.71 MIFES-mini Ver 2.31 p.47〜 付録7.起動オプション

なんじゃそら、と気づかれた方は鋭いですが、これでいわゆる「ママ」なんです。埒があかないので、WX3のマニュアルを引っ張り出してみました。

●WX3??.SYSに付加する起動オプション
<WX3??.SYSのコマンドラインおよびWX3SYS.INIの option= で有効なもの)
パラメータパラメータ指定時の解釈パラメータ未指定時の解釈
/A{n}使用する拡張メモリ種類1,3,5
n=拡張メモリ種類
1 EMS
3 EMS
5 EMS & UMB
使用しない
/D{n}辞書パス名指定、辞書パス名
n=辞書パス名
C:WX3AI.DIC
/D*{n}システム辞書パス名指定
n=システム辞書パス名
辞書はひとつだけ使用する
-中略-
/INI={n}環境ファイル名指定
n=環境ファイル名
環境ファイル名 WX3SYS.INI
-後略-
●WXK.SYSに付加する起動オプション
<WXK.SYSのコマンドラインでのみ有効なもの)
パラメータパラメータ指定時の解釈パラメータ未指定時の解釈
-前略-
/A{n}使用する拡張メモリ種類1,2,3
n=拡張メモリ種類
1 EMS
2 HMA
3 EMS+HMA
5 EMS & UMB
使用しない
日本語フロントエンドプロセッサWXIII Ver3.0 forDOS/V ユーザーズマニュアル p.284〜 APPENDIX

 …これまた困ったものですが、すこしは何かが見えてきました。基本的にマニュアル作成時の手抜き事故で、またWXn??.SYSはHMAにいかれないんでこういう表記になるんですね。しかし、安全牌なUMBを単独で使うオプションが見当りませんし、別の場所ではこんな記述も。  

・EMS/HMA対応
 EMS拡張メモリボ−ド(Ver4.00以降)およびHMA拡張メモリボードに対応します。EMSボードを使用した場合約20KB、HMAを使用した場合は約10KB以下のユーザーズメモリで動作し、大容量のアプリケーション・ソフトウェアと組み合わせて使用できます。なお、DOS5.0でDOS=HIGHの指定をした時には、HMAは使用できません。
同ユーザーズマニュアル p.9 1-2.WXIIIの特長
・拡張メモリ
EMS
EMS拡張メモリ(Ver4.00以降)を使用されている方は、「使用する」を選択してください。WXVが使用するユーザーズメモリを約20KB以下にすることができ、大容量のアプリケーション・ソフトウエアと組み合わせて使用できるようになります。
HMA
HMA拡張メモリを使用されている方は、「使用する」を選択してください。WXVが使用するユーザーズメモリを約10KB以下にすることができ、大容量のアプリケーション・ソフトウエアと組み合わせて使用できるようになります。 ただし、DOS5.0でDOS=HIGHの指定をしたときは、HMAを使用できませんのでご注意ください。
同ユーザーズマニュアル p.139 基本ユーティリティ WX3SET

…やはりUMBに逃がせるとは書いてありません。また、DOSのメモリ管理の簡単なおさらいをしてみると、こんな感じです。

DOSのメモリ管理
メモリ領域概要適応
ユーザーズ最下位640KB8086以降
UMB640KBから1MBまでの384KBのシステムメモリのうち未使用領域8086以降
EMS640KBから1MBまでのどこかに16もしくは64KBの窓をあけ、
別途用意したメモリ領域をバンク切り替えで利用
8086以降
XMAプロテクトモードで利用可能な1MB超領域80286以降
HMA1MB超XMA領域の最初の64KB80286以降
EMAHMAより後ろ80286以降

 つまり、CPUが80186エミュでEMSがver3.2では、やはりWXはどの道どこにも逃れようがないのでした。


戻る進む

Sectionのtopに戻る

Homeに戻る