mirror of
https://github.com/fadden/6502bench.git
synced 2026-04-20 04:16:47 +00:00
ec50f48f95
SourceGen puts a lot of effort into connecting address operands to internal offsets and external symbols. Sometimes this is undesirable. For example, a BIT or conditional branch instruction is sometimes used as a dummy when there are multiple entry points that vary only in a status flag or register value. The address in the BIT or branch is either irrelevant or never actually referenced, so auto-generating a label for it is annoying. Having a way to tell the disassembler to disregard an address operand, so that it won't generate an auto-label or be included in the list of cross-references, provides a simple solution to this. The operand's file offset is determined during the code analysis pass. Setting it to -1 makes the operand look like an external address. If we disable the project/platform symbol lookup for that instruction as well, we can avoid label generation and cross-references. We also need to prevent the 65816 data bank fixup code from restoring it, and the relocation data code from doing its thing. The flag is implemented as a new "misc flags" table, which holds a set of bit flags for every file offset. The "disregard operand address" flag is set on the opcode byte of instructions. The flags are expected to be used infrequently, so they're currently output as a list of (offset, integer) pairs. The flag is set in the Edit Instruction Operand dialog, which has a new checkbox. The checkbox is disabled for immediate operands. (issue #174)
213 lines
18 KiB
XML
213 lines
18 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.
|
|
-->
|
|
|
|
<!-- Global string table. The goal is to have all English text in XAML. Strings used by C#
|
|
should either be here or in a Window-specific resource dictionary. -->
|
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:system="clr-namespace:System;assembly=mscorlib"
|
|
xmlns:local="clr-namespace:SourceGen.Res">
|
|
|
|
<system:String x:Key="str_AbbrevAddress">Addr</system:String>
|
|
<system:String x:Key="str_AbbrevConstant">Const</system:String>
|
|
<system:String x:Key="str_AbbrevStackRelative">StkRl</system:String>
|
|
<system:String x:Key="str_AnalyzerTagMultiChk">Setting start/stop tags on multiple consecutive bytes is rarely a good idea. Continue?</system:String>
|
|
<system:String x:Key="str_AnalyzerTagJmpTableCaption">Format As Jump Table?</system:String>
|
|
<system:String x:Key="str_AnalyzerTagJmpTableFmt">Found {0} potential JMP instructions below. Do you want to tag all of them as code entry points, rather than just the first?</system:String>
|
|
<system:String x:Key="str_AsmLatestVersion">[latest version]</system:String>
|
|
<system:String x:Key="str_AsmMatchFailure">output DOES NOT match data file</system:String>
|
|
<system:String x:Key="str_AsmMatchSuccess">output matches data file</system:String>
|
|
<system:String x:Key="str_AsmMismatchCaption">Output Mismatch</system:String>
|
|
<system:String x:Key="str_AsmMismatchDataFmt">Assembled output does not match: offset +{0:x6} has value ${1:x2}, expected ${2:x2}.</system:String>
|
|
<system:String x:Key="str_AsmMismatchLengthFmt">Assembled output does not match: length is {0}, expected {1}.</system:String>
|
|
<system:String x:Key="str_AsmOutputNotFound">Expected output file wasn't created</system:String>
|
|
<system:String x:Key="str_AutoSave1Min">60 seconds</system:String>
|
|
<system:String x:Key="str_AutoSave5Min">5 minutes</system:String>
|
|
<system:String x:Key="str_AutoSaveOff">disabled</system:String>
|
|
<system:String x:Key="str_ClipformatAllColumns">All Columns</system:String>
|
|
<system:String x:Key="str_ClipformatAssemblerSource">Assembler Source</system:String>
|
|
<system:String x:Key="str_ClipformatDisassembly">Disassembly</system:String>
|
|
<system:String x:Key="str_ConfirmationNeeded">Confirmation Needed</system:String>
|
|
<system:String x:Key="str_DataBankAutoFmt">{0} (auto)</system:String>
|
|
<system:String x:Key="str_DataBankUserFmt">{0}</system:String>
|
|
<system:String x:Key="str_DataBankK">K</system:String>
|
|
<system:String x:Key="str_DefaultHeaderCommentFmt">6502bench SourceGen v{0}</system:String>
|
|
<system:String x:Key="str_EquAddress">addr</system:String>
|
|
<system:String x:Key="str_EquConstant">const</system:String>
|
|
<system:String x:Key="str_EquStackRelative">stkrl</system:String>
|
|
<system:String x:Key="str_ErrBadAddressRegionFmt">Bad address region {0}</system:String>
|
|
<system:String x:Key="str_ErrBadDefSymbolDir">Unknown I/O direction in symbol</system:String>
|
|
<system:String x:Key="str_ErrBadFdFmt">Bad format descriptor at +{0:x6}.</system:String>
|
|
<system:String x:Key="str_ErrBadFdFormat">Bad format descriptor type</system:String>
|
|
<system:String x:Key="str_ErrBadFileLength">Bad file length</system:String>
|
|
<system:String x:Key="str_ErrBadIdent">Invalid file identifier</system:String>
|
|
<system:String x:Key="str_ErrBadLocalVariableFmt">Bad local variable {0}</system:String>
|
|
<system:String x:Key="str_ErrBadLvTableFmt">Invalid local variable table at +{0:x6}</system:String>
|
|
<system:String x:Key="str_ErrBadRange">Bad range</system:String>
|
|
<system:String x:Key="str_ErrBadSymbolLabel">Malformed label in symbol</system:String>
|
|
<system:String x:Key="str_ErrBadSymbolSt">Unknown Source or Type in symbol</system:String>
|
|
<system:String x:Key="str_ErrBadSymrefPart">Bad symbol reference part</system:String>
|
|
<system:String x:Key="str_ErrBadAnalyzerTag">Analyzer tag not recognized</system:String>
|
|
<system:String x:Key="str_ErrBadVisualizationFmt">Invalid visualization item: {0}</system:String>
|
|
<system:String x:Key="str_ErrBadVisualizationSetFmt">Invalid visualization set at +{0:x6}</system:String>
|
|
<system:String x:Key="str_ErrDirCreateFailedFmt">Unable to create directory {0}: {1}</system:String>
|
|
<system:String x:Key="str_ErrDuplicateLabelFmt">Removed duplicate label '{0}' (offset +{1:x6})</system:String>
|
|
<system:String x:Key="str_ErrFileCopyFailedFmt">Failed copying {0} to {1}: {2}.</system:String>
|
|
<system:String x:Key="str_ErrFileExistsNotDirFmt">The file {0} exists, but is not a directory.</system:String>
|
|
<system:String x:Key="str_ErrFileGenericCaption">File Error</system:String>
|
|
<system:String x:Key="str_ErrFileNotFoundFmt">File not found: {0}</system:String>
|
|
<system:String x:Key="str_ErrFileReadFailedFmt">Failed reading {0}: {1}.</system:String>
|
|
<system:String x:Key="str_ErrFileReadOnlyFmt">Cannot write to read-only file {0}.</system:String>
|
|
<system:String x:Key="str_ErrInvalidAddressMask">Invalid MULTI_MASK AddressMask</system:String>
|
|
<system:String x:Key="str_ErrInvalidCmpAddrOverlap">MULTI_MASK CompareMask and AddressMask overlap</system:String>
|
|
<system:String x:Key="str_ErrInvalidCmpExtraBits">MULTI_MASK CompareValue has bits not in CompareMask</system:String>
|
|
<system:String x:Key="str_ErrInvalidCompareMask">Invalid MULTI_MASK CompareMask</system:String>
|
|
<system:String x:Key="str_ErrInvalidCompareValue">Invalid MULTI_MASK CompareValue</system:String>
|
|
<system:String x:Key="str_ErrInvalidIntValue">Could not convert value to integer</system:String>
|
|
<system:String x:Key="str_ErrInvalidKeyValue">Key value is out of range</system:String>
|
|
<system:String x:Key="str_ErrInvalidMultiMask">Invalid MULTI_MASK line</system:String>
|
|
<system:String x:Key="str_ErrInvalidWidth">Invalid width value</system:String>
|
|
<system:String x:Key="str_ErrInvalidSysdef" xml:space="preserve"> - INVALID DEFINITION</system:String>
|
|
<system:String x:Key="str_ErrLoadConfigFile">Unable to load config file</system:String>
|
|
<system:String x:Key="str_ErrNotProjectFile">This does not appear to be a valid .dis65 project file</system:String>
|
|
<system:String x:Key="str_ErrProjectFileCorrupt">Project file may be corrupt</system:String>
|
|
<system:String x:Key="str_ErrProjectLoadFail">Unable to load project file</system:String>
|
|
<system:String x:Key="str_ErrProjectSaveFail">Unable to save project file</system:String>
|
|
<system:String x:Key="str_ErrTooLargeForPreview">[File was too large for preview window]</system:String>
|
|
<system:String x:Key="str_ErrValueIncompatibleWithMask">Symbol value is incompatible with current multi-mask</system:String>
|
|
<system:String x:Key="str_ExportingHtml">Exporting HTML...</system:String>
|
|
<system:String x:Key="str_ExportingHtmlAndImages">Exporting HTML and images...</system:String>
|
|
<system:String x:Key="str_ExternalFileBadDirFmt" xml:space="preserve">Symbol files and extension scripts must live in the application runtime directory ({0}) or project directory ({1}).

File {2} lives elsewhere.</system:String>
|
|
<system:String x:Key="str_ExternalFileBadDirCaption">File Not In Runtime Directory</system:String>
|
|
<system:String x:Key="str_FileFilterAll">All files (*.*)|*.*</system:String>
|
|
<system:String x:Key="str_FileFilterCs">C# Source Files (*.cs)|*.cs</system:String>
|
|
<system:String x:Key="str_FileFilterCsv">CSV files (*.csv)|*.csv</system:String>
|
|
<system:String x:Key="str_FileFilterDis65">SourceGen projects (*.dis65)|*.dis65</system:String>
|
|
<system:String x:Key="str_FileFilterGif">GIF images (*.gif)|*.gif</system:String>
|
|
<system:String x:Key="str_FileFilterHtml">HTML files (*.html)|*.html</system:String>
|
|
<system:String x:Key="str_FileFilterSgec">SGEC files (*.txt)|*.txt</system:String>
|
|
<system:String x:Key="str_FileFilterSym65">SourceGen symbols (*.sym65)|*.sym65</system:String>
|
|
<system:String x:Key="str_FileFilterText">Text files (*.txt)|*.txt</system:String>
|
|
<system:String x:Key="str_FileInfoFmt">File is {0:N1} KB of raw data.</system:String>
|
|
<system:String x:Key="str_FindAllCaption">Find All...</system:String>
|
|
<system:String x:Key="str_FindAllNoMatch">No matches found.</system:String>
|
|
<system:String x:Key="str_FindReachedStart">Find reached the starting point of the search.</system:String>
|
|
<system:String x:Key="str_FindReachedStartCaption">Find...</system:String>
|
|
<system:String x:Key="str_FontDescriptorFmt">{0}-point {1}</system:String>
|
|
<system:String x:Key="str_GeneratedForVersion">Target assembler: {0} v{1} [{2}]</system:String>
|
|
<system:String x:Key="str_HideCol">Hide</system:String>
|
|
<system:String x:Key="str_InfoAutoFormat">Format (auto):</system:String>
|
|
<system:String x:Key="str_InfoCustomFormat">Format:</system:String>
|
|
<system:String x:Key="str_InfoDefaultFormat">Format: default</system:String>
|
|
<system:String x:Key="str_InfoLabelDescrFmt">Label type: {0}</system:String>
|
|
<system:String x:Key="str_InfoLineSumNonFmt">Line {0}: {1}</system:String>
|
|
<system:String x:Key="str_InfoLineSumPluralFmt">Line {0}: {1} bytes of {2}</system:String>
|
|
<system:String x:Key="str_InfoLineSumSingularFmt">Line {0}: {1} byte of {2}</system:String>
|
|
<system:String x:Key="str_InfoMultiLineSumFmt">{0} lines selected</system:String>
|
|
<system:String x:Key="str_InfoMultiLineStartFmt">First: line {0} offset {1}</system:String>
|
|
<system:String x:Key="str_InfoMultiLineEndFmt">Last: line {0} offset {1}</system:String>
|
|
<system:String x:Key="str_InfoMultiLineLenFmt">Selection spans {0} bytes</system:String>
|
|
<system:String x:Key="str_InitialExtensionScripts">Extension scripts:</system:String>
|
|
<system:String x:Key="str_InitialParameters">Default settings:</system:String>
|
|
<system:String x:Key="str_InitialSymbolFiles">Symbol files:</system:String>
|
|
<system:String x:Key="str_InvalidAddress">(unknown address)</system:String>
|
|
<system:String x:Key="str_InvalidFormatWordSelCaption">Invalid Selection</system:String>
|
|
<system:String x:Key="str_InvalidFormatWordSelNon1" xml:space="preserve">Unable to format as word: selection must be an even number of bytes that have not previously been formatted as multi-byte values.

Use Toggle Data Scan (Ctrl+D) to turn off auto-detection of strings and memory fill.</system:String>
|
|
<system:String x:Key="str_InvalidFormatWordSelUnevenFmt">Unable to format as word: each selected region must have an even number of bytes ({0} region(s) are selected).</system:String>
|
|
<system:String x:Key="str_LocalVariableTableClear">• Clear variables</system:String>
|
|
<system:String x:Key="str_LocalVariableTableEmpty">• Empty variable table</system:String>
|
|
<system:String x:Key="str_LoadAddress">load address</system:String>
|
|
<system:String x:Key="str_MsgBankOverrun">Address bank overrun</system:String>
|
|
<system:String x:Key="str_MsgBankOverrunDetailFmt">Bank boundary crossed at offset {0}</system:String>
|
|
<system:String x:Key="str_MsgFormatDescriptorIgnored">Format ignored</system:String>
|
|
<system:String x:Key="str_MsgHiddenLabel">Hidden label</system:String>
|
|
<system:String x:Key="str_MsgHiddenLocalVariableTable">Hidden variable table</system:String>
|
|
<system:String x:Key="str_MsgHiddenVisualization">Hidden visualization</system:String>
|
|
<system:String x:Key="str_MsgInvalidDescriptor">Invalid format desc</system:String>
|
|
<system:String x:Key="str_MsgInvalidOffsetOrLength">Invalid offset or len</system:String>
|
|
<system:String x:Key="str_MsgLabelIgnored">Label ignored</system:String>
|
|
<system:String x:Key="str_MsgLocalVariableTableIgnored">LV table skipped over</system:String>
|
|
<system:String x:Key="str_MsgNonAddrLabelRef">Ref to non-addressable label</system:String>
|
|
<system:String x:Key="str_MsgUnresolvedWeakRef">Ref'd symbol not found</system:String>
|
|
<system:String x:Key="str_MsgVisualizationIgnored">Visualization ignored</system:String>
|
|
<system:String x:Key="str_NoFilesAvailable">no files available</system:String>
|
|
<system:String x:Key="str_NoExportedSymbolsFound">No exported symbols found.</system:String>
|
|
<system:String x:Key="str_OmfSegCommentFmt">Segment {0:D2}: Kind={1}; Attrs={2}; Name='{3}'</system:String>
|
|
<system:String x:Key="str_OmfSegHdrCommentFmt">Segment {0:D2}: {3} {1,-9} Name='{2}', Length={4}</system:String>
|
|
<system:String x:Key="str_OmfSegNoteFmt">Seg{0:D2}: {1} '{2}'</system:String>
|
|
<system:String x:Key="str_OmfSelectFile">Select OMF file</system:String>
|
|
<system:String x:Key="str_OpenDataDoesntExist">The file doesn't exist.</system:String>
|
|
<system:String x:Key="str_OpenDataEmpty">File is empty</system:String>
|
|
<system:String x:Key="str_OpenDataFailCaption">Unable to load data file</system:String>
|
|
<system:String x:Key="str_OpenDataFailMessage">Unable to load contents of data file</system:String>
|
|
<system:String x:Key="str_OpenDataLoadFailedFmt">The file could not be opened: {0}.</system:String>
|
|
<system:String x:Key="str_OpenDataPartialRead">Unable to read the entire file</system:String>
|
|
<system:String x:Key="str_OpenDataTooLargeFmt">File is too large ({0:N0} KiB, max is {1:N0} KiB).</system:String>
|
|
<system:String x:Key="str_OpenDataTooSmallFmt">File is too small ({0} bytes).</system:String>
|
|
<system:String x:Key="str_OpenDataWrongLengthFmt">The file is {0:N0} bytes long, but the project expected {1:N0}.</system:String>
|
|
<system:String x:Key="str_OpenDataWrongCrcFmt">The file has CRC {0}, but the project expected {1}.</system:String>
|
|
<system:String x:Key="str_OperationFailed">Failed</system:String>
|
|
<system:String x:Key="str_OperationSucceeded">Success!</system:String>
|
|
<system:String x:Key="str_ParentheticalNone">(none)</system:String>
|
|
<system:String x:Key="str_PluginDirFailFmt">Failed while preparing the plugin directory {0}</system:String>
|
|
<system:String x:Key="str_PluginDirFailCaption">Failed Preparing Plugin Directory</system:String>
|
|
<system:String x:Key="str_ProgressAssembling">Executing assembler...</system:String>
|
|
<system:String x:Key="str_ProgressGeneratingFmt">Generating {0}...</system:String>
|
|
<system:String x:Key="str_ProjectFieldComment">comment</system:String>
|
|
<system:String x:Key="str_ProjectFieldDbrValue">DBR value</system:String>
|
|
<system:String x:Key="str_ProjectFieldLongComment">long comment</system:String>
|
|
<system:String x:Key="str_ProjectFieldLvTable">local variable table</system:String>
|
|
<system:String x:Key="str_ProjectFieldMiscFlags">misc flag</system:String>
|
|
<system:String x:Key="str_ProjectFieldNote">note</system:String>
|
|
<system:String x:Key="str_ProjectFieldOperandFormat">operand format</system:String>
|
|
<system:String x:Key="str_ProjectFieldRelocData">reloc data</system:String>
|
|
<system:String x:Key="str_ProjectFieldStatusFlags">status flag override</system:String>
|
|
<system:String x:Key="str_ProjectFieldAnalyzerTag">analyzer tag</system:String>
|
|
<system:String x:Key="str_ProjectFieldUserLabel">user-defined label</system:String>
|
|
<system:String x:Key="str_ProjectFromNewerApp">This project was created by a newer version of SourceGen. It may contain data that will be lost if the project is edited.</system:String>
|
|
<!--<system:String x:Key="str_RecentProjectLinkFmt">#{0}: {1}</system:String>-->
|
|
<system:String x:Key="str_RuntimeDirNotFound">The RuntimeData directory was not found. It should be in the same directory as the executable.</system:String>
|
|
<system:String x:Key="str_RuntimeDirNotFoundCaption">RuntimeData Not Found</system:String>
|
|
<system:String x:Key="str_SaveBeforeAsm">Please save your project before assembling. The generated source code will be placed in the same directory as the project file.</system:String>
|
|
<system:String x:Key="str_SaveBeforeAsmCaption">Save Project First</system:String>
|
|
<system:String x:Key="str_ScanLowAscii">Plain ASCII</system:String>
|
|
<system:String x:Key="str_ScanLowHighAscii">Low or High ASCII</system:String>
|
|
<system:String x:Key="str_ScanC64Petscii">C64 PETSCII</system:String>
|
|
<system:String x:Key="str_ScanC64ScreenCode">C64 Screen Code</system:String>
|
|
<system:String x:Key="str_SetupSystemSummaryFmt">{1} CPU @ {2} MHz</system:String>
|
|
<system:String x:Key="str_ShowCol">Show</system:String>
|
|
<system:String x:Key="str_StatusByteCountFmt">{0:F1}KB ({1:F1}% code, {2:F1}% data, {3:F1}% uninit/junk)</system:String>
|
|
<system:String x:Key="str_StatusReady">Ready</system:String>
|
|
<system:String x:Key="str_StrVfyDciMixedData">DCI string has mixed data</system:String>
|
|
<system:String x:Key="str_StrVfyDciNotTerminated">DCI string not terminated</system:String>
|
|
<system:String x:Key="str_StrVfyDciShort">DCI string is too short</system:String>
|
|
<system:String x:Key="str_StrVfyL1LengthMismatch">length of string doesn't match length byte</system:String>
|
|
<system:String x:Key="str_StrVfyL2LengthMismatch">length of string doesn't match length word</system:String>
|
|
<system:String x:Key="str_StrVfyMissingNullTerm">null-terminated string doesn't end with null byte</system:String>
|
|
<system:String x:Key="str_StrVfyNullInsideNullTerm">found null byte in the middle of null-terminated string</system:String>
|
|
<system:String x:Key="str_SymbolImportCaption">Symbol Import</system:String>
|
|
<system:String x:Key="str_SymbolImportGoodFmt">Imported {0} global symbols.</system:String>
|
|
<system:String x:Key="str_SymbolImportNone">No global+export symbols were found.</system:String>
|
|
<system:String x:Key="str_TipsLoading">Loading tips...</system:String>
|
|
<system:String x:Key="str_TipsNotAvailable">Daily tips are not available.</system:String>
|
|
<system:String x:Key="str_TitleBase">6502bench SourceGen</system:String>
|
|
<system:String x:Key="str_TitleModified">(save needed)</system:String>
|
|
<system:String x:Key="str_TitleNewProject">[new project]</system:String>
|
|
<system:String x:Key="str_TitleReadOnly">*READ-ONLY*</system:String>
|
|
<system:String x:Key="str_Unset">[unset]</system:String>
|
|
<system:String x:Key="str_VisSetMultipleFmt">{1} (+{2} more)</system:String>
|
|
<system:String x:Key="str_VisSetSingleFmt">{1}</system:String>
|
|
</ResourceDictionary> |