Page 2 of 2

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Nov 16, 2017 6:06 pm
by jsa
Pym has issues with SAD and Rbase as well.

viewtopic.php?f=30&t=1260&p=32530&hilit=rbase#p32530

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Nov 16, 2017 7:01 pm
by motorhead1991
That just might be my issue. This is for a '90, which is "early" in a sense.

It is however the first year of the MAF 2.3, and only in California :D

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Nov 16, 2017 7:14 pm
by jsa
M0M2 in anyway related to LA3 and LA4 catch code?

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Nov 16, 2017 8:04 pm
by motorhead1991
jsa wrote:MOM2 in anyway related to LA3 and LA4 catch code?


Aside from being for a 2.3, I don't believe so, but like decipha always says "Henry loved to reuse code."

I know LA3 only had one slope scalar, and that might be the case here as well

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Nov 16, 2017 8:39 pm
by jsa
Archived somewhere here I have LA3 & LA4 directives and listings that were done with the BL disassembler.

Let me know if you want them and I can dig them up.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Nov 16, 2017 8:40 pm
by motorhead1991
jsa wrote:Archived somewhere here I have LA3 & LA4 directives and listings that were done with the BL disassembler.

Let me know if you want them and I can dig them up.


Anything helps. This ECM seems to be quite a headache :D.

I might have enough done through SAD to create one, but the formatting is quite a bit different.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Nov 16, 2017 9:09 pm
by motorhead1991
Well, both slopes are defined, but the high slope is also pointing at a KAM address. So, that means the index pointers aren't being extrapolated correctly as decipha thought.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Fri Nov 17, 2017 2:34 am
by jsa
Courtesy of the Andrew March website.

LA3 and LA4 disassembly.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Fri Nov 17, 2017 2:40 am
by ranga83
Our aussie 4.0s only have the 1 injector slope too. Ill find it in my dis and see if its similar

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Fri Nov 17, 2017 11:05 am
by motorhead1991
ranga83 wrote:Our aussie 4.0s only have the 1 injector slope too. Ill find it in my dis and see if its similar


I found both slope pointers, when compared to A9L. The problem is that they don't resolve to an address.

M0M2 is older than A9L, so it makes sense why the code would be different, and coupled with the fact that its a "California" computer makes it an oddity as well.



Note: California is probably the strictest state when it comes to emissions standards. Most "efficiency" tweaks from an OEM start as a California compliant model. Like the cam synchronizer and MAF on the 2.3s.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Fri Nov 17, 2017 11:32 am
by sailorbob
The high and low injector slopes are in data block 3 (both are set to the same value of 14.22 lb/hr in M0M2). This strategy, and similar strategies (such as used by the C1A1 & ANY1 ecu's), copy the slope values into ram and use them from those ram addresses as both the original value and also as a hot injector compensated value if required.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Fri Nov 17, 2017 11:44 am
by motorhead1991
sailorbob wrote:The high and low injector slopes are in data block 3 (both are set to the same value of 14.22 lb/hr in MOM2). This strategy, and similar strategies (such as used by the C1A1 & ANY1 ecu's), copy the slope values into ram and use them from those ram addresses as both the original value and also as a hot injector compensated value if required.


MOM2 and M0M2 are different. MOM2 is an OBD2 computer as Mike and I have discussed in private.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Fri Nov 17, 2017 12:07 pm
by sailorbob
I've fixed my misspelling of M0M2 :D

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Fri Nov 17, 2017 12:31 pm
by motorhead1991
sailorbob wrote:I've fixed my misspelling of M0M2 :D


So you have a def already? Or just experience with this binary?

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Fri Nov 17, 2017 1:09 pm
by motorhead1991
Ah ha! I've figured it out. Under "Reset_All", it lists an address, then a RAM pointer. This means the slopes are 9d94 and 9d96. Thank's for the hint, Derek :D

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Fri Nov 17, 2017 2:46 pm
by sailorbob
I don't have a definition for it, I just compared the binary to another EFI-MA39C ecu I have disassembled. Yep, you've found the slopes.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Fri Nov 17, 2017 4:06 pm
by motorhead1991
sailorbob wrote:I don't have a definition for it, I just compared the binary to another EFI-MA39C ecu I have disassembled. Yep, you've found the slopes.


Sweet, so my work on this might open the door to the other early MAF ECMs :D.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Sat Nov 18, 2017 11:24 pm
by motorhead1991
Now we're getting somewhere with this...

Just a few more fuel scalars and tables to locate, then it's on to figuring out spark or idle, and the rest of the not-so-important stuff.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Sun Dec 17, 2017 2:55 am
by sailorbob
If your disassembly is spitting this out in your listing
Code: Select all
6465: a3,76,96,22       ldw   R22,[R76+96]   ALTSTACK = [316];
then it's either wrongly set to treat the binary as 8065 based instead of 8061 based, it's wrongly labelling a general register or you have it mislabelled in your directive file.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Mon Dec 18, 2017 12:24 pm
by motorhead1991
sailorbob wrote:If your disassembly is spitting this out in your listing
Code: Select all
6465: a3,76,96,22       ldw   R22,[R76+96]   ALTSTACK = [316];
then it's either wrongly set to treat the binary as 8065 based instead of 8061 based, it's wrongly labelling a general register or you have it mislabelled in your directive file.


No "H" option set, so I'd bank on the directive file. Being the less experienced one here, I'd never notice errors like that. What's wrong with it specifically?

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Mon Dec 18, 2017 12:36 pm
by sailorbob
The 8061 does not have an alternative stack pointer.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Mon Dec 18, 2017 1:35 pm
by motorhead1991
sailorbob wrote:The 8061 does not have an alternative stack pointer.


Well that would make sense then wouldn't it? :D
That is in-fact mislabeled in the directive.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Jan 11, 2018 11:41 pm
by motorhead1991
Updated the files and changed the zip name with a timestamp this time.
m0m2_1-11-18

The XDF has a few more things identified, and is almost inline with the directive. There are some minor discrepancies still, but it's getting closer.

Also laid out are some of the RAM pointers. I need to update the datalog patch code to coincide with those though.

EDIT:
Am I also correct in assuming these early MAF ECMs didn't use halffuelon (NRM_SH)? The hex value at this address is FAFE.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Sat Jan 13, 2018 11:52 am
by motorhead1991
I intend on updating some files in the above zip tonight. For the 5 of you that downloaded it, compare the dates on them. I fixed the base fuel table and transients on the XDF, as well as added the PIP RPM limiters.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Jan 18, 2018 11:37 am
by motorhead1991
Another updated zip, this time with the beginning of a changelog. The datalog patch code is almost ready as well (BTW decipha, your A9L patch still has ECT in list A, which is not what your writeup says to do).

Nothing real major as far as the tune is concerned, but the disassembly has a handful of updates.

m0m2_1-17-18

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Jan 18, 2018 7:48 pm
by decipha
motorhead1991 wrote:... (BTW decipha, your A9L patch still has ECT in list A, which is not what your writeup says to do)


thats cuz in gufb the ect is b0 and act is b1

the logging offset puts them in that order as well at 1f24 and 1f25

instead of copying a byte from b0 to 1f24 and a byte from b1 to 1f25 you might as well save a word from b0 to 1f24 which does the same

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Jan 18, 2018 8:12 pm
by motorhead1991
decipha wrote:
motorhead1991 wrote:... (BTW decipha, your A9L patch still has ECT in list A, which is not what your writeup says to do)


thats cuz in gufb the ect is b0 and act is b1

the logging offset puts them in that order as well at 1f24 and 1f25

instead of copying a byte from b0 to 1f24 and a byte from b1 to 1f25 you might as well save a word from b0 to 1f24 which does the same


Makes sense. My guess is M0M2 should also be fine in this case, since ECT and ACT are at AD and AE respectively.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Jan 18, 2018 8:32 pm
by decipha
nope wont work, AD is an odd address boundary, if u read a word from an odd address you offset the reading address

youll have to read them each in list b as bytes each

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Jan 18, 2018 9:52 pm
by motorhead1991
OK, so "EE20" is where list B starts on this table. If I'm understanding correctly, the shadow address is more important than the physical address of the pointer, yes? So if I push list C further down the ROM, it shouldn't break.

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Thu Jan 18, 2018 10:09 pm
by decipha
ee20 is the rom address, i only put that there so its easier to compare when you have a hex editor open, u can ignore it

you simply place the byte address and shadow location after the word list, i usually like to keep things in order

if u look at rzasa or the like youll see instead of having the payload list as a table i have it as a function instead, makes it very easy to simply copy and paste when u need to add space in there

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Sun Feb 04, 2018 6:42 pm
by motorhead1991
Got some quality time with the QH to try the datalogging patch. The addresses need work, but it's logging!

https://youtu.be/FN006nk-miU

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Sun Feb 04, 2018 8:36 pm
by decipha
oh good

Re: M0M2 (EFI-MA35C) Development & Discussion

Unread postPosted: Sun Feb 04, 2018 11:10 pm
by motorhead1991
I figured it out. I forgot to update the patch itself, and reset the binary. Oops :D