これはどこぞのドキュメントにも書いてある通り、DOS についている KKCFUNC.SYS の互換品であり、ソースの表現こそ原本のそれと違います(というより意図的に変えてあります)が、やっていることはほとんど同じです。 つまり、
LPKKC の制作動機は、一言でいえば Caldera の DR-OpenDOS です。 評価目的での使用は無料らしい(日数制限があった気もする)ので、試しに DOS/V 化してみると日本語ファイル名も通りちょっと感動したのですが FEP がすこし問題でした。 といっても英語 DOS を DOS/V 化するときのいつもの手順で、日本語 DOS から KKCFUNC.SYS を持ってきて SETVER をかますだけのことですが、それなら最初から普通の DOS/V を使えばいいことです。 そうです、疑問を持ったのが後の祭りだったのです。 Windows95 に付属の KKCFUNC.SYS を debug でちょろちょろ眺めながら書いた昔のメモが見つかったのも大きな要因でしょう。 まったく、ヘンに暇だと人は何するかわかりません。
そういうわけで適当にやっつけて、こことベクターのサイトに捨てておいたのですが、今年にはいってからそのものずばりの kkcfunc.sys 互換ドライバが同じディレクトリにアップロードされているのに気づきました。 LPKKC をアップロードする前にそこは一応調べたので、ほとんど同時期かすこし後にアップされたのだと思いますが、どうやらできたのは向こうが先のようです。 常駐量も向こうの方が微妙に少ないようです(LPKKCMIN はかなり小さいですが、よぼどのメモリ猿でない限り、無理に使わないほうがよいでしょう。作った本人が使ってないのでこれは信じてよいです)。 かなりガッカリしました。 ああオレってなんて間が悪い。 内部の処理が微妙に違う(LPKKC のほうがやってることは少ない)のは、元にした KKCFUNC.SYS が違うからでしょうか。 LPKKC は PC/AT 用 Windows95 のものを元にし、向こうは PC-9801 用 MS-DOS 5.0 のものを元にしているようです。 98用の Windows95 についてる KKCFUNC.SYS は PC/AT 用のとやはり違いがあるんだろうか。 あとでプレビュー版の98用 Windows95 を引っ張り出して確認してみよう。
ところで、LPKKC はローカルスタックのサイズを512バイトにしています。 大きいぶんには動作に支障ないので放っておきましたが、もうすこし常駐量を削りたい、とお考えの場合は lpkkc.asm の WRAP21_STACK の値を減らして(16の倍数で)アセンブルし直してください。 MASM, TASM, あとはパブリックドメイン扱いの ArrowASM でアセンブルできるはずです。