EEC V file conversion
-
- Posts: 274
- 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
Zip them and attach here.
-
- Posts: 235
- 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, so far this is what I have found. I am going to try and compare subroutines at this point hat I have been writing down when I find chunks of code that look to be doing the same thing, and then saying to goto a subroutine. I write down the routine number for both lst files and figured maybe it may get me further. I haven't went any further with the cmt file yet. I wanted to get through the subroutines I was working with first. Now I am going to see if I can figure out what to put in the cmt file. LOL. Back to the SAD docs.
I do have several ops that I matched up but am confused about. I am suspect that it is using temp registers to get a value but I am not sure. I will put a few below for examples. Thanks again for all of the help.
Also I should note that I do get a few errors with what I added to the dir file that I have not researched yet, but plan to.I think I just put the wrong address in or maybe needed to add something in front of them. Again I have not looked into them yet.
BYT 792D << Error - Invalid bank
BYT 792D << Error - Invalid bank
BYT 792E << Error - Invalid bank
I do have several ops that I matched up but am confused about. I am suspect that it is using temp registers to get a value but I am not sure. I will put a few below for examples. Thanks again for all of the help.
Also I should note that I do get a few errors with what I added to the dir file that I have not researched yet, but plan to.I think I just put the wrong address in or maybe needed to add something in front of them. Again I have not looked into them yet.
BYT 792D << Error - Invalid bank
BYT 792D << Error - Invalid bank
BYT 792E << Error - Invalid bank
Code: Select all
EQE3 RZASA
--------------------------------------------------------------
Rd4+f6 SPI_BIT_TRANSFER_RATE
Rd4+4b FLAG_EXT1
R52+be1a DARC_OUT_IMA_L
B1_Rbf B1_FLAGTEMP_BG
B5_TMP9L B5_FLAGTEMP_BG
B6_R34 EGRMON
B6_R93 SCP_TX_FLG
B7_TMP0L B7_FLAGTEMP_BG----shows up in RZASA code as B5_FLAGTEMP
- Attachments
-
- eqe3_ml2_8a1a_stock read burn1fnb_cmt.zip
- (5.79 KiB) Downloaded 56 times
-
- Posts: 274
- 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
So far I've only had a chance for a quick look.BOOSTEDEVERYTHING wrote: ↑2023 Oct 30, 15:24 I will put a few below for examples. Thanks again for all of the help.
The code sample below already has an entry in the eqe3 dir I pasted at the end of last week. I'm not understanding what concerns you about it. Hit me with a specific question please?
They need a bank number for any address above 0x2000.Also I should note that I do get a few errors with what I added to the dir file that I have not researched yet, but plan to.I think I just put the wrong address in or maybe needed to add something in front of them. Again I have not looked into them yet.
BYT 792D << Error - Invalid bank
BYT 792D << Error - Invalid bank
BYT 792E << Error - Invalid bank
Any reason you chose byt over sym?
Hit me with specific questions, please.Code: Select all
EQE3 RZASA -------------------------------------------------------------- Rd4+f6 SPI_BIT_TRANSFER_RATE
-
- Posts: 5052
- Joined: 2021 Feb 15, 12:23
- Location: Metairie, LA
- Vehicle Information: Work Truck
'19 F-150 3.3L
Re: EEC V file conversion
it looka like your comparing and trying to make sense of the differences
would be more beneficial to go through just one listing and understand what its doing
would be more beneficial to go through just one listing and understand what its doing
-
- Posts: 235
- 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 am having issues determining how to get to the sym 276 from the Rd4+f6. For example, Rd4= 280, f6 converted to decimal= 246, so it looks to me like it would be 280+246 which equals 526, convert that to hex and get 20e. But your entry says 276. So I know I am doing something wrong, just not sure what yet. The R52+be1a is confusing as well because I was thinking that R52=FGTMP5L, so I am not sure how to figure outhow to do the math with a word value(I think that be1a is a word value but could be misunderstanding) and with a tmp register value. I know I need to follow the code to see what was loaded into R52 before this operation to find the value to use for that, but then how to add the word value is confusing me. I hope that makes sense?The code sample below already has an entry in the eqe3 dir I pasted at the end of last week. I'm not understanding what concerns you about it. Hit me with a specific question please?
Also I wanted to make sure I understand the entries like B6_R34, Is this saying R34 located in Bank 6? as opposed to R34 in another bank? I thought there were only banks 0, 1, 8, and 9?
I was wondering that myself actually. I originally chose sym when entering it in the dir file, but found the same entry in the RZASA dir used byt. That is one of the things I also was going to research. But if you could explain it It may make more sense to me than if I found it in the documentation. Should I have stayed with the sym command?Any reason you chose byt over sym?
That is what I am doing, sort of. I am looking through to find similar chunks of code or subroutines and trying to find out what it is doing in the RZASA lst file and making sure it appears to be doing the same thing in the EQE3 lst file. If it is I am writing down the addresses from EQE3 and the corresponding name from the RZASA lst file, then finding the matching entries in the strategy docs to find out what it is doing exactly, then entering it into the eqe3 dir file and comparing the entry I came up with to the RZASA dir file to double check if I am on the right track. Did I miss something with how JSA was telling me to do this?it looka like your comparing and trying to make sense of the differences
would be more beneficial to go through just one listing and understand what its doing
Quick example: I found that in eqe3 subroutine 05a9d matches 07317 in RZASA, So I look that up in the CDAN2 docs and found that it looks to be the SCP message transmit service routine, which looks like to me wakes up the scp network and loads a value into the EBC chip and then transmits that message on the scp network. That is just a short subroutine that matches up in both. exactly matches really. Some of the other routines seem to differ but be almost the same. Some of them in RZASA load bytes into registers before adding them or comparing them when EQE3 just uses what is already loaded.
-
- Posts: 5052
- Joined: 2021 Feb 15, 12:23
- Location: Metairie, LA
- Vehicle Information: Work Truck
'19 F-150 3.3L
Re: EEC V file conversion
You have a strategy doc? any chance of sharing? that would be tremendously helpful as you can't even begin to imagine.
-
- Posts: 320
- Joined: 2021 Feb 16, 15:53
- Location: Victoria, BC, Canada
- Vehicle Information: 1994 Flarside, XLT, 351w E4OD
SD48b, Quarter Horse, Burn2
Re: EEC V file conversion
B6_R34 - bit 6 of the register.
7|6|5|4|3|2|1|0
| one byte |
8 different bit positions
7|6|5|4|3|2|1|0
| one byte |
8 different bit positions
-
- Posts: 88
- Joined: 2023 Oct 22, 22:13
- Location: New Zealand
- Vehicle Information: Several Kit cars, Ford (Europe), EEC-IV, TVR Vixen, Tasmin (a.k.a Wedge),
Engine - Cologne 2.8 V6 (Europe) catch code 'AA'.
EEC_Disassembler https://github.com/tvrfan/EEC-IV-disassembler
Re: EEC V file conversion
Remember that in indexed with byte offset, the byte is SIGNED, so 0xf6 is actually MINUS 0xA (-10 in decimal) so 0x280-A = 0x276 (top bit of F6 is set).BOOSTEDEVERYTHING wrote: ↑2023 Oct 31, 11:39I am having issues determining how to get to the sym 276 from the Rd4+f6. For example, Rd4= 280, f6 converted to decimal= 246, so it looks to me like it would be 280+246 which equals 526, convert that to hex and get 20e. But your entry says 276. So I know I am doing something wrong, just not sure what yet. The R52+be1a is confusing as well because I was thinking that R52=FGTMP5L, so I am not sure how to figure outhow to do the math with a word value(I think that be1a is a word value but could be misunderstanding) and with a tmp register value. I know I need to follow the code to see what was loaded into R52 before this operation to find the value to use for that, but then how to add the word value is confusing me. I hope that makes sense?The code sample below already has an entry in the eqe3 dir I pasted at the end of last week. I'm not understanding what concerns you about it. Hit me with a specific question please?
Also I wanted to make sure I understand the entries like B6_R34, Is this saying R34 located in Bank 6? as opposed to R34 in another bank? I thought there were only banks 0, 1, 8, and 9?
<snip>
As per jsa post, a generic " Bx_Ry" means 'bit number x of register Y' and it typically comes from the opcodes JNB (jump if bit not set) and JB (jump if bit set).
typically this kind of check is because most bins use bit 'flags' to keep track of things happening - have a look at A9L again and you can see there are lots of bytes holding single bit flags for a whole range of things.
if code is indexed i.e. Rx = [R52 + be1a] could be a list of things starting at be1a (probably 1be1a as data is in Bank 1) and R52 would then be the index in the list.
-
- Posts: 235
- 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
No. I wish. I am using the CDAN2 strategy doc to the best of my ability. Sorry, did not mean to get your hopes up.You have a strategy doc? any chance of sharing? that would be tremendously helpful as you can't even begin to imagine.
I'm sorry. This hex thing is very new to me. How do I know, or where can I find something to help me know that 0xf6 is -0xA? Again, I am sorry, but hex is very new to me. Thanksso 0xf6 is actually MINUS 0xA
-
- Posts: 88
- Joined: 2023 Oct 22, 22:13
- Location: New Zealand
- Vehicle Information: Several Kit cars, Ford (Europe), EEC-IV, TVR Vixen, Tasmin (a.k.a Wedge),
Engine - Cologne 2.8 V6 (Europe) catch code 'AA'.
EEC_Disassembler https://github.com/tvrfan/EEC-IV-disassembler
Re: EEC V file conversion
Quick note on numbers, binary, negative values in HEX for anyone confused.
The way computers work for negative numbers is completely different from the way our brains work.
There are really good reasons why, for efficiency and speed.
Negative numbers - Most CPUs work by using the "two's complement" system. You can look that up in Wiki, but frankly the description doesn't help at all if you are a newbie.
This system defines that the top bit (7 for byte, 15 for word) is used as a 'sign bit' where a '1' is negative.
Under this system -
a byte value (8 bits) 0x80 represents -256 decimal, 0x81 is -255, 0x82 is -254, through to 0xfe = -2 and 0xff = -1 (and 0=0)
a word value (16 bits) 0x8000 represents -32768 , 0x8001 is - 32767, through to 0xfffe = -2, 0xffff = -1 (and 0=0)
A small LOL - to test an explanation I was going to write here, I tried explaining to my wife how the two's complement works and why negative numbers work this way and she totally failed to get it. She is an Excel wizard, ex CFO, IT Project manager (and I she was actually my boss for a while !) so she is definitely not dumb with numbers. I've been in IT all my career, and it makes perfect sense to me, but I struggled to explain it to a non techie. So I left out the 'why' completely.
So when you see, say, LDW, R34, 8000 somewhere, you don't know if this is an address (to be used later as, say, R54 = [R34]), or if it's a value.
If it's a value then it's either +32768, or -32768 depending on how it's used in the following code. That's the only way to find out (unfortunately).
For direct answer to the [RD4+f6], there are 4 addressing modes for most opcodes, and then there are a a couple of further options. Going back to original post, the mode used is 'byte indexed' and the 8061/5 manual says the byte offset is SIGNED. Have a read of the manual (docs in OPEN_EEC in github) and it will explain. So for signed byte, F6 is -10 decimal or -0xA.
yeah - it takes a while to get your brain around it all. I'll see if I can put some opcode examples together from eqe3 for you.
The way computers work for negative numbers is completely different from the way our brains work.
There are really good reasons why, for efficiency and speed.
Negative numbers - Most CPUs work by using the "two's complement" system. You can look that up in Wiki, but frankly the description doesn't help at all if you are a newbie.
This system defines that the top bit (7 for byte, 15 for word) is used as a 'sign bit' where a '1' is negative.
Under this system -
a byte value (8 bits) 0x80 represents -256 decimal, 0x81 is -255, 0x82 is -254, through to 0xfe = -2 and 0xff = -1 (and 0=0)
a word value (16 bits) 0x8000 represents -32768 , 0x8001 is - 32767, through to 0xfffe = -2, 0xffff = -1 (and 0=0)
A small LOL - to test an explanation I was going to write here, I tried explaining to my wife how the two's complement works and why negative numbers work this way and she totally failed to get it. She is an Excel wizard, ex CFO, IT Project manager (and I she was actually my boss for a while !) so she is definitely not dumb with numbers. I've been in IT all my career, and it makes perfect sense to me, but I struggled to explain it to a non techie. So I left out the 'why' completely.
So when you see, say, LDW, R34, 8000 somewhere, you don't know if this is an address (to be used later as, say, R54 = [R34]), or if it's a value.
If it's a value then it's either +32768, or -32768 depending on how it's used in the following code. That's the only way to find out (unfortunately).
For direct answer to the [RD4+f6], there are 4 addressing modes for most opcodes, and then there are a a couple of further options. Going back to original post, the mode used is 'byte indexed' and the 8061/5 manual says the byte offset is SIGNED. Have a read of the manual (docs in OPEN_EEC in github) and it will explain. So for signed byte, F6 is -10 decimal or -0xA.
yeah - it takes a while to get your brain around it all. I'll see if I can put some opcode examples together from eqe3 for you.