Disassembly listings

Ludis Langens ludis at cruzers.com
Sun Apr 26 15:25:54 GMT 1998


Participating in the current flurry of information postings, I've put
three ECM+PROM disassemblies up on my web page.  These are raw,
uncommented disassemblies.  They are the result of mostly mechanical
(i.e. computer) processing.  However, all the data tables/locations are
formatted in a sensible manner.

The real 'feature' is that for every instruction, the 6801 register
contents are listed in a comment field.  They are shown as if they were
the source operand of a LDAA (or LDX) instruction.  The "N register" is
really the N flag.  The listed contents are the values _before_ the
instruction executes.  If the contents are unknown, or there were too
many possible values, this is indicated with a ? character.  If a
register is not listed, then it is not used in this or a subsequent
instruction (until it gets loaded with a fresh value.)  Subroutines that
don't modify a particular register are a slight exception to this rule -
the register might be used by the caller.

These disassemblies have been run back through an assembler, and they
assembled to the correct ROM image.  I'm actually using a 680x0
assembler with macros handling the 6800/68HC11 mnemonics.  I've had to
change the syntax slightly - it isn't exactly Motorola 68xx standard.

One of the disassemblies is for the 1227747 truck TBI ECM.  The others
are two variants for the 1226867 2.0 L4 TBI ECM.  Here's the URL:

  http://www.cruzers.com/~ludis/disasm.html

Paraphrasing from Terry Kelley:
I don't work for GM, I don't want to work for GM, and GM didn't help me.

               unsigned long BinToBCD(unsigned long i) {unsigned long t;
Ludis Langens     return i ? (t = BinToBCD(i >> 1), (t << 1) + (i & 1) + 
ludis at cruzers.com            (t + 858993459 >> 2 & 572662306) * 3) : 0;}




More information about the Diy_efi mailing list