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