diff --git a/SourceGen/AppForms/EditAppSettings.Designer.cs b/SourceGen/AppForms/EditAppSettings.Designer.cs
index 12429b7..251af8a 100644
--- a/SourceGen/AppForms/EditAppSettings.Designer.cs
+++ b/SourceGen/AppForms/EditAppSettings.Designer.cs
@@ -43,6 +43,8 @@ namespace SourceGen.AppForms {
this.applyButton = new System.Windows.Forms.Button();
this.settingsTabControl = new System.Windows.Forms.TabControl();
this.codeViewTabPage = new System.Windows.Forms.TabPage();
+ this.codeViewMiscGroupBox = new System.Windows.Forms.GroupBox();
+ this.spacesBetweenBytesCheckBox = new System.Windows.Forms.CheckBox();
this.clipboardGroupBox = new System.Windows.Forms.GroupBox();
this.clipboardFormatLabel = new System.Windows.Forms.Label();
this.clipboardFormatComboBox = new System.Windows.Forms.ComboBox();
@@ -94,7 +96,6 @@ namespace SourceGen.AppForms {
this.displayFmtQuickComboBox = new System.Windows.Forms.ComboBox();
this.displayFmtSetButton = new System.Windows.Forms.Button();
this.quickFmtDefaultButton = new System.Windows.Forms.Button();
- this.useMerlinExpressions = new System.Windows.Forms.CheckBox();
this.operandWidthGroupBox = new System.Windows.Forms.GroupBox();
this.disambPrefix24TextBox = new System.Windows.Forms.TextBox();
this.disambPrefix16TextBox = new System.Windows.Forms.TextBox();
@@ -156,10 +157,11 @@ namespace SourceGen.AppForms {
this.defineData1Label = new System.Windows.Forms.Label();
this.equDirectiveTextBox = new System.Windows.Forms.TextBox();
this.equDirectiveLabel = new System.Windows.Forms.Label();
- this.codeViewMiscGroupBox = new System.Windows.Forms.GroupBox();
- this.spacesBetweenBytesCheckBox = new System.Windows.Forms.CheckBox();
+ this.expressionStyleLabel = new System.Windows.Forms.Label();
+ this.expressionStyleComboBox = new System.Windows.Forms.ComboBox();
this.settingsTabControl.SuspendLayout();
this.codeViewTabPage.SuspendLayout();
+ this.codeViewMiscGroupBox.SuspendLayout();
this.clipboardGroupBox.SuspendLayout();
this.upperCaseGroupBox.SuspendLayout();
this.codeViewFontGroupBox.SuspendLayout();
@@ -171,7 +173,6 @@ namespace SourceGen.AppForms {
this.operandWidthGroupBox.SuspendLayout();
this.pseudoOpTabPage.SuspendLayout();
this.quickPseudoSetGroup.SuspendLayout();
- this.codeViewMiscGroupBox.SuspendLayout();
this.SuspendLayout();
//
// cancelButton
@@ -239,6 +240,27 @@ namespace SourceGen.AppForms {
this.codeViewTabPage.Text = "Code View";
this.codeViewTabPage.UseVisualStyleBackColor = true;
//
+ // codeViewMiscGroupBox
+ //
+ this.codeViewMiscGroupBox.Controls.Add(this.spacesBetweenBytesCheckBox);
+ this.codeViewMiscGroupBox.Location = new System.Drawing.Point(406, 101);
+ this.codeViewMiscGroupBox.Name = "codeViewMiscGroupBox";
+ this.codeViewMiscGroupBox.Size = new System.Drawing.Size(200, 47);
+ this.codeViewMiscGroupBox.TabIndex = 5;
+ this.codeViewMiscGroupBox.TabStop = false;
+ this.codeViewMiscGroupBox.Text = "Miscellaneous";
+ //
+ // spacesBetweenBytesCheckBox
+ //
+ this.spacesBetweenBytesCheckBox.AutoSize = true;
+ this.spacesBetweenBytesCheckBox.Location = new System.Drawing.Point(7, 20);
+ this.spacesBetweenBytesCheckBox.Name = "spacesBetweenBytesCheckBox";
+ this.spacesBetweenBytesCheckBox.Size = new System.Drawing.Size(158, 17);
+ this.spacesBetweenBytesCheckBox.TabIndex = 0;
+ this.spacesBetweenBytesCheckBox.Text = "Add spaces in bytes column";
+ this.spacesBetweenBytesCheckBox.UseVisualStyleBackColor = true;
+ this.spacesBetweenBytesCheckBox.CheckedChanged += new System.EventHandler(this.spacesBetweenBytesCheckBox_CheckedChanged);
+ //
// clipboardGroupBox
//
this.clipboardGroupBox.Controls.Add(this.clipboardFormatLabel);
@@ -717,9 +739,10 @@ namespace SourceGen.AppForms {
//
// displayFormatTabPage
//
+ this.displayFormatTabPage.Controls.Add(this.expressionStyleComboBox);
+ this.displayFormatTabPage.Controls.Add(this.expressionStyleLabel);
this.displayFormatTabPage.Controls.Add(this.fmtExplanationLabel);
this.displayFormatTabPage.Controls.Add(this.quickDisplayFormatGroup);
- this.displayFormatTabPage.Controls.Add(this.useMerlinExpressions);
this.displayFormatTabPage.Controls.Add(this.operandWidthGroupBox);
this.displayFormatTabPage.Location = new System.Drawing.Point(4, 22);
this.displayFormatTabPage.Name = "displayFormatTabPage";
@@ -781,17 +804,6 @@ namespace SourceGen.AppForms {
this.quickFmtDefaultButton.UseVisualStyleBackColor = true;
this.quickFmtDefaultButton.Click += new System.EventHandler(this.quickFmtDefaultButton_Click);
//
- // useMerlinExpressions
- //
- this.useMerlinExpressions.AutoSize = true;
- this.useMerlinExpressions.Location = new System.Drawing.Point(6, 153);
- this.useMerlinExpressions.Name = "useMerlinExpressions";
- this.useMerlinExpressions.Size = new System.Drawing.Size(158, 17);
- this.useMerlinExpressions.TabIndex = 2;
- this.useMerlinExpressions.Text = "Use Merlin-style expressions";
- this.useMerlinExpressions.UseVisualStyleBackColor = true;
- this.useMerlinExpressions.CheckedChanged += new System.EventHandler(this.shiftAfterAdjustCheckBox_CheckedChanged);
- //
// operandWidthGroupBox
//
this.operandWidthGroupBox.Controls.Add(this.disambPrefix24TextBox);
@@ -1456,26 +1468,23 @@ namespace SourceGen.AppForms {
this.equDirectiveLabel.Text = "Equate:";
this.equDirectiveLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
- // codeViewMiscGroupBox
+ // expressionStyleLabel
//
- this.codeViewMiscGroupBox.Controls.Add(this.spacesBetweenBytesCheckBox);
- this.codeViewMiscGroupBox.Location = new System.Drawing.Point(406, 101);
- this.codeViewMiscGroupBox.Name = "codeViewMiscGroupBox";
- this.codeViewMiscGroupBox.Size = new System.Drawing.Size(200, 47);
- this.codeViewMiscGroupBox.TabIndex = 5;
- this.codeViewMiscGroupBox.TabStop = false;
- this.codeViewMiscGroupBox.Text = "Miscellaneous";
+ this.expressionStyleLabel.AutoSize = true;
+ this.expressionStyleLabel.Location = new System.Drawing.Point(7, 156);
+ this.expressionStyleLabel.Name = "expressionStyleLabel";
+ this.expressionStyleLabel.Size = new System.Drawing.Size(85, 13);
+ this.expressionStyleLabel.TabIndex = 4;
+ this.expressionStyleLabel.Text = "Expression style:";
//
- // spacesBetweenBytesCheckBox
+ // expressionStyleComboBox
//
- this.spacesBetweenBytesCheckBox.AutoSize = true;
- this.spacesBetweenBytesCheckBox.Location = new System.Drawing.Point(7, 20);
- this.spacesBetweenBytesCheckBox.Name = "spacesBetweenBytesCheckBox";
- this.spacesBetweenBytesCheckBox.Size = new System.Drawing.Size(158, 17);
- this.spacesBetweenBytesCheckBox.TabIndex = 0;
- this.spacesBetweenBytesCheckBox.Text = "Add spaces in bytes column";
- this.spacesBetweenBytesCheckBox.UseVisualStyleBackColor = true;
- this.spacesBetweenBytesCheckBox.CheckedChanged += new System.EventHandler(this.spacesBetweenBytesCheckBox_CheckedChanged);
+ this.expressionStyleComboBox.FormattingEnabled = true;
+ this.expressionStyleComboBox.Location = new System.Drawing.Point(98, 153);
+ this.expressionStyleComboBox.Name = "expressionStyleComboBox";
+ this.expressionStyleComboBox.Size = new System.Drawing.Size(121, 21);
+ this.expressionStyleComboBox.TabIndex = 5;
+ this.expressionStyleComboBox.SelectedIndexChanged += new System.EventHandler(this.expressionStyleComboBox_SelectedIndexChanged);
//
// EditAppSettings
//
@@ -1499,6 +1508,8 @@ namespace SourceGen.AppForms {
this.settingsTabControl.ResumeLayout(false);
this.codeViewTabPage.ResumeLayout(false);
this.codeViewTabPage.PerformLayout();
+ this.codeViewMiscGroupBox.ResumeLayout(false);
+ this.codeViewMiscGroupBox.PerformLayout();
this.clipboardGroupBox.ResumeLayout(false);
this.clipboardGroupBox.PerformLayout();
this.upperCaseGroupBox.ResumeLayout(false);
@@ -1518,8 +1529,6 @@ namespace SourceGen.AppForms {
this.pseudoOpTabPage.ResumeLayout(false);
this.pseudoOpTabPage.PerformLayout();
this.quickPseudoSetGroup.ResumeLayout(false);
- this.codeViewMiscGroupBox.ResumeLayout(false);
- this.codeViewMiscGroupBox.PerformLayout();
this.ResumeLayout(false);
}
@@ -1609,7 +1618,6 @@ namespace SourceGen.AppForms {
private System.Windows.Forms.CheckBox enableDebugCheckBox;
private System.Windows.Forms.CheckBox showAsmIdentCheckBox;
private System.Windows.Forms.TabPage displayFormatTabPage;
- private System.Windows.Forms.CheckBox useMerlinExpressions;
private System.Windows.Forms.GroupBox operandWidthGroupBox;
private System.Windows.Forms.TextBox disambPrefix24TextBox;
private System.Windows.Forms.TextBox disambPrefix16TextBox;
@@ -1646,5 +1654,7 @@ namespace SourceGen.AppForms {
private System.Windows.Forms.ComboBox displayFmtQuickComboBox;
private System.Windows.Forms.GroupBox codeViewMiscGroupBox;
private System.Windows.Forms.CheckBox spacesBetweenBytesCheckBox;
+ private System.Windows.Forms.ComboBox expressionStyleComboBox;
+ private System.Windows.Forms.Label expressionStyleLabel;
}
}
\ No newline at end of file
diff --git a/SourceGen/AppForms/EditAppSettings.cs b/SourceGen/AppForms/EditAppSettings.cs
index a431f84..4d392c3 100644
--- a/SourceGen/AppForms/EditAppSettings.cs
+++ b/SourceGen/AppForms/EditAppSettings.cs
@@ -18,11 +18,11 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Reflection;
-using System.Text;
using System.Windows.Forms;
using AssemblerInfo = SourceGen.AsmGen.AssemblerInfo;
using AssemblerConfig = SourceGen.AsmGen.AssemblerConfig;
+using ExpressionMode = Asm65.Formatter.FormatConfig.ExpressionMode;
namespace SourceGen.AppForms {
public partial class EditAppSettings : Form {
@@ -91,7 +91,7 @@ namespace SourceGen.AppForms {
// Enumerated ID.
public AssemblerInfo.Id AssemblerId { get; private set; }
- // Human-readable name.
+ // Human-readable name for display.
public string Name { get; private set; }
public AsmComboItem(AssemblerInfo info) {
@@ -100,6 +100,27 @@ namespace SourceGen.AppForms {
}
}
+ ///
The Merlin assembler uses an expression syntax that is compact but -different from many other cross-assemblers. Notably, the byte-selection -operators ('<', '>', '^') act like shift operators, yielding -16-bit values when wide registers are enabled on the 65816.
+Different assemblers have different ways of forming expressions. +Sometimes the rules allow expressions to be written simply, other times +explicit grouping with parenthesis is required. Select whichever style +you are most comfortable with.
The "quick set" buttons configure the fields on this tab to match the conventions of the specified assembler. Select your preferred assembler