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