mirror of
https://github.com/fadden/6502bench.git
synced 2024-09-07 08:55:00 +00:00
Added support for non-addressable regions, which are useful for things like file headers stripped out by the system loader, or chunks that get loaded into non-addressable graphics RAM. Regions are specified with the "NA" address value. The code list displays the address field greyed out, starting from zero (which is kind of handy if you want to know the relative offset within the region). Putting labels in non-addressable regions doesn't make sense, but symbol resolution is complicated enough that we really only have two options: ignore the labels entirely, or allow them but warn of their presence. The problem isn't so much the label, which you could legitimately want to access from an extension script, but rather the references to them from code or data. So we keep the label and add a warning to the Messages list when we see a reference. Moved NON_ADDR constants to Address class. AddressMap now has a copy. This is awkward because Asm65 and CommonUtil don't share. Updated the asm code generators to understand NON_ADDR, and reworked the API so that Merlin and cc65 output is correct for nested regions. Address region changes are now noted in the anattribs array, which makes certain operations faster than checking the address map. It also fixes a failure to recognize mid-instruction region changes in the code analyzer. Tweaked handling of synthetic regions, which are non-addressable areas generated by the linear address map traversal to fill in any "holes". The address region editor now treats attempts to edit them as creation of a new region.
203 lines
18 KiB
XML
203 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_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_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_DefaultAsciiDelimPat">‘#’</system:String>
|
|
<system:String x:Key="str_DefaultHighAsciiDelimPat">“#”</system:String>
|
|
<system:String x:Key="str_DefaultC64PetsciiDelimPat">pet:“#”</system:String>
|
|
<system:String x:Key="str_DefaultC64ScreenCodeDelimPat">scr:“#”</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_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_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_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}% 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_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> |