Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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
            });
        }