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