public void MoveToMemoryList(BasicOperations function, IndexAddresses fromValue, IndexAddresses toValue, TextBox[] textBoxes) { var disp = DispTextBox.Text; switch (function) { case BasicOperations.MOV: textBoxes[1].Text = textBoxes[0].Text; if (fromValue == IndexAddresses.DI || fromValue == IndexAddresses.SI) { MemoryCells.Add(new MemoryCell { Data = textBoxes[0].Text, EffectiveAddress = $"{textBoxes[0].Text}{disp}" }); } else { MemoryCells.Add(new MemoryCell { Data = textBoxes[1].Text, EffectiveAddress = $"{textBoxes[1].Text}{disp}" }); } break; case BasicOperations.ECHG: var toText = textBoxes[1].Text; textBoxes[1].Text = textBoxes[0].Text; textBoxes[0].Text = toText; if (fromValue == IndexAddresses.DI || fromValue == IndexAddresses.SI) { MemoryCells.Add(new MemoryCell { Data = textBoxes[0].Text, EffectiveAddress = $"{textBoxes[0].Text}{disp}" }); } else { MemoryCells.Add(new MemoryCell { Data = textBoxes[1].Text, EffectiveAddress = $"{textBoxes[1].Text}{disp}" }); } break; default: throw new ArgumentOutOfRangeException(); } }
private TextBox[] GetMemoryOperationsWithIndexAddressTypeCheckedTextBoxes(IndexAddresses toValue, IndexAddresses fromValue) { TextBox toTextBox = toValue switch { IndexAddresses.DI => DiTextBox, IndexAddresses.SI => SiTextBox, IndexAddresses.AX => AxTextBox, IndexAddresses.BX => BxTextBox, IndexAddresses.CX => CxTextBox, IndexAddresses.DX => DxTextBox, IndexAddresses.AH => AhTextBox, IndexAddresses.BH => BhTextBox, IndexAddresses.CH => ChTextBox, IndexAddresses.DH => DhTextBox, IndexAddresses.AL => AlTextBox, IndexAddresses.BL => BlTextBox, IndexAddresses.CL => ClTextBox, IndexAddresses.DL => DlTextBox, _ => throw new ArgumentOutOfRangeException(nameof(toValue), toValue, null) }; TextBox fromTextBox = fromValue switch { IndexAddresses.DI => DiTextBox, IndexAddresses.SI => SiTextBox, IndexAddresses.AX => AxTextBox, IndexAddresses.BX => BxTextBox, IndexAddresses.CX => CxTextBox, IndexAddresses.DX => DxTextBox, IndexAddresses.AH => AhTextBox, IndexAddresses.BH => BhTextBox, IndexAddresses.CH => ChTextBox, IndexAddresses.DH => DhTextBox, IndexAddresses.AL => AlTextBox, IndexAddresses.BL => BlTextBox, IndexAddresses.CL => ClTextBox, IndexAddresses.DL => DlTextBox, _ => throw new ArgumentOutOfRangeException(nameof(fromValue), fromValue, null) }; return(new TextBox[2] { fromTextBox, toTextBox }); }