Vz Editor
2023-03-20T11:40:00+09:00

VZ変数・オプション・スイッチ関連覚書

版に関する用語の説明
v1.6製品版 v1.6(1993-12-06T02:00:00版)で新設されたもの
変更v1.5以前にあってv1.6で仕様変更されたもの
廃止v1.5以前にあってv1.6で廃止されたもの
追加v1.6以降に各種の拡張版(sVZ,tVZ,dVZ,kVZ)で追加されたもの

コマンドラインオプション

ほとんどのオプションは起動時にコマンドラインで指定することが可能だが,ここに示したものはコマンドライン指定のみ意味を持つ。

変数名初期値備考機能等
z常駐/常駐解除

起動後は常駐フラグとなる

rr[n]指定マクロを起動後の編集画面で自動実行 起動後は汎用戻り値格納変数となる
Stロードしたマクロファイルのタイトル行を表示
Tv追加
tVZ
強制的にEGAモードで起動
Nf追加
tVZ
[無変換]を[NFER]とみなす(IBM-PC)
w廃止指定マクロファイルの取り込み

v1.6以降は汎用ユーザ変数wに変更

メモリ/バッファサイズ

メモリ/バッファサイズは起動時のみ参照される。したがって変更する場合は再起動が必要となる。

変数名初期値備考機能等
Ba0エイリアスバッファのフリーエリア
Bc1024削除文字列バッファのサイズ
Bf64[KB]DOSコマンド用メモリの最小値(KB)

DOS 5.0ではBf32ではcommand.comも動かないため,Bf64を指定する必要がある。

Bl2048256-8192ラインバッファのサイズ

テキストバッファ(Bt)の指定サイズの128倍の値で指定する。したがって最大値は8192。

Blのサイズを超える論理行を編集しようとしても,「ラインバッファがいっぱいです」とメッセージを表示して編集が続けられない。この場合は一旦編集を止め,適当なところに改行を挿入して論理行を分割し,編集終了後に置換機能を利用して改行を削除すればよい。

また,マクロの組込み時にBlのサイズによる制限も生じる。Bl+256バイト以上のサイズのマクロを組み込もうとすると,ラインバッファに続くテキスト領域(MCB)を破壊してメモリアロケーションエラーを起こす。

参照: Bt

Bm81920-マクロバッファのフリーエリア

32KBを越えて確保すると,モジュールメニューのフリー表示が負数になってキモチ悪いが実害はない。

確保できる値を越えて指定したり,インクルード(起動時組込:* E その他 の3番への記述)するマクロが多いとメモリ不足として起動できなくなる。この場合はコマンドラインで少なめの数値(0でもよい)を指定して起動し,該当部分を書き換えればよい。

C:\>VZ -bm0[CR]

なお,製品版初期値の8192の指定は,ラインバッファが8000hのアドレスのメモリをまたぐ可能性が高く,再カスタマイズに失敗するなどの不具合を起こしやすいことが知られており,20000〜30000位の値を指定するのが安全で,かつロードしておけるマクロを増やすことができる。

Bo32[KB]0-32コンソール出力取込みバッファサイズ(KB)
Bq廃止0テンポラリファイルのサイズ

EMSメモリを使えないフロッピーディスクユーザーのためのオプション。

テンポラリファイルは,通常は環境変数TMPで定義された指定ドライブ・指定ディレクトリに作成すべきもので,メインメモリ上やEMS上に作成するような指定は特殊なケースであると言える。

外部記憶装置が大容量かつ安価になり,v1.6(評価版としてはv1.58a)で廃止された。

Bt64[KB]16-64テキストバッファのサイズ(KB)

テキストバッファを大きく取るとメモリの消費量も増える。HP200LXのシステムマネージャからコールするような場合,最小値にしないと起動できないことがある。

Bu64マクロ配列・スタック領域のサイズ

Buで確保するバッファの先頭はpu(ユーザーバッファ)が指すマクロ用配列領域であるが,sp(マクロスタックポインタ)が指す末尾からもプッシュ・ポップで使用する。初期値の64はマクロを多用しない初級者用最小値と考えられ,128〜256に増やしておくことが推奨されている。

参照: pu

Bvv1.61024ログファイル履歴バッファのサイズ
EM10-EMSの使用ページ数

1を指定すると,EMSメモリの残りページを全部割り当てる。

0は割り当てず,他の数値は割り当てページ数を指定。

GV廃止32KB裏グラフィックVRAMの使用

指定した場合はEMよりも優先して使用されるメモリ領域で,コンソールバッファ,スクリーン退避バッファ,ディレクトリバッファとして使用された。

他のアプリケーションから使われる可能性のある不安定な領域であるため,v1.60(評価版としてはv1.58a)で廃止された。

Ha64アプリケーションヒストリーバッファのサイズ

paが先頭を指す領域(アプリケーションヒストリーバッファ)のサイズを指定する。

VZの機能からは使用されていないため,一時的なバッファのすり替え先に使われることが多い領域だが,すり替え元のバッファとサイズを合わせる必要はない。

参照: pa

Hf256ファイル名ヒストリーバッファのサイズ

pfが先頭を指す領域(ファイル名ヒストリーバッファ)のサイズを指定する。

参照: pf

Hn64非公開リネームワーク用ヒストリーバッファのサイズ

prが先頭を指す領域(ヒストリーバッファ)のサイズを指定する。

参照: pr

Hs256文字列ヒストリーバッファのサイズ

psが先頭を指す領域(ヒストリーバッファ)のサイズを指定する。

参照: ps

Hw64非公開ワーク用ヒストリーバッファのサイズ

pwが先頭を指す領域(ヒストリーバッファ)のサイズを指定する。

参照: pw

Hx128DOSコマンドラインヒストリーバッファのサイズ

pxが先頭を指す領域(ヒストリーバッファ)のサイズを指定する。

参照: px

XMv1.60[KB]XMSの使用サイズ(KB) ,XM1:残り全部)
Hc64非公開タイトルサーチ文字列ヒストリーバッファ(pt)のサイズ

pが先頭を指す領域(ヒストリーバッファ)のサイズを指定する。

参照: pt

Ce追加
tVZ
子プロセス用環境変数サイズ

各種モード

メモリ領域の確保を必要とするものは,変更後に再起動が必要となる。

変数名初期値備考機能等
SW30-4スワップモード
機能
0スワップ機能を使用しない
1テキスト領域のみ解放する
2コード領域も含めて解放する
3常駐時に常にコード領域まで解放する
43と同様だがアプリケーションのコマンドラインはフックしない
TC101-オープン可能なテキスト数

オープン可能なテキストの数だけテキスト構造体(サイズは228バイト)が起動時に確保されるため,変更後に再起動を要する。

参照項目: WA WB WO WF

WD800,2-255デフォルトの表示桁数

0を指定するとその環境での最大値が設定されるため,V-TEXT環境では -WD0 と起動バッチに記述しておけばよい。

参照項目: We vp..13

PG0表示行番号モード時の1ページ当たりの行数
RS変更30-8スムーズスクロール速度

スクロール中に対応する数字キーで変更可能

Ta8通常テキストのタブ桁数

テキストのオープン後はht(編集テキストのタブ桁数)で変更する。

参照項目: HT

Tb4.C .H ファイルのタブ桁数

「*E その他」セクションの第3項に先頭大文字で指定した拡張子に適用

Ci40-15挿入モードのカーソル形状と点滅速度
カーソル形状点滅速度
0 : フル+0 : 常時点灯
1 : 1/2+4 : 点滅
2 : 1/4+8 : 1.5倍速点滅(NEC-98)
3 : アンダーバー+12 : 2倍速点滅(NEC-98)
Co70-15上書モードのカーソル形状

値の設定例はCiを参照のこと

WL00-15ウィンドウの表示位置

0ならカーソル位置基準で浮動,他の値は次表によるXとYの和になる

XあるいはYのみ指定したときは,指定のない軸はカーソル位置基準で浮動する

X方向の位置Y方向の位置
1: 左寄せ2: 上寄せ
4: センタリング8: センタリング
5: 右寄せ10: 下寄せ
固定表示位置となる値と位置
367
91213
111415
LC-行間空きモード(NEC-98)
日本語モード時の最下行の予約(IBM-PC)
VM0編集時のスクリーンモード(IBM-PC)
CAv1.6520-127制御文字の色分けビット
加算値制御文字(の代替文字)表示を有効にするスイッチ
+1制御文字の「^」なし
+2改行コード「↓」Dc
+4TABコード「→」Dt
+8EOFコード「←」De
+16右マージン「<」Dr
+32全角スペース「□」Dj
+64不正なコードの先頭数値なし

各制御文字に割り当てられたビットを立てることによって,通常はAcの属性で表示される制御文字(の代替文字)をAeの属性で表示することができる。初期値は52(4+16+32)で,タブ文字・右マージン・全角スペースの属性が他の制御文字と異なる設定になっている。実際にこれらの代替文字が表示されるためには,各表示スイッチを有効にすることが必要。なお,不正なコードとは漢字等多バイト文字の片割れであることが多い。

Srv1.65プロファイル情報の保存モード
加算値有効にする保存モード
+1プロファイル情報セーブを有効にする
+2editfileが存在しなければ自動作成
+4ファイルクローズ時に履歴に情報を格納
+8「vz<Ret>」で「vz @」の動作
+16ログファイルの情報も履歴に格納
+32コマンドラインの履歴も出力
+64履歴を出力しない
+128pa,pwの履歴を出力(tVZ)
+256ファイラー関係オプションのプロファイル出力を抑止(dVZ)
Qtv1.60キー入力ディレイタイム(単位:秒)
Qcv1.640オートセーブを起動するまでの入力文字数
Qwv1.6100オートセーブの確認待ち時間

単位は約1/60秒で0なら確認しない

RMv1.600-3EMS/XMSの解放の禁止
EMSXMS
0解放する解放する
1解放禁止解放する
2解放する解放禁止
3解放禁止解放禁止

高橋版で改善(RM0で再取得失敗に対応)

FQ2ストロークキー入力時にFEPを制御
FT日本語FEPのタイプ
SB+ビープ音を鳴らす

非公開ではないがマニュアル類(mac16.docにも)から抜けている

mc追加
tVZ
-システムメニューの選択ビットマーカー(char)

kVZ仕様変更

tVZでは初期値(-)でマーカー(*)を表示する。kVZではコードの節約のため初期値に特定のキャラクタを与えずに,具体的に指定を行う仕様に変更された。初期値のままでは表示されないことに注意。

Sc追加
sVZ
+メニューや問い合わせ(s==4)で\[CR][CR]と同一視

tVZにも移植されている

選択直後の動作をks(シフトキーフラグ)で分岐させることができるが,メニューで特殊キー\[CR]の戻り値を得られなくなるという副作用がある。

このオプションを使用せずに選択直後の分岐を行うには次のような手段がある。

  • シフトキーを押しながらショートカットで選択しks&1を評価
  • ^Mで選択しks&4(NEC-98はks&16)を評価
Sv追加
tVZ
+イベントマクロで汎用変数・フラグの保存
Vb追加
tVZ
+waitでハードを叩かない(IBM-PC)
Ym追加
tVZ
-長いファイル名対応のファイル名解析を行う

互換性のため,通常はマクロ中で変更して使用することが推奨されている

先頭にピリオド('.')のあるファイル名の場合は正常な動作を保証されていない

dVZで先頭にピリオドのあるファイル名にも対応した

hp追加
tVZ
-HP95/100/200LXでのマクロ実行中のライトスリープ制御

マクロ実行中はキー入力がないため,HP200LXではライトスリープが発効してマクロの実行速度が極端に低下することへの対策

原案は成岡知彦氏(絶対アドレス0040:00D6のライトスリープ禁止フラグの制御を実現したDoping.def)

LS追加
kVZ
HP200LX用表示制御

konno K07j

HP200LXの「すだれ」対策で画面左側を1〜2文字分空ける

!OPENイベント等で Ls32, 127, '■', $8140, 等と指定

表示色は AL(行番号の表示属性)と同じ

カーソルがずれる時は &d(再表示)等で正常になる

OF追加
kVZ
-ファンクションキーラベル行の解放

Konno K07

ファンクションキーラベル行を解放して,編集画面を1行増やす。

Tm追加
kVZ
-メッセージ行の表示制御

kVZ

メッセージ行の表示位置を制御する。

表示位置
0初期状態(ファンクションキーラベル行の1行上)
1〜値に従って上方へ移動
255ファンクションキーラベル行を上書き
Vu追加
kVZ
-文字コードEUCの簡易表示

kVZ

日本語の表示をEUC-JPでエンコードする(通常はシフトJIS)

表示のみ対応し編集不可

UF追加
kVZ
-ドライブの空き容量を計算しない/ファイル選択時のクラスタサイズ指定

kVZ

ファイラーの表示速度を上げるために空き容量を計算しない。Free表示は常に0になる。主にHP200LXで100MBを超える大容量フラッシュメモリーを使用する場合に有効にすると,ファイラーの表示速度が劇的に改善する。

また,1以上の設定時はBIT値でファイル選択時のクラスタサイズを指定する。

BIT有効になる機能
0ドライブの空き容量を算出・表示する
1ドライブの空き容量を算出しない(512)
2〃 (1024)
4〃 (2048)
8〃 (4096)

原案はFHPPCのらん氏(USOFREE.EXE)

OT追加
kVZ
-全モードで時刻表示制御

【kVZ/廃止】

編集モード以外でもステータスラインに時刻を表示する(SLは廃止→OT廃止に伴いSL更改)

表示色は AL(行番号の表示属性)と同じ

表示書式表示内容
0非表示(初期値)
100:00:A時:分:秒をアルファベット表示
200:00A時:分秒をアルファベット表示
300:00時:分 数値表示
4〜00:00:00時:分:秒 数値表示

※入力待ち開始から時刻表示するまでのループ回数指定を兼ねる

参照: SL

SL追加
kVZ
-ステータスライン表示制御

【kVZ/廃止→更改】

表示内容
0フリーメモリ表示(初期値)
+1HH:MM 形式の時計表示
+2新規オープンしたファイルを長いファイル名で表示

旧仕様(スイッチ)

表示内容
-フリーメモリ表示(初期値)
+HH:MM 形式の時計表示

参照: OT

【注】:高橋版は時刻表示固定で,メモリのフリーエリアを表示しない.

OY追加
kVZ
-エミュレータ下での行数制御

kVZ

ファンクションキー消去・行数指定モード

モード
0通常モード
1ファンクションキー消去
6〜24全モードの行数指定(行数-1の値で指定)

主にシグマリオン2等で使用

DOSの行数情報を操作しているため物理的な画面行数を越えてはならない

OZ追加
kVZ
-FreeDOS(NEC-98)用キー入力モード

kVZ

FreeDOS NEC-98版で編集画面でのカーソルキー,[CTRL]+ファンクションキー等が使用可能になる(漢字は入力できなくなる)

ファイラー関連オプション

変数名初期値備考機能等
FMv1.67ファイラーの動作モード指定
加算値有効にする動作モード
+1[Space]キーでカーソルを移動
+2ファイル非選択時にもExecメニューを表示
+4「DOSコマンド」ウィンドウから実行
+8ディレクトリの先頭・最後を連続移動
+16ファイラーカーソル反転で,選択マークは「*」
+32ファイル選択時も拡張子自動実行
+64親ディレクトリへのマークを禁止(dVZ)
FW1024ファイル・ディレクトリ情報取得の最大数

FWの値を超える数のファイル,サブ・ディレクトリのあるディレクトリは,すべてを表示させることができない。取得できないファイル情報がある場合は,「 *********** (Out of Buf) *******(略)」とファイラー下部に表示され,ファイル数の表示は取得できたファイル情報分の数になる。

複窓ファイラーは双方のファイル数を足した数以上の値が必要で,例えば FW2048 の設定で1300個のファイルがあるディレクトリを複窓ファイラーで同時に表示しようとすると,先に表示した側は1300,後から表示した側は748を示す。

情報の取得からもれたファイルは存在していないという扱いになり,ファイラーで複写や削除等の操作もできない。

FV11 or 5ディレクトリ表示モード
表示モード表示情報複窓の分割位置
1ロングファイル名,サイズ,タイムスタンプ左右分割
5ショートファイル名のみ上下分割

※高橋版で長いファイル名を表示する場合は,FV1で上下分割の複窓になる

FS00-127ソートメニューの初期値
並べ替えのキー項目
0ディスク上のエントリー
1ファイル名
2拡張子
4新しい順
8古い順
16大きい順
32小さい順
64ディレクトリを先頭へ

値はビットフラグを立てるための加算値になっているが,例えばFS12などと矛盾する値にしてもいずれかひとつが有効になる。

また,値を与えると64のビットが立つ振る舞いをする。

ソートメニューにおいては,選択可能項目はひとつに制限されている。

FO30-31ファイル比較メニューの初期値
加算値抽出キー項目
+1存在
+2新しいファイル
+4古いファイル
+8大きいファイル
+16小さいファイル

値はビットフラグを立てるための加算値になっているが,通常は「新・古・大・小」のいずれかに「存在」を加える。比較メニューでは複数選択が可能だが,対になっている項目を両方選択しても所期の動作は保証されない。

Ch追加
tVZ
-タイムスタンプ・年の4桁表示
Is追加
tVZ
-「SHIFT+英字」でファイラーのインクリメンタルサーチ
LF追加
tVZ
-ファイラーでの長いファイル名の表示
Ml追加
tVZ
-長いファイル名の識別文字(0=='+')

kVZ仕様変更

Rf追加
kVZ
-リネーム・フラグ:常に長いファイル名でリネーム

Konno k07t3
8.3の短いファイル名もLFNとしてリネームする.
ステータスラインのファイル名もLFNを表示文字数の範囲でそのまま表示する.
Dp+では紛らわしいので,Rf+のときはDp-を推奨.

Nd追加
tVZ
-ファイラーでの数字キーはドライブ選択ではなく!Filerイベントへ渡す
OH追加
kVZ
ファイラー下部の行確保

Konno k07k

ファイラーの行数を数値分減らして下部を空ける

ビュワーマクロ等で使用可能

OE追加
kVZ
コマンドラインで空[Enter]を抑止

Konno k07r

非常駐のコマンドラインで空[Enter]を抑止してcommand.comに制御を移さない

原案:おうら

OL追加
kVZ
非公開コマンドラインでファンクションラベル行の保護

Konno k07r

OK追加
kVZ
6FFh非公開拡張ファンクションキーラベルの表示制御

Konno k07r

上位:システムモード
下位:シフト段数?

表示スイッチ

変数名初期値備考機能
Dl-行番号の表示
Dc+[CR]を代替文字で表示
Dt-[TAB]を代替文字で表示
De+[EOF]を代替文字で表示
Ds-ステータスバーにシステム情報を表示

※高橋版では残メモリ量の代わりに時刻表示になっている

Db-¥を\で表示
Dn-表示行で行番号を表示
Du-カーソル行の表示属性を強調表示に変更

アンダーライン(NEC-98)/網掛け風(IBM-PC)

Df-編集ファイル名をフルパス名で表示
Dp-ファイル名・パス名の小文字表示
Dh-ファイル名をステータスバーの左側に表示
Dg+JIS罫線の表示(NEC-98)/最上行の「ぶれ」の軽減(IBM-PC)
Drv1.6+右マージン('<')の表示
Djv1.6-全角スペースを代替文字('□')で表示
Dvv1.6-スムーズスクロール時のカラー表示
Dw追加
tVZ
変更
kVZ
-メニューの影効果表示を抑止[tVZ 03a]
文字コードEUCの簡易表示スイッチ[kVZ 07r]
OL追加
kVZ
-vzk コマンドラインのファンクションキーラベル行の解放

Konno K07j

コマンドラインのファンクションキーラベル行を解放して表示行数を増やす。

編集スイッチ

変数名初期値備考機能
Ei+オートインデント
Es+^QE,^QX ([Ctrl]+[↑][↓]2回)でスムーズスクロール
Ez+[EOF]コード(1Ah)を付加
Eb+バックアップファイルを作成
Eu-[TAB]でスペースコードを入力

コマンド#21にアサインされたキー(通常は[TAB]と^I)でタブ桁数分(次のタブ停止位置まで)の半角スペースが出力される。

コマンド関数&#V()/&#68で指定桁位置までスペースを出力するときなどに,タブコードと空白が混在しないようにEuを一時有効にするという利用の仕方が一般的。

例: #> Eu[+, &#V(50) Eu], #>

参照: #21 &#V()/&68()

Et+タイトルサーチモード

タイトルサーチを有効にするスイッチ:+:有効, -:無効

参照: mp ts

Eh-半画面ページングモード
Ew+文字列検索時のワードサーチ

文字列入力窓でモードメニューマクロ(製品版は \[F01])から呼び出される4番(VWX常駐時は5番)メニュー「検索オプション」により変更できる。

Ec-検索時の英大/小文字の同一視

文字列入力窓でモードメニューマクロ(製品版は \[F01])から呼び出される4番(VWX常駐時は5番)メニュー「検索オプション」により変更できる。

Ex-テキストスタックフル時の警告
En-カーソルを改行以降に表示させない
Ev-ジャンプ後カーソル行を画面の中央にセット
Ek-ブロックペースト後カーソル位置更新
Ea-拡張子による表示桁数の自動設定
Ej-全角スペースのオートインデント

参照: Ei

Eov1.6-桁対応上書きモード

上書きモード形式を従来の文字対応かv1.6で導入された桁対応か選択

参照: mi

El-非公開行末のスペース・タブを自動削除

コマンド#mで改行したときに行末に余分な半角スペースやタブがあれば自動的に削除する。

Ei(オートインデント)有効の場合に,字下げ位置までのスペース類だけの空行は残る。

その他のスイッチ

変数名初期値備考機能
RO-閲覧モードでファイルをオープン

ROを有効にすると,以後オープンするファイルはすべてビューモードになり,一切編集はできなくなる。

ビューモードとリードオンリーモードは異なることに注意。詳細はmr(テキスト修正フラグ)の項を参照のこと。

ビューモードでオープンした編集ファイルを通常の編集モードに変更するには,コマンド#67(リードオンリーモード)を実行する。

一旦通常の編集モードに切り替えたファイルをビューモードに戻すには,オープンし直すか,mr(テキスト修正フラグ)に128を代入する必要があり,ビューモードに切り替えるコマンドはない。

参照: mr #67

RXv1.6-正規表現モード(VWX)

VWX常駐時のみ意味をもつ。

正規表現モードでなくても,「\x 」を検索文字列に前置することで正規表現を利用した検索は行える。

文字列入力窓でモードメニューマクロ(製品版は \[F01])から呼び出される5番メニュー「検索オプション」により変更できる。

ZHv1.6-全角/半角文字の同一視(VWX)

VWX常駐時のみ意味をもつ。

正規表現モードでなくても,「\z 」を検索文字列に前置することで全半同一視検索は行える。

文字列入力窓でモードメニューマクロ(製品版は \[F01])から呼び出される5番メニュー「検索オプション」により変更できる。

ZHを有効にした状態では, \l(0Ah) を \n(0D0Ah) に置換することができない。

Sx+コンソール出力の取込み

DOSコマンド実行結果をコンソールファイルに取り込む。

コンソールファイルはコマンド#X(DOS画面出力の参照)により,テキスト番号0の編集ファイルとして参照できる。

コンソールファイルは独自のテキストワークwoを持っておりtc(オープン可能なテキスト数)には含まれないので,常に参照可能である。

Sxを無効にしてもテキストワークwoは確保され,228バイトの領域は消費する。また,Sxが有効であっても,Bo(コンソール出力バッファのサイズ)に0を指定するとコンソールの出力は取り込まれない。

参照: Bo wo #X #95

Se+エスケープシーケンスのスキップ
Sd+DOSコマンドラインの展開再表示
Sk-DOSコマンド実行前にテキストスタックをクリア
Sy-[CR]/[SPC]で[Yes]/[No]
YNv1.6-[CR]/[SPC]応答時の[Yes]/[No]逆転
Sn+新規ファイルの確認
Sq-Close,Quitで即座に終了
FP-日本語FEP(mskanji/vjeb/mttk/atok)の自動制御
FR-起動時にFEPを自動制御
FK+拡張ファンクションキーの使用(NEC-98)
Szv1.6-常駐時の編集終了時にオプションを初期化
mv追加
sVZ
dVZ
-実行中のマクロより先に組み込んだマクロも削除

sVZにあったスイッチのdVZへの移植

参照項目: &z() &Zd() &Zx()

Lt追加
dVZ
-Temporaryモジュールの削除を抑止

dVZで追加されたマクロデバッグ用スイッチ

参照項目: &Za()

bd追加
kVZ
-VZBAKディレクトリの非作成

太田亘一氏のFM版から移植

表示属性

変数名IBM-PCNEC-98J31機能
An$1F77通常テキストの表示属性
Ac$1356コントロール文字1の表示属性
Aev1.6$1210コントロール文字2の表示属性
Al$1A57行番号の表示属性
Ah$B013$70ブロック範囲の表示属性
As$7015$76通常テキストのステータスバーの表示属性
Ao$E01414コンソールファイルのステータスバーの表示属性
Ar$301314リードオンリーファイルのステータスバーの表示属性
Am$0E66メッセージ行の表示属性
Ab$7055ウィンドウ枠の表示属性
At$7057ウィンドウタイトルの表示属性
Aw$7077ウィンドウ文字の表示属性
Af$7466ウィンドウ先頭文字の表示属性
Ai$0F15$70ウィンドウカーソルの表示属性
Aj$7467ヘルプウィンドウ枠の表示属性
Ak$0E66キーモード(2ストローク先頭キー)の表示属性
Ag$0117ファイラー背景の表示属性
Au$4F66ファイラーカーソルの表示属性
Ap$70-$70ファンクションキーの表示属性
$07--DOSコマンドラインプロンプトの表示属性
Ayv1.6000ステータスバーのファイル名の表示属性
Avカーソル行の強調表示属性(IBM-PC)
vsv1.6000編集テキストのステータスラインの属性
vyv1.6000編集テキストのファイル名の属性
Yo追加
tVZ
AoAo-裏コンソールファイルのステータスラインの表示属性(Ao
Yr追加
tVZ
ArAr-裏閲覧モードテキストのステータスラインの表示属性(Ar
Ys追加
tVZ
AsAs-裏テキストのステータスラインの表示属性(As
Yp追加
tVZ
AyAy-裏テキストのファイル名の表示属性(Ay)[tVZ 03a]
Da追加
tVZ
00-裏テキストのステータスラインの表示属性変更

裏テキストのステータスラインはYs,Yo,Yr,Ypを使用する

汎用ユーザ変数

A-Q,T-Y: 汎用変数(1文字)
AA-QQ,TT-YY: 汎用変数(2文字)
ユーザーが自由に使用できる2バイトサイズの変数である。汎用変数は広域変数であり,初期化して使用する必要がある。通常は1文字変数と2文字変数を区別する必要はないが,ローカルルールを決めておいて使い分けるという考え方もある。しかし,いつ破壊されてもおかしくないということを前提にして使うべきである。なお,dd,nnなど特定の2文字変数はしばしばローダーで使われていた。
変数名サイズ備考機能
aword汎用ユーザ変数
aaword汎用ユーザ変数
bword汎用ユーザ変数
bbword汎用ユーザ変数
cword汎用ユーザ変数
ccword汎用ユーザ変数
dword汎用ユーザ変数
ddwordローダーでマクロ名に頻用汎用ユーザ変数
eword汎用ユーザ変数
eeword汎用ユーザ変数
fword汎用ユーザ変数
ffword汎用ユーザ変数
gword汎用ユーザ変数
ggword汎用ユーザ変数
hword汎用ユーザ変数
hhword汎用ユーザ変数
iword汎用ユーザ変数
iiword汎用ユーザ変数
jword汎用ユーザ変数
jjword汎用ユーザ変数
kword汎用ユーザ変数
kkword汎用ユーザ変数
lword汎用ユーザ変数
llword汎用ユーザ変数
mword汎用ユーザ変数
mmword汎用ユーザ変数
nword汎用ユーザ変数
nnwordローダーでマクロ番号に頻用汎用ユーザ変数
oword汎用ユーザ変数
ooword汎用ユーザ変数
pword汎用ユーザ変数
ppword汎用ユーザ変数
qword汎用ユーザ変数
qqword汎用ユーザ変数
tword汎用ユーザ変数
ttword汎用ユーザ変数
uword汎用ユーザ変数
uuword汎用ユーザ変数
vword汎用ユーザ変数
vvword汎用ユーザ変数
wv1.6word汎用ユーザ変数
wwv1.6word汎用ユーザ変数
xword汎用ユーザ変数
xxword汎用ユーザ変数
yword汎用ユーザ変数
yyword汎用ユーザ変数

汎用レジスタ変数

AX,BX,CX,DI,DX,SI: 汎用レジスタ変数
&i()関数の引数に機能番号を渡して割り込みを実行する場合に,受け渡しレジスタとして使用することができる。どのレジスタにどのような値を入れるかは規則があるので,ファンクションコールやシステムコール関連の資料を参照のこと。

AH,ALなど,上位・下位に分けて使用することはできない。

変数名サイズ備考機能
axword汎用レジスタ
bxword汎用レジスタ
cxword汎用レジスタ
dxword汎用レジスタ
siword汎用レジスタ
diword汎用レジスタ

汎用フラグ変数

FA,FB,FC,FD,FI,FJ,FX,FY: 汎用フラグ変数
汎用フラグ変数は1ビットサイズの広域変数である。1ビットの値,すなわち 0 か 1 のみの値を持つ。無理に大きな数値を代入しても,奇数は1に,偶数は0に丸められる。
変数名サイズ備考機能
fabyte汎用フラグ
fbbyte汎用フラグ
fcbyte汎用フラグ
fdbyte汎用フラグ
fiv1.6byte汎用フラグ
fjv1.6byte汎用フラグ
fxbyte汎用フラグ
fybyte汎用フラグ

ポインタ変数

変数名サイズ備考指示するアドレスの内容
paHaアプリケーションヒストリーバッファ

VZから使用されないバッファであるため,他のバッファを汚さないために「すり替え用バッファ」として頻繁に使用される。したがって保存バッファとしては使用できない。

pcVZの起動コマンド名
pdカレントディレクトリ名
pfHfファイル名ヒストリーバッファ
piマクロファイル用ディレクトリの参照パス名
pnカレントドライブ名
pq32テンポラリファイルの参照パス名
psHs検索文字列ヒストリーバッファ
puBuマクロ配列領域の先頭
pwHwワーク用ヒストリーバッファ
pxHxコマンドラインヒストリーバッファ
pzコマンド起動パス名
spマクロスタックポインタ
pev1.6editfileのファイル名ポインタ
pmv1.6選択したメニューのメッセージポインタ
prv1.6Hnリネーム時の一時ワーク(64byte)
ptv1.6Hcタイトルサーチ文字列ヒストリーバッファ
pov1.616検索オプション文字列バッファ
pvコマンドテーブルポインタ

内部ワークエリア

pv: コマンドテーブルポインタ

#< などの短縮記号からコマンド番号へ変換するテーブルへのポインタ

テーブルの並びは'<'から始まる文字に対応するコマンド番号が格納されている(3Ch〜7Ahの63バイト)

pv+ 0  <=>?@ABC DEFGHIJK LMNOPQRS TUVWXYZ[
pv+32  \]^_`abc defghijk lmnopqrs tuvwxyz
rrマクロの実行ポインタ
vi追加
tVZ
高橋版で追加された変数領域のポインタ
km追加
tVZ
最後に押されたマクロキーのマクロポインタ(-1:押されていない)
UP追加
tVZ
アナログパレットテーブルのポインタ

セグメント変数

cz, gz, vz, dz, tz, kz, fz, kp : セグメント変数
v1.60以降はコードセグメントとデータセグメントが分離され,マクロで参照するワークエリアはすべてスタックセグメントに置かれた。互換性のために,「cz,dz.gz」はすべてスタックセグメントを指している。
変数名備考機能
czv1.6 スタックセグメント

マクロで参照するワークエリアはここにある

gzv1.6スタックセグメント
vzv1.6VZ.COMのコードセグメント
dz変更可データセグメント

ポインタ演算等で使用する

起動時はスタックセグメントを指している

tz編集テキストバッファのセグメント
kz テキストスタックのセグメント

64KBのサイズがあるが,大きなブロックが出し入れされると細かなブロックは掃き出されるため,サイズを有効に使えない場合もある。

関連項目: EX UX

kp変更可 テキストスタックエンドオフセット

kz:kpでテキストスタックの最新の文字列の末尾を指す

コマンド#51により初期化されるが,kpの指すアドレスを0000hに移動するだけなので,文字列そのものは残っている

マクロでテキストスタックを初期化する場合は,コマンド関数 &#51()を使用する

fzv1.6ファイラープールのセグメント

広域システム変数

変数名備考機能等
cm変更可直前に実行したエディットコマンド番号
efEMSのフリーページ数

※高橋版で正確な数値になるよう改善されている

ep編集モード時の[ESC]の扱い
指定値[ESC]キーの振る舞い
-プリフィックスキー
+エスケープキー
※マクロ中断時に初期化
ksシフトキーフラグ
加算値IBM-PCNEC-98
+1右[Shift][SHIFT]
+2[CAPS]
+3左[Shift]
+4[Ctrl][カナ]
+8[Alt][GRPH]
+16[SCRL][CTRL]
+32[NUM]
+64[CAPS]
+128[INS]

ksはあくまでも参照時の値を示すだけなので,起動時のksの状態を実行過程で反映させるには,変数に保存しなければならない。

例: k=ks&1, … (k)?{ シフト起動処理 }?{ 通常起動処理 }

mb変更可ブロックモード
選択モード
0非ブロックモード
1行境界のブロックモード
2文字境界のブロックモード
4-矩形ブロックモード
mi変更変更可挿入モード
様態機能
0挿入モード(Insert)カーソル位置の文字の前に入力される。
1文字対応上書モード(Overwrite-1)全半角とも文字単位で上書きされる。行のバイト数は変動する。
2桁対応上書モード(Overwrite-2)全半角とも桁単位で上書きされる。行のバイト数は変動しない。

参照項目: Eo #v

mp変更可ページングモード
ステータス表示様態
0[P]表示ページングモード
1[C]論理ページングモード
2[S]文字列検索モード
r変更可戻り値格納用変数(汎用) ※起動時オプションr[n]は自動実行
値を返す機能格納される値の内容
コマンドコマンドの成功/失敗など
マクロコール先から戻るときの内部レジスタ
メニュー選択番号 押された特殊キーの値 アイテム位置情報 など
rn変更可乱数用ワーク(seed)
sカレントのシステムモード
システムモード
0編集モード
1文字列入力モード
2コマンドラインモード
3ファイラーモード
4メニュー,(Y/N)等の1文字入力モード
vp画面出力制御パラメータブロック
相対アドレスサイズパラメータ
+0Wordカーソル位置のオフセット
+2Wordカーソル位置のセグメント
+4Byte*4表示ウィンドウ(開始x,y,サイズx,y)
+8Byte*2カーソル位置(x,y)
+10Byte*2DOSのカーソル位置(x,y)
+12Byte表示属性
waテキストワークのポインタ

waは表テキスト(現編集テキスト)のローカルワークで,現テキスト固有の編集情報を格納する構造体の先頭を指す。カーソル位置情報などの編集テキスト変数に反映される情報に直接アクセスすることも可能。

参照項目: WB WO WF テキストワーク

wbテキストワークのポインタ

wbは裏テキストのローカルワークで,裏テキスト固有の編集情報を格納する構造体の先頭を指す。表テキスト編集状態から,裏テキスト固有の各種情報に直接アクセスすることも可能。

参照項目: WA WO WF テキストワーク

wf未使用または解放されたテキストワークのポインタ

参照項目: WA WB WO テキストワーク

woコンソールファイルのテキストワークのポインタ

参照項目: WA WB WF テキストワーク

wmマクロロード関数用テキストワークのポインタ

参照項目: テキストワーク

wc編集中のテキストの数(コンソールファイル除外)
wh変更可編集画面の横分割位置
wv変更可編集画面の縦分割位置
icv1.6最後に入力された文字コード(0=コマンドキー)
fgv1.6グローバルファイラーワークポインタ
相対アドレスサイズパラメータ
+0Byteディレクトリの表示数(0=single, 1=dual)
+1Byte参照パス/マスクの初期化(&Fl(p)で特定のパス/マスクのファイラーを起動したらfg.1+で初期化)
+2Word最後に実行されたファイラーコマンド
+4Byteシステムファイルの表示属性
+5Byte隠しファイルの表示属性
+6Byteリードオンリーファイルの表示属性
+7Byteサブディレクトリの表示属性
+8Byteバイナリファイルの表示属性
+9Byte通常ファイルの表示属性
+12Byteファイラー・コマンド・メニュー表示スイッチ 0:on 1:off
+13Byteステータスをクリアするサイズ(メニュー表示が優先)
+14Byteアイテム数(上限12)
+293+1「*.*」:マスク初期化のための部品
+331+1「\」:ルートに移動するための部品
+352+1「..」:親ディレクトリへ移動するための部品
+38Wordマスクメニューの選択ビット (fg..19)
fhv1.6ファイラーのマスクメニューの選択ビット

FH≠0 で Hidden,System属性のファイルを表示

「H <Hidden>」の選択マークはシステムメニュー5番の項目数に依存

Hiddenが10番目なら FH=1<<9(=512)

main.asmのCustomizing dataでは,GDATA hidden, dw, 0 ; FH

ビット数はword値で16,マスクアイテムをむやみに増やせるわけではない

flv1.6カレントファイラーワーク構造体のポインタ
mgv1.6マクロ制御用ワークポインタ
相対アドレスサイズパラメータ
+0Word内部レジスタ
+2Word実行中のマクロモジュールのヘッダアドレス
+4Word実行中のマクロのネストポインタ
+6Wordイベントマクロ実行前のネストポインタ
+8Wordループカウンタ
+10Wordループの先頭ポインタ
+168*16ネスト用ワーク(8バイト*16個)
mhv1.6先頭のモジュールヘッダアドレス
各モジュールヘッダの構造
相対アドレスサイズ値の内容
0Byteモジュールヘッダ番号(メニュー#31に相当)
1Wordモジュールヘッダのサイズ
3Byteモジュールフラグ

(S),(R)モジュールオプションの指定による意図的なフラグもある

1Sleep(実行中以外は先頭マクロ以外のキーを無効にする)
2Removable(削除可能なインクルードマクロ)
4External(外部マクロ)
128keyboard macro(キーボードマクロ)
4Word次のモジュールヘッダへのリンクポインタ
6WordモジュールIDの長さ(n<=8)
8nモジュールID(大文字ファイル名)+nul
n+9mモジュールのタイトル文字列+nul
mxv1.6変更可&pでのマクロ実行,イベントマクロの実行禁止

マクロ中断時に初期化される

uxv1.6変更可文字,行・ブロック削除時のバッファへの格納禁止

マクロ中断時に初期化される

モード型マクロ実行中にコールされたマクロで有効にされた場合は,そのマクロが終了しても初期化されないので,きちんとプッシュ・ポップすることを推奨する。

smv1.6カレントのシステムモード遷移前のベースモード

メニューや入力窓がどのモードで起動されたかを示す

ベースモード
0編集モード
2コマンドラインモード
3ファイラーモード
ss変更変更可サイレントフラグ
サイレントモード
1通常のサイレントモード(&s)
2DOSコマンドラインもサイレント
zkEZKEY常駐の有無 0:無/1:有
vwv1.6VWX常駐の有無 0:無/1:有
vrv1.6VWXでOR検索時,何番目の文字列とマッチしたか
Jdv1.6表示スイッチの一括保存・復帰
ビット0123456789ABCDEF
スイッチDnDcDtDeDrDjDlDsDbDuDfDpDgDhDv-

複数の表示スイッチを一時的に変更したい時に使用する。例えば,一時的に編集テキスト表示エリアの制御文字や代替文字をすべて表示させたい場合,Dc,Dt,De,Djのビットを立てることになるので,Jdに2+4+8+32=46をビットOR(ビット毎の和)する。

例: Jd[, Jd|=46, …処理… Jd],

参照:td

Jev1.6編集スイッチの一括保存・復帰
ビット0123456789ABCDEF
スイッチEiEsEzEbEuEkEtEhEcEwExEnEvEaElEj
Jsv1.6手続き系スイッチの一括保存・復帰
ビット0123456789ABCDEF
スイッチ-SxSeSdSkEoSyYNSnSqFPSbROSz--
Jxv1.6システム系スイッチの一括保存・復帰
ビット0123456789ABCDEF
スイッチepzkFQuxmxVWZHRXFKSt------
Juv1.6フラグ変数の一括保存・復帰
ビット0123456789ABCDEF
スイッチfafbfcfdfifjfxfy--------

編集テキスト変数

変数名備考機能等
cdカーソル位置の文字コード
ckカーソル位置の文字種 0:半角/1:全角
clカーソル行の先頭オフセット
cp変更可カーソル位置のオフセット

内部的にテキストの先頭にはCR/LFがあるため,ファイル先頭では2を示す。ただしViewモードでは不定となる。

ctカーソル位置の文字タイプ
文字種
0EOF
1改行
200h〜20h(改行類を除く),全角スペース
3半角記号・全角記号
4ひらがな
5上記以外の全角文字
6上記以外の半角文字
fe編集テキストの拡張子タイプ

「*E その他」セクション3番のテキスト拡張子の何番目かを示す。

ほとんど使われていないため,保存変数として使い回すマクロもある。

ht変更可編集テキストのタブ桁数

4/8/16など,べき乗値をとることができる。

その他の半端な数値を与えたとき,所期の動作は得られない。

idテキストID &#T()の引数にマイナス符号を付けて指定できる。

例:a=id, …テキスト切替… &#T(-a)

テキスト番号wnは小さい番号のファイルが閉じられると順位が繰り上がるので,確実にテキストを切り替えたい場合はテキストIDを用いるのがよい。

kx変更可保存したカーソルの桁位置

サイレント中にkxの値を変更しておくと,任意の位置で再表示できる。

ky変更可保存したカーソルのウィンドウ内の行(Y)位置

サイレント中に値を変更しておくと,再表示後のカーソル行位置を制御できる。

lyを保存しておき,再表示直前にkyに格納することで,マクロ起動時のカーソル位置の目線のまま再表示することができる。

ld表示行番号
lhカーソル位置の論理行の先頭からのY位置

we幅を越える長さの論理行において,何回目の折り返し行かを示す。

lx==0の位置にあるカーソルが真の行頭にあるか判定するときに利用できる。

ln論理行番号

16ビットに制限されるため,65535行を越えると0に戻る。

lx変更可表示カーソルの桁位置

lx==0でも論理行頭と限らないことに注意。

行頭が0からなので,ステータスラインに表示されている値と異なることに注意。

ly表示カーソルのウィンドウ内のY位置
mr変更可テキスト修正フラグ
値のビットテキスト修正状態クローズ時の問い合わせ
000000000未修正無し
100000001修正あり問い合わせ有り
2/12700000010/01111111修正あり無し
12810000000ビューモード無し
129/25410000001/11111110リードオンリー(修正あり)無し
25511111111リードオンリー(修正なし)無し

テキスト構造体の「touch flag」(wa.3/Byte)を反映している。元の値がByte値なので下位バイトに納まる。tchf(0=nop,1=modified,-1=RO)

$80(128)を境界として,mr>$80は閲覧,mr<$80は通常モード。2〜127の値を与えられると,一旦ラインバッファから書き戻して修正フラグを立てるが,問い合わせなしにクローズする。

we変更可編集テキストの表示桁数 物理的な画面の表示桁数ではなく,論理的な桁数を設定できる。値は2〜255の範囲。
wn編集テキスト番号

ステータスラインやシステムメニューに表示されるファイル名の前の数字。通常ファイルをオープンした順に番号が振られる。

システム関数&#63()/&#T()の引数として当該ファイルに切り替えることができるが,若い番号のファイルが閉じられると番号が繰り上がって変化するので,ファイルのオープン・クローズが発生する場面ではテキストIDを利用する方が確実。

参照: ID #63 / #T &#63() / &#T()

wt変更可画面分割モード
分割モードとカレント側
0全画面
2上下分割の上
3上下分割の下
4左右分割の左
5左右分割の右
wx編集ウインドウの横幅

画面左右分割時はボーダーの位置で変化する

wy編集ウインドウの高さ

画面上下分割時はボーダーの位置で変化する

xbブロックマーカーの桁位置

矩形ブロックで利用される

tsv1.6初期値0タイトルサーチ文字列ポインタ

通常タイトルサーチに使用される文字列は「* E その他」7番に設定済みだが,バッファを確保して別途設定することができる。tsは設定した文字列の先頭アドレスを指し,終端がヌル(ASCIIZ)であればデータセグメントのどこを指していてもよい。マクロの中では「ts="string",」と指定するだけでよい。

例: (ne=='C'||ne=='H'||ne=='CP')?{ ts="/", qk="{}", }

qnv1.6編集モードでの入力文字カウンタ

専らオートセーブマクロで使用される。半角・全角とも1文字としてカウントされる

qkv1.6!Editイベント用入力文字テーブル

専ら!Openイベントで記述され,特定の拡張子のファイルでブロック内インデントの自動増減などに利用される。

例: (ne=='C'||ne=='H'||ne=='CP')?{ ts="/", qk="{}", }

xcv1.6ブロック範囲比較変数
カーソル位置(cp)と選択開始位置(tblkp)との比較
-1cp < tblkp
0cp == tblkp
1cp > tblkp

※比較はオフセット値で行われるため,常に正しいというわけではない。64KBの敷居をまたぐ可能性がある時に正確な比較をするためには,カーソル位置のロングポインタ(マークで使用)を用いる必要がある。

nmv1.6編集テキストのカレントディレクトリからの相対パス名

nmはステータスバーに表示されるファイル名であり,カレントディレクトリからの相対パス名が入る。パスが長いと頭の方からカットされていく。編集モード以外では値が不定となるので,確実にパス名を取得したい場合は編集モード以外からも参照可能なwa+146の使用を推奨。

製品版添付のvz.defサンプルでは初期設定でDf(編集ファイル名をフルパス名で表示)が無効になっている。この状態ではnmにフルパスが入る保証はない。

1 ^\ "" ?.
        #S #m           ;セーブしておくと nm が pr に入る
        df[-,           ;(こいつが曲者)
        #L &?(pr) #m    ;フルパスでオープンしても
        df],            ;(戻す)
        &m(nm)          ;nm はファイル名

参照: wa+146 wa..35 Df

nev1.6編集テキストの拡張子の最初の2文字

通常は!Openイベントで拡張子毎の設定を行う。2バイトで評価する点に注意。

例:(ne=='DE')?{ ts"*=", td62, qk"{}", } ; .DEF ファイルの設定

tdv1.6編集テキストの表示スイッチ
加算値表示モード関連する表示スイッチ
+1行番号モードDn
+2[CR]文字を表示Dc
+4[TAB]文字を表示Dt
+8[EOF]文字を表示De
+16右マージンを表示Dr
+32全角スペースを表示Dj
+64行番号を表示Dl

!Openイベントで拡張子ごとの設定をするときに便利。

例:(ne=='DE')?{ ts"*=", td62, qk"{}", } ;62=2+4+8+16+32

VN非公開未使用の非公開編集テキスト変数

未使用なので閉じた環境でなら便利に使いまわせるかもしれない。

特殊変数

変数名備考機能等
z常駐モード(起動後)

※起動時は常駐用コマンドラインオプションとして使われる

zp非公開常駐command.com書き換えポインタ

常駐VZがcommand.comにフリーエリアの開始セグメントを強制的に教え込むため,command.comを書き換えるポインタ。ポインタのセグメントは常駐command.comのセグメント。(dc15#03869_1997/01/07,Hiro)

US非公開未使用の非公開フラグ変数

v1.5x時代にあったサイレントフラグ(ss)がバイトデータになって移動した跡の空き。

Jt追加
tVZ
非公開非公開
lg追加
tVZ
非公開非公開
Vc追加
tVZ
非公開非公開
Ve追加
tVZ
非公開非公開
rt追加
tVZ
非公開非公開
tl追加
tVZ
非公開環境・機種依存機能等へのポインタ
ポインタ機種・機能
tl..0
tl..1
tl..2
tl..3
tl..4
tl..5
tl..6
tl..7NEC モバイルギア(DOS)音程調整用
tl..8
tl..9
tl..10
tl..11
tl..12
tl..13dVZ追加?
[vzt:main.asm]
tbls    dw    offset cgroup:cmdtbl        ; tl..0
        dw    offset cgroup:le_table      ; tl..1
        dw    offset cgroup:tb_sysmacjmp  ; tl..2
        dw    offset cgroup:tb_e2macjmp   ; tl..3
        dw    offset cgroup:tb_e2mac1     ; tl..4
        dw    offset cgroup:tb_xkey       ; tl..5
        dw    offset cgroup:tb_xkeycvt    ; tl..6
IFDEF MG
        dw    offset cgroup:mg_tone+1     ; tl..7
ELSE
        dw    0
ENDIF
        dw    offset cgroup:seektext      ; tl..8
        dw    offset cgroup:nexttext      ; tl..9
        dw    offset cgroup:pretext       ; tl..10
        dw    offset cgroup:readexpr0     ; tl..11
        dw    offset cgroup:sprintf       ; tl..12
OV追加
kVZ
-
OW追加
kVZ
-
TF追加
tVZ
UV追加
tVZ

VZ変数・オプション・スイッチ関係覚書
The VZ resources, valid XHTML 1.0 Strict. ©2005-2023 by mezala.