The Central Hub for DSM Community and Information

For 1990-1999 Mitsubishi Eclipse, Eagle Talon, Plymouth Laser, and Galant VR-4 Owners. This is where the DSM platform history is documented and archived. Log in to help us in our mission, and to remove most ads from the browsing experience.

FWD and A/T AWD maps are more aggresive?

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

dsm-onster

DSM Wiseman
8,592
130
Jul 11, 2004
Bloxom, Virginia
I think I've found the timing & fuel tables in the FWD and AWD auto bin. Now, here's the maps and corresponding 3D graphs. Am I off on the addresses? Or is the Automatic AWD (e932a) and the FWD (e932) demonstrate a more aggressive A/F curve AND timing curve? For the E932A, the beginning address for the fuel table in hex is 7C27 and 7D31 for the timing table. For the E932, the beginning address for the fuel table in hex is the same for both tables.

The E932 and E932a chips only richen up to 9.8 a/f ratio at peak rpms and grams/rev, instead of 9.3 as with the 5speed AWD E931 chip. And these same chips show 1 more degree of timing at peak. And generally, the graphs are more aggressive (steeper average slope). As you can see, the E932(a) maps stay higher for a broader range.

The FWD 5speed E932 EPROM would be more desirable because it has 450cc injector settings. All automatic turbo 1Gs came with 390cc injectors. I gather that the non-EPROM ecu would have the same map. Therefore, any FWD ecu would offer more aggressive timing and fuel maps. But, the FWD 5speed ecu would have those more aggressive maps and settings for 450s. Please correct me if I'm wrong here. I could be wrong all the way back to the addresses in the E932(a) EPROM bin. And I'm not sure that ALL FWD EPROMs are E932.

I know this image is not within the maximum width, but it's close and the smallest I think I can go for legibility. I haven’t found the addresses for revlimit, global injector flow, fuel cut, maf multiplier (I do have the maf scalar. It's the same as the E931 bin), maf compensation, and everything else the TunerPro 931 32K .xdf has. The bins used are from the dsm-ecu yahoo group. BEST source for DSM ecu info BAR NONE.

So, am I right? Are th FWD and automatic AWD maps more aggressive?

******EDIT: I was off one address with the fuel table. Here's some better shots of the tables with the correction:
 

Attachments

You must be registered for see attachments list
I would have to check my excel file when I get home. That does sound right though. It would make since also for the N/A engine to have a more aggressive timing map. The non turbos that I have dealt with all had non eprom ecu's. What ecu did you find that had eprom?
 
This eprom is the E932a eprom, which is the June 1990 to June 1992 A/T AWD eprom. I have before me a 1991 automatic AWD Federal ecu because it is an MD165531 and has an E932a EPROM and has no resistor at 130 but one at 129. I have the binary for the E932 and 932a chip from the dsm-ecu group. I also have a 3/1989-6/1990 AWD eprom. I havn't found those maps yet. I remember reading on dsm-ecu that the 3/1989-6/1990 tables are the same between A/T and manual.

Yea, ALL 1g a/t Turbo cars had 390s. . . But I THINK all FWD ecus post-1990 have more aggresive timing and fuel, manual or automatic. These are the same tables and addresses as post-1990 1G AWD automatics. If the manual FWD eprom chip is the E932 and non-eprom ecus have the same timing and fuel tables as eprom ecus, then any manual FWD ecu is an upgrade to the manual AWD. Now how much more power these maps yield, who knows? They do clearly appear more aggressive.
 
Wow I must have been asleep when I read this first. I didnt see anything about non turbo. My assumtion when I hear FWD.

If you look at the timing maps A/T-FWD they do show less timing down low. I am thinking that the fuel map being leaner has something to do with the FWD-A/T cars having a higher gear ratio since they are close in ratio. Maybe runnin the A/T-FWD maps will help increase some low end spool up if put with a 14B-16G manual trans car.
 
This comparison is of the E931 versus the E932 and E932a. The E931 is on right. The E932 and E932a is on the left. They share the same maps. The E931 eprom is in the 6/1990-6/1992 manual AWD. I was under the impression that the E932 is an eprom for a manual FWD. Thus, the E932 eprom ecu or other FWD ecu of the same years has the same aggressive maps as the automatic AWD (E932a) AND has the settings for 450s.

Doesn't the E932 eprom come from the factory in a manual FWD?


I have a 5speed fwd eprom in my car froma 91 and it has a E931 eprom. However it looks like with a simple swap of ecu and injectors could yeild some gains on a fairly stock car.
Do you have a chance to check your ecu? Open it and look where the circle is in the below pic. If there is a resister at r129, you have a federal ecu. If not, it's a Cali ecu. If there is a risistor at r130, you have a FWD ecu. If not, AWD.
 

Attachments

You must be registered for see attachments list
THANK YOU for finding that. I remember being on that site and seeing that. But I thought that is was just the vfaq ecu part numbers tables.

The stealth316 site lists the corresponding EPROM. Well, that settles it.

If you swap to an automatic ecu and run an SAFC and 450s you will get more aggresive timing maps and SHOULD push off fuel cut a little bit as well :) since you are fooling the ecu to a lower airflow to compensate. I found the address for fuel cut for the E932 and E932a: $5556. The value is the same (2.55g/rev) and so is the context.
 
I don't for now. I would like to get into the 2g ecu as well. A 2g map would be good for a 2g piston swap.

Well, I have discovered some more e932 and e932a addresses. Injector pulse width cap, revlimit, injector size compensation, MAF multiplier. I'm building a tunerpro .xdf . Not that it really matters. The 931 bin can be flashed in and it's all done.

Does anyone have a clear explination as to what will happen if r130 (awd/fwd resistor) is added or removed?


**********EDIT: I updated the snapshots of the timing and fuel table. I was off 1 address on the fuel table.
 
Does anyone have a clear explanation as to what will happen if r130 (awd/fwd resistor) is added or removed?
From what I've seen in the e931 disassembly there is a difference in the closed loop fuel management. It changes the ammount of fuel added/subtracted in order to cycle the O2 sensor for the first 4 seconds after the throttle is opened. Fed FWD is the leanest, Cal AWD is the richest. I haven't seen, nor have I really looked for any other differences.
 
I don't for now. I would like to get into the 2g ecu as well. A 2g map would be good for a 2g piston swap.

Well, I have discovered some more e932 and e932a addresses. Injector pulse width cap, revlimit, injector size compensation, MAF multiplier. I'm building a tunerpro .xdf . Not that it really matters. The 931 bin can be flashed in and it's all done.

Does anyone have a clear explination as to what will happen if r130 (awd/fwd resistor) is added or removed?


**********EDIT: I updated the snapshots of the timing and fuel table. I was off 1 address on the fuel table.


I have been doing the same thing with the EB23E bin. Just going through it for the hell of it. There are 6 timing maps and 4 fuel maps. So far I found that the timing maps are 288 bit map compared to the 1g 192 bit maps. My understanding so far is that 2G cars will use one rom image and have differant configurations for fwd-awd and for cali-federal. They will use a combonation of resistors to chose what map the ecu wants to be in.

Does anyone have any insight also what happens when the R130 resistor is changed. I am interested as well.
 
Well so far from looking at both the e932 bins, the code loction and context for injector compensation of the e932 matches the e932a. Therefore, all ecus with the e932 and e932a are 390cc injector eproms in stock code. It looks like the e932 and e932a are identical. I have found no difference at or around all the locations for any code that we edit for the e931, SO FAR.

I'll tell you... I'm not understanding the maf hertz logging rate with the e932 EPROM bins. All the context points to Address $53E1 as being the data to edit (the code being $A9), but that data is not the same as the e931 ($B4). I don't know if I should subtract 1 hex like for the e931 code to double the hertz range or not ??? Again. None of this really matters because since the automatic maps are now found, I can just copy/past the maps to the e931 bin in the proper location and have all the accessability into that binary the tunerpro e931 definition file and First Generation DSM EPROM Editing offers.

So before inserting the 2g timing table into the 1g eprom bin, the table will have to be compressed for the poorer resolution of the 1g code, right? Nevertheless, I like the 2g eprom ecu!!! Can't you change the 4 different tables to what ever tune you want, and setup a switch to alternate between them? I'm thinking pumpgas tune, race gas tune, E-85 tune, injection/nitrous tune.
 
I knew I had done the difference between the E932 and E932A code before.
Here's the only differences in the two. I surrounded the hex diff output with the comments and context.

; ECU Version
00006783 b7 cf

;******************************************************************
;
; AT specific table, equivalent of t_iscStStall when not in park/neutral
;
;******************************************************************
#ifdef E932
L2030 .byte $09, $23, $45, $4f, $4f, $4f, $4f
#else
#ifdef E932A
L2030 .byte $0c, $26, $48, $52, $52, $52, $52
#endif

00007ed0 09 0c
00007ed1 23 26
00007ed2 45 48
00007ed3 4f 52
00007ed4 4f 52
00007ed5 4f 52
00007ed6 4f 52

;******************************************************************
;
; EGR solenoid duty cycle as a function of ECT
;
; Value of $00 to $80 will produce
; 0 to 100% duty cycle
;
;******************************************************************

#ifdef E932A
t_egrDuty .byte $80, $80, $73, $5a, $00, $00, $00, $00
#else
t_egrDuty .byte $80, $80, $5b, $4f, $00, $00, $00, $00
#endif

00007f8a 5b 73
00007f8b 4f 5a
 
Thanx Steve! This is all for my brother's A/T AWD. I'm desiring to use the e932(a) bin to guarantee absolute factory drivability. I thought that for a simple base tune with larger injectors, I could just insert the A/T specific timing and fuel tables into an e931 bin and flash that will all the e931 definition perks. But now I'm really wanting to edit the e932(a) bin itself and use that instead because of the A/T specific commands and tables like the first one there you posted.

I just can't seam to get the formula, if any, that would be used to change from $B4 to $B3 for doubling the hertz log rate at address $53DA for the e931 bin. Since that same point in the code in the e932(a) bin for determining this is supposedly $53E2 with value $A9. To what do I change that value to double the logging rate in the e932(a) bin?
 
Lets get our terms correct. Your are talking about EPROM locations not addreses. Addresses are memory locations and on the 1G ECU they run from 0xc000 to 0xffff.

So at 0xd3da in the E931 code the routine calls the scale by 64 subroutine at 0xebb4.
The 2x MAF patch changed that to call the scale by 128 subroutine entry point a byte earlier at 0xebb3.

In the E932 code that same call is at 0xd3df and the scale 64 subroutine is at 0xeba9. The entry point to the scale by 128 is still a byte earlier at 0xa8.

The other half of this patch was to change the 50Hz constant used at 0xf329 (0xf32a for the constant) in the E931 code. That same code is at 0xf30c in E932. So you change 0xfc0d from 8 to 4.

To translate these addresses into EPROM locations you need to subtract the offset which varies depending on the size of the EPROM your using. For 27128's that would be 0xc000, for 27256's that would be 0x8000, and for 27512's it would be 0x0000.
 
Sorry. You decerned my confusion :) . What does 'calling the scale by 64 subroutine at ebb4' mean? Does that mean that string of data 0xd3da tells the ecu, "Submit the output at this rate"? And the ecu with e931 binary sees the hex value b4 as a command to 'output the scale by 64'? But with the e932 binary (because 0xd3df is the string) it sees the value a9 as that same command?

I don't know how the code makes the ecu do what it does WRT the maf logging range. Didn't take much to get beyond me. My goodness, this is definately NOT fluid dynamics.
 
The E931 code in question actually looks like this:

Code:
    d3d8:	bd eb b4    	jsr	0xebb4			; divide by 64

0xd3da is the memory address (location) of the byte the patch is changing. It's actually part of address 0xebb4 that the code is going to call as a subroutine. The patch changes that address from 0xebb4 to 0xebb3.

The subroutine code for 0xebb3/0xebb4 looks like this.

Code:
;******************************************************************
;
; Divide D by 128 or 64 or 32... in order for the value to fit
; only in b (with a=0). If it does not fit (a<>0), b is loaded with 
; max value of $ff
;
;******************************************************************
8341   EBB3 04          scale128m   lsrd                                                         
8342   EBB4 04          scale64m    lsrd                                                         
8343   EBB5 04                      lsrd                                                         
8344   EBB6 04          scale16m    lsrd                                                         
8345   EBB7 04          scale8m     lsrd                                                         
8346   EBB8 04          scale4m     lsrd                                                         
8347   EBB9 04          scale2m     lsrd                            ; D = D/128, carry contains last bit shifted out                                        
8348   EBBA C9 00       scale1m     adcb    #$00                    ; Add last bit shifted out (round-up number)                                            
8349   EBBC 89 00                   adca    #$00                    ; propagate addition of last bit                                                        
8350   EBBE 4D          ovfCheck    tsta                                                         
8351   EBBF 27 02                   beq     L1624                   ; branch if A=0                                                                                            
8352   EBC1 C6 FF                   ldab    #$ff                    ; A is not 0, set fractional part to FF (the only one returned...)                              
8353   EBC3 39          L1624       rts

The JSR instruction saves a return address and then jumps to the address in the instruction, in this case 0xebb4. Later the code will execute a RTS instruction which cases the program to jump back to the saved return address and continue where it left off. By changing the B4 to B3 at 0xd3da we are changing the address for the JSR to the scale128m routine.

So on this CPU the JSR instruction is hex BD and it's how the program calls another part and then continues with what it was doing.

Does this help?
 
This is starting to make sense to me. I am still learning hex editing. Where would be a good place to start so I can get a beter understanding than to have to wait for these post to pop up. I try to spend at least an hr a day working on this stuff.
 
0xd3da is the memory address (location) of the byte the patch is changing. It's actually part of address 0xebb4 that the code is going to call as a subroutine. The patch changes that address from 0xebb4 to 0xebb3.

YES! I think it does help. I'll be able to sleep at night now.

BD EB = save this address and jump to the address next stated.

With the RTF instruction in the subroutine, "Bookmark this spot. Go to ebb3, ebb4, etc. (Whatever we insert). Do that task. Go back to where you bookmarked and continue on."
 
Add Value - Be Respectful - No Trolling - No Misinformation - Participate Often!
Support Vendors who Support the DSM Community

Build Thread Updates

Latest Classifieds

  • For sale 2g 2G DSM Link V3
    2G DSM Link V3 $600 + shipping and paypal fees* no cable included * cables are 75 on the...
    • jersygsx
    • Updated:
    • Expires
  • Wanted 2g Shot in the dark (2g Pass strut cut out)
    Need 2g strut tower to save time.
    • frosh29
    • Updated:
    • Expires
  • For sale 2g 2G Mishimoto Radiator & Fan Shroud
    2G Mishimoto Radiator & Fan Shroud $200 + shipping and paypal feesYou must be registered to...
    • jersygsx
    • Updated:
    • Expires
  • For sale VIRGIN 4G63 6-BOLT TURBO HEAD
    Came off a virgin stock AWD Auto 1G DMS (91), also have matching block and crank which are also...
    • The_Partout_Spot
    • Updated:
    • Expires
  • For sale 1G DSM 4G63 6-BOLT TIMING COVER
    Used, see condition in photos. Buyer covers shipping / fees.
    • The_Partout_Spot
    • Updated:
    • Expires
Back
Top