EEC V file conversion

All hardware related, disassembly / programming and code discussions belong here.
BOOSTEDEVERYTHING
Posts: 345
Joined: 2023 Sep 06, 13:11
Location: Charlotte NC , USA
Vehicle Information: 1999 Ford Ranger with 2000 Explorer v8 swap, FLN0
2003 Ford F150 Harley Davidson, Built 5.4L SOHC with 3.4L Whipple and Built 4R100

Re: EEC V file conversion

Unread post by BOOSTEDEVERYTHING »

A few updates added to the DIR file.
Do you know if there may be any documentation on a strategy that uses the 4r100 transmission? I noticed It seems to use more subroutines and or different subs to run the 4r100.
Attachments
Stock_EKO2_256k_20240701.zip
(93.98 KiB) Downloaded 145 times
jsa
Posts: 361
Joined: 2021 Feb 16, 15:46
Location: Australia
Vehicle Information: 95 Escort RS Cosworth
2.0 YBP
CARD / QUIK / COSY / ANTI
GHAJ0
SMD-190 / SMD-490 EEC-IV

Binary Editor
ForDiag

Re: EEC V file conversion

Unread post by jsa »

I'm not much use with regard to automatics, the limit of my knowledge is removing auto code to make way for other stuff.

Thanks for the EKO2 update.
BOOSTEDEVERYTHING
Posts: 345
Joined: 2023 Sep 06, 13:11
Location: Charlotte NC , USA
Vehicle Information: 1999 Ford Ranger with 2000 Explorer v8 swap, FLN0
2003 Ford F150 Harley Davidson, Built 5.4L SOHC with 3.4L Whipple and Built 4R100

Re: EEC V file conversion

Unread post by BOOSTEDEVERYTHING »

I have a question about RBase values.....How can I tell what the value should be in a subroutine? Here is an exampler from eko2...

Code: Select all

 Sub_868c5:
868c5: f2                 pushp                  push(PSW);
868c6: b0,83,26           ldb   R26,R83          TEMP1L = PDL;
868c9: 99,08,26           cmpb  R26,8            
868cc: d9,6a              jgtu  86938            if (TEMP1L <= 8)  {
868ce: 99,06,26           cmpb  R26,6            
868d1: d3,65              jnc   86938            if (TEMP1L >= 6)  {
868d3: 3f,9d,62           jb    B7,R9d,86938     if (FLG_SFT_IN = 0)  {
868d6: a3,01,08,f1,34     ldw   R34,[R0+f108]    TMP1L = OSDIAG_1F108;
868db: b0,81,36           ldb   R36,R81          TMP2L = GR_CM;
868de: ac,81,38           ldzbw R38,R81          TMP3L = GR_CM;
868e1: 08,01,38           shrw  R38,1            TMP3L >>= 1;
868e4: b3,39,d7,06,26     ldb   R26,[R38+6d7]    TEMP1L = [TMP3L+106d7];
868e9: 99,08,36           cmpb  R36,8            
868ec: df,34              je    86922            if (TMP2L != 8)  {
868ee: d9,48              jgtu  86938            if (TMP2L > 8) goto 86938;
868f0: b3,e2,9e,94        ldb   R94,[Re2+9e]     FLAGTEMP_BG = FLAGS_R121E;
868f4: 32,94,41           jnb   B2,R94,86938     if (B2_FLAGTEMP_BG = 0) goto 86938;
868f7: a3,01,04,f1,3c     ldw   R3c,[R0+f104]    TMP5L = ESDIAG;
868fc: 8b,fd,14,01,3c     cmpw  R3c,[Rfc+114]    
86901: d3,35              jnc   86938            if (TMP5L < [15c5c]) goto 86938;
86903: a0,62,3c           ldw   R3c,R62          TMP5L = TP_REL;
86906: 8b,fd,16,01,3c     cmpw  R3c,[Rfc+116]    
8690b: d3,2b              jnc   86938            if (TMP5L < [15c5e]) goto 86938;
8690d: 8b,ff,80,01,34     cmpw  R34,[Rfe+180]    
86912: db,1b              jc    8692f            if (TMP1L >= OSSMIN) goto 8692f;
86914: a3,01,02,f1,34     ldw   R34,[R0+f102]    TMP1L = VSDIAG;
86919: 8b,fd,22,01,34     cmpw  R34,[Rfc+122]    
8691e: d9,09              jgtu  86929            if (TMP1L > [15c6a]) goto 86929;
86920: 20,16              sjmp  86938            goto 86938; }

86922: 8b,ff,80,01,34     cmpw  R34,[Rfe+180]    
86927: d3,06              jnc   8692f            if (TMP1L < OSSMIN) goto 8692f; }
86929: 17,26              incb  R26              TEMP1L++;
8692b: d3,06              jnc   86933            if (TEMP1L <= ff) goto 86933;
8692d: 20,09              sjmp  86938            goto 86938; } }

8692f: 15,26              decb  R26              TEMP1L--;
86931: d3,05              jnc   86938            if (TEMP1L < 0) goto 86938; }
86933: c7,39,d7,06,26     stb   R26,[R38+6d7]    [TMP3L+106d7] = TEMP1L; } } } } } } } }
86938: f3                 popp                   PSW = pop();
86939: f0                 ret                    return;
It looks like R26 should be an Rbase value, but I am lost as to find out what it should be.

Funny enough I think I found another bug in SAD V5, here is the same subroutine from the SAD V5 LST file..

Code: Select all

Sub_868c5:
868c5: f2                 pushp                  push(PSW);
868c6: b0,83,26           ldb   R26,R83          TEMP1L = PDL;
868c9: 99,08,26           cmpb  R26,8            
868cc: d9,6a              jgtu  86938            if (TEMP1L <= 8) {
868ce: 99,06,26           cmpb  R26,6            
868d1: d3,65              jnc   86938            if (TEMP1L >= 6) {
868d3: 3f,9d,62           jb    B7,R9d,86938     if (FLG_SFT_IN = 0) {
868d6: a3,01,08,f1,34     ldw   R34,[R0+f108]    TMP1L = OSDIAG_1F108;
868db: b0,81,36           ldb   R36,R81          TMP2L = GR_CM;
868de: ac,81,38           ldzbw R38,R81          TMP3L = GR_CM;
868e1: 08,01,38           shrw  R38,1            TMP3L >>= 1;
868e4: b3,39,d7,06,26     ldb   R26,[R38+6d7]    TEMP1L = [TMP3L+306d7];
868e9: 99,08,36           cmpb  R36,8            
868ec: df,34              je    86922            if (TMP2L != 8) {
868ee: d9,48              jgtu  86938            if (TMP2L > 8) goto 86938;
868f0: b3,e2,9e,94        ldb   R94,[Re2+9e]     FLAGTEMP_BG = FLAGS_R121E;
868f4: 32,94,41           jnb   B2,R94,86938     if (B2_FLAGTEMP_BG = 0) goto 86938;
868f7: a3,01,04,f1,3c     ldw   R3c,[R0+f104]    TMP5L = ESDIAG;
868fc: 8b,fd,14,01,3c     cmpw  R3c,[Rfc+114]    
86901: d3,35              jnc   86938            if (TMP5L < [15c5c]) goto 86938;
86903: a0,62,3c           ldw   R3c,R62          TMP5L = TP_REL;
86906: 8b,fd,16,01,3c     cmpw  R3c,[Rfc+116]    
8690b: d3,2b              jnc   86938            if (TMP5L < [15c5e]) goto 86938;
8690d: 8b,ff,80,01,34     cmpw  R34,[Rfe+180]    
86912: db,1b              jc    8692f            if (TMP1L >= OSSMIN) goto 8692f;
86914: a3,01,02,f1,34     ldw   R34,[R0+f102]    TMP1L = VSDIAG;
86919: 8b,fd,22,01,34     cmpw  R34,[Rfc+122]    
8691e: d9,09              jgtu  86929            if (TMP1L > [15c6a]) goto 86929;
86920: 20,16              sjmp  86938            goto 86938; }

86922: 8b,ff,80,01,34     cmpw  R34,[Rfe+180]    
86927: d3,06              jnc   8692f            if (TMP1L < OSSMIN) goto 8692f; }
86929: 17,26              incb  R26              TEMP1L++;
8692b: d3,06              jnc   86933            if (TEMP1L  <= ff) goto 86933;
8692d: 20,09              sjmp  86938            goto 86938; } }

8692f: 15,26              decb  R26              TEMP1L--;
86931: d3,05              jnc   86938            if (TEMP1L < 0) goto 86938; }
86933: c7,39,d7,06,26     stb   R26,[R38+6d7]    [TMP3L+306d7] = TEMP1L; } } } } } } } }
86938: f3                 popp                   PSW = pop();
86939: f0                 ret                    return;
I am sure you can spot it right away...LOL
jsa
Posts: 361
Joined: 2021 Feb 16, 15:46
Location: Australia
Vehicle Information: 95 Escort RS Cosworth
2.0 YBP
CARD / QUIK / COSY / ANTI
GHAJ0
SMD-190 / SMD-490 EEC-IV

Binary Editor
ForDiag

Re: EEC V file conversion

Unread post by jsa »

I'm not seeing R26 as an rbase in the code sample above.

Yeah right, bank 3, not. Report the bug.
BOOSTEDEVERYTHING
Posts: 345
Joined: 2023 Sep 06, 13:11
Location: Charlotte NC , USA
Vehicle Information: 1999 Ford Ranger with 2000 Explorer v8 swap, FLN0
2003 Ford F150 Harley Davidson, Built 5.4L SOHC with 3.4L Whipple and Built 4R100

Re: EEC V file conversion

Unread post by BOOSTEDEVERYTHING »

I'm not seeing R26 as an rbase in the code sample above.
Oh, that's my mistake then. So it is adding whatever is loaded to R26 to whatever is in the other address together in the above code? So there would be no way of knowing what the actual values are unless the code was running with real values and feedback?

EDIT: Sorry, RBase value for R38? I screwed that one up, LOL.

Also, should I report the bug in this forum in the SAD V5 thread or is there a better place to report bugs?
jsa
Posts: 361
Joined: 2021 Feb 16, 15:46
Location: Australia
Vehicle Information: 95 Escort RS Cosworth
2.0 YBP
CARD / QUIK / COSY / ANTI
GHAJ0
SMD-190 / SMD-490 EEC-IV

Binary Editor
ForDiag

Re: EEC V file conversion

Unread post by jsa »

R38 contains the value from GR_CM. How many gears have you got...so not many possibilites...

Code: Select all

868de: ac,81,38           ldzbw R38,R81          TMP3L = GR_CM;
Divide it by 2.

Code: Select all

868e1: 08,01,38           shrw  R38,1            TMP3L >>= 1;
Becomes

Code: Select all

868e4: b3,39,d7,06,26     ldb   R26,[R38+6d7]    TEMP1L = [(GR_CM/2)+106d7];
What do the strategy docs say about GR_CM?
Logging GR_CM would confirm the values of the base.

Yes report it in the V5 thread as a heads up for all. TVRfan has an email address on his github page or in the user manuals, so do that too. You could also raise an issue using github which would be visible to users who find SAD but don't use this forum.
BOOSTEDEVERYTHING
Posts: 345
Joined: 2023 Sep 06, 13:11
Location: Charlotte NC , USA
Vehicle Information: 1999 Ford Ranger with 2000 Explorer v8 swap, FLN0
2003 Ford F150 Harley Davidson, Built 5.4L SOHC with 3.4L Whipple and Built 4R100

Re: EEC V file conversion

Unread post by BOOSTEDEVERYTHING »

Ok. I think I can understand that. So, I would need to log the values in all gears and make note of them, Then divide that value by 2 and then add the 106d7, and that would be the actual value, or would I need to figure out what value the PCM has stored in 106d7 and add that to the value in GR_CM/2?
I guess I am asking if 106d7 is a static/constant value or parameter and if I am trying to define that in a dir file, would I just ignore the value in R38 for this purpose?
I will report the bug in the V5 thread and look up his email address, thanks.
jsa
Posts: 361
Joined: 2021 Feb 16, 15:46
Location: Australia
Vehicle Information: 95 Escort RS Cosworth
2.0 YBP
CARD / QUIK / COSY / ANTI
GHAJ0
SMD-190 / SMD-490 EEC-IV

Binary Editor
ForDiag

Re: EEC V file conversion

Unread post by jsa »

Yes you could log each gear to confirm the value of GR_CM.
Yes if the logged value for 4th gear is 0x8 then that is [0x4+106D7]=0x106DB.

R26 will end up holding the value contained at address 0x106DB.

Code: Select all

868e4: b3,39,d7,06,26     ldb   R26,[R38+6d7]    TEMP1L = [106DB]
Does GR_CM ever hold the value 0 for park or neutral??

You could add something like this to your comments file;

Code: Select all

868e4 # [6D7] Gear 0?? \s6D7/n
868e4 # [6D8] Gear 1 \s6D8/n
868e4 # [6D9] Gear 2 \s6D9/n
868e4 # [6DA] Gear 3 \s6DA/n
868e4 # [6DB] Gear 4 \s6DB
They are parameters that can be added to your directive file.
BOOSTEDEVERYTHING
Posts: 345
Joined: 2023 Sep 06, 13:11
Location: Charlotte NC , USA
Vehicle Information: 1999 Ford Ranger with 2000 Explorer v8 swap, FLN0
2003 Ford F150 Harley Davidson, Built 5.4L SOHC with 3.4L Whipple and Built 4R100

Re: EEC V file conversion

Unread post by BOOSTEDEVERYTHING »

Does GR_CM ever hold the value 0 for park or neutral??
Not sure about that one. I will have to figure out how to make a DEF file for tunerpro or BE and then the truck is kind of torn apart right now anyways for some body work, so even when I figure out how to build a proper DEF file, it may be a couple more months before the truck is up and running again. I may end up switching back to the READ0 strategy and building that one up some more. That is the truck I am driving now. It's my dad's truck, but he has been letting me borrow it while mine is down. Right now I am using a Core Tuning DEF file in BE, but it is a paid file and it is missing some things and some of the tables for timing look a bit screwy, so I am hesitant to change much. Guess I need to dig into building a file of my own with the DIR file we have been building up. If I understand correctly, it first needs to be transferred to a spreadsheet of some kind?
jsa
Posts: 361
Joined: 2021 Feb 16, 15:46
Location: Australia
Vehicle Information: 95 Escort RS Cosworth
2.0 YBP
CARD / QUIK / COSY / ANTI
GHAJ0
SMD-190 / SMD-490 EEC-IV

Binary Editor
ForDiag

Re: EEC V file conversion

Unread post by jsa »

This is a BE def file, it is a spreadsheet file.

http://eecanalyzer.net/strategies?view= ... fileId=553

You can use an intermediate spreadsheet to do the conversion from dir to def the copy the result to the actual def file.
Post Reply