mirror of
https://github.com/fadden/6502bench.git
synced 2024-08-19 20:29:36 +00:00
Sometimes there's a bunch of junk in the binary that isn't used for anything. Often it's there to make things line up at the start of a page boundary. This adds a ".junk" directive that tells the disassembler that it can safely disregard the contents of a region. If the region ends on a power-of-two boundary, an alignment value can be specified. The assembly source generators will output an alignment directive when possible, a .fill directive when appropriate, and a .dense directive when all else fails. Because we're required to regenerate the original data file, it's not always possible to avoid generating a hex dump.
175 lines
11 KiB
XML
175 lines
11 KiB
XML
<!--
|
|
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.
|
|
-->
|
|
|
|
<Window x:Class="SourceGen.WpfGui.EditDataOperand"
|
|
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"
|
|
xmlns:system="clr-namespace:System;assembly=mscorlib"
|
|
xmlns:local="clr-namespace:SourceGen.WpfGui"
|
|
mc:Ignorable="d"
|
|
Title="Edit Data Operand"
|
|
SizeToContent="WidthAndHeight" ResizeMode="NoResize"
|
|
ShowInTaskbar="False" WindowStartupLocation="CenterOwner"
|
|
Loaded="Window_Loaded"
|
|
ContentRendered="Window_ContentRendered">
|
|
|
|
<Window.Resources>
|
|
<system:String x:Key="str_SingleByte">Select data format (1 byte selected):</system:String>
|
|
<system:String x:Key="str_SingleGroup">Select data format ({0} bytes selected):</system:String>
|
|
<system:String x:Key="str_MultiGroup">Select data format ({0} bytes selected in {1} groups):</system:String>
|
|
|
|
<system:String x:Key="str_StringMixed">Mixed character ({0} bytes) and non-character ({1} bytes)</system:String>
|
|
<system:String x:Key="str_StringMixedReverse">Reversed character ({0} bytes) and non-character ({1} bytes)</system:String>
|
|
<system:String x:Key="str_StringNullTerm">Null-terminated strings ({0})</system:String>
|
|
<system:String x:Key="str_StringLen8">Strings prefixed with 8-bit length ({0})</system:String>
|
|
<system:String x:Key="str_StringLen16">Strings prefixed with 16-bit length ({0})</system:String>
|
|
<system:String x:Key="str_StringDci">Dextral character inverted ({0})</system:String>
|
|
|
|
<system:String x:Key="str_AlignmentNone">arbitrary boundary</system:String>
|
|
<system:String x:Key="str_AlignmentItemFmt">{0}-byte boundary ({1})</system:String>
|
|
</Window.Resources>
|
|
|
|
<StackPanel Margin="8">
|
|
<TextBlock Name="selectFormatLabel" Text="{StaticResource str_MultiGroup}"/>
|
|
<RadioButton Name="radioDefaultFormat" GroupName="Main" Content="D_efault" Margin="0,8,0,0"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
|
|
<TextBlock Text="Simple Data" Margin="0,12,0,0"/>
|
|
<Rectangle HorizontalAlignment="Stretch" Fill="LightGray" Height="2"/>
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<StackPanel Grid.Column="0">
|
|
<RadioButton Name="radioSingleBytes" GroupName="Main" Content="Single _bytes" Margin="0,4,0,0"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
<RadioButton Name="radio16BitLittle" GroupName="Main" Content="16-bit words, little-endian" Margin="0,4,0,0"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
<RadioButton Name="radio16BitBig" GroupName="Main" Content="16-bit words, big-endian" Margin="0,4,0,0"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
<RadioButton Name="radio24BitLittle" GroupName="Main" Content="24-bit words, little-endian" Margin="0,4,0,0"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
<RadioButton Name="radio32BitLittle" GroupName="Main" Content="32-bit words, little-endian" Margin="0,4,0,0"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
</StackPanel>
|
|
<GroupBox Name="simpleDisplayAsGroupBox" Grid.Column="1" Header="Display As..." Margin="16,0,0,0"
|
|
Padding="2,4">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
<RadioButton Name="radioSimpleDataHex" Grid.Column="0" Grid.Row="0"
|
|
GroupName="Display" Content="_Hex" Checked="SimpleDisplay_CheckedChanged"/>
|
|
<RadioButton Name="radioSimpleDataDecimal" Grid.Column="0" Grid.Row="1"
|
|
GroupName="Display" Content="_Decimal" Margin="0,4,18,0"
|
|
Checked="SimpleDisplay_CheckedChanged"/>
|
|
<RadioButton Name="radioSimpleDataBinary" Grid.Column="0" Grid.Row="2"
|
|
GroupName="Display" Content="_Binary" Margin="0,4,0,0"
|
|
Checked="SimpleDisplay_CheckedChanged"/>
|
|
|
|
<RadioButton Name="radioSimpleDataAscii" Grid.Column="1" Grid.Row="0"
|
|
GroupName="Display" Content="_ASCII (low or high) character"
|
|
Checked="SimpleDisplay_CheckedChanged"/>
|
|
<RadioButton Name="radioSimpleDataPetscii" Grid.Column="1" Grid.Row="1"
|
|
GroupName="Display" Content="C64 _PETSCII character" Margin="0,4,0,0"
|
|
Checked="SimpleDisplay_CheckedChanged"/>
|
|
<RadioButton Name="radioSimpleDataScreenCode" Grid.Column="1" Grid.Row="2"
|
|
GroupName="Display" Content="C64 S_creen character" Margin="0,4,0,0"
|
|
Checked="SimpleDisplay_CheckedChanged"/>
|
|
|
|
<RadioButton Name="radioSimpleDataAddress" Grid.Column="0" Grid.Row="3" GroupName="Display"
|
|
Content="Add_ress" Margin="0,4,0,0" Checked="SimpleDisplay_CheckedChanged"/>
|
|
<!--<TextBox Grid.Column="1" Grid.Row="3" Margin="-8,4,0,0" Width="50" HorizontalAlignment="Left"
|
|
FontFamily="{StaticResource GeneralMonoFont}"
|
|
Text="{Binding SomethingCool, FallbackValue=+1Add}"/>-->
|
|
|
|
<StackPanel Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="2">
|
|
<RadioButton Name="radioSimpleDataSymbolic" GroupName="Display" Content="_Symbolic reference"
|
|
Margin="0,4,0,0" Checked="SimpleDisplay_CheckedChanged"/>
|
|
<TextBox Name="symbolEntryTextBox" Margin="20,4,0,0" FontFamily="{StaticResource GeneralMonoFont}"
|
|
TextChanged="SymbolEntryTextBox_TextChanged"/>
|
|
|
|
<StackPanel Orientation="Horizontal" Margin="20,4,0,0"
|
|
IsEnabled="{Binding ElementName=radioSimpleDataSymbolic, Path=IsChecked}">
|
|
<RadioButton Name="radioSymbolPartLow" GroupName="Part" Content="Low"/>
|
|
<RadioButton Name="radioSymbolPartHigh" GroupName="Part" Content="H_igh" Margin="8,0,0,0"/>
|
|
<RadioButton Name="radioSymbolPartBank" GroupName="Part" Content="Bank" Margin="8,0,8,0"/>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</Grid>
|
|
</GroupBox>
|
|
</Grid>
|
|
|
|
<TextBlock Text="Bulk Data" Margin="0,12,0,0"/>
|
|
<Rectangle HorizontalAlignment="Stretch" Fill="LightGray" Height="2"/>
|
|
<RadioButton Name="radioDenseHex" GroupName="Main" Content="Densely-_packed bytes" Margin="0,4,0,0"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
<RadioButton Name="radioFill" GroupName="Main" Content="Area _filled with value" Margin="0,4,0,0"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
<StackPanel Orientation="Horizontal">
|
|
<RadioButton Name="radioJunk" GroupName="Main" Content="_Junk bytes, end aligned to" Margin="0,4,0,0"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
<ComboBox Name="junkAlignComboBox" Margin="8,-1,0,0" Width="200"
|
|
ItemsSource="{Binding JunkAlignmentItems}" DisplayMemberPath="Description"/>
|
|
</StackPanel>
|
|
|
|
<TextBlock Text="String" Margin="0,12,0,0"/>
|
|
<Rectangle HorizontalAlignment="Stretch" Fill="LightGray" Height="2"/>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock Text="Character encoding:" Margin="0,7,0,0"/>
|
|
<ComboBox Name="stringEncodingComboBox" Width="150" Margin="8,4,0,4"
|
|
ItemsSource="{Binding StringEncodingItems}" DisplayMemberPath="Name"
|
|
SelectionChanged="StringEncodingComboBox_SelectionChanged"/>
|
|
</StackPanel>
|
|
<RadioButton Name="radioStringMixed" GroupName="Main" Margin="0,4,0,0"
|
|
Content="{StaticResource str_StringMixed}"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
<RadioButton Name="radioStringMixedReverse" GroupName="Main" Margin="0,4,0,0"
|
|
Content="{StaticResource str_StringMixedReverse}"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
<RadioButton Name="radioStringNullTerm" GroupName="Main" Margin="0,4,0,0"
|
|
Content="{StaticResource str_StringNullTerm}"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
<RadioButton Name="radioStringLen8" GroupName="Main" Margin="0,4,0,0"
|
|
Content="{StaticResource str_StringLen8}"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
<RadioButton Name="radioStringLen16" GroupName="Main" Margin="0,4,0,0"
|
|
Content="{StaticResource str_StringLen16}"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
<RadioButton Name="radioStringDci" GroupName="Main" Margin="0,4,0,0"
|
|
Content="{StaticResource str_StringDci}"
|
|
Checked="MainGroup_CheckedChanged"/>
|
|
|
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,8,0,0">
|
|
<Button Name="okButton" Content="OK" IsDefault="True" Width="70"
|
|
IsEnabled="{Binding IsValid}" Click="OkButton_Click"/>
|
|
<Button Name="cancelButton" Content="Cancel" IsCancel="True"
|
|
Width="70" Margin="4,0,0,0"/>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</Window>
|