public override void DecodeArguments(Memory.MemoryBin bin, ref InstructionDecodeContext context, ref int offset, ref InstructionReference instructionReference) { if (decodeArgumentsFunction != null) { decodeArgumentsFunction(this, bin, ref context, ref offset, ref instructionReference.param1, ref instructionReference.param2); } }
public override void DecodeArguments(Memory.MemoryBin bin, ref InstructionDecodeContext context, ref int offset, ref InstructionReference instructionReference) { switch (AddrMode) { case AddressingModes.ImpliedAccumulator: { break; } case AddressingModes.Absolute: case AddressingModes.AbsoluteIndexedX: { instructionReference.param1 = DecodeInt2Argument(bin, ref offset); break; } case AddressingModes.Direct: case AddressingModes.DirectIndexedX: { instructionReference.param1 = DecodeInt1Argument(bin, ref offset); break; } default: { throw new InvalidOperationException("Addressing mode unknown for instruction ASL"); } } }
public override void DecodeArguments(Memory.MemoryBin bin, ref InstructionDecodeContext context, ref int offset, ref InstructionReference instructionReference) { switch (AddrMode) { case AddressingModes.AbsoluteLong: { instructionReference.param1 = DecodeInt3Argument(bin, ref offset); break; } default: { instructionReference.param1 = DecodeInt2Argument(bin, ref offset); break; } } }
public override void DecodeArguments(Memory.MemoryBin bin, ref InstructionDecodeContext context, ref int offset, ref InstructionReference instructionReference) { switch (AddrMode) { case AddressingModes.ImmediateMemoryFlag: case AddressingModes.ImmediateIndexFlag: case AddressingModes.Immediate8Bit: { instructionReference.param1 = DecodeI1I2ArgumentForMFlag(bin, ref offset, ref context); break; } case AddressingModes.Absolute: case AddressingModes.AbsoluteIndexedX: case AddressingModes.AbsoluteIndexedY: { instructionReference.param1 = DecodeInt2Argument(bin, ref offset); break; } case AddressingModes.AbsoluteLong: case AddressingModes.AbsoluteIndexedLong: { instructionReference.param1 = DecodeInt3Argument(bin, ref offset); break; } case AddressingModes.Direct: case AddressingModes.DirectIndirect: case AddressingModes.DirectIndirectLong: case AddressingModes.DirectIndexedX: case AddressingModes.DirectIndexedIndirect: case AddressingModes.DirectIndirectIndexed: case AddressingModes.DirectIndirectIndexedLong: case AddressingModes.StackRelative: case AddressingModes.StackRelativeIndirectIndexed: { instructionReference.param1 = DecodeInt1Argument(bin, ref offset); break; } default: { throw new InvalidOperationException("Addressing mode unknown for instruction ADC"); } } }
public override void DecodeArguments(Memory.MemoryBin bin, ref InstructionDecodeContext context, ref int offset, ref InstructionReference instructionReference) { /* on skip le byte suivant, qui est censé être une signature */ offset++; }
public override void DecodeArguments(Memory.MemoryBin bin, ref InstructionDecodeContext context, ref int offset, ref InstructionReference instructionReference) { /* No Args */ }