Vz Editor
2009-10-12T17:13:04+09:00
VZ構造体関連覚書
テキスト構造体(テキストレコード)
- wa, wb, wo, wf, wm テキスト構造体
- オープンするテキストひとつにつき228バイトの構造体を持つ。各変数はそれぞれ構造体の先頭アドレスを指す。アドレスはすべて先頭からの相対アドレスを示す。
- ソース参照
- vz.inc#Text record
アドレスはwaが指す先頭アドレスからの相対アドレスを示す。
Addr | size | symname | description | var |
+0 | word | w_next | next record link ptr | |
+2 | byte | wnum | window number | wn |
+3 | byte | tchf | touch flag 0=nop,1=modified,-1=RO | mr |
+4 | byte | wsplit | window split mode | wt |
+5 | byte | blkm | block mode 1=line,2=char | mb |
+6 | byte | wy | y loc. in screen | ly |
+7 | byte | wnxt | next line y loc. in screen | |
+8 | byte | wys | wy keeper | ky |
+9 | byte | nodnumb | disp number flag | |
+10 | word | lnumb | line number | ln |
+12 | word | dnumb | disp number | ld |
+14 | word | lnumb0 | line number offset | |
+16 | word | dnumb0 | disp number offset | |
+18 | word | ttops | text area top seg | tz |
+20 | word | tends | text area end seg or EMS entry | |
+22 | word | ttop | text top ptr | |
+24 | word | tend | text end ptr | |
+26 | word | tmax | text buffer end ptr | |
+28 | word | thom | screen home ptr | |
+30 | word | tbtm | screen bottom ptr | |
+32 | word | tnow | current line ptr | cl |
+34 | word | tnxt | next line ptr | |
+36 | word | btop | line buffer top ptr | cl(#] 前) |
+38 | word | bend | line end ptr | |
+40 | word | tcp | current ptr (common) | cp |
+42 | word | tfld | field start ptr (common) | |
+44 | word | bmax | line buffer end ptr | |
+46 | word | bhom | screen home ptr (in buffer) | |
+48 | word | bbtm | screen bottom ptr (in buffer) | |
+50 | word | lbseg | line buffer seg | |
+52 | byte | inbuf | | |
+53 | byte | tw_px | + text window開始x位置 | |
+54 | byte | tw_py | + text window開始y位置 | |
+55 | byte | tw_sx | 編集ウィンドウの横幅 | wx |
+56 | byte | tw_sy | 編集ウィンドウの高さ | wy |
+57 | byte | tw_cy | 最下行 | |
+58 | byte | fsiz | field size | we |
+59 | byte | fskp | display skip x | |
+60 | byte | fofs | H-scroll offset x | |
+61 | byte | lxs | lx keeper | kx |
+62 | byte | lx | x loc. in field | lx |
+63 | byte | ly | y loc. in line | lh |
+64 | byte | tabr | Tab size | ht |
+65 | byte | exttyp | file ext type | fe |
+66 | byte | ctype | current char type | ct |
+67 | byte | ckanj | 1=kanji | ck |
+68 | word | ccode | current char code | cd |
+70 | word | namep | file name ptr | wa+146 |
+72 | byte | largf | large text flag | |
+73 | byte | temp | temporary file flag | |
+74 | dword | readp | text read long ptr | |
+78 | dword | eofp | EOF lptr | |
+82 | dword | headp | head lptr | |
+86 | word | headsz | head size | |
+88 | dword | tailp | tail lptr | |
+92 | word | tailsz | tail size | |
+94 | word | textid | text ID No. | id |
+96 | word | w1 | work 1 | |
+98 | word | w2 | work 2 | |
+100 | word | w3 | work 3 | |
+102 | word | bofs | block mark offset in line | |
+104 | byte | blkx | block mark x loc. | xb |
+105 | byte | fsiz0 | save of fsiz | |
+106 | word | tbmax | size of text buffer | |
+108 | word | tbalt | size of temp. block | |
+110 | dword | tblkp | block lptr ブロックマーク位置 | |
+114 | dword | tnowp | current lptr | |
+118 | dword | trgtp | target lptr | |
+122 | dword | toldp | old current lptr | |
+126 | dword | tretp | return lptr #0 マーク#0 | |
+130 | dword | tmark1 | mark lptr #1 マーク#1 | |
+134 | dword | tmark2 | mark lptr #2 マーク#2 | |
+138 | dword | tmark3 | mark lptr #3 マーク#3 | |
+142 | dword | tmark4 | mark lptr #4 マーク#4 | |
+146 | 64 | path | path name area ドライブ名を含むフルパス | |
+210 | word | tsstr | title search string ptr | ts |
+212 | word | blktgt | block target flag | xc |
+214 | word | inpcnt | input counter | qn |
+216 | word | ektbl | event key table ptr | qk |
+218 | word | extword | file ext word | ne |
+220 | word | labelp | label name ptr | nm |
+222 | word | lnumb9 | last line number | |
+224 | byte | dspsw1 | alternate dspsw | td |
+225 | byte | atrtxt1 | | vn |
+226 | byte | atrstt1 | | vs |
+227 | byte | atrpath1 | | vy |
グローバルファイラーワーク(fg)
アドレスはすべて先頭アドレスfgからの相対アドレスを示す。
addr | size | symname | description |
+0 | byte | fldual | ディレクトリの表示数(0=single, 1=dual) |
+1 | byte | retdir | 参照パス/マスクの初期化(&Fl(p)で特定のパス/マスクのファイラーを起動したらfg.1+で初期化) |
+2 | word | fllastcmd | 最後に実行されたファイラーコマンド(編集モードでの cm 同様(#A-256)の値が入る) |
+4 | byte | flatrtbl | システムファイルの表示属性 |
+5 | byte | flatrtbl | 隠しファイルの表示属性 |
+6 | byte | flatrtbl | リードオンリーファイルの表示属性 |
+7 | byte | flatrtbl | サブディレクトリの表示属性 |
+8 | byte | flatrtbl | バイナリファイルの表示属性 |
+9 | byte | flatrtbl | 通常ファイルの表示属性 |
+10 | byte | flatrtbl | 表示属性? |
+11 | byte | mb_px | |
+12 | byte | mb_py | ファイラー・コマンド・メニュー表示スイッチ 0:on 1:off |
+13 | byte | mb_sx | ステータスをクリアするサイズ(メニュー表示が優先) |
+14 | byte | mb_c | アイテム数(上限12) |
+15 | word | mb_ttl | *E4 |
+17 | byte | mn_wd | メニュー幅 |
+18 | byte | mn_c | ラストドライブ番号 |
+19 | byte | mn_valwd | |
+20 | byte | mn_sel | |
+21 | word | mn_ext | |
+23 | byte | mn_wd | |
+24 | byte | mn_c | |
+25 | byte | mn_valwd | |
+26 | byte | mn_sel | |
+27 | word | mn_ext | |
+29 | 3+1 | mask_all | 「*.*」:マスク初期化のための部品 |
+33 | 1+1 | path_root | 「\」:ルートに移動するための部品 |
+35 | 2+1 | path_parent | 「..」:親ディレクトリへ移動するための部品 |
+38 | word | maskbit | マスクメニューの選択ビット (fg..19) |
+40 | word | archive | ? |
+42 | byte | attrbit | |
+43 | byte | flbinary | |
+44 | dword | vzpathp | |
+48 | byte | speflag | speflag (+1:src=dir, +2:dst=dir, +4:dst=file, +128:[ESC] |
+49 | byte | rotate | |
+50 | byte | lastpos | |
+51 | word | walkmnu | L/R menu result fg.51 (s==4) |
+53 | byte | - | padding |
マクロ制御用ワーク(mg)
アドレスはmgが指す先頭アドレスからの相対アドレスを示す。
addr | size | symname | description |
-9 | byte | | 前回のFEPの制御パラメータ |
-6 | word | cend | 削除バッファのエンドポインタ |
+0 | word | macreg | 内部レジスタ |
+2 | word | runmhp | 実行中のマクロモジュールのヘッダアドレス |
+4 | word | mnestp | 実行中のマクロのネストスタックのポインタ |
+6 | word | mnesttbase | イベントマクロ実行前のネストポインタ |
+8 | word | loopcnt | ループカウンタ |
+10 | word | looptop | ループの先頭ポインタ |
+12 | byte | startmac | 自動実行マクロ番号 |
+13 | byte | premenu | メニューをネストした時の親メニュー番号 |
+14 | byte | stepf | &tフラグ |
+15 | byte | dataf | 文字列実行中フラグ(input_data_flag) |
+16 | 8*16 | mnest | ネスト用ワーク(8バイト*16個) |
実行中のマクロのネストスタック(mg..2)
mg..2..-4 | word | | 親マクロの先頭+3(マクロヘッダの次) |
mg..2..-3 | word | | 親マクロで次に実行する命令のポインタ |
mg..2..-2 | word | | 親マクロをコールしたグローバルマクロの先頭ポインタ |
mg..2..-1 | word | | 親マクロのモジュールヘッダ |
mg..2..0 | word | mgettop | 実行中マクロの先頭+3(マクロヘッダの次) |
mg..2..1 | word | mgetp | 次に実行する命令のポインタ(get_macro_current) |
mg..2..2 | word | mrootp | 実行中のグローバルマクロの先頭ポインタ(root_macro_top) |
mg..2..3 | word | mheadp | 実行中マクロのモジュールヘッダ(module_header) |
mg..2..3.0 | byte | | モジュールヘッダ番号($$ff固定) |
(mg..2..3+1)..0 | word | | モジュールヘッダのサイズ(バイト数) |
mg..2..3.3 | byte | | モジュールのタイプ +1(S) +2(R) +4(E) +80h(Kbd) (Z)指定で自動削除されない(榊原版) |
mg..2..3..2 | word | | 次のモジュールヘッダのアドレス(リンクポインタ) |
mg..2..3..3 | word | | モジュールIDのサイズ(バイト数) |
mg..2..3+8 | 1-8 | | モジュールID(8文字以内.大文字) |
mg..2..4 | word | | ネストスタック |
モジュールヘッダ構造(先頭mh)
アドレスはmhが指す先頭アドレスからの相対アドレスを示す。
addr | size | symname | description |
+0 | byte | mh_num | Dummy No. モジュールヘッダ番号(31番メニューに相当するので値は$FF) |
+1 | word | mh_size | Header size モジュールヘッダのサイズ |
+3 | byte | mh_flag | モジュールフラグ
加算値 | 内容 | マクロメニューの表示 |
0 | Z (榊原版,高橋版の非削除モジュール) | 無印 |
+1 | Sleep | R. E. のように2桁目にピリオド |
+2 | Removable | R (E表示よりも優先される) |
+4 | External | E (R表示が優先される) |
+128 | keyboard macro | R <Keyboad Macro> |
キーボードマクロは自動削除対象となるので通常は130(128+2)を示す。
|
+4 | word | mh_nextmdl | Next module header ptr 次のモジュールヘッダへのリンクポインタ |
+6 | word | mh_namelen | module name length モジュールIDの長さ(n<=8) |
+8 | n | | モジュールID(大文字ファイル名)+nul |
9+n | m | | モジュールのタイトル文字列+nul |
グローバルマクロ構造
グローバルマクロのヘッダはモジュールのタイトル文字列の直後から開始する。アドレスはマクロ先頭アドレスからの相対アドレスを示す。
addr | size | description |
+0 | byte | マクロ番号 |
+1 | word | サイズ情報(先頭3バイトを含まない末尾のnulを含むサイズ) |
+3 | byte | 1個目のキー定義(指定がなければ$FF) |
+4 | byte | 2個目のキー定義(指定がなければ$FF) |
+5 | n | マクロのタイトル文字列+nul |
+5+n | | グローバルマクロ本体+nul |
ローカルマクロ構造
アドレスはマクロ先頭アドレスからの相対アドレスを示す。
addr | size | description |
+0 | byte | マクロ番号(指定番号+128) |
+1 | word | サイズ情報(先頭3バイトを含まない末尾のnulを含むサイズ) |
+3 | n | ローカルマクロ本体+nul |
addr | size | description | remarks |
+0 | byte | 番号 | E1(01)〜FF(31) (つまりメニューの数は31まで) ただし,31番メニューはモジュールメニューに固定。 |
+1 | word | サイズ | 先頭3バイトを除くメニュー末尾(nul)まで |
+3 | byte | 横幅 |
+4 | byte | アイテム数 [i] | 1バイトのためアイテム数の上限は255 |
+5 | byte | パラメタ幅 |
+6 | byte | 選択アイテム番号 | 初期値0,リードオンリーは -1 |
+7 | word | 親メニューのアドレス | 注1を見よ |
+9 | i*2 | アイテムの種類 | word*アイテム数 注2を見よ |
+9+i*2 | t | タイトル+nul [t] |
+9+i*2+t | s1 | str1:アイテム1+nul [s1] |
+9+i*2+t+s1 | s2 | str2:アイテム2+nul [s2] |
+9+i*2+t+s1+s2 | s3 | : 以下省略 |
- 注1
-
アイテムのパラメータを解釈実行するルーチンや,メニューのアイテムを書く(エイリアスメニューなど)ルーチンの,vz.comセグメントのポインタが入る。
(dc15#2691[1996/11]:hiro)
- 注2
-
アイテムの種類にはアイテム毎のタイプと番号が格納される。
値 | アイテムのタイプ |
0 | 文字列 |
1 | メニュー |
2 | コマンド #nn |
3 | 変数 |
4 | マクロ |
11 | 短縮コマンド #a |
実際の例
メニューアイテム | タイプ | 番号 |
"マクロ呼びだし",&22 | 4 | 22 |
"メニュー呼びだし",!05 | 1 | 5 |
"コマンド実行",#70 | 2 | 70 (#O = #70) |
"コマンド実行",#O | 11 | 70 (#O = #70) |
"文字列だけ" | 0 | 0 |
(pk14#11816[1995/05]:Yushi, pk14#11824[1995/05]:hiro)
カレントファイラーワーク(fl)
アドレスはflが指す先頭アドレスからの相対アドレスを示す。
addr | size | symname | description |
+0 | word | fl_back | 反対側ウィンドウのワークエリアのポインタ |
+2 | word | fl_pooltop | DTA格納オフセットスタートアドレス |
+4 | word | fl_seg | DTA格納セグメント |
+6 | word | fl_poolend | DTA格納オフセットエンドアドレス |
+8 | word | fl_poolp | DTA格納オフセットセレクトアドレス |
+10 | word | fl_selcnt | マークファイル数 |
+12 | word | fl_bcsr | カーソル位置 |
+14 | word | fl_files | ファイル総数 |
+16 | word | fl_home | カーソル位置が0の時のファイル番号 |
+18 | byte | fl_wpx | ファイル表示開始のX座標 |
+19 | byte | fl_wpy | ファイル表示開始のY座標 |
+20 | byte | fl_wsx | ウィンドウの幅X |
+21 | byte | fl_wsy | ウィンドウの高さY(表示可能ファイル数) |
+22 | word | fl_tsy | ファイル段数Y(総ファイル数/表示列数) |
+24 | byte | fl_ttlsx | strlen of dir,mask (title) |
+25 | byte | fl_which | ウィンドウ番号 |
+26 | dword | fl_free | ディスクフリースペース |
+30 | word | fl_clust | ディスククラスタ |
+32 | byte | fl_overflow | ファイル表示数が FW(dir_buf)以上か |
+33 | byte | fl_curf | ディレクトリのフラグ |
+34 | 64 | fl_path | ファイラーのパス PATHSZ dup(?) |
+98 | 32 | fl_mask | ファイラーのマスク MASKSZ dup(?) |
+130 | 64 | fl_lastpath | 直前のファイラーのパス PATHSZ dup(?) |
画面出力制御パラメータブロック(vp)
アドレスはvpが指す先頭アドレスからの相対アドレスを示す。
addr | size | description |
+0 | word | カーソル位置のオフセット |
+2 | word | カーソル位置のセグメント |
+4 | byte | 表示ウィンドウ開始x位置 |
+5 | byte | 表示ウィンドウ開始y位置 |
+6 | byte | 表示ウィンドウのxサイズ |
+7 | byte | 表示ウィンドウのyサイズ |
+8 | byte | カーソルx位置 |
+9 | byte | カーソルy位置 |
+10 | byte | DOSのカーソルx位置 |
+11 | byte | DOSのカーソルy位置 |
+12 | byte | 表示属性 |
VZ構造体関連資料
The VZ resources,
valid XHTML 1.0 Strict.
©2007-2009
by mezala.