【mg.-9】は内部ワークにある前回の FEP 制御パラメタで,&j(0) で FEP を オフにしたときに,それ以前の FEP の状態を保存しておく場所です。 mg.-9 に保存された値を見て FEP の制御をマクロで行うことができます。 ちょっと唐突な導入ですが,以前の純 DOS などと環境が異なるというメモです。 …というのも,以前 HP200LX が壊れたあとの携帯端末として GPD Micro PC を 購入したのですが,[全半],[変換],[無変換]等の存在しない英語キーボードで あることはもちろん,ひどく特殊なキー配列でして,しかも LX のような 便利なシフト系キーロック機能がないし,IME の起動キーが Ctrl+'~' に 固定されています。Ctrl は左のみで '~' も左端なので,超絶押しにくい。 スキャンコードを入れ替えてキー配置を入れ替える設定を使えばどうにでも なるような気もしますが,そもそもキーの数が少ないのでそれも支障あり。 どうせ VZ しか使わないからマクロでオン・オフすればいいや…と思ったけど, なんだかちょっとうまくいかない。…というのも,他の端末ではそのような 面倒が一切なかったので,FEP オン・オフのトグルなんてやったことなかった。 以前 Emmett さんが言っていた… ※ FEP OFF の状態からもう一度 &j(0) をやった場合、98 版 だと mg.-9=0 になるのに、DOSV では mg.-9=9 になる。 …に従って &j(0) (mg.-9==9)?&j(10) をやっても変な動作をする。 &j(0) (mg.-9)??&j(10) だと動いたりする。どうもおかしい。 …というわけで,テストマクロで mg.-9 の値を確かめると, オフのときには 0,オンのときには 1 を示した。な〜んだ…… というわけで,VTDOS 環境では IME がオフのときに &j(0) を 実行すると mg.-9 は 0。オンのときは 1。むしろ覚えやすいや。 =t *m 1 @B "IME ON/OFF" &j(0) &m("OFF") (mg.-9)??{ &j(10) &m("ON") } * …というメモでした。チャンチャン。
めざらさん、亀レスです。> 以前 Emmett さんが言っていた…> ※ FEP OFF の状態からもう一度 &j(0) をやった場合、98 版> だと mg.-9=0 になるのに、DOSV では mg.-9=9 になる。> …に従って &j(0) (mg.-9==9)?&j(10) をやっても変な動作をする。> &j(0) (mg.-9)??&j(10) だと動いたりする。どうもおかしい。>> …というわけで,テストマクロで mg.-9 の値を確かめると,> オフのときには 0,オンのときには 1 を示した。な〜んだ……ということは、VTDOSは PC98 と同じということですか。 気になったので、各種環境で試してみました。> 1 @B "IME ON/OFF"> &j(0) &m("OFF")> (mg.-9)??{ &j(10) &m("ON") }> *このマクロだと他の機種で上手く動かないので、ちょっと変更しました。 1 ^P "IME ON/OFF" &j(0) &m("mg.-9:%d OFF",mg.-9) ; (mg.-9)??{ &j(10) &m("mg.-9:%d ON",mg.-9) } (mg.-9==0)?{ &j(10) &d &m("mg.-9:%d ON:VT",mg.-9) } ;PC98 VTDOS (mg.-9==9)?{ &j(10) &d &m("mg.-9:%d ON",mg.-9) } ;DOSV * マクロ起動キーが @B だとIMEやFEPをOFFに出来ないことがあるので 、^P にしました。 それで mg.-9の値の変化を見るために、&j()の後にインスタント窓の値も載せました。 IME ON/OFF の時の値も載せました。 MS-DOS Player は VZでIME制御出来ていないので除外しました。 mg.-9の値 &j(10) inst窓 &j(0) inst窓 IME:ON IME:OFF -------------------------------------------------------------------- NP2 0 1 1 0 1 0 VTDOS 0 1 1 0 1 0 DOSVAXJ3 0 10 10 9 10 9 Win98ME DOS窓 10 10 10 9 10 9 Win2000 DOS窓 0 10 10 9 10 9 こうして見ると、&j(10)直後の値が違うものもありますが、タイミングの問題か? &j()の直後とインスタント窓の値で mg.-9の値の変化するのは、どのタイミングなのか?> というわけで,VTDOS 環境では IME がオフのときに &j(0) を> 実行すると mg.-9 は 0。オンのときは 1。むしろ覚えやすいや。私はここの記述で、問題と認識できていなかったようです。(^^; # もう少し早く気が付いていたら VTDOS の更新前に相談できたかも・・・ (^^;
> 私はここの記述で、問題と認識できていなかったようです。(^^;
> 環境ごとの表にすると,比較するみたいで却って混乱しませんか?
> 特に「問題」はないと思いますよ。
> 環境ごとに FEP を制御しようとする値は異なりますし,mg.-9 に格納される値も変わるわけで,個々の環境に応じた値を与えたり得たりすればよいことだと思うわけなのです。
> 今回たまたま,変てこな配列の英語キーボードの MicroPC で IME 起動キーがひどく押しにくくて,せめて VZ を使うときだけでも押しやすいキーにしようと思ったら,昔の環境と異なる値だったので備忘録に入れただけです。
> ユーザの多い公開マクロで,マクロ中に FEP 制御させるコードを入れている場合は少し注意が必要なのかもしれませんけど,今やそんな人気マクロ師いないし(^^;)