赤Xの愛車 [
三菱 ランサーエボリューションX]
DASH3 HEX解析
2
計算式テーブル
003EC000 1word 計算式テーブル先頭マーク(0x00CD)
003EC001 1word 計算式テーブルのバイトサイズ(<SIZE>)
003EC002 可変 計算式1 (time)
003Exxxx 可変 計算式2 (long accel)
~
003Exxxx 可変 計算式184 (Last sector time)
003EC002+<SIZE>/2まで
計算式の中身 - 記述は逆ポーランド記法を使います。
+00 に word で計算式のwordサイズを入れて
+02 以降に word で、stack番号(1~)、演算子番号を順番に入れていきます。
stack番号0x0019、演算子番号0x0019、エンドマーク0x0000で終わります。
演算子一覧
0x0000 : <=
0x0001 : >=
0x0002 : !=
0x0003 : ==
0x0004 : <
0x0005 : >
0x0006 : + (加算)
0x0007 : - (減算)
0x0008 : * (乗算)
0x0009 : / (除算)
0x000A : ^ (べき乗)
0x000B : AND (論理積)
0x000C : OR (論理和)
0x000D : XOR (排他論理和)
0x0012 : 続く 2word で variable index を指定する。
0x0014 : 続く 4word で float値を指定する。
0x0015 : 続く 2word で引数の数と関数を指定する。
0x0015に続く関数
0x0001 : SIN (引数の数は1)
0x0002 : COS (引数の数は1)
0x0003 : TAN (引数の数は1)
0x0004 : ASIN (引数の数は1)
0x0005 : ACOS (引数の数は1)
0x0006 : ATAN (引数の数は1)
0x0007 : SINH (引数の数は1)
0x0008 : COSH (引数の数は1)
0x0009 : TANH (引数の数は1)
0x000A : ASINH (引数の数は1)
0x000B : ACOSH (引数の数は1)
0x000C : ATANHだと思われるが、1.2.21ではエラーとなり記述できない
0x000D : LOG2 (引数の数は1)
0x000E : LOG (引数の数は1)
0x000F : LN (引数の数は1)
0x0010 : EXP (引数の数は1)
0x0011 : SQRT (引数の数は1)
0x0012 : SIGN (引数の数は1)
0x0013 : ROUND (引数の数は1)
0x0014 : ABS (引数の数は1)
0x0015 : INT (引数の数は1)
0x0016 : IF (引数の数は3)
0x0017 : - (符号反転、 引数の数は1)
0x0018 : SUM (引数の数は可変)
0x0019 : AVG (引数の数は可変)
0x0020 : MIN (引数の数は2)
0x0021 : MAX (引数の数は2)
例1.計算式無しの場合
+00 0x0002 (サイズ)
+01 0x0000 (エンドマーク)
例2.Y = -Analog1 の場合
+00 0x000C (サイズ)
+01 0x0001 0x0012 0x00C7 0x0000 : stack1 に Analog1(variable index=200))を保存
+05 0x0001 0x0015 0x0001 0x0017 : stack1に stackから1つ取り出して-(符号反転)して保存
+09 0x0019 0x0019 (計算終了のおまじない? 25番stackに保存する?)
+0B 0x0000 (エンドマーク)
- 1:アドレスはword単位。 ...
- 2:計算式テーブル 003 ...
- 3:DASH3レイアウトテー ...
- 4:variableデータテ ...
- 5:Gear変換テーブル ...
- 6:ShiftLightsテ ...
- 7:Display Scre ...
- 8:Startup Bitm ...
| 目的 | 修理・故障・メンテナンス |
|---|
| 作業 | DIY |
|---|
| 難易度 | ★ |
|---|
| 作業時間 | 30分以内 |
作業日 : 2009年02月21日
[PR]Yahoo!ショッピング