private void FindMAPMAFSwitch(byte[] allBytes, string filename, SymbolCollection newSymbols, List<CodeBlock> newCodeBlocks)
{
foreach (CodeBlock cb in newCodeBlocks)
{
if (cb.CodeID > 0)
{
Console.WriteLine("codeblock " + cb.CodeID.ToString() + " address " + cb.StartAddress.ToString("X8") + " adrid " + cb.AddressID.ToString("X8"));
int MAPMAFSwitch = cb.AddressID - 8;
// read data
if ((allBytes[MAPMAFSwitch] == 0x01 && allBytes[MAPMAFSwitch + 1] == 0x01) || (allBytes[MAPMAFSwitch ] == 0x00 && allBytes[MAPMAFSwitch + 1] == 0x00))
{
// verify validity
SymbolHelper mapmafsh = new SymbolHelper();
//mapmafsh.BitMask = 0x0101;
mapmafsh.Category = "Detected maps";
mapmafsh.Subcategory = "Switches";
mapmafsh.Flash_start_address = MAPMAFSwitch;
mapmafsh.Varname = "MAP/MAF switch (0 = MAF, 257/0x0101 = MAP)" + DetermineNumberByFlashBank(MAPMAFSwitch, newCodeBlocks);
mapmafsh.Length = 2;
mapmafsh.CodeBlock = DetermineCodeBlockByByAddress(mapmafsh.Flash_start_address, newCodeBlocks);
newSymbols.Add(mapmafsh);
}
}
}
}