2019-06-24 22:48:11 +00:00
|
|
|
<!--
|
|
|
|
Copyright 2019 faddenSoft
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
-->
|
|
|
|
|
2019-07-20 20:28:10 +00:00
|
|
|
<Window x:Class="SourceGen.WpfGui.EditAppSettings"
|
2019-06-24 22:48:11 +00:00
|
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
2019-10-12 00:39:52 +00:00
|
|
|
xmlns:system="clr-namespace:System;assembly=mscorlib"
|
2019-07-20 20:28:10 +00:00
|
|
|
xmlns:local="clr-namespace:SourceGen.WpfGui"
|
2019-06-24 22:48:11 +00:00
|
|
|
mc:Ignorable="d"
|
|
|
|
Title="Edit Application Settings"
|
2019-06-27 00:11:58 +00:00
|
|
|
Width="700" Height="440" ResizeMode="NoResize"
|
|
|
|
ShowInTaskbar="False" WindowStartupLocation="CenterOwner"
|
|
|
|
Loaded="Window_Loaded">
|
2019-06-24 22:48:11 +00:00
|
|
|
|
2019-10-12 00:39:52 +00:00
|
|
|
<Window.Resources>
|
|
|
|
<system:String x:Key="str_ExpStyleCommon">Common</system:String>
|
|
|
|
<system:String x:Key="str_ExpStyleCc65">cc65</system:String>
|
|
|
|
<system:String x:Key="str_ExpStyleMerlin">Merlin</system:String>
|
|
|
|
<system:String x:Key="str_PresetCustom">Custom</system:String>
|
|
|
|
<system:String x:Key="str_PresetDefault">Default</system:String>
|
|
|
|
</Window.Resources>
|
|
|
|
|
2019-07-01 21:07:30 +00:00
|
|
|
<DockPanel Margin="8">
|
2019-06-24 22:48:11 +00:00
|
|
|
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Right">
|
|
|
|
<Button Name="applyButton" Content="Apply" Margin="0,0,20,0"
|
2019-06-27 00:11:58 +00:00
|
|
|
Width="70" IsEnabled="{Binding IsDirty}" Click="ApplyButton_Click"/>
|
2019-06-24 22:48:11 +00:00
|
|
|
<Button Name="okButton" Content="OK" IsDefault="True"
|
2019-06-27 00:11:58 +00:00
|
|
|
Width="70" Click="OkButton_Click"/>
|
2019-06-24 22:48:11 +00:00
|
|
|
<Button Name="cancelButton" Content="Cancel" IsCancel="True"
|
|
|
|
Width="70" Margin="4,0,0,0"/>
|
|
|
|
</StackPanel>
|
|
|
|
|
2019-06-27 00:11:58 +00:00
|
|
|
<TabControl Name="tabControl" DockPanel.Dock="Top" Margin="0,0,0,8">
|
|
|
|
<TabItem Name="codeViewTab" Header="Code View">
|
2019-06-24 22:48:11 +00:00
|
|
|
<Grid>
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
<ColumnDefinition Width="0.75*"/>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="*"/>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
2019-08-14 22:25:09 +00:00
|
|
|
<GroupBox Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Header="Column Visibility"
|
2019-08-12 20:45:00 +00:00
|
|
|
Margin="0,0,10,0" Padding="2,0">
|
2019-06-24 22:48:11 +00:00
|
|
|
<StackPanel>
|
2019-06-27 00:11:58 +00:00
|
|
|
<Button Name="showCol0" Content="{}{0} Offset" Width="120" Margin="0,4"
|
|
|
|
Click="ColumnVisibilityButton_Click"/>
|
|
|
|
<Button Name="showCol1" Content="{}{0} Address" Width="120" Margin="0,4"
|
|
|
|
Click="ColumnVisibilityButton_Click"/>
|
|
|
|
<Button Name="showCol2" Content="{}{0} Bytes" Width="120" Margin="0,4"
|
|
|
|
Click="ColumnVisibilityButton_Click"/>
|
|
|
|
<Button Name="showCol3" Content="{}{0} Flags" Width="120" Margin="0,4"
|
|
|
|
Click="ColumnVisibilityButton_Click"/>
|
|
|
|
<Button Name="showCol4" Content="{}{0} Attributes" Width="120" Margin="0,4"
|
|
|
|
Click="ColumnVisibilityButton_Click"/>
|
|
|
|
<Button Name="showCol5" Content="{}{0} Label" Width="120" Margin="0,4"
|
|
|
|
Click="ColumnVisibilityButton_Click"/>
|
|
|
|
<Button Name="showCol6" Content="{}{0} Opcode" Width="120" Margin="0,4"
|
|
|
|
Click="ColumnVisibilityButton_Click"/>
|
|
|
|
<Button Name="showCol7" Content="{}{0} Operand" Width="120" Margin="0,4"
|
|
|
|
Click="ColumnVisibilityButton_Click"/>
|
|
|
|
<Button Name="showCol8" Content="{}{0} Comment" Width="120" Margin="0,4"
|
|
|
|
Click="ColumnVisibilityButton_Click"/>
|
2019-06-24 22:48:11 +00:00
|
|
|
</StackPanel>
|
|
|
|
</GroupBox>
|
|
|
|
|
|
|
|
<GroupBox Grid.Column="1" Grid.Row="0" Header="Code List Font"
|
2019-08-12 20:45:00 +00:00
|
|
|
Margin="5,0,5,0" Padding="2,4">
|
2019-06-24 22:48:11 +00:00
|
|
|
<StackPanel>
|
2019-08-12 20:45:00 +00:00
|
|
|
<TextBlock>Current font:</TextBlock>
|
2019-06-27 00:11:58 +00:00
|
|
|
<TextBlock Name="codeListFontDesc" Margin="0,4,0,0">10-pt Hoser Sans</TextBlock>
|
2019-06-24 22:48:11 +00:00
|
|
|
<Button Content="Select Font..." Width="120" Margin="0,8,0,0"
|
2019-06-27 00:11:58 +00:00
|
|
|
HorizontalAlignment="Left" Click="SelectFontButton_Click"/>
|
2019-06-24 22:48:11 +00:00
|
|
|
</StackPanel>
|
|
|
|
</GroupBox>
|
|
|
|
|
2019-08-14 22:25:09 +00:00
|
|
|
<GroupBox Grid.Column="1" Grid.Row="1" Header="Upper Case Display"
|
2019-08-12 20:45:00 +00:00
|
|
|
Margin="5,0,5,0" Padding="2,4">
|
2019-06-24 22:48:11 +00:00
|
|
|
<StackPanel>
|
2019-09-11 00:43:31 +00:00
|
|
|
<CheckBox Content="Hexadecimal values" Margin="0,4"
|
2019-06-27 00:11:58 +00:00
|
|
|
IsChecked="{Binding UpperHexValues}"/>
|
|
|
|
<CheckBox Content="Opcodes" Margin="0,4"
|
|
|
|
IsChecked="{Binding UpperOpcodes}"/>
|
|
|
|
<CheckBox Content="Pseudo-opcodes" Margin="0,4"
|
|
|
|
IsChecked="{Binding UpperPseudoOps}"/>
|
|
|
|
<CheckBox Content="Operand A" Margin="0,4"
|
|
|
|
IsChecked="{Binding UpperOperandA}"/>
|
|
|
|
<CheckBox Content="Operand S" Margin="0,4"
|
|
|
|
IsChecked="{Binding UpperOperandS}"/>
|
|
|
|
<CheckBox Content="Operand X/Y" Margin="0,4"
|
|
|
|
IsChecked="{Binding UpperOperandXY}"/>
|
2019-06-24 22:48:11 +00:00
|
|
|
<StackPanel Orientation="Horizontal">
|
2019-06-27 00:11:58 +00:00
|
|
|
<Button Content="All Lower" Width="75" Margin="0,4,0,0" Click="AllLower_Click"/>
|
|
|
|
<Button Content="All Upper" Width="75" Margin="8,4,0,0" Click="AllUpper_Click"/>
|
2019-06-24 22:48:11 +00:00
|
|
|
</StackPanel>
|
|
|
|
</StackPanel>
|
|
|
|
</GroupBox>
|
|
|
|
|
|
|
|
<GroupBox Grid.Column="2" Grid.Row="0" Header="Clipboard"
|
2019-08-12 20:45:00 +00:00
|
|
|
Margin="10,0,0,0" Padding="2,4">
|
2019-06-24 22:48:11 +00:00
|
|
|
<StackPanel>
|
2019-08-12 20:45:00 +00:00
|
|
|
<TextBlock>Format for lines copied to clipboard:</TextBlock>
|
2019-06-27 00:11:58 +00:00
|
|
|
<ComboBox Name="clipboardFormatComboBox" IsReadOnly="True" Margin="0,8,0,0"
|
2019-06-28 22:39:35 +00:00
|
|
|
ItemsSource="{Binding ClipboardFormatItems}" DisplayMemberPath="Name"
|
|
|
|
SelectionChanged="ClipboardFormatComboBox_SelectionChanged"/>
|
2019-06-24 22:48:11 +00:00
|
|
|
</StackPanel>
|
|
|
|
</GroupBox>
|
|
|
|
|
2019-08-14 22:25:09 +00:00
|
|
|
<GroupBox Grid.Column="2" Grid.Row="1" Header="Miscellaneous"
|
|
|
|
Margin="10,0,0,0" Padding="2,4">
|
|
|
|
<StackPanel>
|
2020-09-05 00:49:28 +00:00
|
|
|
<CheckBox Content="Show cycle counts for instructions" Margin="0,4"
|
2020-08-27 20:13:58 +00:00
|
|
|
IsChecked="{Binding ShowCycleCountsScreen}"/>
|
2019-10-13 00:23:32 +00:00
|
|
|
<CheckBox Content="Use "dark" color scheme" Margin="0,4"
|
|
|
|
IsChecked="{Binding DarkColorScheme}"/>
|
2019-08-14 22:25:09 +00:00
|
|
|
</StackPanel>
|
|
|
|
</GroupBox>
|
|
|
|
|
|
|
|
<CheckBox Grid.Column="0" Grid.Row="4" Content="Enable DEBUG menu" Margin="4,16,0,0"
|
|
|
|
IsChecked="{Binding EnableDebugMenu}"/>
|
|
|
|
</Grid>
|
|
|
|
</TabItem>
|
|
|
|
|
|
|
|
|
|
|
|
<TabItem Name="textDelimitersTab" Header="Text Delimiters">
|
|
|
|
<Grid>
|
|
|
|
<Grid.Resources>
|
|
|
|
<!-- TextBox spacer -->
|
|
|
|
<Thickness x:Key="TBS" Left="2" Top="4" Right="0" Bottom="0"/>
|
|
|
|
<Thickness x:Key="ENC" Left="0" Top="3" Right="4" Bottom="3"/>
|
|
|
|
</Grid.Resources>
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="*"/>
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Margin="4,0,0,0"
|
|
|
|
Text="Configure character and string delimiters. This does not affect source code generation."/>
|
|
|
|
|
|
|
|
<GroupBox Grid.Column="0" Grid.Row="1" Header="Character Operand Delimiters" Margin="4"
|
|
|
|
Padding="2,4">
|
2019-08-11 23:22:16 +00:00
|
|
|
<StackPanel>
|
|
|
|
<Grid>
|
|
|
|
<Grid.ColumnDefinitions>
|
2019-08-14 22:25:09 +00:00
|
|
|
<ColumnDefinition Width="Auto"/>
|
|
|
|
<ColumnDefinition Width="Auto"/>
|
|
|
|
<ColumnDefinition Width="Auto"/>
|
|
|
|
<ColumnDefinition Width="Auto"/>
|
|
|
|
<ColumnDefinition Width="Auto"/>
|
2019-08-11 23:22:16 +00:00
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="Auto"/>
|
2019-08-14 22:25:09 +00:00
|
|
|
<RowDefinition Height="Auto"/>
|
2019-08-11 23:22:16 +00:00
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
2019-08-14 22:25:09 +00:00
|
|
|
<!-- decorative lines to set off row/column headers -->
|
|
|
|
<Rectangle Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="5"
|
|
|
|
VerticalAlignment="Bottom" Height="1"
|
|
|
|
Stroke="LightGray" Fill="Transparent"/>
|
|
|
|
<Rectangle Grid.Column="0" Grid.Row="0" Grid.RowSpan="5"
|
|
|
|
HorizontalAlignment="Right" Width="1"
|
|
|
|
Stroke="LightGray" Fill="Transparent"/>
|
|
|
|
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="0" Text="Encoding" Margin="0,2,0,3"/>
|
|
|
|
<TextBlock Grid.Column="1" Grid.Row="0" Text="Prefix" Margin="3,2,3,0"
|
|
|
|
HorizontalAlignment="Center"/>
|
|
|
|
<TextBlock Grid.Column="2" Grid.Row="0" Text="Open" Margin="3,2,3,0"
|
|
|
|
HorizontalAlignment="Center"/>
|
|
|
|
<TextBlock Grid.Column="3" Grid.Row="0" Text="Close" Margin="3,2,3,0"
|
|
|
|
HorizontalAlignment="Center"/>
|
|
|
|
<TextBlock Grid.Column="4" Grid.Row="0" Text="Suffix" Margin="3,2,3,0"
|
|
|
|
HorizontalAlignment="Center"/>
|
|
|
|
|
|
|
|
<TextBlock Text="Plain ASCII" Grid.Column="0" Grid.Row="1"
|
|
|
|
Margin="{StaticResource ENC}"/>
|
|
|
|
<TextBox Name="chrdAsciiPrefix" Grid.Column="1" Grid.Row="1"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="8"
|
|
|
|
Text="01234567"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="chrdAsciiOpen" Grid.Column="2" Grid.Row="1"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="chrdAsciiClose" Grid.Column="3" Grid.Row="1"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="chrdAsciiSuffix" Grid.Column="4" Grid.Row="1"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="12"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
|
|
|
|
<TextBlock Text="High ASCII" Grid.Column="0" Grid.Row="2"
|
|
|
|
Margin="{StaticResource ENC}"/>
|
|
|
|
<TextBox Name="chrdHighAsciiPrefix" Grid.Column="1" Grid.Row="2"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="8"
|
|
|
|
Text="01234567"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="chrdHighAsciiOpen" Grid.Column="2" Grid.Row="2"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="chrdHighAsciiClose" Grid.Column="3" Grid.Row="2"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="chrdHighAsciiSuffix" Grid.Column="4" Grid.Row="2"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="12"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
|
|
|
|
<TextBlock Text="C64 PETSCII" Grid.Column="0" Grid.Row="3"
|
|
|
|
Margin="{StaticResource ENC}"/>
|
|
|
|
<TextBox Name="chrdPetsciiPrefix" Grid.Column="1" Grid.Row="3"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="8"
|
|
|
|
Text="01234567"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="chrdPetsciiOpen" Grid.Column="2" Grid.Row="3"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="chrdPetsciiClose" Grid.Column="3" Grid.Row="3"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="chrdPetsciiSuffix" Grid.Column="4" Grid.Row="3"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="12"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
|
|
|
|
<TextBlock Text="C64 Screen Code" Grid.Column="0" Grid.Row="4"
|
|
|
|
Margin="{StaticResource ENC}"/>
|
|
|
|
<TextBox Name="chrdScreenCodePrefix" Grid.Column="1" Grid.Row="4"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="8"
|
|
|
|
Text="01234567"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="chrdScreenCodeOpen" Grid.Column="2" Grid.Row="4"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="chrdScreenCodeClose" Grid.Column="3" Grid.Row="4"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="chrdScreenCodeSuffix" Grid.Column="4" Grid.Row="4"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="12"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
|
2019-08-11 23:22:16 +00:00
|
|
|
</Grid>
|
|
|
|
|
2019-08-14 22:25:09 +00:00
|
|
|
<Button Content="Reset To Defaults" Width="120" Margin="0,8,0,0"
|
|
|
|
HorizontalAlignment="Left" Click="ChrDelDefaultsButton_Click"/>
|
2019-08-11 23:22:16 +00:00
|
|
|
</StackPanel>
|
|
|
|
</GroupBox>
|
|
|
|
|
2019-08-14 22:25:09 +00:00
|
|
|
<GroupBox Grid.Column="1" Grid.Row="1" Header="Text String Delimiters" Margin="4"
|
|
|
|
Padding="2,4">
|
2019-08-11 23:22:16 +00:00
|
|
|
<StackPanel>
|
2019-08-14 22:25:09 +00:00
|
|
|
<Grid>
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
<ColumnDefinition Width="Auto"/>
|
|
|
|
<ColumnDefinition Width="Auto"/>
|
|
|
|
<ColumnDefinition Width="Auto"/>
|
|
|
|
<ColumnDefinition Width="Auto"/>
|
|
|
|
<ColumnDefinition Width="Auto"/>
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
|
|
|
<!-- decorative lines to set off row/column headers -->
|
|
|
|
<Rectangle Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="5"
|
|
|
|
VerticalAlignment="Bottom" Height="1"
|
|
|
|
Stroke="LightGray" Fill="Transparent"/>
|
|
|
|
<Rectangle Grid.Column="0" Grid.Row="0" Grid.RowSpan="5"
|
|
|
|
HorizontalAlignment="Right" Width="1"
|
|
|
|
Stroke="LightGray" Fill="Transparent"/>
|
|
|
|
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="0" Text="Encoding" Margin="0,2,0,3"/>
|
|
|
|
<TextBlock Grid.Column="1" Grid.Row="0" Text="Prefix" Margin="3,2,3,0"
|
|
|
|
HorizontalAlignment="Center"/>
|
|
|
|
<TextBlock Grid.Column="2" Grid.Row="0" Text="Open" Margin="3,2,3,0"
|
|
|
|
HorizontalAlignment="Center"/>
|
|
|
|
<TextBlock Grid.Column="3" Grid.Row="0" Text="Close" Margin="3,2,3,0"
|
|
|
|
HorizontalAlignment="Center"/>
|
|
|
|
<TextBlock Visibility="Hidden" Grid.Column="4" Grid.Row="0" Text="Suffix" Margin="3,2,3,0"
|
|
|
|
HorizontalAlignment="Center"/>
|
|
|
|
|
|
|
|
<TextBlock Text="Plain ASCII" Grid.Column="0" Grid.Row="1"
|
|
|
|
Margin="{StaticResource ENC}"/>
|
|
|
|
<TextBox Name="strdAsciiPrefix" Grid.Column="1" Grid.Row="1"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="8"
|
|
|
|
Text="01234567"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="strdAsciiOpen" Grid.Column="2" Grid.Row="1"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="strdAsciiClose" Grid.Column="3" Grid.Row="1"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Visibility="Hidden" Name="strdAsciiSuffix" Grid.Column="4" Grid.Row="1"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="12"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
|
|
|
|
<TextBlock Text="High ASCII" Grid.Column="0" Grid.Row="2"
|
|
|
|
Margin="{StaticResource ENC}"/>
|
|
|
|
<TextBox Name="strdHighAsciiPrefix" Grid.Column="1" Grid.Row="2"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="8"
|
|
|
|
Text="01234567"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="strdHighAsciiOpen" Grid.Column="2" Grid.Row="2"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="strdHighAsciiClose" Grid.Column="3" Grid.Row="2"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Visibility="Hidden" Name="strdHighAsciiSuffix" Grid.Column="4" Grid.Row="2"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="12"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
|
|
|
|
<TextBlock Text="C64 PETSCII" Grid.Column="0" Grid.Row="3"
|
|
|
|
Margin="{StaticResource ENC}"/>
|
|
|
|
<TextBox Name="strdPetsciiPrefix" Grid.Column="1" Grid.Row="3"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="8"
|
|
|
|
Text="01234567"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="strdPetsciiOpen" Grid.Column="2" Grid.Row="3"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="strdPetsciiClose" Grid.Column="3" Grid.Row="3"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Visibility="Hidden" Name="strdPetsciiSuffix" Grid.Column="4" Grid.Row="3"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="12"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
|
|
|
|
<TextBlock Text="C64 Screen Code" Grid.Column="0" Grid.Row="4"
|
|
|
|
Margin="{StaticResource ENC}"/>
|
|
|
|
<TextBox Name="strdScreenCodePrefix" Grid.Column="1" Grid.Row="4"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="8"
|
|
|
|
Text="01234567"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="strdScreenCodeOpen" Grid.Column="2" Grid.Row="4"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Name="strdScreenCodeClose" Grid.Column="3" Grid.Row="4"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="20" MaxLength="1"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBox Visibility="Hidden" Name="strdScreenCodeSuffix" Grid.Column="4" Grid.Row="4"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Top"
|
|
|
|
Margin="{StaticResource TBS}" Width="65" MaxLength="12"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
</Grid>
|
|
|
|
|
|
|
|
<Button Content="Reset To Defaults" Width="120" Margin="0,8,0,0"
|
|
|
|
HorizontalAlignment="Left" Click="StrDelDefaultsButton_Click"/>
|
2019-08-11 23:22:16 +00:00
|
|
|
</StackPanel>
|
2019-06-24 22:48:11 +00:00
|
|
|
</GroupBox>
|
|
|
|
|
2019-08-14 22:25:09 +00:00
|
|
|
<GroupBox Grid.Column="0" Grid.Row="2" Header="Sample Characters" Margin="4"
|
|
|
|
Padding="2,4">
|
|
|
|
<StackPanel>
|
|
|
|
<TextBox IsReadOnly="True"
|
|
|
|
Text="‘’•“”↑«»❰❱"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}" FontSize="16"/>
|
|
|
|
</StackPanel>
|
|
|
|
</GroupBox>
|
2019-06-24 22:48:11 +00:00
|
|
|
</Grid>
|
|
|
|
</TabItem>
|
|
|
|
|
|
|
|
|
2019-06-27 00:11:58 +00:00
|
|
|
<TabItem Name="displayFormatTab" Header="Display Format">
|
2020-07-20 01:39:27 +00:00
|
|
|
<Grid>
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
<ColumnDefinition Width="Auto"/>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="*"/>
|
|
|
|
</Grid.RowDefinitions>
|
2019-06-24 22:48:11 +00:00
|
|
|
|
2020-07-20 01:39:27 +00:00
|
|
|
<TextBlock Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3" Margin="4,0,0,0"
|
|
|
|
Text="Configure opcode/operand display format options. This does not affect source code generation."/>
|
|
|
|
<DockPanel Grid.Column="0" Grid.Row="1" LastChildFill="False">
|
|
|
|
<GroupBox Header="Operand Width Disambiguator" Width="300" DockPanel.Dock="Top"
|
|
|
|
HorizontalAlignment="Left" Margin="0,8,0,0" Padding="2,0">
|
|
|
|
<Grid>
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
<ColumnDefinition Width="20"/>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
<RowDefinition Height="Auto"/>
|
|
|
|
</Grid.RowDefinitions>
|
2019-06-24 22:48:11 +00:00
|
|
|
|
2020-07-20 01:39:27 +00:00
|
|
|
<TextBlock Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2"
|
|
|
|
Text="Opcode suffix:" Margin="0,4,0,0"/>
|
|
|
|
<TextBlock Grid.Column="3" Grid.Row="0" Grid.ColumnSpan="2"
|
|
|
|
Text="Operand prefix:" Margin="0,4,0,0"/>
|
|
|
|
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="1" Text="16-bit:"
|
|
|
|
Margin="0,4,0,0"/>
|
|
|
|
<TextBox Grid.Column="1" Grid.Row="1" Margin="0,4,0,0" MaxLength="8"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"
|
|
|
|
Text="{Binding OpcodeSuffixAbs, UpdateSourceTrigger=PropertyChanged,
|
|
|
|
FallbackValue=.placeho}"/>
|
|
|
|
<TextBlock Grid.Column="3" Grid.Row="1" Text="16-bit:"
|
|
|
|
Margin="0,4,0,0"/>
|
|
|
|
<TextBox Grid.Column="4" Grid.Row="1" Margin="0,4,0,0" MaxLength="8"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"
|
|
|
|
Text="{Binding OperandPrefixAbs, UpdateSourceTrigger=PropertyChanged,
|
|
|
|
FallbackValue=.placeho}"/>
|
|
|
|
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="2" Text="24-bit:"
|
|
|
|
Margin="0,4,0,0"/>
|
|
|
|
<TextBox Grid.Column="1" Grid.Row="2" Margin="0,4,0,0" MaxLength="8"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"
|
|
|
|
Text="{Binding OpcodeSuffixLong, UpdateSourceTrigger=PropertyChanged,
|
|
|
|
FallbackValue=.placeho}"/>
|
|
|
|
<TextBlock Grid.Column="3" Grid.Row="2" Text="24-bit:"
|
|
|
|
Margin="0,4,0,0"/>
|
|
|
|
<TextBox Grid.Column="4" Grid.Row="2" Margin="0,4,0,0" MaxLength="8"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"
|
|
|
|
Text="{Binding OperandPrefixLong, UpdateSourceTrigger=PropertyChanged,
|
|
|
|
FallbackValue=.placeho}"/>
|
|
|
|
</Grid>
|
|
|
|
</GroupBox>
|
|
|
|
|
|
|
|
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="4,8,0,0">
|
|
|
|
<TextBlock Text="Expression style:" Margin="0,3,0,0"/>
|
|
|
|
<ComboBox Name="expressionStyleComboBox" Width="120" Margin="8,0,0,0"
|
|
|
|
ItemsSource="{Binding ExpressionStyleItems}" DisplayMemberPath="Name"
|
|
|
|
IsReadOnly="True"
|
|
|
|
SelectionChanged="ExpressionStyleComboBox_SelectionChanged"/>
|
|
|
|
</StackPanel>
|
2019-11-13 01:24:41 +00:00
|
|
|
|
2020-07-20 01:39:27 +00:00
|
|
|
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="4,8,0,0">
|
|
|
|
<TextBlock Text="Non-unique label prefix:"/>
|
|
|
|
<TextBox Width="14" MaxLength="1" Margin="8,1,0,0"
|
|
|
|
Text="{Binding NonUniqueLabelPrefix, UpdateSourceTrigger=PropertyChanged,
|
|
|
|
FallbackValue=@}"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
</StackPanel>
|
2019-08-31 21:54:44 +00:00
|
|
|
|
2020-07-20 01:39:27 +00:00
|
|
|
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="4,4,0,0">
|
|
|
|
<TextBlock Text="Local variable prefix:"/>
|
|
|
|
<TextBox Width="66" MaxLength="8" Margin="8,1,0,0"
|
|
|
|
Text="{Binding LocalVarPrefix, UpdateSourceTrigger=PropertyChanged,
|
|
|
|
FallbackValue=.placeho}"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
</StackPanel>
|
2019-12-11 01:41:00 +00:00
|
|
|
|
2020-07-20 01:39:27 +00:00
|
|
|
<GroupBox DockPanel.Dock="Bottom" Header="Quick Set"
|
|
|
|
HorizontalAlignment="Left" Padding="2,4">
|
|
|
|
<ComboBox Name="displayFmtQuickComboBox" DockPanel.Dock="Right"
|
|
|
|
Width="170" IsReadOnly="True"
|
|
|
|
ItemsSource="{Binding DisplayPresets}" DisplayMemberPath="Name"
|
|
|
|
SelectionChanged="DisplayFmtQuickComboBox_SelectionChanged"/>
|
|
|
|
</GroupBox>
|
|
|
|
</DockPanel>
|
|
|
|
|
|
|
|
<Rectangle Grid.Column="1" Grid.Row="1" Margin="0,8,0,0"
|
|
|
|
VerticalAlignment="Stretch" Fill="LightGray" Width="2"/>
|
|
|
|
|
|
|
|
<DockPanel Grid.Column="2" Grid.Row="1" LastChildFill="False">
|
|
|
|
<CheckBox DockPanel.Dock="Top" Margin="4,12,0,0"
|
2020-08-27 20:13:58 +00:00
|
|
|
Content="Add spaces in Bytes column"
|
|
|
|
IsChecked="{Binding SpacesBetweenBytes}"/>
|
|
|
|
<CheckBox DockPanel.Dock="Top" Margin="4,8,0,0"
|
2020-07-20 01:39:27 +00:00
|
|
|
Content="Use comma-separated format for bulk data"
|
|
|
|
IsChecked="{Binding CommaSeparatedBulkData}"/>
|
|
|
|
|
|
|
|
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="4,8,0,0">
|
|
|
|
<TextBlock Text="Wrap operands at" Margin="0,3,0,0"/>
|
|
|
|
<ComboBox Name="operandWrapLenComboBox" Width="45" Margin="4,0,0,0"
|
|
|
|
ItemsSource="{Binding OperandWrapLenItems}" IsReadOnly="True"
|
|
|
|
SelectionChanged="OperandWrapLenComboBox_SelectionChanged"/>
|
|
|
|
<TextBlock Text="characters" Margin="4,3,0,0"/>
|
|
|
|
</StackPanel>
|
|
|
|
</DockPanel>
|
|
|
|
</Grid>
|
2019-06-24 22:48:11 +00:00
|
|
|
</TabItem>
|
|
|
|
|
|
|
|
|
2019-06-27 00:11:58 +00:00
|
|
|
<TabItem Name="pseudoOpTab" Header="Pseudo-Op">
|
2019-06-24 22:48:11 +00:00
|
|
|
<DockPanel LastChildFill="False">
|
2019-06-27 00:11:58 +00:00
|
|
|
<TextBlock DockPanel.Dock="Top" Margin="4,0,0,0"
|
2019-06-24 22:48:11 +00:00
|
|
|
Text="Select pseudo-op names for display. This does not affect source code generation. Blank entries get a default value."/>
|
|
|
|
|
2019-06-27 00:11:58 +00:00
|
|
|
<Grid DockPanel.Dock="Top" Height="240" Margin="4,0">
|
2019-08-11 23:22:16 +00:00
|
|
|
<Grid.Resources>
|
|
|
|
<!-- TextBox spacer -->
|
|
|
|
<Thickness x:Key="TBS" Left="6" Top="0" Right="0" Bottom="0"/>
|
|
|
|
</Grid.Resources>
|
2019-06-24 22:48:11 +00:00
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
<ColumnDefinition Width="0.8*"/>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
<ColumnDefinition Width="0.8*"/>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
<ColumnDefinition Width="0.8*"/>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
<ColumnDefinition Width="0.8*"/>
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
<RowDefinition Height="*"/>
|
|
|
|
<RowDefinition Height="*"/>
|
|
|
|
<RowDefinition Height="*"/>
|
|
|
|
<RowDefinition Height="*"/>
|
|
|
|
<RowDefinition Height="*"/>
|
|
|
|
<RowDefinition Height="*"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<RowDefinition Height="*"/>
|
2019-06-24 22:48:11 +00:00
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
2019-08-29 19:14:47 +00:00
|
|
|
<!-- first row -->
|
2019-06-24 22:48:11 +00:00
|
|
|
<TextBlock Grid.Column="0" Grid.Row="0" Text="Equate:"
|
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
2019-06-30 20:52:42 +00:00
|
|
|
<TextBox Name="equDirectiveTextBox" Grid.Column="1" Grid.Row="0"
|
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-08-29 19:14:47 +00:00
|
|
|
<TextBlock Grid.Column="2" Grid.Row="0" Text="Variable:"
|
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
|
|
|
<TextBox Name="varDirectiveTextBox" Grid.Column="3" Grid.Row="0"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-08-29 19:14:47 +00:00
|
|
|
<TextBlock Grid.Column="4" Grid.Row="0" Text="Origin:"
|
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
|
|
|
<TextBox Name="orgDirectiveTextBox" Grid.Column="5" Grid.Row="0"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-08-29 19:14:47 +00:00
|
|
|
<TextBlock Grid.Column="6" Grid.Row="0" Text="Reg width:"
|
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
|
|
|
<TextBox Name="regWidthDirectiveTextBox" Grid.Column="7" Grid.Row="0"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-08-29 19:14:47 +00:00
|
|
|
|
|
|
|
<!-- second row -->
|
|
|
|
<StackPanel Grid.Column="0" Grid.Row="1" VerticalAlignment="Center">
|
|
|
|
<TextBlock Text="Little-endian" HorizontalAlignment="Right"/>
|
|
|
|
<TextBlock Text="data, one byte:" HorizontalAlignment="Right"/>
|
|
|
|
</StackPanel>
|
|
|
|
<TextBox Name="defineData1TextBox" Grid.Column="1" Grid.Row="1"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-08-29 19:14:47 +00:00
|
|
|
<TextBlock Grid.Column="2" Grid.Row="1" Text="Two bytes:"
|
2019-06-24 22:48:11 +00:00
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
2019-08-29 19:14:47 +00:00
|
|
|
<TextBox Name="defineData2TextBox" Grid.Column="3" Grid.Row="1"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-08-29 19:14:47 +00:00
|
|
|
<TextBlock Grid.Column="4" Grid.Row="1" Text="Three bytes:"
|
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
|
|
|
<TextBox Name="defineData3TextBox" Grid.Column="5" Grid.Row="1"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-08-29 19:14:47 +00:00
|
|
|
<TextBlock Grid.Column="6" Grid.Row="1" Text="Four bytes:"
|
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
|
|
|
<TextBox Name="defineData4TextBox" Grid.Column="7" Grid.Row="1"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-08-29 19:14:47 +00:00
|
|
|
|
|
|
|
<!-- third row -->
|
2019-10-19 03:28:02 +00:00
|
|
|
<StackPanel Grid.Column="2" Grid.Row="2" VerticalAlignment="Center">
|
2019-08-29 19:14:47 +00:00
|
|
|
<TextBlock Text="Big-endian data," HorizontalAlignment="Right"/>
|
|
|
|
<TextBlock Text="two bytes:" HorizontalAlignment="Right"/>
|
|
|
|
</StackPanel>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBox Name="defineBigData2TextBox" Grid.Column="3" Grid.Row="2"
|
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
|
|
|
Text=".placeho" MaxLength="12"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
|
|
|
|
<!-- fourth row -->
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="3" Text="Fill:"
|
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
|
|
|
<TextBox Name="fillTextBox" Grid.Column="1" Grid.Row="3"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBlock Grid.Column="2" Grid.Row="3" Text="Bulk data:"
|
2019-06-24 22:48:11 +00:00
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBox Name="denseTextBox" Grid.Column="3" Grid.Row="3"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBlock Grid.Column="4" Grid.Row="3" Text="Junk:"
|
2019-08-29 19:14:47 +00:00
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBox Name="junkTextBox" Grid.Column="5" Grid.Row="3"
|
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
|
|
|
Text=".placeho" MaxLength="12"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
|
|
|
<TextBlock Grid.Column="6" Grid.Row="3" Text="Align:"
|
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
|
|
|
<TextBox Name="alignTextBox" Grid.Column="7" Grid.Row="3"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-08-29 19:14:47 +00:00
|
|
|
|
2019-10-19 03:28:02 +00:00
|
|
|
<!-- fifth row -->
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="4" Text="Generic str:"
|
2019-08-29 19:14:47 +00:00
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBox Name="strGenericTextBox" Grid.Column="1" Grid.Row="4"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBlock Grid.Column="2" Grid.Row="4" Text="Reverse str:"
|
2019-08-29 19:14:47 +00:00
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBox Name="strReverseTextBox" Grid.Column="3" Grid.Row="4"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBlock Grid.Column="4" Grid.Row="4" Text="Null-term str:"
|
2019-06-24 22:48:11 +00:00
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBox Name="strNullTermTextBox" Grid.Column="5" Grid.Row="4"
|
2019-08-29 19:14:47 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
|
|
|
Text=".placeho" MaxLength="12"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBlock Grid.Column="6" Grid.Row="4" Text="DCI str:"
|
2019-06-24 22:48:11 +00:00
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBox Name="strDciTextBox" Grid.Column="7" Grid.Row="4"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-08-29 19:14:47 +00:00
|
|
|
|
2019-10-19 03:28:02 +00:00
|
|
|
<!-- sixth row -->
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="5" Text="1-byte len str:"
|
2019-08-29 19:14:47 +00:00
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBox Name="strLen8TextBox" Grid.Column="1" Grid.Row="5"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBlock Grid.Column="2" Grid.Row="5" Text="2-byte len str:"
|
2019-08-29 19:14:47 +00:00
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
2019-10-19 03:28:02 +00:00
|
|
|
<TextBox Name="strLen16TextBox" Grid.Column="3" Grid.Row="5"
|
2019-06-30 20:52:42 +00:00
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
Various improvements
The PseudoOpNames class is increasingly being used in situations
where mutability is undesirable. This change makes instances
immutable, eliminating the Copy() method and adding a constructor
that takes a Dictionary. The serialization code now operates on a
Dictionary instead of the class properties, but the JSON encoding is
identical, so this doesn't invalidate app settings file data.
Added an equality test to PseudoOpNames. In LineListGen, don't
reset the line list if the names haven't actually changed.
Use a table lookup for C64 character conversions. I figure that
should be faster than multiple conditionals on a modern x64 system.
Fixed a 64tass generator issue where we tried to query project
properties in a call that might not have a project available
(specifically, getting FormatConfig values out of the generator for
use in the "quick set" buttons for Display Format).
Fixed a regression test harness issue where, if the assembler reported
success but didn't actually generate output, an exception would be
thrown that halted the tests.
Increased the width of text entry fields on the Pseudo-Op tab of app
settings. The previous 8-character limit wasn't wide enough to hold
ACME's "!pseudopc". Also, use TrimEnd() to remove trailing spaces
(leading spaces are still allowed).
In the last couple of months, Win10 started stalling for a fraction
of a second when executing assemblers. It doesn't do this every
time; mostly it happens if it has been a while since the assembler
was run. My guess is this has to do with changes to the built-in
malware scanner. Whatever the case, we now change the mouse pointer
to a wait cursor while updating the assembler version cache.
2019-08-17 18:14:05 +00:00
|
|
|
Text=".placeho" MaxLength="12"
|
2019-06-30 20:52:42 +00:00
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2020-07-09 22:17:47 +00:00
|
|
|
<TextBlock Grid.Column="6" Grid.Row="5" Text="Data bank:"
|
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Center"/>
|
|
|
|
<TextBox Name="dataBankTextBox" Grid.Column="7" Grid.Row="5"
|
|
|
|
VerticalAlignment="Center" Margin="{StaticResource TBS}"
|
|
|
|
Text=".placeho" MaxLength="12"
|
|
|
|
FontFamily="{StaticResource GeneralMonoFont}"/>
|
2019-06-24 22:48:11 +00:00
|
|
|
</Grid>
|
|
|
|
|
|
|
|
<GroupBox DockPanel.Dock="Bottom" Header="Quick Set"
|
2019-10-12 00:39:52 +00:00
|
|
|
HorizontalAlignment="Right" Padding="2,4">
|
|
|
|
<ComboBox Name="pseudoOpQuickComboBox" DockPanel.Dock="Right"
|
|
|
|
Width="170" IsReadOnly="True"
|
|
|
|
ItemsSource="{Binding PseudoOpPresets}" DisplayMemberPath="Name"
|
|
|
|
SelectionChanged="PseudoOpQuickComboBox_SelectionChanged"/>
|
2019-06-24 22:48:11 +00:00
|
|
|
</GroupBox>
|
|
|
|
</DockPanel>
|
|
|
|
</TabItem>
|
2020-07-20 01:39:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
<TabItem Name="asmConfigTab" Header="Asm Config">
|
|
|
|
<StackPanel>
|
|
|
|
<GroupBox Header="Assembler Configuration" Padding="2,4">
|
|
|
|
<Grid>
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
<ColumnDefinition Width="Auto"/>
|
|
|
|
<ColumnDefinition Width="*"/>
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
<RowDefinition/>
|
|
|
|
<RowDefinition/>
|
|
|
|
<RowDefinition/>
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="0" Text="Assembler:"
|
|
|
|
HorizontalAlignment="Right" Margin="0,5,4,0"/>
|
|
|
|
<ComboBox Name="asmConfigComboBox" Grid.Column="1" Grid.Row="0" IsReadOnly="True"
|
|
|
|
Width="150" HorizontalAlignment="Left" Margin="0,4,0,20"
|
|
|
|
ItemsSource="{Binding AssemblerList}" DisplayMemberPath="Name"
|
|
|
|
SelectionChanged="AsmConfigComboBox_SelectionChanged"/>
|
|
|
|
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="1" Text="Executable:"
|
|
|
|
HorizontalAlignment="Right" Margin="0,0,4,0"/>
|
|
|
|
<DockPanel Grid.Column="1" Grid.Row="1">
|
|
|
|
<Button DockPanel.Dock="Right" Content="Browse..." Width="75"
|
|
|
|
Margin="8,0,0,8" Click="AsmExeBrowseButton_Click"/>
|
|
|
|
<TextBox Name="asmExePathTextBox" DockPanel.Dock="Left" Margin="0,0,0,8"
|
|
|
|
Text="C:\something" TextChanged="AsmExePathTextBox_TextChanged"/>
|
|
|
|
</DockPanel>
|
|
|
|
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="2" Text="Column widths:"
|
|
|
|
HorizontalAlignment="Right" Margin="0,0,4,0"/>
|
|
|
|
<StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal">
|
|
|
|
<TextBox Name="asmLabelColWidthTextBox" Width="60" Margin="0,0,4,0">
|
|
|
|
<TextBox.Text>
|
|
|
|
<Binding Path="AsmLabelColWidth" UpdateSourceTrigger="PropertyChanged">
|
|
|
|
<Binding.ValidationRules>
|
|
|
|
<local:AsmColWidthRule ValidatesOnTargetUpdated="True"/>
|
|
|
|
</Binding.ValidationRules>
|
|
|
|
</Binding>
|
|
|
|
</TextBox.Text>
|
|
|
|
</TextBox>
|
|
|
|
<TextBox Name="asmOpcodeColWidthTextBox" Width="60" Margin="0,0,4,0">
|
|
|
|
<TextBox.Text>
|
|
|
|
<Binding Path="AsmOpcodeColWidth" UpdateSourceTrigger="PropertyChanged">
|
|
|
|
<Binding.ValidationRules>
|
|
|
|
<local:AsmColWidthRule ValidatesOnTargetUpdated="True"/>
|
|
|
|
</Binding.ValidationRules>
|
|
|
|
</Binding>
|
|
|
|
</TextBox.Text>
|
|
|
|
</TextBox>
|
|
|
|
<TextBox Name="asmOperandColWidthTextBox" Width="60" Margin="0,0,4,0">
|
|
|
|
<TextBox.Text>
|
|
|
|
<Binding Path="AsmOperandColWidth" UpdateSourceTrigger="PropertyChanged">
|
|
|
|
<Binding.ValidationRules>
|
|
|
|
<local:AsmColWidthRule ValidatesOnTargetUpdated="True"/>
|
|
|
|
</Binding.ValidationRules>
|
|
|
|
</Binding>
|
|
|
|
</TextBox.Text>
|
|
|
|
</TextBox>
|
|
|
|
<TextBox Name="asmCommentColWidthTextBox" Width="60" Margin="0,0,8,0">
|
|
|
|
<TextBox.Text>
|
|
|
|
<Binding Path="AsmCommentColWidth" UpdateSourceTrigger="PropertyChanged">
|
|
|
|
<Binding.ValidationRules>
|
|
|
|
<local:AsmColWidthRule ValidatesOnTargetUpdated="True"/>
|
|
|
|
</Binding.ValidationRules>
|
|
|
|
</Binding>
|
|
|
|
</TextBox.Text>
|
|
|
|
</TextBox>
|
|
|
|
<TextBlock Text="(label, opcode, operand, comment)"/>
|
|
|
|
</StackPanel>
|
|
|
|
</Grid>
|
|
|
|
</GroupBox>
|
|
|
|
|
|
|
|
<TextBlock Text="General code generation:" Margin="4,16,0,0"/>
|
2020-08-27 20:13:58 +00:00
|
|
|
<CheckBox Content="Show cycle counts in comments" Margin="4,8,0,0"
|
|
|
|
IsChecked="{Binding ShowCycleCountsAsm}"/>
|
2020-07-20 01:39:27 +00:00
|
|
|
<CheckBox Content="Put long labels on separate line" Margin="4,8,0,0"
|
|
|
|
IsChecked="{Binding LongLabelNewLine}"/>
|
|
|
|
<CheckBox Content="Identify assembler in output" Margin="4,8,0,0"
|
|
|
|
IsChecked="{Binding AddIdentComment}"/>
|
|
|
|
</StackPanel>
|
|
|
|
</TabItem>
|
|
|
|
|
2019-06-24 22:48:11 +00:00
|
|
|
</TabControl>
|
|
|
|
</DockPanel>
|
|
|
|
</Window>
|