コード例 #1
0
        private void okButton_Click(object sender, EventArgs e)
        {
            bool isConstant = constantRadioButton.Checked;

            ParseValue(out int value, out int numBase);
            FormatDescriptor.SubType subType = FormatDescriptor.GetSubTypeForBase(numBase);
            DefSym = new DefSymbol(labelTextBox.Text, value, Symbol.Source.Project,
                                   isConstant ? Symbol.Type.Constant : Symbol.Type.ExternalAddr,
                                   subType, commentTextBox.Text, string.Empty);
        }
コード例 #2
0
        private void OkButton_Click(object sender, RoutedEventArgs e)
        {
            ParseValue(out int value, out int numBase);
            FormatDescriptor.SubType subType = FormatDescriptor.GetSubTypeForBase(numBase);
            int width = -1;

            if (IsConstant && !IsVariable)
            {
                // width field is ignored, don't bother parsing
            }
            else if (!string.IsNullOrEmpty(VarWidth))
            {
                bool ok = Asm65.Number.TryParseInt(VarWidth, out width, out int unusedNumBase);
                Debug.Assert(ok);
            }

            DefSymbol.DirectionFlags direction;
            if (IsReadChecked && IsWriteChecked)
            {
                direction = DefSymbol.DirectionFlags.ReadWrite;
            }
            else if (IsReadChecked)
            {
                direction = DefSymbol.DirectionFlags.Read;
            }
            else if (IsWriteChecked)
            {
                direction = DefSymbol.DirectionFlags.Write;
            }
            else
            {
                Debug.Assert(false);
                direction = DefSymbol.DirectionFlags.None;
            }

            // Parse and strip the annotation.
            string trimLabel = Symbol.TrimAndValidateLabel(Label, string.Empty, out bool unused1,
                                                           out bool unused2, out bool unused3, out bool unused4,
                                                           out Symbol.LabelAnnotation anno);

            NewSym = new DefSymbol(trimLabel, value,
                                   IsVariable ? Symbol.Source.Variable : Symbol.Source.Project,
                                   IsConstant ? Symbol.Type.Constant : Symbol.Type.ExternalAddr, anno,
                                   subType, width, width > 0, Comment, direction, null, string.Empty);

            DialogResult = true;
        }