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.