public IZ80InstructionBuilder GetInstructionBuilder(string mnemonic, List <Operand> operands, ushort actualInstructionAddress = 0) { if (LoadingInstructions.Any(inst => inst.Equals(mnemonic))) { return(new LoadingInstructionBuilder(mnemonic, operands)); } if (ArithmeticalInstructions.Any(inst => inst.Equals(mnemonic))) { return(new ArithmeticalInstructionBuilder(mnemonic, operands)); } if (LogicalInstructions.Any(inst => inst.Equals(mnemonic))) { return(new LogicalInstructionBuilder(mnemonic, operands)); } if (CompareInstructions.Any(inst => inst.Equals(mnemonic))) { return(new CompareInstructionBuilder(mnemonic, operands)); } if (BitInstructions.Any(inst => inst.Equals(mnemonic))) { return(new BitInstructionBuilder(mnemonic, operands)); } if (BitShiftingInstructions.Any(inst => inst.Equals(mnemonic))) { return(new BitShiftingInstructionBuilder(mnemonic, operands)); } if (BitRotationInstructions.Any(inst => inst.Equals(mnemonic))) { return(new BitRotationInstructionBuilder(mnemonic, operands)); } if (PortInstructions.Any(inst => inst.Equals(mnemonic))) { return(new PortInstructionBuilder(mnemonic, operands)); } if (SubRoutineInstructions.Any(inst => inst.Equals(mnemonic))) { return(new SubRoutineInstructionBuilder(mnemonic, operands)); } if (StackInstructions.Any(inst => inst.Equals(mnemonic))) { return(new StackInstructionBuilder(mnemonic, operands)); } if (ExchangeInstructions.Any(inst => inst.Equals(mnemonic))) { return(new ExchangeInstructionBuilder(mnemonic, operands)); } if (OtherInstructions.Any(inst => inst.Equals(mnemonic))) { return(new OtherInstructionBuilder(mnemonic, operands)); } if (RelativeJumpInstructions.Any(inst => inst.Equals(mnemonic))) { return(new RelativeJumpInstructionBuilder(mnemonic, operands, actualInstructionAddress)); } if (mnemonic == JumpInstruction) { return(new JumpInstructionBuilder(mnemonic, operands)); } return(null); }
public LogicalAction(Action action) { Instructions = new LogicalInstructions(action.Instructions); }
public LogicalInitAction(InitAction initAction) { Sprite = initAction.Sprite; Instructions = new LogicalInstructions(initAction.Instructions); }
public InstructionEditor(LogicalInstructions instructions) { _instructions = instructions; }