Hi
The disassemble of opcodes dd/fd + cb + res/set (ix+d) where the result is also stored on a register is incorrect
For example:
dd cb 40 fc
LD H,SET 7,(IX+40)
is debugged incorrectly as:
LD H,SET (IX+40)
The bit number is missing on the disassembly
You can fix it by changing file debugger/disassemble.c:
@@ -616,7 +616,7 @@ disassemble_ddfd_cb( libspectrum_word address, char offset,
} else {
source_reg( address, USE_HL, buffer2, 40 );
ix_iy_offset( buffer3, 40, use_hl, offset );
- snprintf( buffer, buflen, "LD %s,%s %s", buffer2, bit_op( b ), buffer3 );
+ snprintf( buffer, buflen, "LD %s,%s %d,%s", buffer2, bit_op( b ), bit_op_bit( b ), buffer3 );
*length = 1;
}
}
By the way I tried to submit my fuse fork with that change but I don't find the merge request submit form... I'm not used to sourceforge (used it on the past but migrated to github some years ago)
Cheers!