public void MoveToMemoryList(BasicOperations function, IndexBaseAddresses fromValue, IndexBaseAddresses toValue, TextBox[] textBoxes) { var disp = DispTextBox.Text; switch (function) { case BasicOperations.MOV: textBoxes[1].Text = textBoxes[0].Text; if (fromValue == IndexBaseAddresses.DIplusBP || fromValue == IndexBaseAddresses.SIplusBP || fromValue == IndexBaseAddresses.DIplusBX || fromValue == IndexBaseAddresses.SIplusBX) { 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 == IndexBaseAddresses.DIplusBP || fromValue == IndexBaseAddresses.SIplusBP || fromValue == IndexBaseAddresses.DIplusBX || fromValue == IndexBaseAddresses.SIplusBX) { 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[] GetMemoryOperationsWithIndexBaseAddressTypeCheckedTextBoxes(IndexBaseAddresses toValue, IndexBaseAddresses fromValue) { TextBox toTextBox = toValue switch { IndexBaseAddresses.BP => BpTextBox, IndexBaseAddresses.DI => DiTextBox, IndexBaseAddresses.SI => SiTextBox, IndexBaseAddresses.AX => AxTextBox, IndexBaseAddresses.BX => BxTextBox, IndexBaseAddresses.CX => CxTextBox, IndexBaseAddresses.DX => DxTextBox, IndexBaseAddresses.AH => AhTextBox, IndexBaseAddresses.BH => BhTextBox, IndexBaseAddresses.CH => ChTextBox, IndexBaseAddresses.DH => DhTextBox, IndexBaseAddresses.AL => AlTextBox, IndexBaseAddresses.BL => BlTextBox, IndexBaseAddresses.CL => ClTextBox, IndexBaseAddresses.DL => DlTextBox, _ => throw new ArgumentOutOfRangeException(nameof(toValue), toValue, null) }; TextBox fromTextBox = fromValue switch { IndexBaseAddresses.BP => BpTextBox, IndexBaseAddresses.DI => DiTextBox, IndexBaseAddresses.SI => SiTextBox, IndexBaseAddresses.AX => AxTextBox, IndexBaseAddresses.BX => BxTextBox, IndexBaseAddresses.CX => CxTextBox, IndexBaseAddresses.DX => DxTextBox, IndexBaseAddresses.AH => AhTextBox, IndexBaseAddresses.BH => BhTextBox, IndexBaseAddresses.CH => ChTextBox, IndexBaseAddresses.DH => DhTextBox, IndexBaseAddresses.AL => AlTextBox, IndexBaseAddresses.BL => BlTextBox, IndexBaseAddresses.CL => ClTextBox, IndexBaseAddresses.DL => DlTextBox, _ => throw new ArgumentOutOfRangeException(nameof(toValue), toValue, null) }; return(new TextBox[2] { fromTextBox, toTextBox }); }