diff --git a/src/da65/handler.c b/src/da65/handler.c index f2d3ecab3..79b3192de 100644 --- a/src/da65/handler.c +++ b/src/da65/handler.c @@ -678,6 +678,19 @@ void OH_BlockMove (const OpcDesc* D) +void OH_BlockMove65816 (const OpcDesc* D) +{ + /* Get source operand */ + unsigned Src = GetCodeByte (PC+2); + /* Get destination operand */ + unsigned Dst = GetCodeByte (PC+1); + + /* Output the line */ + OneLine (D, "#$%02X, #$%02X", Src, Dst); +} + + + void OH_AbsoluteXIndirect (const OpcDesc* D attribute ((unused))) { /* Get the operand */ diff --git a/src/da65/handler.h b/src/da65/handler.h index 2bfaed9c3..ee9b18bbc 100644 --- a/src/da65/handler.h +++ b/src/da65/handler.h @@ -91,6 +91,7 @@ void OH_StackRelativeIndirectY4510 (const OpcDesc*); void OH_DirectIndirectLong (const OpcDesc*); void OH_DirectIndirectLongY (const OpcDesc*); void OH_BlockMove (const OpcDesc*); +void OH_BlockMove65816 (const OpcDesc*); void OH_AbsoluteXIndirect (const OpcDesc*); /* Mitsubishi 740 */ diff --git a/src/da65/opc65816.c b/src/da65/opc65816.c index 64629506c..06272f318 100644 --- a/src/da65/opc65816.c +++ b/src/da65/opc65816.c @@ -115,7 +115,7 @@ const OpcDesc OpcTable_65816[256] = { { "eor", 2, flUseLabel, OH_DirectXIndirect }, /* $41 */ { "wdm", 2, flNone, OH_Implicit }, /* $42 */ { "eor", 2, flNone, OH_StackRelative }, /* $43 */ - { "mvp", 3, flNone, OH_BlockMove }, /* $44 */ + { "mvp", 3, flNone, OH_BlockMove65816 }, /* $44 */ { "eor", 2, flUseLabel, OH_Direct }, /* $45 */ { "lsr", 2, flUseLabel, OH_Direct }, /* $46 */ { "eor", 2, flUseLabel, OH_DirectIndirectLong }, /* $47 */ @@ -131,7 +131,7 @@ const OpcDesc OpcTable_65816[256] = { { "eor", 2, flUseLabel, OH_DirectIndirectY }, /* $51 */ { "eor", 2, flUseLabel, OH_DirectIndirect }, /* $52 */ { "eor", 2, flNone, OH_StackRelativeIndirectY}, /* $53 */ - { "mvn", 3, flNone, OH_BlockMove }, /* $54 */ + { "mvn", 3, flNone, OH_BlockMove65816 }, /* $54 */ { "eor", 2, flUseLabel, OH_DirectX }, /* $55 */ { "lsr", 2, flUseLabel, OH_DirectX }, /* $56 */ { "eor", 2, flUseLabel, OH_DirectIndirectLongY }, /* $57 */ @@ -259,7 +259,7 @@ const OpcDesc OpcTable_65816[256] = { { "cmp", 2, flUseLabel, OH_DirectIndirectY }, /* $d1 */ { "cmp", 2, flUseLabel, OH_DirectIndirect }, /* $d2 */ { "cmp", 2, flNone, OH_StackRelativeIndirectY}, /* $d3 */ - { "pei", 2, flUseLabel, OH_Direct }, /* $d4 */ + { "pei", 2, flUseLabel, OH_DirectIndirect }, /* $d4 */ { "cmp", 2, flUseLabel, OH_DirectX }, /* $d5 */ { "dec", 2, flUseLabel, OH_DirectX }, /* $d6 */ { "cmp", 2, flUseLabel, OH_DirectIndirectLongY }, /* $d7 */