EEC V file conversion

All hardware related, disassembly / programming and code discussions belong here.
BOOSTEDEVERYTHING
Posts: 359
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 »

Code: Select all

SYM 153E1 "uyTbAC_MINOFF"                                               #Min A/C Clutch Disable Time (Cycling Delay Rate) {2}
TAB 153E1 15404 :O6    #[O6 UY=flo(X/4)]    23                            #X_FNAC_ATMR1/FNAC_ACTNORM>sec 
I have another question about this one in OMAE2. The strategy docs for CRAI8 say this should be a function with 6 pairs, is that correct, or am I looking at this wrong? It is followed by a wuyTb subroutine in the code, so the code says it is a Table. Should the table only be 2 columns in this case? The code says 6 columns, but maybe it should only be 2 rows? Sorry, I am a bit confused about this one. Just trying to understand the code a little bit better.
jsa
Posts: 376
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 »

The table inputs Clm & Row are VSBAR and ACT scalers. ATMR1 is not a table input.

The code says 153e1 is a table that has 6 columns, therefore it has 6 columns.

Scaler Function 15413 says the maximum column count is 6 and scaler function 15405 says the maximum row count is 6.

You haven't given a reference to the page you are looking at in CRAI8.
BOOSTEDEVERYTHING
Posts: 359
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 »

The table inputs Clm & Row are VSBAR and ACT scalers. ATMR1 is not a table input.
The inputs I got from the RZASA dir, I just copied over what was in there. I’ll take a look at that and change it in my DIR file.



Sorry. The page the function is on is 16-8. Maybe it is as simple as Ford changed from using a function to a table in this strategy. Just trying to wrap my head around some things.
jsa
Posts: 376
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 »

What is the address in RZASA?
BOOSTEDEVERYTHING
Posts: 359
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 »

RZASA

Code: Select all

1d95e: ef,cd,50           call  92a2e            SLU92A2E_SUYFn ();
1d961: ac,3c,36           ldzbw R36,R3c          TMP2L = TMP5L;
1d964: a1,b2,4b,3c        ldw   R3c,4bb2         TMP5L = uyTbAC_MINOFF;
1d968: ad,06,38           ldzbw R38,6            TMP3L = 6;
1d96b: 10,09              rombk 9
1d96d: ef,23,54           call  92d93            SLU92D93_Y16UYTb ();

Code: Select all

  uyTbAC_MINOFF:
14bb2: 14,14,14,14,14,14  table  20,  20,  20,  20,  20,  20
14bb8: 14,14,14,14,14,14  table  20,  20,  20,  20,  20,  20
14bbe: 14,14,14,14,14,14  table  20,  20,  20,  20,  20,  20
14bc4: 14,14,14,14,14,14  table  20,  20,  20,  20,  20,  20
14bca: 14,14,14,14,14,14  table  20,  20,  20,  20,  20,  20
14bd0: 14,14,14,14,14,14  table  20,  20,  20,  20,  20,  20
jsa
Posts: 376
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 »

The data source, the RZASA XDF is in error then.

Scaled VSBAR and scaled ACT are the inputs.

Code: Select all

TAB 153E1 15404 :O6    #[O6 UY=flo(X/4)]    23                            #VSBAR/ACT>sec
BOOSTEDEVERYTHING
Posts: 359
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 what this subroutine is doing in RZASA and if it compares to anything in the strategy docs? I can not seem to find anything in any of the 4 docs that I have and I am a bit confused about what it is actually doing. Thanks

Code: Select all

   Sub_9ebd1:
9ebd1: f2                 pushp                  push(PSW);
9ebd2: b0,13,3a           ldb   R3a,R13          TMP4L = CLOCK_EXTEN;
9ebd5: a0,06,38           ldw   R38,R6           TMP3L = CLOCK;
9ebd8: 98,13,3a           cmpb  R3a,R13          
9ebdb: d7,f5              jne   9ebd2            if (TMP4L != CLOCK_EXTEN) goto 9ebd2;
9ebdd: a0,38,3c           ldw   R3c,R38          TMP5L = TMP3L;
9ebe0: b0,3a,3e           ldb   R3e,R3a          TMP6L = TMP4L;
9ebe3: 6b,d4,52,38        sb2w  R38,[Rd4+52]     TMP3L -= LAST_BG;
9ebe7: bb,d6,6e,3a        sbbb  R3a,[Rd6+6e]     TMP4L -= LAST_BG_EXT - CY;
9ebeb: 11,3b              clrb  R3b              TMP4H = 0;
9ebed: c3,d4,52,3c        stw   R3c,[Rd4+52]     LAST_BG = TMP5L;
9ebf1: c7,d6,6e,3e        stb   R3e,[Rd6+6e]     LAST_BG_EXT = TMP6L;
9ebf5: 4f,ce,32,3a,3c     ml3w  R3c,R3a,[Rce+32] TMP5L = TMP4L * S.0x1AD50;
9ebfa: 6f,ce,32,38        ml2w  R38,[Rce+32]     TMP3L *= S.0x1AD50;
9ebfe: 64,3a,3c           ad2w  R3c,R3a          TMP5L += TMP4L;
9ec01: a4,00,3e           adcw  R3e,R0           TMP6L += CY;
9ec04: 0c,04,3c           shrdw R3c,4            TMP5L >>= 4;
9ec07: a3,d4,4a,36        ldw   R36,[Rd4+4a]     TMP2L = BG_TMRBAR;
9ec0b: a0,3c,38           ldw   R38,R3c          TMP3L = TMP5L;
9ec0e: a3,f6,02,3a        ldw   R3a,[Rf6+2]      TMP4L = TCBGTMR;
9ec12: ef,97,40           call  92cac            Sub_92cac ();
9ec15: c3,d4,4a,42        stw   R42,[Rd4+4a]     BG_TMRBAR = TMP8L;
9ec19: f3                 popp                   PSW = pop();
9ec1a: f0                 ret                    return;

9ec1b: f2                 pushp                  push(PSW);
9ec1c: b0,13,3a           ldb   R3a,R13          TMP4L = CLOCK_EXTEN;
9ec1f: a0,06,38           ldw   R38,R6           TMP3L = CLOCK;
9ec22: 98,13,3a           cmpb  R3a,R13          
9ec25: d7,f5              jne   9ec1c            if (TMP4L != CLOCK_EXTEN) goto 9ec1c;
9ec27: a0,38,3c           ldw   R3c,R38          TMP5L = TMP3L;
9ec2a: b0,3a,3e           ldb   R3e,R3a          TMP6L = TMP4L;
9ec2d: 6b,d6,6c,38        sb2w  R38,[Rd6+6c]     TMP3L -= LAST_BG_32;
9ec31: bb,d6,6f,3a        sbbb  R3a,[Rd6+6f]     TMP4L -= LAST_BG_EXT_32 - CY;
9ec35: 11,3b              clrb  R3b              TMP4H = 0;
9ec37: c3,d6,6c,3c        stw   R3c,[Rd6+6c]     LAST_BG_32 = TMP5L;
9ec3b: c7,d6,6f,3e        stb   R3e,[Rd6+6f]     LAST_BG_EXT_32 = TMP6L;
9ec3f: 4f,ce,32,3a,3c     ml3w  R3c,R3a,[Rce+32] TMP5L = TMP4L * S.0x1AD50;
9ec44: 6f,ce,32,38        ml2w  R38,[Rce+32]     TMP3L *= S.0x1AD50;
9ec48: 64,3a,3c           ad2w  R3c,R3a          TMP5L += TMP4L;
9ec4b: a4,00,3e           adcw  R3e,R0           TMP6L += CY;
9ec4e: 0c,02,3c           shrdw R3c,2            TMP5L >>= 2;
9ec51: a0,3c,38           ldw   R38,R3c          TMP3L = TMP5L;
9ec54: b1,3c,34           ldb   R34,3c           TMP1L = 3c;
9ec57: 98,7c,34           cmpb  R34,R7c          
9ec5a: d1,0a              jleu  9ec66            if (TMP1L > ATMR1)  {
9ec5c: c3,d4,4e,38        stw   R38,[Rd4+4e]     DELAY_MIN_32 = TMP3L;
9ec60: c3,d4,50,38        stw   R38,[Rd4+50]     DELAY_MAX_32 = TMP3L;
9ec64: 20,14              sjmp  9ec7a            goto 9ec7a; }

9ec66: 8b,d4,50,38        cmpw  R38,[Rd4+50]     
9ec6a: d1,04              jleu  9ec70            if (TMP3L > DELAY_MAX_32)  {
9ec6c: c3,d4,50,38        stw   R38,[Rd4+50]     DELAY_MAX_32 = TMP3L; }
9ec70: 8b,d4,4e,38        cmpw  R38,[Rd4+4e]     
9ec74: db,04              jc    9ec7a            if (TMP3L < DELAY_MIN_32)  {
9ec76: c3,d4,4e,38        stw   R38,[Rd4+4e]     DELAY_MIN_32 = TMP3L; }
9ec7a: a3,d4,4c,36        ldw   R36,[Rd4+4c]     TMP2L = DELAYBAR_32;
9ec7e: a3,f6,06,3a        ldw   R3a,[Rf6+6]      TMP4L = [1389c];
9ec82: ef,27,40           call  92cac            Sub_92cac ();
9ec85: c3,d4,4c,42        stw   R42,[Rd4+4c]     DELAYBAR_32 = TMP8L;
9ec89: f3                 popp                   PSW = pop();
9ec8a: f0                 ret                    return;
Also, should this be 2 subroutines? I see that 9EC1B is a push command, but it doesn't seem to have a call anywhere in the code, does that mean it is not a subroutine or just that it does not actually get used in this particular strategy?
jsa
Posts: 376
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 »

It will be a one liner in the strategy docs, something like convert clock ticks to time. More detail on clock tick conversion can be found in the software and hardware manuals.

9EBD1 is converting clock ticks to engineering time units then calculating the rolling average time taken for background subroutine loop.

I'm not seeing 9EC1B being pushed on to the stack anywhere. The PUSHP at 9EC1B is to save the PSW state before commencing the subroutine process. It looks to be a subroutine that is not used, so far.
BOOSTEDEVERYTHING
Posts: 359
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 »

Thank You for the clarification. I could not for the life of me figure out what it may be called in the strategy docs. I have been attempting to name some of the subroutines in hopes that I may be able to understand a little better what everything is doing. Figured if I can get a lot of them named then it may be easier to match them up and figure out the missing pieces. Then may be easier to figure out other strategies easier. I hope anyways. LOL
I will post my progress below in my older DIR file. I used it for this naming to simplify the comparison between the 2 strategies I am using. I have named some of the sym commands as they are named in RZASA to help compare.
Also...Is there any documentation anywhere for the supercharger controls and fault status that I could use as a reference for naming the addresses in some of the subroutines in OMAE2? The vehicle is a 2003 F150 Harley Davidson that came factory supercharged and I think I have figured out some of the supercharger control subroutines, but I have no idea what they are doing exactly.
Thanks Again for all of the help!!!!
Attachments
Stock_EKO2_256k_dir_20240626.zip
May contain errors. Use at own risk! Made for learning. Seems to work with SAD v4.012 & v4.07.16b
(91.04 KiB) Downloaded 221 times
jsa
Posts: 376
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've not seen any supercharger specific docs.

I'll have a look at your eko2 later.
Post Reply