EEC V file conversion
-
- Posts: 424
- 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
Sorry, wife had me busy over the weekend and did not get a chance to read up yet. I will add the above to my cmt file and add the word values to my dir file if not already there. So depending on the flag set, it would add 8 or 2 to the 926e to get the register of the value to load into Tmp2l? So indirectly loading the resulting register by adding 8 or 2 to the value of 926e. Sound like I understand why you got what you did? If it were a direct address mode it would be looking for the value of the register it is pointing to not an actual value plus a hex amount? Is that correct?
-
- Posts: 433
- 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
Yes flag determines 8 or 2 added to 926e, which gives 9276 or 9270.
No, 9276 or 9270 is loaded into temp7l.
Indirect means get the value at the address held by the register. The register is temp7l, the address is 9276 or 9270 and the values at 9276 and 9270 are 13c8 or 13a4.
It is bank 1 for 9276 and 9270 because bank 1 is the data bank set as part of the boot sequence, and the operation is a data operation.
To put it another way, indirect means get the values 13c8 or 13a4, at the address 19276 or 19270 held by the register temp7l.
Temp2l gets the result of adding the rbase value 1723e to the indirect value 13c8 or 13a4.
Direct is what you were trying to do in your earlier post.
Direct is the value held by temp7l.
Indirect is the value @ the address held by temp7l.
No, 9276 or 9270 is loaded into temp7l.
Indirect means get the value at the address held by the register. The register is temp7l, the address is 9276 or 9270 and the values at 9276 and 9270 are 13c8 or 13a4.
It is bank 1 for 9276 and 9270 because bank 1 is the data bank set as part of the boot sequence, and the operation is a data operation.
To put it another way, indirect means get the values 13c8 or 13a4, at the address 19276 or 19270 held by the register temp7l.
Temp2l gets the result of adding the rbase value 1723e to the indirect value 13c8 or 13a4.
Direct is what you were trying to do in your earlier post.
Direct is the value held by temp7l.
Indirect is the value @ the address held by temp7l.
-
- Posts: 424
- 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
Ok. Thank you. That makes it easier to bang into my head, LOL. I think I get it now. Indirect points to a register, that holds the address, of the actual value used, and direct points to a register that contains the actual value used?
-
- Posts: 433
- 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
Points is not quite the right word, uses is more appropriate.
-
- Posts: 424
- 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
I have a question about defining a section of code. It is a byte sized value that is directly loaded, or compared, but I believe it is only used in a section of code for the purpose I am defining it for. I think........
Below is a section of CRAI8 I am working on...
I added a comment to my cmt file for now...would that be the best way to do this or can I use a sym for a range for the 5f value somehow? Or, I guess, what would be the best way to do this for everybody to be able to see it, I guess is what I am asking? There are a bunch of these in sections of code that are byte sized values that correspond to a given result that I would like to add in the disassembly. This just happens to be one of many of them in this section of code. Thanks
Below is a section of CRAI8 I am working on...
Code: Select all
0ec35: 3c,b6,04 jb B4,Rb6,0ec3c if (ER_TST_ENA = 0) {
0ec38: c7,ec,44,00 stb R0,[Rec+44] KOER_TST_TMR = ZERO; } } }
0ec3c: 36,b6,2c jnb B6,Rb6,0ec6b if (DEMAND_ABORT = 1) {
0ec3f: 30,b7,27 jnb B0,Rb7,0ec69 if (ER_ACTIVE = 1) {
0ec42: 99,5f,24 cmpb R24,5f
0ec45: d7,15 jne 0ec5c if (TEMP0L = 5f) { # [5F] ER_DONE
0ec47: b3,de,28,44 ldb R44,[Rde+28] TMP9L = p1001_RECORD;
0ec4b: 3f,44,1b jb B7,R44,0ec69 if (B7_TMP9L = 1) goto 0ec69;
0ec4e: 71,bf,b6 an2b Rb6,bf DEMAND_ABORT = 0;
0ec51: 71,fd,b6 an2b Rb6,fd ER_TST_RDY = 0;
0ec54: 71,fe,b7 an2b Rb7,fe ER_ACTIVE = 0;
0ec57: b1,00,24 ldb R24,0 TEMP0L = 0;
0ec5a: 20,0f sjmp 0ec6b goto 0ec6b; }
-
- Posts: 433
- 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
Yes a range could be applied for this immediate value and the register R5F if byte size used.
It's not an address 5F to be resolved, so I'd use 0x without brackets to indicate the value 5f.
Yes it is an issue with SAD currently.
For the purpose of the definition file it is address 0ec43 that is the target. So you could put a commented out command in dir.
It's not an address 5F to be resolved, so I'd use 0x without brackets to indicate the value 5f.
Code: Select all
0ec42: 99,5f,24 cmpb R24,5f
0ec45: d7,15 jne 0ec5c if (TEMP0L = 5f) { # 0x5F ER_DONE
For the purpose of the definition file it is address 0ec43 that is the target. So you could put a commented out command in dir.
Code: Select all
#SYN0ec43 "ER_DONE" # 0x5f {7??}
-
- Posts: 424
- 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
Ok, Thank you. Ill add them that way and try and remember to stick notes next to them for a reminder.
-
- Posts: 424
- 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
I has been a while, so I figured I would post an update on the CRAI8 disassembly that I am working on. I know there must be several mistakes so beware of those and use at your own risk, LOL. I am trying to figure out what some of the defined items are actually called in the strategy docs, so it has been a bit slow going lately. Some of the DARC stuff doesn't line up term wise, and some of the other things having to do with the clock stuff, etc, use different terminology as well. Any help renaming any of that would be welcome. HAHA Thanks again for helping me through the learning process. I am hopefully getting a bit better as I go.
- Attachments
-
- CRAI8_AOL1_20241111.zip
- (292.41 KiB) Downloaded 37 times
-
- Posts: 433
- 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
Thank you for the update.
What are the data sources for the names that don't match up and do you have an example?
Mistakes, yeah check your MSG file. Do a run on 5.08 as well and look at that MSG file too.
A number of functions are incorrectly commanded. A function must always start with the maximum value and decrease to the minimum.
FF,FF can only be the maximum if unsigned, so it is an unsigned input function.
Everything in the background vector list can be named as a background sub, Sbg.....
What are the data sources for the names that don't match up and do you have an example?
Mistakes, yeah check your MSG file. Do a run on 5.08 as well and look at that MSG file too.
A number of functions are incorrectly commanded. A function must always start with the maximum value and decrease to the minimum.
FF,FF can only be the maximum if unsigned, so it is an unsigned input function.
Code: Select all
suwFn46S_T:
17114: ff,ff,00,00 func -1, 0
Code: Select all
BACKGROUND:
193b2: 9b,f7 vect 8f79b Sbg8F79B_RZA8F62B_Cal_Pntrs_&_Consl
193b4: bb,f8 vect 8f8bb Sub_8f8bb
193b6: ec,7f vect 87fec Sxx87FEC_RZA884BC_22.1.2_ALTERNATIVE_CALIBRATION_CLEAR_LOGIC
-
- Posts: 424
- 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
The data source for the names that do not match up is the DIR file itself. Not sure where the names came from.
I must have incorrectly identified a function subroutine somewhere if I am not commanding some of the functions correctly, either that or I incorrectly identified the function itself. Some I copied and pasted directly over from RZASA. Is it possible that in RZASA, the function may be unsigned, and in another strategy, it is signed? That could be the case if it is possible, and I will have to go back through and change the commands. I will try and grab a few examples of names that do not match up to the strategy doc today. Some of them are how the DARC functions or commands are named. But I will try and find some specific examples as I work through some more today.
Edit: Just saw this, It is a perfect example....Is this explained anywhere in the strategy docs, or is it in the eec software manual somewhere?
I did see this in the MSG file and was ignoring it because of the way it shows up in the LST file. I figured maybe it just did not see that it was supposed to be a function at all. They show up in the LST file below, Did I just not identify them correctly? Or maybe the RBase for Rfc is not correct? Or maybe, Is it because I copied them over from RZASA, and they are just different in that strategy?
Also, I have found a couple of SYM commands that are signed in the RZASA DIR and appear to be unsigned in the CRAI8 LST file, is that possible?
Here is an example of a labeled subroutine that I can not find in the strategy doc
I must have incorrectly identified a function subroutine somewhere if I am not commanding some of the functions correctly, either that or I incorrectly identified the function itself. Some I copied and pasted directly over from RZASA. Is it possible that in RZASA, the function may be unsigned, and in another strategy, it is signed? That could be the case if it is possible, and I will have to go back through and change the commands. I will try and grab a few examples of names that do not match up to the strategy doc today. Some of them are how the DARC functions or commands are named. But I will try and find some specific examples as I work through some more today.
Edit: Just saw this, It is a perfect example....Is this explained anywhere in the strategy docs, or is it in the eec software manual somewhere?
Code: Select all
Sbg8F79B_RZA8F62B_Cal_Pntrs_&_Consl
Code: Select all
## FUN 17114 1712F :SW :UW #[SW=flo(x*1)] [UW=flo(x*1)] #TOT> {7}
Warning - Function Start value Invalid
Also, I have found a couple of SYM commands that are signed in the RZASA DIR and appear to be unsigned in the CRAI8 LST file, is that possible?
Code: Select all
92488: 36,b3,1b jnb B6,Rb3,924a6 if (FLG_DRV_REV = 1) {
9248b: 45,72,13,fc,36 ad3w R36,Rfc,1372 TMP2L = suwFn46F_N;
92490: 45,52,14,fc,24 ad3w R24,Rfc,1452 TEMP0L = suwFn46F_T;
92495: 45,02,13,fc,26 ad3w R26,Rfc,1302 TEMP1L = suwFn46S_N;
9249a: 45,e2,13,fc,28 ad3w R28,Rfc,13e2 TEMP2L = suwFn46S_T;
9249f: a3,fd,bc,10,2c ldw R2c,[Rfc+10bc] TEMP4L = TMDRVREV;
924a4: 20,5a sjmp 92500 goto 92500; }
924a6: 33,b3,1b jnb B3,Rb3,924c4 if (FLG_NEU_DRV = 1) {
924a9: 45,8e,13,fc,36 ad3w R36,Rfc,138e TMP2L = suwFn54F_N;
924ae: 45,6e,14,fc,24 ad3w R24,Rfc,146e TEMP0L = suwFn54F_T;
924b3: 45,1e,13,fc,26 ad3w R26,Rfc,131e TEMP1L = suwFn54S_N;
924b8: 45,fe,13,fc,28 ad3w R28,Rfc,13fe TEMP2L = suwFn54S_T;
924bd: a3,fd,be,10,2c ldw R2c,[Rfc+10be] TEMP4L = TMNEUDRV;
924c2: 20,3c sjmp 92500 goto 92500; }
924c4: 32,b3,1b jnb B2,Rb3,924e2 if (FLG_NEU_REV = 1) {
924c7: 45,aa,13,fc,36 ad3w R36,Rfc,13aa TMP2L = suwFnFN56F_N;
924cc: 45,8a,14,fc,24 ad3w R24,Rfc,148a TEMP0L = suwFn56F_T;
924d1: 45,3a,13,fc,26 ad3w R26,Rfc,133a TEMP1L = suwFn56S_N;
924d6: 45,1a,14,fc,28 ad3w R28,Rfc,141a TEMP2L = suwFn56S_T;
924db: a3,fd,c0,10,2c ldw R2c,[Rfc+10c0] TEMP4L = TMNEUREV;
924e0: 20,1e sjmp 92500 goto 92500; }
924e2: 39,b3,02 jb B1,Rb3,924e7 if (FLG_REV_DRV = 0) {
924e5: 20,93 sjmp 9257a goto 9257a; }
924e7: 45,c6,13,fc,36 ad3w R36,Rfc,13c6 TMP2L = suwFnFN64F_N;
924ec: 45,a6,14,fc,24 ad3w R24,Rfc,14a6 TEMP0L = suwFn64F_T;
924f1: 45,56,13,fc,26 ad3w R26,Rfc,1356 TEMP1L = suwFn64S_N;
924f6: 45,36,14,fc,28 ad3w R28,Rfc,1436 TEMP2L = suwFn64S_T;
924fb: a3,fd,c2,10,2c ldw R2c,[Rfc+10c2] TEMP4L = TMREVDRV;
92500: a3,d2,40,38 ldw R38,[Rd2+40] TMP3L = TOT;
92504: 91,20,a5 orb Ra5,20 SIGNDSLP = 1;
92507: ef,9f,23 call 948a9 SLU948A9_92C62_**WFn ();
9250a: a0,3c,40 ldw R40,R3c TMP7L = TMP5L;
9250d: a0,24,36 ldw R36,R24 TMP2L = TEMP0L;
92510: a3,e4,90,38 ldw R38,[Re4+90] TMP3L = NEBART;
92514: ef,92,23 call 948a9 SLU948A9_92C62_**WFn ();
92517: 64,3c,40 ad2w R40,R3c TMP7L += TMP5L;
9251a: 98,41,00 cmpb R0,R41
9251d: df,03 je 92522 if (TMP7H != ZERO) {
9251f: ad,ff,40 ldzbw R40,ff TMP7L = ff; }
92522: 8b,ea,7c,00 cmpw R0,[Rea+7c]
92526: df,52 je 9257a if (EPC_ENG_TMR != ZERO) {
92528: a0,40,24 ldw R24,R40 TEMP0L = TMP7L;
9252b: a0,26,36 ldw R36,R26 TMP2L = TEMP1L;
9252e: a3,d2,40,38 ldw R38,[Rd2+40] TMP3L = TOT;
92532: 91,20,a5 orb Ra5,20 SIGNDSLP = 1;
92535: ef,71,23 call 948a9 SLU948A9_92C62_**WFn ();
92538: a0,3c,40 ldw R40,R3c TMP7L = TMP5L;
9253b: a0,28,36 ldw R36,R28 TMP2L = TEMP2L;
9253e: a3,e4,90,38 ldw R38,[Re4+90] TMP3L = NEBART;
92542: ef,64,23 call 948a9 SLU948A9_92C62_**WFn ();
92545: 64,3c,40 ad2w R40,R3c TMP7L += TMP5L;
Code: Select all
SUB 03445 "Sxx03445_RZA034B1_subr_aice_fg_mwr"