Too many BCCs, too few mask ids

Ludis Langens ludis at cruzers.com
Sun Nov 19 20:53:02 GMT 2000


I'm writing a utility program that automates several things I often do
with chip binaries.  I'll be releasing the program under a GNU license. 
One of the important features of this utility is identifying the mask
id, scan id, and BCC of a binary.

The mask id is determined by checksumming the chip's program code and
table headers.  (The mask id byte in the chip is ignored in case it was
set to experimental mode.)  Once the mask id is known, the scan id can
be pulled out of the binary.  Possible BCC's are then determined from
the scan id and mask id.

This is where I'm running into problems.  The program has a huge table
of BCC's along with their scan and mask id's.  However, I don't know the
mask id of many of them.  Thus the BCC search function must match many
BCC's by just the scan id.  Some scan id's are reused as many as ten
times.  This means that sometimes I get several false matches.

I have more information about each BCC than just it's scan id.  There
ought to be a way of using this data to, for example, not offer up a
carburetor BCC for a 1227730 binary.  In the mask identification stage,
my data tables have space for a 32 bit mask id.  (Eight of those bits
need to specify the value of the binary's mask id byte.)  In the BCC
table, there is room for a 16 bit value.  What's needed is some sort of
encoding in the spare bits that identifies the general type of binary. 
Any suggestions?

Note: C3 ECM binaries in general don't have the unknown mask id problem
- if I've gotten at least one binary for that ECM.  The mask ROM code of
a C3 requires that all it's PROMs have the same mask id.

There's another related problem which needs a solution.  Some mask id's
have variants, or have been reused outright.  For example, there are
multiple variations of the V8 TPI code, and the 3.8 V6 engine has one
mask id (0x5b) reused at least three times for totally different code
and once for a minor variation.  Further, GM ran out of mask id's and
wrapped the byte value back around to small numbers.  How should the
utility program report these reused mask id's to the user?  "5Baa, 5Bab,
5Bb, and 5Bc", or "5B.1a, 5B.1b, 5B.2, 5B.3", "05B.1a, 05B.1b, 05B.2,
15B", or something else?

-- 
Ludis Langens                               ludis (at) cruzers (dot) com
Mac, Fiero, & engine controller goodies:  http://www.cruzers.com/~ludis/

----------------------------------------------------------------------------
To unsubscribe from gmecm, send "unsubscribe gmecm" (without the quotes)
in the body of a message (not the subject) to majordomo at lists.diy-efi.org




More information about the Gmecm mailing list