$86 & $B4 Lotus M100 Disassembly

Posts: 6
Joined: Fri Jan 26, 2018 6:12 am

$86 & $B4 Lotus M100 Disassembly

Postby Hogflash » Mon Feb 04, 2019 7:13 am

Lotus Elan M100 Listing, Notes and bins
(507.61 KiB) Downloaded 124 times
A few notes about these listings for the 1990-1994 Lotus M100 Turbo:

First, I have no official information about any of the code or table scaling factors. This was all derived from looking at similar listings and analysis of the code. Many variables and tables I just made up descriptive names for. Thus, some of this information may be totally wrong! And, this is my first "big" disassembly project. Hopefully it will be useful to others.

If anyone knows better and wishes to share the corrections I will be happy to post updated listings and table information.

These two listings are almost identical:
--Strategy $86 is an European open-loop calibration (03-Feb-2019 v1.5)
--Strategy $B4 is a USA Federal 49-state closed loop calibration (03-feb-2019 v1.2)

The principal difference is that $B4 has added more extensive EGR diagnostics that monitor for temperature changes when the EGR valve is opened and closed. However, for this non-California calibration this diagnostic is disabled. There is also a EGR temperature lookup table added, altho I do not know what the temperature units conversion is. The scaling looks kinda odd.

The open-loop calibration inputs a 0-5V "CO Adjustment Pot" signal to the ECM that is used to tweek the AFR to pass Euro emissions. This drives a 3-D lookup table (TBL# 17: BPW Bias vs CO POT Voltage Offset vs MAP) that applies the change based on MAP load altho only 20 kPa row is used. For the closed-loop cals, the CO Pot signal is replaced by the EGR temperature sensor signal.

There are a number of tables that I have no idea of how they are used - for example:
--TBL# 15: 17x1 TBD vs RPM (closed loop related)
--TBL# 16: 17x1 TBD vs RPM (closed loop related)
--TBL# 28: 17x1 TBD vs ECT AFR Related??
--TBL# 29: 17x1 Mult vs ECT AFR Related??
--TBL# 30: 7x1 TBD - Unknown Outputs temperatures for different eng RPMs

This ECM implements the hardware-related fueling calculations in two identical interrupt routines (one for each "bank" of two injectors). There are several modes of operation but I don't know what they relate to yet.

The wastegate control code is almost identical to the $8F Turbo Grand Prix code. I pulled many of the comments from the "8F Hac" disassembly. The Lotus M100 uses two 2D tables to control the boost target whereas $8F and $58 use a single 3D table.

I have not formally gone through and analyzed the serial communication routines, so this is very lightly commented. The M100 implements all the serial routines in in IRQ handler as opposed to most GMP4 ECMs which offload this to an external device. At least one has access to the code!

I don't have "real" information on how the FMD or memory-mapped IO is setup for this ECM, so this was determined by a combination of what others have found and what this code is doing. So, it may not always be correct!

Best to all,


Site Admin
User avatar
Posts: 6322
Joined: Sat Feb 28, 2009 8:34 pm

Re: $86 & $B4 Lotus M100 Disassembly

Postby antus » Mon Feb 04, 2019 7:57 am

Good work there. Thanks for sharing!
Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396

Posts: 6
Joined: Fri Jan 26, 2018 6:12 am

Re: $86 & $B4 Lotus M100 Disassembly

Postby Hogflash » Mon Feb 04, 2019 1:30 pm

I'd like to do more with this, but I need information on the FMD, memory-mapped IO, Factory Test mode, and the ECM hardware. I'll probably work through a bit more of it anyway, but if anyone has info about these, send me a note!


Return to Disassembly and Reassembly

Who is online

Users browsing this forum: No registered users and 1 guest