LPKKC について


 これはどこぞのドキュメントにも書いてある通り、DOS についている KKCFUNC.SYS の互換品であり、ソースの表現こそ原本のそれと違います(というより意図的に変えてあります)が、やっていることはほとんど同じです。 つまり、

といった機能のはずです。 はずだ、というのは、これらの機能が正しくインプリメントされているかどうか私にはわからないためです。 プログラムにバグがあるかもしれない、という問題ではなく(いや、バグはあるかもしれませんが…可能性は低くないですが……)、KKCFUNC の仕様が正確にはわからないという問題です。 KKCFUNC の仕様がもうすこしオープンだったら手間が省けたのに。 たぶん仕様書がこの世のどこかにあるはずで、もろもろの DOS 用 FEP はそれをもとにして作られているはずなのです。 やはりマイクロソフトと契約しないとダメなんだろうか。 確か MS-KANJI の API 策定にはあのAX協議会が一枚噛んでいたような記憶があるのでひょっとしたら KKCFUNC のやつも関係あるのかしら、とか思うのですがAX協議会っていまどうなってるんでしょうか。

 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 でアセンブルできるはずです。


(1998-1-12)


B A C K