EEC V file conversion

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

If it isn't a quick easy simple fix then do not worry about it, just figured I would ask about it. May not bother most everyone else. Like I said I am so very new to all of this. I can go back and forth as needed. I am not trying to create any unnecessary work for you. Thanks
wwhite
Posts: 401
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

Unread post by wwhite »

jsa wrote: 2024 Dec 13, 14:45 C6 is Indirect address mode.
Software_Manual wrote:
R28 holds a word length address, so bytes 1 & 3 are combined as the word length address destination, with a store size of one byte, for the byte length data held in source R2B.
Byte1/R29 is the address word high byte.
Byte3/R28 is the address word low byte.
Reading the STB - Store Byte opcode description, there is absolutely zero mention of 'WORD'.
STB can transfer an 8-bit "B" operand to any 8-bit "A" operand location in memory
You are describing STW
STW can transfer a 16-bit "B" operand to any 16-bit "A" operand location in memory
tvrfan
Posts: 130
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

Unread post by tvrfan »

wwhite wrote: 2024 Dec 14, 12:09 Reading the STB - Store Byte opcode description, there is absolutely zero mention of 'WORD'.
That's true. I think that is true for all opcode descriptions actually. In the 'address modes' section of manuals, in a different place from opcode descriptions, it does say that all addresses (indirect and indexed) are treated as 16 bit words. I still reckon I haven't found anywhere where it says that byte offsets in indexed mode are signed, but we know they are from the bins.

There are still a few odd details about the CPUs which I reckon are still technically 'unknown' even with the official Ford manual. Quite a lot of the 'special chips' (DUCE) etc are also not well documented and down to guesswork.
tvrfan
Posts: 130
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

Unread post by tvrfan »

BOOSTEDEVERYTHING wrote: 2024 Dec 14, 10:04 It just will not print the labels on arg lines. I used the same DIR, CMT, and BIN files for both versions and here is the same section of code from each.
<snip>
I remember that problem and thought I had fixed it. Damn.

Thinking about where v4 is up to it's probably about time to release 4.12 as stable anyway.
It seems to get used a lot (from comments here).

Yes, been too focussed on trying to get V5 to work right. It uses a different method to analyse/disassemble the bin file.

So I shall reload 4.12 source and try to reproduce/fix the problem, so it will become 4.13.1, and I will also do a tidy up in Github.
tvrfan
Posts: 130
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

Unread post by tvrfan »

the way I see it is that

STW and STB are the only opcodes which can store/write a value outside the CPU registers, so they are, in effect, a 'reverse' LDX and LDB.

(oops, PUSH, PUSHP also write outside the CPU too)
jsa
Posts: 437
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 »

wwhite wrote: 2024 Dec 14, 12:09 Reading the STB - Store Byte opcode description, there is absolutely zero mention of 'WORD'.
Indeed, the expectation being that address modes are well understood.

For STB I said;
R28 holds a word length address, so bytes 1 & 3 are combined as the word length address destination, with a store size of one byte, for the byte length data held in source R2B.
Byte1/R29 is the address word high byte.
Byte3/R28 is the address word low byte.

For STW I'd say;
R28 holds a word length address, so bytes 1 & 3 are combined as the word length address destination, with a store size of one word, for the word length data held in source R2A as an example.
Byte1/R29 is the address word high byte.
Byte3/R28 is the address word low byte.

Software_manual wrote: 3-2.3.5 INDIRECT ADDRESS MODE
.
.
location between addresses ^0000 to '^FFFF using a 16-bit effective address(EA). The 16-bit effective address is
stored as a WORD variable
.
.
tvrfan
Posts: 130
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

Unread post by tvrfan »

BOOSTEDEVERYTHING wrote: 2024 Dec 14, 10:04 It just will not print the labels on arg lines. I used the same DIR, CMT, and BIN files for both versions and here is the same section of code from each.

V4.012

Code: Select all

Sbg07F12_RZAxxxxx_21.1.18.10_AIR_SELF_TEST_EO:
07f12: a0,79,26           ldw   R26,R178         TEMP1L = IMAF;
07f15: 8b,fe,0a,26        cmpw  R26,[Rfe+a]      
07f19: d1,13              jleu  07f2e            if (TEMP1L <= MAF_HI_KOEO) goto 07f2e; }

     # JGTU  from L07F07                                                           Sbg07EF0_RZA9BC2F_21.1.18.5_AIR_SELF_TEST_ER_ENTRY
     # SJump from L07F0F                                                           Sbg07EF0_RZA9BC2F_21.1.18.5_AIR_SELF_TEST_ER_ENTRY
07f1b: b3,d8,2d,c6        ldb   Rc6,[Rd8+2d]     FLAGTEMP_BG = AIR_BACK_FLAGS;
07f1f: 3b,c6,0c           jb    B3,Rc6,07f2e     if (B3_FLAGTEMP_BG = 0)  {
07f22: b3,d8,2d,c6        ldb   Rc6,[Rd8+2d]     FLAGTEMP_BG = AIR_BACK_FLAGS;
07f26: 3a,c6,05           jb    B2,Rc6,07f2e     if (B2_FLAGTEMP_BG = 0)  {
07f29: ef,2e,59           call  0d85a            Sxx0D85A_ALSO_RZA0F887_39.1.1.2.8_STORE_CODE(&Pxxx) (
07f2c: 9e,0a                    #arg 1              a9e ); } } } } } }

     # JLEU  from L07EF5                                                           Sbg07EF0_RZA9BC2F_21.1.18.5_AIR_SELF_TEST_ER_ENTRY
     # JLEU  from L07EFE                                                           Sbg07EF0_RZA9BC2F_21.1.18.5_AIR_SELF_TEST_ER_ENTRY
     # JC    from L07F0D                                                           Sbg07EF0_RZA9BC2F_21.1.18.5_AIR_SELF_TEST_ER_ENTRY
     # JLEU  from L07F19                                                           Sbg07F11_RZA9BC52_12.1.18.6_AIR_SELF_TEST_EO_ENTRY
     # JB    from L07F1F B3_FLAGTEMP_BG = 1                                        Sbg07F11_RZA9BC52_12.1.18.6_AIR_SELF_TEST_EO_ENTRY
     # JB    from L07F26 B2_FLAGTEMP_BG = 1                                        Sbg07F11_RZA9BC52_12.1.18.6_AIR_SELF_TEST_EO_ENTRY
07f2e: 20,63              sjmp  07f93            goto 07f93;
<snip>
Boosted - can you send me your comment lines from 07f19 to 07f2e ?? thanks.
I don't remember the wrong sym name being printed...

Thanks.
tvrfan
Posts: 130
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

Unread post by tvrfan »

Everyone,
Dug up some of my old emails for reported V4 issues, and thanks to jsa for sending me some more.

So will start a 'v4 bugfix' run from now.
BOOSTEDEVERYTHING
Posts: 427
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 »

here are the lines requested from my CMT file.. Also, the DIR and CMT files are in a file a posted a page or so back. The BIN file I have been using is also in the zip file, I believe.

Code: Select all

07F10 \n\n     # SCall from L07E0B \t83\s07DF0
07F1A \n\n     # JGTU  from L07F07 \t83\s07EF0
07F1A   \n     # SJump from L07F0F \t83\s07EF0
07F2D \n\n     # JLEU  from L07EF5 \t83\s07EF0
07F2D   \n     # JLEU  from L07EFE \t83\s07EF0
07F2D   \n     # JC    from L07F0D \t83\s07EF0
07F2D   \n     # JLEU  from L07F19 \t83\s07F11
07F2D   \n     # JB    from L07F1F \sC6:3 = 1 \t83\s07F11
07F2D   \n     # JB    from L07F26 \sC6:2 = 1 \t83\s07F11
07F2F \n\n     # SCall from L07E16 \t83\s07DF0
BOOSTEDEVERYTHING
Posts: 427
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 »

Just in case, here are the updated cmt, dir, and bin files.
Attachments
CRAI8_20241216.zip
(504.72 KiB) Downloaded 192 times
Post Reply