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.