Vz Editor
2009-10-12T17:13:04+09:00

VZ構造体関連覚書

テキスト構造体(テキストレコード)

wa, wb, wo, wf, wm テキスト構造体
オープンするテキストひとつにつき228バイトの構造体を持つ。各変数はそれぞれ構造体の先頭アドレスを指す。アドレスはすべて先頭からの相対アドレスを示す。
ソース参照
vz.inc#Text record

アドレスはwaが指す先頭アドレスからの相対アドレスを示す。

Addrsizesymnamedescriptionvar
+0wordw_nextnext record link ptr
+2bytewnumwindow numberwn
+3bytetchftouch flag 0=nop,1=modified,-1=ROmr
+4bytewsplitwindow split modewt
+5byteblkmblock mode 1=line,2=charmb
+6bytewyy loc. in screenly
+7bytewnxtnext line y loc. in screen
+8bytewyswy keeperky
+9bytenodnumbdisp number flag
+10wordlnumbline numberln
+12worddnumbdisp numberld
+14wordlnumb0line number offset
+16worddnumb0disp number offset
+18wordttopstext area top segtz
+20wordtendstext area end seg or EMS entry
+22wordttoptext top ptr
+24wordtendtext end ptr
+26wordtmaxtext buffer end ptr
+28wordthomscreen home ptr
+30wordtbtmscreen bottom ptr
+32wordtnowcurrent line ptrcl
+34wordtnxtnext line ptr
+36wordbtopline buffer top ptrcl(#]前)
+38wordbendline end ptr
+40wordtcpcurrent ptr (common)cp
+42wordtfldfield start ptr (common)
+44wordbmaxline buffer end ptr
+46wordbhomscreen home ptr (in buffer)
+48wordbbtmscreen bottom ptr (in buffer)
+50wordlbsegline buffer seg
+52byteinbuf
+53bytetw_px+ text window開始x位置
+54bytetw_py+ text window開始y位置
+55bytetw_sx編集ウィンドウの横幅wx
+56bytetw_sy編集ウィンドウの高さwy
+57bytetw_cy最下行
+58bytefsizfield sizewe
+59bytefskpdisplay skip x
+60bytefofsH-scroll offset x
+61bytelxslx keeperkx
+62bytelxx loc. in fieldlx
+63bytelyy loc. in linelh
+64bytetabrTab sizeht
+65byteexttypfile ext typefe
+66bytectypecurrent char typect
+67byteckanj1=kanjick
+68wordccodecurrent char codecd
+70wordnamepfile name ptrwa+146
+72bytelargflarge text flag
+73bytetemptemporary file flag
+74dwordreadptext read long ptr
+78dwordeofpEOF lptr
+82dwordheadphead lptr
+86wordheadszhead size
+88dwordtailptail lptr
+92wordtailsztail size
+94wordtextidtext ID No.id
+96wordw1work 1
+98wordw2work 2
+100wordw3work 3
+102wordbofsblock mark offset in line
+104byteblkxblock mark x loc.xb
+105bytefsiz0save of fsiz
+106wordtbmaxsize of text buffer
+108wordtbaltsize of temp. block
+110dwordtblkpblock lptr ブロックマーク位置
+114dwordtnowpcurrent lptr
+118dwordtrgtptarget lptr
+122dwordtoldpold current lptr
+126dwordtretpreturn lptr #0 マーク#0
+130dwordtmark1mark lptr #1 マーク#1
+134dwordtmark2mark lptr #2 マーク#2
+138dwordtmark3mark lptr #3 マーク#3
+142dwordtmark4mark lptr #4 マーク#4
+14664pathpath name area ドライブ名を含むフルパス
+210wordtsstrtitle search string ptrts
+212wordblktgtblock target flagxc
+214wordinpcntinput counterqn
+216wordektblevent key table ptrqk
+218wordextwordfile ext wordne
+220wordlabelplabel name ptrnm
+222wordlnumb9last line number
+224bytedspsw1alternate dspswtd
+225byteatrtxt1vn
+226byteatrstt1vs
+227byteatrpath1vy

グローバルファイラーワーク(fg)

アドレスはすべて先頭アドレスfgからの相対アドレスを示す。

addrsizesymnamedescription
+0bytefldualディレクトリの表示数(0=single, 1=dual)
+1byteretdir参照パス/マスクの初期化(&Fl(p)で特定のパス/マスクのファイラーを起動したらfg.1+で初期化)
+2wordfllastcmd最後に実行されたファイラーコマンド(編集モードでの cm 同様(#A-256)の値が入る)
+4byteflatrtblシステムファイルの表示属性
+5byteflatrtbl隠しファイルの表示属性
+6byteflatrtblリードオンリーファイルの表示属性
+7byteflatrtblサブディレクトリの表示属性
+8byteflatrtblバイナリファイルの表示属性
+9byteflatrtbl通常ファイルの表示属性
+10byteflatrtbl表示属性?
+11bytemb_px
+12bytemb_pyファイラー・コマンド・メニュー表示スイッチ 0:on 1:off
+13bytemb_sxステータスをクリアするサイズ(メニュー表示が優先)
+14bytemb_cアイテム数(上限12)
+15wordmb_ttl*E4
+17bytemn_wdメニュー幅
+18bytemn_cラストドライブ番号
+19bytemn_valwd
+20bytemn_sel
+21wordmn_ext
+23bytemn_wd
+24bytemn_c
+25bytemn_valwd
+26bytemn_sel
+27wordmn_ext
+293+1mask_all「*.*」:マスク初期化のための部品
+331+1path_root「\」:ルートに移動するための部品
+352+1path_parent「..」:親ディレクトリへ移動するための部品
+38wordmaskbitマスクメニューの選択ビット (fg..19)
+40wordarchive?
+42byteattrbit
+43byteflbinary
+44dwordvzpathp
+48bytespeflagspeflag (+1:src=dir, +2:dst=dir, +4:dst=file, +128:[ESC]
+49byterotate
+50bytelastpos
+51wordwalkmnuL/R menu result fg.51 (s==4)
+53byte-padding

マクロ制御用ワーク(mg)

アドレスはmgが指す先頭アドレスからの相対アドレスを示す。

addrsizesymnamedescription
-9byte前回のFEPの制御パラメータ
-6wordcend削除バッファのエンドポインタ
+0wordmacreg内部レジスタ
+2wordrunmhp実行中のマクロモジュールのヘッダアドレス
+4wordmnestp実行中のマクロのネストスタックのポインタ
+6wordmnesttbaseイベントマクロ実行前のネストポインタ
+8wordloopcntループカウンタ
+10wordlooptopループの先頭ポインタ
+12bytestartmac自動実行マクロ番号
+13bytepremenuメニューをネストした時の親メニュー番号
+14bytestepf&tフラグ
+15bytedataf文字列実行中フラグ(input_data_flag)
+168*16mnestネスト用ワーク(8バイト*16個)

実行中のマクロのネストスタック(mg..2)

mg..2..-4word親マクロの先頭+3(マクロヘッダの次)
mg..2..-3word親マクロで次に実行する命令のポインタ
mg..2..-2word親マクロをコールしたグローバルマクロの先頭ポインタ
mg..2..-1word親マクロのモジュールヘッダ
mg..2..0wordmgettop実行中マクロの先頭+3(マクロヘッダの次)
mg..2..1wordmgetp次に実行する命令のポインタ(get_macro_current)
mg..2..2wordmrootp実行中のグローバルマクロの先頭ポインタ(root_macro_top)
mg..2..3wordmheadp実行中マクロのモジュールヘッダ(module_header)
mg..2..3.0byteモジュールヘッダ番号($$ff固定)
(mg..2..3+1)..0wordモジュールヘッダのサイズ(バイト数)
mg..2..3.3byteモジュールのタイプ +1(S) +2(R) +4(E) +80h(Kbd) (Z)指定で自動削除されない(榊原版)
mg..2..3..2word次のモジュールヘッダのアドレス(リンクポインタ)
mg..2..3..3wordモジュールIDのサイズ(バイト数)
mg..2..3+81-8モジュールID(8文字以内.大文字)
mg..2..4wordネストスタック

モジュールヘッダ構造(先頭mh)

アドレスはmhが指す先頭アドレスからの相対アドレスを示す。

addrsizesymnamedescription
+0bytemh_numDummy No. モジュールヘッダ番号(31番メニューに相当するので値は$FF)
+1wordmh_sizeHeader size モジュールヘッダのサイズ
+3bytemh_flagモジュールフラグ
加算値内容マクロメニューの表示
0Z (榊原版,高橋版の非削除モジュール)無印
+1SleepR. E. のように2桁目にピリオド
+2RemovableR (E表示よりも優先される)
+4ExternalE (R表示が優先される)
+128keyboard macroR <Keyboad Macro>
キーボードマクロは自動削除対象となるので通常は130(128+2)を示す。
+4wordmh_nextmdlNext module header ptr 次のモジュールヘッダへのリンクポインタ
+6wordmh_namelenmodule name length モジュールIDの長さ(n<=8)
+8nモジュールID(大文字ファイル名)+nul
9+nmモジュールのタイトル文字列+nul

グローバルマクロ構造

グローバルマクロのヘッダはモジュールのタイトル文字列の直後から開始する。アドレスはマクロ先頭アドレスからの相対アドレスを示す。

addrsizedescription
+0byteマクロ番号
+1wordサイズ情報(先頭3バイトを含まない末尾のnulを含むサイズ)
+3byte1個目のキー定義(指定がなければ$FF)
+4byte2個目のキー定義(指定がなければ$FF)
+5nマクロのタイトル文字列+nul
+5+n グローバルマクロ本体+nul

ローカルマクロ構造

アドレスはマクロ先頭アドレスからの相対アドレスを示す。

addrsizedescription
+0byteマクロ番号(指定番号+128)
+1wordサイズ情報(先頭3バイトを含まない末尾のnulを含むサイズ)
+3nローカルマクロ本体+nul
addrsizedescriptionremarks
+0byte番号E1(01)〜FF(31) (つまりメニューの数は31まで)
ただし,31番メニューはモジュールメニューに固定。
+1wordサイズ先頭3バイトを除くメニュー末尾(nul)まで
+3byte横幅
+4byteアイテム数 [i]1バイトのためアイテム数の上限は255
+5byteパラメタ幅
+6byte選択アイテム番号初期値0,リードオンリーは -1
+7word親メニューのアドレス注1を見よ
+9i*2アイテムの種類word*アイテム数 注2を見よ
+9+i*2tタイトル+nul [t]
+9+i*2+ts1str1:アイテム1+nul [s1]
+9+i*2+t+s1s2str2:アイテム2+nul [s2]
+9+i*2+t+s1+s2s3 : 以下省略
注1

アイテムのパラメータを解釈実行するルーチンや,メニューのアイテムを書く(エイリアスメニューなど)ルーチンの,vz.comセグメントのポインタが入る。
(dc15#2691[1996/11]:hiro)

注2

アイテムの種類にはアイテム毎のタイプと番号が格納される。

アイテムのタイプ
0文字列
1メニュー
2コマンド #nn
3変数
4マクロ
11短縮コマンド #a

実際の例

メニューアイテムタイプ番号
"マクロ呼びだし",&22422
"メニュー呼びだし",!0515
"コマンド実行",#70270 (#O = #70)
"コマンド実行",#O1170 (#O = #70)
"文字列だけ"00
(pk14#11816[1995/05]:Yushi, pk14#11824[1995/05]:hiro)

カレントファイラーワーク(fl)

アドレスはflが指す先頭アドレスからの相対アドレスを示す。

addrsizesymnamedescription
+0wordfl_back反対側ウィンドウのワークエリアのポインタ
+2wordfl_pooltopDTA格納オフセットスタートアドレス
+4wordfl_segDTA格納セグメント
+6wordfl_poolendDTA格納オフセットエンドアドレス
+8wordfl_poolpDTA格納オフセットセレクトアドレス
+10wordfl_selcntマークファイル数
+12wordfl_bcsrカーソル位置
+14wordfl_filesファイル総数
+16wordfl_homeカーソル位置が0の時のファイル番号
+18bytefl_wpxファイル表示開始のX座標
+19bytefl_wpyファイル表示開始のY座標
+20bytefl_wsxウィンドウの幅X
+21bytefl_wsyウィンドウの高さY(表示可能ファイル数)
+22wordfl_tsyファイル段数Y(総ファイル数/表示列数)
+24bytefl_ttlsxstrlen of dir,mask (title)
+25bytefl_whichウィンドウ番号
+26dwordfl_freeディスクフリースペース
+30wordfl_clustディスククラスタ
+32bytefl_overflowファイル表示数が FW(dir_buf)以上か
+33bytefl_curfディレクトリのフラグ
+3464fl_pathファイラーのパス PATHSZ dup(?)
+9832fl_maskファイラーのマスク MASKSZ dup(?)
+13064fl_lastpath直前のファイラーのパス PATHSZ dup(?)

画面出力制御パラメータブロック(vp)

アドレスはvpが指す先頭アドレスからの相対アドレスを示す。

addrsizedescription
+0wordカーソル位置のオフセット
+2wordカーソル位置のセグメント
+4byte表示ウィンドウ開始x位置
+5byte表示ウィンドウ開始y位置
+6byte表示ウィンドウのxサイズ
+7byte表示ウィンドウのyサイズ
+8byteカーソルx位置
+9byteカーソルy位置
+10byteDOSのカーソルx位置
+11byteDOSのカーソルy位置
+12byte表示属性

VZ構造体関連資料
The VZ resources, valid XHTML 1.0 Strict. ©2007-2009 by mezala.