1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-29 13:31:59 +00:00

Merge pull request #2568 from sidneycadot/fix-ane-behavior

sim65: changes constant of the unstable "ANE" instruction.
This commit is contained in:
Sidney Cadot 2024-12-22 17:59:57 +01:00 committed by GitHub
commit 3c5d5aac63
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -969,8 +969,14 @@ static unsigned HaveIRQRequest;
} while (0);
/* ANE */
/* An "unstable" illegal opcode that depends on a "constant" value that isn't
* really constant. It varies between machines, with temperature, and so on.
* Original sim65 behavior was to use the constant 0xEF here. To get behavior
* in line with the 65x02 testsuite, we now use the value 0xEE instead,
* which is also a reasonable choice that can be observed in practice.
*/
#define ANE(Val) \
Val = (Regs.AC | 0xEF) & Regs.XR & Val; \
Val = (Regs.AC | 0xEE) & Regs.XR & Val; \
Regs.AC = Val; \
TEST_SF (Val); \
TEST_ZF (Val)