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);
 }
Esempio n. 2
0
 public LogicalAction(Action action)
 {
     Instructions = new LogicalInstructions(action.Instructions);
 }
Esempio n. 3
0
 public LogicalInitAction(InitAction initAction)
 {
     Sprite       = initAction.Sprite;
     Instructions = new LogicalInstructions(initAction.Instructions);
 }
Esempio n. 4
0
 public InstructionEditor(LogicalInstructions instructions)
 {
     _instructions = instructions;
 }