1) Is there any difference in the operation between the following modes:
E=1, X=1, M=1 and E=0, X=1, M=1 ?
2) I understand that I can move the "zero-page" to a arbitrary location even in Emulation mode.
Say that I have D = 0x1080 , I do an instruction with direct,indexed, x mode with the direct offset being 0xF0 and X = 0x0F
Will the addressed memory be:
0x117F ( D + offs + X)
or
0x107F (wraped inside the page)
3) I have looked at the WDC documentation for 65816 (August 4th 2008) and I found gross errors in the opcode table and the logical explanation of some of the opcodes is just plain wrong. In addition some section of the text simply make no sense no matter how many times I read them. The errors I have found make me doubt the overall accuracy of the document. The documentation from GTE ( cmd_g65sc802_g65sc816.pdf) is as far as I can see free from obvious factual errors but doesn't go to deep into the specifics of the operation during emulation and or X/M flags set to 1. What other documents would you recommend? I have no problems with the techincal yargon aslong as it's written in clear english...
To examplify: From WDC 4th aug 08:
The effective address generated by Direct; Direct,X and Direct,Y addressing modes will always be in the
Native mode range 000000 to 00FFFF. When in the Emulation mode, the direct addressing range is
000000 to 0000FF, except for [Direct] and [Direct],Y addressing modes and the PEI instruction which will
increment from 0000FE or 0000FF into the Stack area.
8.2.2 When in the Emulation mode and DH is not equal to zero, the direct addressing range is
00DH00 to 00DHFF, except for [Direct] and [Direct],Y addressing modes and the PEI instruction which will
increment from 00DHFE or 00DHFF into the next higher page.
8.2.3 When in the Emulation mode and DL in not equal to zero, the direct addressing range is
000000 to 00FFFF.