public Pointer(string address) : base(0, 0) { if (address.StartsWith("P#")) { address = address.Substring(2); } if (address.StartsWith("DIX")) { MemoryArea = MemoryArea.InstanceDatablock; address = address.Substring(3); } else if (address.StartsWith("DBX")) { MemoryArea = MemoryArea.Datablock; address = address.Substring(3); } if (address.Contains(".")) { ByteAddress = Convert.ToInt32(address.Split('.')[0]); BitAddress = Convert.ToInt32(address.Split('.')[1]); } else { ByteAddress = Convert.ToInt32(address); BitAddress = 0; } }
public static string GetAccesKeyForSymbolTabelEntry(MemoryArea area, string name, uint litId) { string retVal = "000000"; if (area == MemoryArea.Counter) retVal += "53"; else if (area == MemoryArea.Timer) retVal += "54"; else { retVal += (((int) area) - 0x31).ToString("X"); } retVal += TiaCrcHelper.getcrc(Encoding.ASCII.GetBytes(name)).ToString("X").PadLeft(8, '0'); retVal += "4" + litId.ToString("X").PadLeft(7, '0'); return retVal; }
public static string MemoryAreaToPointer(MemoryArea area, MnemonicLanguage language) { switch (area) { case MemoryArea.Inputs: return Mnemonic.adE[(int)language]; case MemoryArea.Outputs: return Mnemonic.adA[(int)language]; case MemoryArea.Timer: return Mnemonic.adT[(int)language]; case MemoryArea.Flags: return Mnemonic.adM[(int)language]; case MemoryArea.Counter: return Mnemonic.adZ[(int)language]; case MemoryArea.Datablock: return Mnemonic.adDBX[(int)language]; case MemoryArea.InstanceDatablock: return Mnemonic.adDIX[(int)language]; } return ""; }
public static extern IntPtr libmeteor_getmemoryarea(MemoryArea which);
public override EndianImageReader CreateImageReader(MemoryArea img, Address addr) { return(new LeImageReader(img, addr)); }
public override EndianImageReader CreateImageReader(MemoryArea img, ulong off) { return(new LeImageReader(img, off)); }
public override bool TryRead(MemoryArea mem, Address addr, PrimitiveType dt, out Constant value) { return(mem.TryReadLe(addr, dt, out value)); }