Vz用の漢字入力マクロが欲しくなりました。 機能仕様としては、&gか何かの窓に漢字コードを入力すると、その1文字を 編集テキストに書き込んでくれるという程度でよいのですが。 ただ、TOOL.DEFの^KJがJIS、シフトJIS、区点コードの表示に対応して いるので、入力側もこれらのコードのどれにも対応していてほしいのです。 どのコード体系を使うかの切替はメニューでもよいのですが、一旦設定した ら、次に切り替えるまでは同一のコード体系を使い続けるというか、1文字 入力するごとにいちいちコード体系を指定するようなものであってほしくは ありません。 あるいは、それぞれのコード体系毎にキーアサインを変えてしまって、1つ のマクロでは単一のコード系のみの対応だけど、\や[CTRL]の同時押下でコー ド系を変える、というようなものでも構いません。 なんかありそうなんですが、既存でこういうのってありませんでしたっけ。 あと、誰の作品だったかな、画面に漢字一覧表が出て、十字カーソルのよう なものをカーソルキーで移動させて漢字を選び入力する、というようなマク ロがあったかと思いましたが、名前も作者も思い出せないもので、これも探 せていません。このマクロは持っているはずなんだけどなぁ。試用した記憶 があるのですから。夢かもしれないけど。 もしこれの漢字表の部分でJISや区点コードが表示されていれば、これで 十分代用できると思っています。でも、表示されているかどうかを試せない ので、代用できるかどうかがわからない状況です。 ということで、こちらも併せて教えてください。
> 表示されているかどうかを試せないので、
ありがとうございます。 私が試用したことがあるのはpsymbol.defでした。 どういう表示になるか確認してみます。 (確認中) うぅん、漢字の表のどこかとか、あるいは画面最下行のキー操作を表示して いるところの片隅に、現在選択中というか、リターンキーを押すと入力され る事になる文字のコードが表示されることを期待していたのですが、残念な がらそういう表示はありませんでした。それがあれば、とりあえずは代用が 効くかと思ったのですが。 その他のマクロは、明日あたり確認してみます。> > 表示されているかどうかを試せないので、> えーと,こちらはどういう意味なのか,解りやすくご説明くださいますか。どのマクロを持っているかがわかれば、実際に試せる。 試した結果、入力時に漢字コードがわかれば、代用が効くことがわかる。 しかし、そもそもマクロ名を失念している。 なので、試す事ができない。 だから、入力時に漢字コードが表示されるかどうかがわからない。 ということなんですが。ちとわかりづらかったですね。
> 試した範囲では、jc_in.defとjistable.defで、おそらく用が足りそうです。
> …ということは,FEP が使えない環境でコード入力するのでしょうか。
すみません。 明けボケで、何か間違えているのかもしれないのですが。 標記のマクロ、ドキュメントによると、上下左右の矢印キーでカーソル移動 できる事になっています。ところが、私のメインマシンの環境では、左右の 矢印キーしか効きません。ただ、シフトを押しながらの上下矢印によるペー ジ移動は可能です。 どこを(もしくは、何を)チェックしてみたらよろしいのでしょうか。 VZ.DEFの何かの記述とバッティングしているのかなぁ。 あと、ページ移動を、\[UP]/\[DOWN]だけでなく[RLUP]/[RLDN]でも行いたい と思いました。どこに、というのは大体わかるのですが、どんな記述を追加 すればよいでしょうか。 どなたか、お知恵をお貸しいただけると幸いです。
うちでも,上下が効かないですね。 jistable.def ではコマンドキーテーブルの値を一時的に書き換えて, 通常はメニューの返り値が得られない(複数アイテムのメニューの中で 上下に動いてしまうので)上下キーでメニューをキャンセルして返り値を 得るという裏技を使っています。 今日は時間が時間(わたしは早寝早起きです)なので, 明日詳しく検証してみます。 過去ログがあれば,Yushi さんの技術資料を参照してください。 って,貼り付けた方が早いですね。 ---- 引用開始 出典:FGALPK mes 14 #16139 》16139/16139 Yushi メニューで[UP] [DOWN] 》(14) 96/02/13 00:54 16132へのコメント =T23= * M 1"" &Le(pr,vp+118) &Le(vp+118,vp+110) &Le(vp+110,pr) :A !01 (r+1)??>Z (r&$FF+$100)>!{ (#s) (m"←") (#d) (m"→") (#a) (m"↑") (#f) (m"↓") } &m("%s",m) >A :Z &Le(vp+110,vp+118) &Le(vp+118,pr) * P 1 "Test",10,1 "Yushi" * - Macro Wizard - ---- 引用終わり このマクロが正常に動作するか確認してください。 やっていることは同じなので,これが動けば修正可能なはずです。 うちではきちんと動作しましたので,jistable.def の問題だと思います。 なお,他のコマンドキーに機能を割り当てる場合は, 使いたいコマンドキーが割り当てられているコマンド番号を vz.def で確認し, その番号を記述します。 例えば,[RLUP]/[RLDN] をそれぞれ [PageDown]/[PageUp] として #35/#36 に割り当ててあるなら ^R/^C と同じですが, Smooth Up/Down に割り当ててあるなら #37/#38 なので, (37)と(38)に 35/36 に書いてある命令を書きます。 あれ? うちでもうまくいかないなぁ。どうしてだろう。(?_?)
> 過去ログがあれば,Yushi さんの技術資料を参照してください。> って,貼り付けた方が早いですね。実行してみました。 T23は、うちでもきちんと動きました。って、入力したカーソルキーに応じて、 上下左右の矢印が表示されればよいのですよね。 すると、jistable.defって、和生さんの環境依存のマクロなのでしょうか。 会議室とかで誰もそういう報告をしていないという事の方が不思議なことの ような気もします。 あるいは、200LXでは正常に動くのかな。
環境に依存するというのは確かです。 jistable.def では #39/#40(表示窓の上端・下端)と #e/#x(↑・↓)を キーアサインテーブル上でスワップしています。 #39/#40には元々特殊キーが割り当てられていないので,これ幸いと交換していますが, もしもこれらのコマンドに割り当てている特殊キーを変更している環境では, ちと話がややこしくなります。 まずは自分の環境とすり合せるという作業が発生しますね。 としきさんの環境では Yushi さんのテストマクロが正常に動いたらしいので, #07/#08のコマンドキーに上下カーソルキーを割り当ててあると考えられます。 ま,普通これほど基本的な特殊キーを変更する人はいないと思いますけど。 まず,jistable.def の以下の2行をコメントアウトして,3行目を挿入します。 ; &Im(o=wo+126,0) ;mark #0 使用 ; o.1=o.3=64, &La(vp+110,o) &Ls(vp+178,o) ;#39/#40←→#e/#x &Le(pr,vp+118) &Le(vp+178,vp+110) &Le(vp+110,pr) ワンセットの作業として,次の1行をコメントアウトして2行目を挿入します。 ; &Ls(vp+110,o) &La(vp+178,o) &Le(vp+110,vp+178) &Le(vp+178,pr) 単純に Yushi さんのサンプルを写しただけですけれど, jistable.def ではこの辺りの演算がうまくいってなかったようです。 指摘がなかった理由はわかりませんが,和生さんの回遊魚的開発スピードに 誰も随いてゆけなかったからという事情があるのかもしれません。 ワナマ産のマクロって質・量とも高いので,赤身だけで満腹してしまい, 肝腎のトロやカブトを十分に味わうということが,実はわたしもできなかったのです。 うちではこの変更で上下カーソルが効くようになりました。 次に,他のキーについてですが,ページアップ・ダウンに \[UP]/\[DOWN] を 使っているところを見ると,NEC-98環境で作成されたものだと思います。 ここに [RLDN]/[RLUP] を追加する場合は,まず,[RLDN]/[RLUP] が何のコマンドに 割り当ててあるかを調べなければなりません。 NEC-98用製品版では #37/#38 に割り当てられていますが, そのままであれば,次のように追加します。 (35) { cx-=256,>e } ;#r \[up] 頁↑ (36) { cx+=256,>e } ;#c \[down] 頁↓ (37) { cx-=256,>e } ;[RLDN] 頁↑ 追加 (38) { cx+=256,>e } ;[RLUP] 頁↓ 追加 もしも他のコマンドに割り当ててある場合は, 割り当てているコマンド番号を分岐の条件にします。 例えば,1行スクロールの #31/#32 に割り当ててあれば, (31)/(32) を分岐条件とします。
おかげさまで、使い勝手がイマイチだったところがすべて改善されました。 あと、マクロコードをじっくり眺めたら、区点コードなどを表示してくれる ルーチンもしっかり用意してあったことに気がつきました。ここもコメント アウトを外すことにより、欲しかった情報がすべて入手できるようになりま した。 とりあえずメインマシンのPC-98の上だけですが、ウホウホ言いながら使って います。ポケ3へのポーティングする際に変なことが起きたら、またヘルプ を求めることになるかもしれませんが、多分大丈夫でしょう。 どうもありがとうございました。
タイトルの通りなんですが、どうもうまくありません。 どんな不具合が出ているかというと、あまりにも基本的なところから大量に 出ているので、具体的に述べることはとりあえず控えます。 で、教えていただきたいことは、マクロをざっと眺めてみて、ポインタは大 量に使っているようなんですが、機種依存あるいはVzのバージョンに依存 するような部分は見受けられるか、というところです。 また、そのような依存性が仮にあったとして、それを取り除くことは可能か、 というところです。 もし、ちょっとコードをなめてみた範囲ではその手の依存性は見当たらない という事であれば、あらためて不具合の状況をアップいたします。 また、バリバリに依存している、というようなことであれば、今回の要件に はjc_in.defで対応したいと思います。 以上、よろしくお願いいたします。
> やはりどこでエラーになっているのかわからないと、何とも言えないところだと思います。
> 要らない部分をばっさり落としてやってみるとどうなるでしょうか。
> あと、気になるのは &b のような割り込みタイマでしたっけ、そんなものが引っかかっている可能性はありませんか?
> それから、オアポケはコンソールのフックって言いましたっけ、コンソールファイルへの書き出しは行われているでしょうか。
> 機種に依存するというより DOS のサービスの関係での引っかかりってないでしょうか。
> ただ、EMS使用時にコンソールファイルを使用すると著しく速度が低下す
> るのですが、もしかしたらこれは影響しているかもしれません。
> いわゆるDOS汎用のソフトは動いていますから、大丈夫だと思います。
> まず、最初の起動時、普通に表が表示されます。
> ところが、ここで、下カーソルキーとリターンキーが全く効きません。
> 上カーソルキーと左カーソルキーは効きますが、カーソルを一つ動かす毎に
> 表の再表示が行われるので、とても遅いです。これがコンソールファイルの
> 速度低下の影響かもしれません。
> 2回目に起動すると、漢字表が表示されず、オプションというか、[DEL]キー
> を押した時に表示されるコード入力窓が表示されます。これを[ESC]で抜ける
> と、そこで漢字表が表示される形になります。
> > > 機種に依存するというより DOS のサービスの関係での引っかかりってないでしょうか。> > いわゆるDOS汎用のソフトは動いていますから、大丈夫だと思います。> 汎用というのは,表示周りなどで機種固有のファンクションを使わないとい> うことだと思いますので,VZ は汎用ではないですよね。 大丈夫とは言い切れ> ないと思うのですが,その辺りはオアポケ版のソースを読めないとお手上げ。えと、よくわかりません。 DOS汎用ソフトが動いているからDOSのサービス関係での引っ掛かりが ないと判断したのですが、何か私、読み間違えているようですね。 めざらさんの欲しい情報を確認できる、何か容易な方法ってありませんか?> むう。その動作は,シフトキーが押されている状態で起動したシフト起動動> 作ですね。そうでなければ,マクロバッファが壊れているとしか思えないようマクロバッファ破壊、というのは可能性がありそうです。 ページのアップ・ダウンで漢字表の中身が壊れるのですが、どのように壊れ るかというと、文字化けした文字が表示されたり、Vzの内部で使っている ような文字列が表示されたり、となります。なんかのdefファイルの一部のよ うなものが表示されたこともあったな。 このような状態になってしまうので、その後すぐにマクロバッファからこの マクロを削除する関係か、その他のマクロおよびVzの動作に不具合が出た ことはありません。長時間使っていると影響が顕在化するかもしれませんが。> http://homepage3.nifty.com/mezala/vz/workshop/mtool.html#menuret今夜は宿直で、これから出社です。 夜、余裕があれば試してみましょう。 今夜が無理だと明日以降です。
> DOS汎用ソフトが動いているからDOSのサービス関係での引っ掛かりが
> ないと判断したのですが、何か私、読み間違えているようですね。
> マクロバッファ破壊、というのは可能性がありそうです。
えと、ちょっとだけ改善しました。 漢字表が壊れる件です。 これ、マクロ内部で98とDOSVの条件分岐を使って、変数aと変数eを設定して いますよね。ところが、ポケ3の場合はPK3というシンボルを使わなくてはな らないわけで、つまり、この2つの変数が設定されていなかったわけです。 #1505で、「要らない部分をばっさり落して」とあったときに、条件分岐だけ 落せばいいものを、変数設定まで全て落してしまった結果、設定されないと いう状況も変化せず、やはり漢字表は正常に表示されませんでした。 今回、ここに気がつき、この2つの変数をDOSVと同じ値に設定してやったと ころ、ページ変化で漢字表が壊れるという状況はなくなりました。 が、相変わらず、一部のカーソルキーやリターンキーが効かないという状況 に変化はありません。> 再カスタマイズで読み込んですぐにモジュールメニューで読込みサイズを確> 認し,不具合の後にサイズを確認して異なっている場合は,確実にマクロバッ> ファの破壊ということになると思われます。マクロサイズは変化していませんでした。 あと、#1514で指摘のあった、> 例えば,ですよ。次のようなマクロでキーの値をチェックすることができる> としたら,コマンドに割り当てたキーの値になっているでしょうか。> http://homepage3.nifty.com/mezala/vz/workshop/mtool.html#menuretこれも確認してみましたが、それぞれのカーソルキーを押した時の表示は、 デスクトップの母艦と全く同じ値が表示されました。 う〜ん、ポケ3のvz.defか何かのマクロかで、意図せず値を変えてしまって いるのかなぁ。でも、リターンの値を変えるなんて、大事だよなぁ。
> が、相変わらず、一部のカーソルキーやリターンキーが効かないという状況
> に変化はありません。
> う〜ん、ポケ3のvz.defか何かのマクロかで、意図せず値を変えてしまって
> いるのかなぁ。でも、リターンの値を変えるなんて、大事だよなぁ。
> いずれにも属さないと,セットされないわけですか。むうー,気を付けよう。常套手段としては … #if 98 … #elseif DOSV … #endif として、いずれでもない時の値を事前に設定しておくのでしょうね。 今回は、その他の環境がありうるという事の考慮が漏れたわけなんですが、 その他の環境というやつを作者が使ってなかったわけで、少なくとも作者の 環境では正常に動いていたことでしょうから、ある意味、仕方がないという か、あきらめのつく事例ではあります。> そうだ。テストとして,キーを入れ替えないものを実行してみたらどうでし> ょうね。もちろんそうするとメニューの中でカーソルは上下に動きませんけど,> 少なくともリターンがどのような扱いになるかは解るはずです。キーを入れ替えないものというのは、オリジナルのコードという意味でしょ うか。それで試してみたら、確かに状況が異なりました。 御指摘の通り、上下のカーソルキーは効きませんが、左右のカーソルキーは いずれも正常に動作しました。ただ、リターンキーが効かないという状況は 変化がありません。 これは手がかりになりますでしょうか。