LoadFlag is Rom-only

This commit is contained in:
Matt Nadareski
2020-09-03 12:06:54 -07:00
parent 6f72416947
commit da62c8b893
34 changed files with 99 additions and 111 deletions

View File

@@ -179,6 +179,13 @@ namespace SabreTools.Library.DatItems
[JsonProperty("dataarea", DefaultValueHandling = DefaultValueHandling.Ignore)]
public DataArea DataArea { get; set; }
/// <summary>
/// Loading flag
/// </summary>
[JsonProperty("loadflag", DefaultValueHandling = DefaultValueHandling.Ignore)]
public string LoadFlag { get; set; } // TODO: (load16_byte|load16_word|load16_word_swap|load32_byte|load32_word|load32_word_swap|load32_dword|load64_word|load64_word_swap|reload|fill|continue|reload_plain|ignore)
/// <summary>
/// Original hardware part associated with the item
/// </summary>
@@ -312,6 +319,27 @@ namespace SabreTools.Library.DatItems
DataArea.Endianness = mappings[Field.DatItem_AreaEndianness];
}
if (mappings.Keys.Contains(Field.DatItem_LoadFlag))
LoadFlag = mappings[Field.DatItem_LoadFlag];
if (mappings.Keys.Contains(Field.DatItem_Part_Name))
{
if (Part == null)
Part = new Part();
Part.Name = mappings[Field.DatItem_Part_Name];
}
if (mappings.Keys.Contains(Field.DatItem_Part_Interface))
{
if (Part == null)
Part = new Part();
Part.Interface = mappings[Field.DatItem_Part_Interface];
}
// TODO: Handle DatItem_Feature*
if (mappings.Keys.Contains(Field.DatItem_Value))
Value = mappings[Field.DatItem_Value];
@@ -760,6 +788,12 @@ namespace SabreTools.Library.DatItems
if (filter.DatItem_AreaEndianness.MatchesNegativeSet(DataArea?.Endianness) == true)
return false;
// Filter on load flag
if (filter.DatItem_LoadFlag.MatchesPositiveSet(LoadFlag) == false)
return false;
if (filter.DatItem_LoadFlag.MatchesNegativeSet(LoadFlag) == true)
return false;
// Filter on part name
if (filter.DatItem_Part_Name.MatchesPositiveSet(Part?.Name) == false)
return false;
@@ -778,6 +812,8 @@ namespace SabreTools.Library.DatItems
if (filter.DatItem_Value.MatchesNegativeSet(Value) == true)
return false;
// TODO: Handle DatItem_Feature*
#endregion
return true;
@@ -877,6 +913,9 @@ namespace SabreTools.Library.DatItems
DataArea.Endianness = null;
}
if (fields.Contains(Field.DatItem_LoadFlag))
LoadFlag = null;
if (fields.Contains(Field.DatItem_Part_Name) && Part != null)
Part.Name = null;
@@ -886,6 +925,8 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Features) && Part != null)
Part.Features = null;
// TODO: Handle DatItem_Feature*
if (fields.Contains(Field.DatItem_Value))
Value = null;
@@ -1094,6 +1135,9 @@ namespace SabreTools.Library.DatItems
DataArea.Endianness = newItem.DataArea?.Endianness;
}
if (fields.Contains(Field.DatItem_LoadFlag))
LoadFlag = newItem.LoadFlag;
if (fields.Contains(Field.DatItem_Part_Name))
{
if (Part == null)