難解度「AA」
※このページ全体の難解度です。

ファンネルライト属性

[funnel]と[/funnel]で括った項目が数値の書き込みを行うとき、付随して書き込み処理を行わせることが出来ます。書式は
[funnel]ファンネルファイル [/funnel]
になります。オプションとして、書き込む処理を記述したファンネルファイルを指定します。ファイル指定の詳細は、《C-ファイル指定》を参照。 ファンネルファイル内には、
条件式, 書き込むアドレス, 書き込むバイト列
という書式で連ねます。
条件式 | アドレスコーディングと同様の演算子が使用可能。最終的な演算結果が真(0以外)ならば、「書き込むアドレス」に「書き込むバイト列」を処理します。なお、この属性の適用を受ける項目が「書き込む」ときに付随するのがファンネルライトなので、「項目が書き込んだ値」によって処理を分けることが出来るように、条件式には $Val という「書き込み値」を指す擬似変数を用いることが出来ます。
書き込むアドレス | 条件式が真のときに、「書き込むバイト列」を処理するアドレスを記述します。詳しいアドレスの書き方は、《A-アドレス》を参照。
書き込むバイト列 | 条件式が真のときに、処理されるバイト列を記述します。バイト列の詳細は、《B-バイト列》を参照。
このようにして連ねた条件式を、上から順に評価していきます。条件式が真の処理を行ったところで、評価処理を抜けます。つまり、以降の条件式は評価しません。ただし、条件式には以下のキーワードを用いることも出来、それ以降の条件式の評価は、キーワードの性質に準じます。
default | 常に真を指します。バイト列を処理後、以降の条件式を評価せずに抜けます。条件式に"0"以外の値を記述するのと同じことですが、必ず処理されることを明示する意味で使用すると良いでしょう。
$Val>80, 0x400000, 03 $Val>50, 0x400000, 02 $Val>10, 0x400000, 01 default, 0x400000, FF
use | 常に真を指します。バイト列を処理後も、以降の条件式を評価します。つまり、必ず処理させたいバイト列を指定するときに使います。
use, 0x400001, FF $Val>50, 0x400000, 01
[funnel][/funnel]で括らずにファンネルライト属性を用いる項目としてトレース項目がありますが、この項目のファンネルファイルは、条件式に use キーワードを使うこともあるでしょう。（$Val(書き込み値)が存在しないため、条件式で値分岐させる必要がない）

ねくすと　せくしょん⇒
≪せくしょん　ばっく