sdasrab always assembles xor de, hl as Rabbit 4000 instruction mode 11 instruction, no matter if the instruction is valid for the target, or has a different encoding for the current mode:
void f(void)
{
__asm
.r3ka
xor hl, de
.r4k_10
xor hl, de
__endasm;
}
results in
000000 58 _f::
59 ;test.c:8: __endasm;
60 .r3ka
000000 54 61 xor hl, de
62 .r4k_10
000001 54 63 xor hl, de
64 ;test.c:9: }
000002 C9 65 ret
The first one should have been rejected, the second one assembled to 7f 54.
Note it should be
.r4k10for mode 10.The commit #16200 should fix that.
For
.r2kand.r3ka:And the generated bytes:
(After commit #16200 , from your list, only
ldfinstructions are to be implemented)Last edit: Janko Stamenović 2026-02-12
Yes, this is fixed now, and the ticket can be closed.