一括表示 |
---|
(以下で、何回か小さな修正をしています。既に前にみていて環境設定の
参考にした方は、混乱しないように。正しくあろうとしております。)
ふれまわっちゃう!
皆さま、ついにこの日が来ました!
あじゃさんも、 キャロルさんも、 あきろさんも、その他その他の皆さま方、
Win XP/7/8/8.1 で IME 制御付きVzで、「Vzよ、永遠なれ」を一緒に歌っち
ゃいましょう!
なんだそれ? ☆\(^^;)
VTDOS が、IME の制御に成功しました。 きっと近日中に 10# さんから発表が
あると思いますが、VTDOS 側が ias の偽装ドライバ的仕組みをもち、CKWV と一
緒に MS-IME(IME の ATOK も)を制御しちゃうのです。よく分かんないんだけど、
あはは。
たぶん、近日発表予定の VTDOS 1.39 にて。
早い話が、FEP感覚で、VzからIMEが使えてしまうのです。ばっちり制御され
てますよ。Vista以降、16ビットだから日本語を扱うのが無理と言われてきた
僕らのVzが、ほとんど旧8時代と同じ姿で現れました。ワイド・テキストつきで。
ゆっくりやりましょうね。以下は、VTDOS未経験な方へのガイドです。予習ね。
経験ありでも、僕みたいにおおかた忘れてる場合もあるでしょう。この場合、
復習と予習(139リリースは、まだだから)になります。
(1)CKWV を導入(インスールも何も要らない。レジストリいじらない。解凍
するだけ。c:\ckwv が普通だと思うけど)。CKWV Rev.7 です。ckwv.exe を
クリックで ckwv が起動です。でも、これはちょっと待ってね。
VTDOS と連動するよう設定してあるはずですから、ほとんどなんの調整もいら
ない。僕が ckwv.cfg でいじってるのは、以下ぐらい。
CKWV.CFG----------------
Ckw*fontSize: 22
Ckw*geometry: 90x38-600+0
------------------------
(2)VTDOS。 まだの人はすぐにレジストしたほうがいいです。僕は試用
に失敗して、面倒だから、「シェア代金送りますから、起動させるのをお許しく
ださい」 とかメールしました。 ¥4320なり。
CKWV 単独で起動させるには、ckwv.cfg をいじらなければなりません。VTDOS
の設定を先にしておきましょう。
VTDOSの設定(かつてのあきろさんの説明が絶妙でした。Vz Wiki参照のこと。
この例はCKWV+VTDOS+VZを起動させる完成形)。
VTDOS.CFG---------------
BREAK=1
USECMD=1
TMP=C:\tmp
SHELL=c:\vtdos\command.com /e:8192 /p /msg /k c:\vtdos\vzks3.bat
;SHELL=c:\vtdos\command.com /e:8192 /p /msg /k c:\vtdos\vtvz.bat
WIDTH=90
HEIGHT=38
POWERSENSITIVITY=3000
DISKFREE=K
------------------------
僕のはこんな感じ。
(3)command.com、必要です。
どうにか入手しましょう。 やはり、PC DOS 6.3 / 2000, MS-DOS 6.2V あたり
が良さそう。 買うしかないです。ヤフオクで何とかしてください。PC DOS 2000
は、新品がアマゾンで1万円。DOS での PCMCIA サポートも実際上使えなかった
し、 V-text もあれだったんですが、しょうがないなら、しょうがないですよ。
Vzが、おじさんな僕らには、一生ものになるんですから。
vzks3.batは、普通。
------------------------
@ECHO OFF
PATH=C:\VTDOS;C:\;C:\VZ;C:\TOOL;C:\BIN;C:\BAT;C:\WINDOWS
SET VZDEF=C:\DEF\
SET VZBAK=\TRASH
SET VZPATH=C:\ C:\DEF C:\TK C:\DOC
SET VZSYM=S16 ME
SET LFN=Y
PROMPT $P$G
cls
CHKTSR 2F VWX
If not errorlevel 1 c:\vz\vwx -z2 -l6144 -x1 -v1 -w
CHKTSR 15 VKEYC
If not errorlevel 1 c:\vz\vkeyc
c:\vz\vzks3 -z
c:\vz\vzks3 %1 %2 %3 %4 %5 %6 %7 %8 %9
------------------------
(4)【1番大事なのはコレ!!!】
vz.com は、VZK07s3 を使うこと。10# さんは、FEP 制御なんか知らない人な
のです。プロのプログラマーだから、エディタはプログラムを書くために使って
る。FEP/IME を立てたまま、マクロを使ったりしない。だから、何となくこの版
で止まった。konno さんのその後の改変が好きとか嫌いとか、まったくなくです。
ただ、この版で調整してあるそうなので、ぜったいこの版の vzibmj.com を使
うこと。
(5)IMEとVzのキーバッティング回避。
MS-IME のキー設定で、「変換」= IME オン・オフ(ATOK 派の僕の場合)、
「無変換」=空にする(Vzから NFER として使える)かな。
(6)CKVW.EXE と VTDOS.EXE
CKWV.EXE(場合によっては CKWV.CMD の場合もあるとか)のショートカット
を作って、クリックで、はい、IME 制御つきVzが起動してくれます。
CKWV が VTDOS を呼び、VTDOS が Vz を呼ぶわけです。 途中に command.com
を入れて(知らない人いないと思うけど、忘れてる場合もあるかな、と)。
ということは、上でしてきた環境設定で、
CKWV をクリックすれば CKWV+VTDOS+Vz が起動し、
VTDOS をクリックすれば、CKWV なしで、VTDOS+Vz が起動するわけです。
CKWV をクリックと VTDOS をクリック。
この2つのやり方で、何か問題が発生したとき、原因の切り分けがやりやすく
なります。「そこを別々にやってみてよ」と前に 10# さんに言われたのでした。
雑な説明でごめんなさい。あきろさんの記事が役に立ちます。
がんばってくださいね。
追伸1: VTDOS が完成されているとは、僕は思ってません。おい、わざわざ
大声で言うな >文太。10#さんに失礼だろう!
ともかく、完成してないものを完成させるのは、ユーザです。誰もがVzをと
ても限定された使い方で使ってます。10# さんの使い方は我々、あるいは僕とは
ずいぶん違う。だから、皆で使うのが良いと思うのです。Vzもそんな風にして
今の姿になった。
追伸2: IME 制御に関して、&j(n) 関数は、n>0,0,-1 が引数になります。
ATOK8 用とかに &j(10) なんて決め打ちしてるマクロな方も、修正する必要
はありません。
追伸3: IME 制御のテストをざっとしました。facemenu.def もちゃんと制御
していました。 マクロ関係はテストがとても少ないですが、インスタント窓で
「&j(1)」が効かなかったのが、ちょっと、むにゃむにゃでした。マクロの中の
&j(1)は効くんですけどね。
(これについては see #6452。今回、問題視すべきことではない。VTDOS に直接
起因することではないと思われるから。記憶しておくべきは、&j(1)はVTDOS下で
は、インスタント窓で効かない。が、マクロでは普通に通じる)。
追伸4:僕のFEP関連オプションは以下です。あまり関係ないような気がしてい
るのですが。
VZ.DEF------------------
FP+ ;vjeb/mttk/atok を制御
FR- ;日本語入力モードで起動
FK+ ;拡張ファンクションキー
FQ- ;プリフィックスキー押下げ時にFEPをOFFにする
;(隠しオプション)DOS/Vでは意味がない? by m.gann
;96/09/17 (15) #01335
------------------------
FTはとりわけ指定せず。
追伸5:きっと konno さんは、FEP 制御でずっと頭を悩ませてきたと思いま
す。とりわけ僕なんかのために。ありがとうございます。でも、僕もそうですが、
死んで肥やしになるのが生命の本質です。何一つとして無駄なことはありません。
文太のヒステリーに耐えてきてくれたこと、そして、これからも耐えてくれる
だろうことに、ただただ感謝します。本当に。Thanks in advance(先にお礼を
言わせてくださいね)とか。(^^; ありがとう。
追伸6:超保守派なものですから、僕は主に VTDOS をXPで使ってます。 カ
ーソル移動がめっちゃ速くて、NTVDM 環境よりずっと快適です。これもIME制
御のおかげ。そして、ワイドテキスト。カーソルがきびきび飛び回ってくれるV
zって、ほんと気持ちがいい。これが純DOSや WinME の快適さだったのです。
イエイ! 猿飛び佐助! 30年若返ったみたい。
> 皆さま、ついにこの日が来ました!
> VTDOS が、IME の制御に成功しました。 きっと近日中に 10# さんから発表が
> あると思いますが、VTDOS 側が ias の偽装ドライバ的仕組みをもち、CKWV と一
> 緒に MS-IME(IME の ATOK も)を制御しちゃうのです。よく分かんないんだけど、
> マクロ関係はテストがとても少ないですが、インスタント窓で
> 「&j(1)」が効かなかったのが、ちょっと、むにゃむにゃでした。マクロの中の
> &j(1)は効くんですけどね。 ? ちょっと複雑なマクロではあるんでしょう。
> 文太のヒステリーに耐えてきてくれたこと、そして、これからも耐えてくれる
> 追伸6:超保守派なものですから、僕は主に VTDOS をXPで使ってます。 カ
> ーソル移動がめっちゃ速くて、NTVDM 環境よりずっと快適です。
> POWERSENSITIVITY=3000
>いったい何が起こっているのかと、理解するのに時間がかかりました。(^^;
>ところでDOSV版VZで$IASって完全対応してましたっけ。MSKANJIしか見てないもので。
>FEPがらみのソースを見ていると$IASの部分は怪しい感じがしたような気が。
>インスタント窓で「&j(1)」が効かなかったのも関係ありそうな気がしてます。
>10#さん、文太さん、ありがとうございます。
(ちょこっと修正してます。)
以下は、2日前に、10# さんに送ったレポートを少し整理したものです。
足りないところや間違っているところは、突っ込みをいれ、正しい答えをお教え
ください。VTDOS新版は必要ありません。Vzとはこう振る舞うものである、とご
指摘いただければよいのです。
あるいは、この項目抜けてない? でも。
ま、後日、必要があればご確認ください。VzにおけるFEP制御は、どこでなされ
るのか、という課題です。
マニュアル操作のVzで、IME制御は、完璧にできている、という感想でした。
僕がVzの動きを間違って理解してる可能性はありますけどね。
---------------------------------------------------------------------------
【CKWV Rev.7 + VTDOS 139 + VZK07s3: iasルーチン経由でのMS-IME制御について】
FEP制御とは、必要な場面でVzがFEPをオフし、そして作業が済んだらVzが
FEPを復帰=オンにすることです。オフであったらオフのまま。[ESC]Oとすると、
FEP OFFになり、キャンセルすると、ONに戻る。これ。
プリフェクスキー すべてOK
* C コマンドキー
00 ^Q ^K [ESC] ^O ^I ^N ;2ストロークキー(最大6個)
もちろん、コマンドキー(^Aなど)も OK
s==1(入力窓)−−主にきちんと復帰するか、制御なしは制御なしか
Open File 【入力ファイル】 [ESC]O (#O) OK
Save As 【出力ファイル】 [ESC]S (#S) OK
New File 【新規ファイル】 [ESC]N (#N) OK
Append to 【追加ファイル】 [ESC]A (#A) OK
Path/mask 【パス・マスク】 filer P ((#P)) OK
Search 【検索文字列】 ^QF (#F) OK
Replace 【置換文字列】 ^QA (#56) OK
Put String 【複写文字列】 ^KA (#61) OK
Line 【行番号】 ^QJ (#J) OK
Rename 【ファイル名】 [ESC]P (#82) OK
Title String 【タイトル文字列】 ^KT (#84) OK
(vz.def 「* T テキストウィンドウ」より)
s==2(コマンドライン)
編集画面から OK
ファイラから OK
s==3(ファイラ)
編集画面から(#O #m) OK
コマンドラインから(shift+return) OK
s==4(メニュー・yes/no 1文字入力) 両方OK
--------------------------------------------------------------------
VTDOS (iasでの制御つき) XP + ATOK8
start, fr,0; mg.-9,0 start, fr,0; mg.-9,0
FEP on, fr,0; mg.-9,0 FEP on, fr,0; mg.-9,0
FEP off, fr,0; mg.-9,1 FEP off, fr,0; mg.-9,10
FEP back, fr,0; mg.-9,0 FEP back, fr,0; mg.-9,0
----------------------- -----------------------
#O, fr,0; mg.-9,0 #O, fr,0; mg.-9,0
#F, fr,1; mg.-9,0 #F, fr,1; mg.-9,0
#J, fr,0; mg.-9,0 #J, fr,0; mg.-9,0
----------------------- -----------------------
#E, fr,2; mg.-9,1; sm,2; s,2 #E, fr,2; mg.-9,10; sm,2; s,2
filer1, fr,0; mg.-9, 0; sm,3; s,3 filer1, fr,0; mg.-9, 0; sm,3; s,3
filer2, fr,2; mg.-9,1; sm,3; s,3 filer2, fr,2; mg.-9,10; sm,3; s,3
^^^^^^^ここからして、&j(1)でMS-IME起動ということなんだな。
^^^^^^^ 1 だけでなく、1以上の数字。
ほぼ同じ、おめでとう!!! ハレルヤ!!! メリークリスマス!!!
新しい時代の始まりです。パチパチパチ。
以下のマクロを使用して、上を調査した。
=== Macrotmp by B ===
;FEP制御の仕組みを知ろうとする、たぶん徒労に終わるもがき
* M
50 ^^ "Macrotmp"
?. &00 &01 &02 &03 &04 &05 &06 &07 &08 &09 ;バッファ確保
&20
&Sp(a,"start, fr,%d; mg.-9,%d",fr,mg.-9) ;a,b,c .. と順にデータ格納
; --- &j(n) func ---
&j(10)
&Sp(b,"FEP on, fr,%d; mg.-9,%d",fr,mg.-9)
&j(0)
&Sp(c,"FEP off, fr,%d; mg.-9,%d",fr,mg.-9)
&j(-1)
&Sp(d,"FEP back, fr,%d; mg.-9,%d",fr,mg.-9)
; --- commands, Change sysmode (s) ---
&20
#O ;s==1
&Sp(e,"#O, fr,%d; mg.-9,%d",fr,mg.-9)
#[
&20
#F ;s==1
&Sp(f,"#F, fr,%d; mg.-9,%d",fr,mg.-9)
#[
&20
#J ;s==1
&Sp(g,"#J, fr,%d; mg.-9,%d",fr,mg.-9)
#[
;-----
&20
#E ;s==2
&Sp(h,"#E, fr,%d; mg.-9,%d; sm,%d; s,%d",fr,mg.-9,sm,s)
#[
;--- ここまでFEP制御、完璧。以下は駄目
&20
mx[+,
#O #m ;s==3
&Sp(i,"filer1, fr,%d; mg.-9, %d; sm,%d; s,%d",fr,mg.-9,sm,s)
#[ #[
mx],
;--- このルーチンはFEP制御が効く
&j(10)
&20
mx[+,
#E #98 ;s==3
&Sp(j,"filer2, fr,%d; mg.-9,%d; sm,%d; s,%d",fr,mg.-9,sm,s)
#[ #[
mx],
&?("%s",a) #m &?("%s",b) #m &?("%s",c) #m &?("%s",d) #m
&?("-----------------------") #m
&?("%s",e) #m &?("%s",f) #m &?("%s",g) #m
&?("-----------------------") #m
&?("%s",h) #m &?("%s",i) #m &?("%s",j) #m
&m("") .
;----- local macros; buffers & init routine -----
00: a=5+$,."$(40,00)$[64]"
01: b=5+$,."$(40,00)$[64]"
02: c=5+$,."$(40,00)$[64]"
03: d=5+$,."$(40,00)$[64]"
04: e=5+$,."$(40,00)$[64]"
05: f=5+$,."$(40,00)$[64]"
06: g=5+$,."$(40,00)$[64]"
07: h=5+$,."$(40,00)$[64]"
08: i=5+$,."$(40,00)$[64]"
09: j=5+$,."$(40,00)$[64]"
20: fr=0, mg.-9=0,
*
--------------------------------------------------------------------
でも、マクロの関数。&j(n)で、は、はまった。
最大の難関といわれるfacemenu.defはいける。
が、m.gann作インスタントマクロの窓で「&j(1)」を再び。ぐぐぐぐ。効かない、、、。
XP+ATOK8(FEP)では効く。どういうことだろう?【未解決、僕には分からないだろう】
>138以降かな、32ビット外部コマンドが動かなかったりしてますが環境設定もあわせて
>見直さなくては。
>文太さんのところでは問題ないですか。
「マクロ文の実行」(通称「インスタント窓」)を裸にしました。
=== Macrotmp by B ===;
* M
50 ^^ "test1"
a="&j(10)",
&e(a)
51 ^\ "test2";"マクロ文の実行"
a="&j(10)",
&Sc(pw,a)
&e(pw)
52 ^A "test3";"マクロ文の実行"
&m("hit return")
&g("【マクロ文】",10,r"&j(10)")
&e(pw)
*
現象把握に間違いはないようです。
VTDOS+IME NTVDM+FEP(atok8)
50 OK OK
51 OK OK
52 NG OK
こんな結果になりました。
本物のマクロ師にしか解けない謎。僕には無理。
けっこうVzマクロを思い出したみたいだけど。
CKWV+VTDOSのIME制御の話なので、ま、Vzってこういう不可解な奴
なんだよなぁ、でいいと思います。
&j(1)が効くんだから。
文太さん> VTDOS+IME NTVDM+FEP(atok8)> 52 NG OK
おお、ほぼ特定できたんですね。インスタントの窓、 &g() の窓ですか。
&g窓はほんとにクセものですね。
でもこれ以外は完璧みたいなので実用には問題ないですね。
あとはじっくりやりましょう。
> おお、ほぼ特定できたんですね。インスタントの窓、 &g() の窓ですか。
> &g窓はほんとにクセものですね。
konnoさん、さすがです。そして、どんぴしゃです。>&j(1) fr- だと IME ON になりました。タイミングとかでしょうかねぇ。
再現できました。
はい、 僕も VTDOS のIMEチェックを網羅的にしていたときに、このイディ
オムがとても気になったのです。「もしかしてずっと使ってきたこの書き方、間
違っていたのかなぁ」、と。
; --- log selection (control FEP & mode)
&j(0) ((mg.-9)[, &j(0) fr+, ;FEP info save (ATOK, WX)
:b &s &m("") fr-, ((mg.-9)], &j(-1) ;FEP restore; thanx to Musai.
(blogjumpより)
とかです。
&j(n) してから、frを操作してる。
でも、インスタント窓で、(fr-)&j(1) でも効きました。は?
でも、やはり、何がしかの理由で、このイディオムは正しいんですね。
訳はわかりませんが(するとあのfr, mg.-9リストアップマクロも怪しいものですね)
やっぱり、伝統を守ります。昔から伝わってるものには、理由は分からぬとも、とりあえず
従っておけ、と。
Vz、お前は深いのぉ、やっぱり。
ありがとうございました。Win7からでーす。カ、カーソルがとろい、、、。
----------------------------------------------------------------------------
&j(0) ((mg.-9)[, &j(0) fr+, ;FEP info save (ATOK, WX)
:b &s &m("") fr-, ((mg.-9)], &j(-1) ;FEP restore; thanx to Musai.
----------------------------------------------------------------------------
それほど多くはないですが、僕はこれを何も考えずに使ってきました。今回初めて
考えてみたのですが、これがこうでなければならない理由や理屈については、榊原さん
発表の「frをコントロールすることで、VzのFEP自動制御の裏をかく」作戦では
説明がつかないことだけ知りました。
榊原さんの作戦は、あくまで窓開閉時対策だからです。
とはいえ、あきろさんが報告されているのを見かけたのですが、たとえシステムモード
が変わらない&j(n)でも、fr操作が必要な場合がある、というのは、やっぱり本当そうです。
ですから、&g()窓の特殊性だけではなく、きっと、&j(n)関数には、場合によっては
frが絡んでくる、と考えいることにしました。
分かりませんけれど。
イディオム、ママ、でゆきます。動いているものには手をださない主義。
>もし、おかしな環境変数が出来ているようであれば、setの代わりに、$xsetを
>使ってみてください。
>command.com 6.3を使っていない文太さんはこの問題に遭遇していないかも
>しれません。
> この"$IBMAIAS"というファイル名は終端にNUL文字が必要で、オリジナルの
> ソースにはあるのですが、k07s3のソースには見当たりません。
> VTDOS1.38で32bitプロセスを起動できない件ですが、
> 僕が調べた限り、command.com 6.3 と freecom では、
> "KEY=value"
> といった、通常の様式でない異常な環境変数を作ってしまう場合があるようです。
> 不正な環境変数は、
> KEY
> という形式で、右辺と左辺を分ける'='が存在しません。
> TAGLIGHT.EXE常駐に関してはこの辺りが関係しているものと思われます。
> ざっと、ネットを検索して、TAGLIGHTの詳細情報が得られなかったので、
> 以前konnoさんに伺った Malloc.def も関連してると思われます。
10#さん> よかったら一度vmapの出力を見せていただけないですか?
すみません、確認したら、VTDOS.CFGのオプションが違っていました。
TPALOW=1 VTDOS137
;TPALOW=1 VTDOS138
このオプションの違いでメモリが少なかったのでした。
一応VMAPを貼り付けます。
;TPALOW=1 VTDOS138
VMAP Version 2.01 Copyright (C) 1989-91 by c.mos
addr PSP blks size owner/parameters hooked vectors
---- ---- ---- ------ ------------------------- -----------------------------
EF01 1538 1 65520 umb
--- UMB total: 64 KB ---
1001 10BA 4 19632 command 23 24 2E
14D0 <-- 1 176 atclock 28
14DC 1 1632 <free>
1543 <-- 1 1648 vwx 1.08b -z2 -v2 -x1 -l4
15AB 1 1648 <free>
1613 <-- 1 3088 taglight /v stay 10 2F
16D5 1 1696 <free>
1740 <-- 1 3888 vzibmj 1.60s -sw2 -z 1B 21 29
1834-9FFE 1 556192 <free>
----- EMS ver4.0 (frame: C000h) -----
handle pages size name
------ ----- ------ --------
1 1 16k $ExtEnv$
2 2 32k for Vwx!
3 14 224k VZIBMJ
free 2031 32496k
total 2048-32768k
TPALOW=1 VTDOS137
VMAP Version 2.01 Copyright (C) 1989-91 by c.mos
addr PSP blks size owner/parameters hooked vectors
---- ---- ---- ------ ------------------------- -----------------------------
0081 013A 4 19632 command 23 24 2E
0550 <-- 1 176 atclock 28
055C 1 1632 <free>
05C3 <-- 1 1648 vwx 1.08b -z2 -v2 -x1 -l4
062B 1 1648 <free>
0693 <-- 1 3088 taglight /v stay 10 2F
0755 1 1680 <free>
07BF <-- 1 3888 vzibmj 1.60t -sw2 -z 1B 21 29
08B3-9FFF 1 619712 <free>
----- EMS ver4.0 (frame: C000h) -----
handle pages size name
------ ----- ------ --------
1 1 16k $ExtEnv$
2 2 32k for Vwx!
3 14 224k VZIBMJ
free 2031 32496k
total 2048-32768k
TPAEXT=1
TPALOW=1 VTDOS139 ※この二つをONにするとメモリが大幅に空く
VMAP Version 2.01 Copyright (C) 1989-91 by c.mos
addr PSP blks size owner/parameters hooked vectors
---- ---- ---- ------ ------------------------- -----------------------------
EF01 05BD 1 65520 umb
--- UMB total: 64 KB ---
0081 013D 4 19680 command 23 24 2E
0553 <-- 1 176 atclock 28
055F 1 1664 <free>
05C8 <-- 1 1648 vwx 1.08b -z2 -v2 -x1 -l4
0630 1 1680 <free>
069A <-- 1 3088 taglight /v stay 10 2F
075C 1 1712 <free>
07C8 <-- 1 3888 vzibmj 1.60t -sw2 -z 1B 21 29
08BC-DBFE 1 865312 <free>
----- EMS ver4.0 (frame: DC00h) -----
handle pages size name
------ ----- ------ --------
1 1 16k $ExtEnv$
2 2 32k for Vwx!
3 14 224k VZIBMJ
free 2031 32496k
total 2048-32768k
!! おお!! 865Kも空きができた !!
EMSのフレーム位置も変わりましたね。
> ちなみに僕はコワいのでTPALOW/TPAEXTは使ってなかったりします(^^;)
>XPまでは異常な環境変数を渡されても、32bitプロセスを正常に起動して
>いましたが、7以降はこれがエラーを返すようになりました。
>command.com 6.3を使っていない文太さんはこの問題に遭遇していないかも
>しれません。