about MR2 BP ECUのチェックサム
2000年9月19日 ロードスターBPのチェックサムプログラム
お次は、NA8ロードスターのBPエンジン(の8bitの奴)です。
この車のECUはCPUにプログラムデータを一緒に焼いてある
タイプではなくて、ROMが直接基板上にあるタイプです。
ということで、自分でROMをとりはずして焼き直せば
データを変更できるわけで、いじっている人も多いのかなぁと
思う。
しかし、ROMデータを外から買わないだけに、チェックサムはずし
に苦労しているのではないのでしょうか?
そのチェックサムもROMデータを吸い出しやすいからか、4AGやB6の
プログラムと違って、プロテクトっぽい雰囲気になっている。
普通は逆アセンブルとかしないだろうし、マップアドレスだけ
おしえてもらって自分でマップをいじってフィーリングの違いで
調整するってところでしょうから、プログラムでプロテクトされたら
つらいですよね。
ってことで、解答ではないのですが、どのようにチェックサムの
計算をしているか書いていきましょう。
・実はチェックサムは二個所でやっています。
一個所めは4AGやB6と同じタイプのプログラムです。すぐみつかる
と思います。でも、ここを殺すだけではバックアップモード
(ECUが壊れたと判断して、点火時期固定、燃料噴射固定モード)
になってしまいます。
#一個所めはダミーかもしれません。
二個所目の本命プログラムがこれです。
これがまた、わかりにくいプログラムなんですよねー。
普通ロムの先頭アドレスから最後まで一気に計算するんですけど、
ここでは、計算ルーチンの一部がサブルーチン(小さな処理単位)
になっていて、サブルーチンの中では明示的にロムの先頭アドレス
とかを書いてないのです。ですから、ちょっとさがしにくかったです。
処理としては、256byteずつ計算するサブルーチンを(256byteずつ)
アドレスを変えながら呼び出しています。
一度にROM全体をチェックしない所や、ROMの先頭アドレスをそのルーチン
内で指定しないところがプロテクトっぽいなぁと思いますが、
なにか理由があってこうしてあるのかもしれません。
このプログラムでも二回チェックして、二回のうちにチェックサムが
成功しなければECUがバックアップモードになるようです。
shmz@semimaru.com