復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第425回]
●XPではエスケープシーケンスが使えません
前回、WindowsXPでもエスケープシーケンスは使えるはずです、と書きました。
そうしましたら長野県のN様からメールが届きました。
WindowsXPで試してみたのですが、エスケープシーケンスが全く使えません。
Config.ntの設定の仕方が間違っているのでしょうか?
とのお尋ねです。
Config.ntのコピーも添付されていましたが、設定に間違いはありません。
うむむむ?
そういうことになりますと、これは自分で試してみなくてはいけません。
仕方がありませんから、眠りこけておりましたWindowsXPを久方ぶりに起動いたしました。
それで。
試してみたのですが、なるほど、エスケープシーケンスは全く使えません。
ちゃんとConfig.ntの設定はしましたよ。
これ、この通り。
おかしいじゃありませんか。
ちゃんとネットではいくつものサイトで、WindowsXPはConfig.ntにANSI.SYSを組み込むように記述すればエスケープシーケンスが使えるって書いてあるといいますのに。
おお。
これはなんと、本家Microsoft様ではありませぬか。
上の画像のサイトへのリンクはこちらです。
しっかし。
いくら自動翻訳とはいえこれは余りにひどい。
この日本語では全く意味不明です。
英文のほうを読みますと。
むむむむむ?
CMD.EXE?
COMMAND.COM?
おお。
そうか!
これを読みますと、どうやらWindowsXPで通常起動するコマンドプロンプト(CMD.EXE)はANSI.SYSをサポートしていない、のだそうです。
なんてこった。
それで、Config.ntにANSI.SYSを記述するとエスケープシーケンスが使えるようになるのは、COMMAND.COMのほうなんですと。
COMMAND.COMはC:¥WINDOWS¥SYSTEM32にあります(CMD.EXEもそこにあります)。
そうかそうか。
ということで、COMMAND.COMを起動させましたよ。
おお。
エスケープシーケンスが使えました!
それならば。
ということで。
さっそく試してみることにいたしました。
ところが、プログラムを実行してみますと…。
やっぱりエスケープシーケンスは使えません。
おかしなことに、ZB3DOS.EXEでは使えないのに、それを終了すると、ちゃんとエスケープシーケンスは利いています。
これって、どういうこと?
どうもですね。
エスケープシーケンスが使えるのは16ビットアプリケーションだけのようなのですね。
ZB3DOS.EXEは32ビットアプリケーションです。
むむむ。
それで、ほかのサイトにDOSONLYという記述があったのか。
ま。
この際ですから。
DOSONLYも試してみました。
CONFIG.NTにDOSONLYの一文を加えました。
そうしましたら。
むむ。
ZB3DOS.EXEが実行できなくなってしまいました。
そういうことなのでした。
つまり。
WindowsXPの場合、通常コマンドプロンプトとして使うCMD.EXEではエスケープシーケンスはサポートされていません。
COMMAND.COMは、CONFIG.NTにANSI.SYSを記述することでエスケープシーケンスを使うことができるようになりますが、しかしそれは16ビットアプリケーション(XXX.COM)に限ってのことで、32ビットアプリケーション(XXX.EXE)では、やっぱりエスケープシーケンスは使えません。
うむむ。
Windows98SEはCOMMAND.COMですけれど、ちゃんと32ビットアプリケーションでもエスケープシーケンスが使えるようになったんですけどねえ。
Microsoft様のおやりになることは、とんと合点がまいりませぬ。
ワンボードマイコンでCP/Mを![第425回]
2013.6.25upload
前へ
次へ
ホームページトップへ戻る