Page 64 of 70

Re: EEC V file conversion

Posted: 2024 Dec 14, 10:09
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

Re: EEC V file conversion

Posted: 2024 Dec 14, 12:09
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

Re: EEC V file conversion

Posted: 2024 Dec 14, 13:30
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.

Re: EEC V file conversion

Posted: 2024 Dec 14, 13:42
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.

Re: EEC V file conversion

Posted: 2024 Dec 14, 13:57
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)

Re: EEC V file conversion

Posted: 2024 Dec 14, 16:46
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
.
.

Re: EEC V file conversion

Posted: 2024 Dec 14, 22:15
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.

Re: EEC V file conversion

Posted: 2024 Dec 15, 17:42
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.

Re: EEC V file conversion

Posted: 2024 Dec 15, 21:50
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

Re: EEC V file conversion

Posted: 2024 Dec 16, 08:49
by BOOSTEDEVERYTHING
Just in case, here are the updated cmt, dir, and bin files.