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 "";
 }
Beispiel #4
0
		public static extern IntPtr libmeteor_getmemoryarea(MemoryArea which);
Beispiel #5
0
 public override EndianImageReader CreateImageReader(MemoryArea img, Address addr)
 {
     return(new LeImageReader(img, addr));
 }
Beispiel #6
0
 public override EndianImageReader CreateImageReader(MemoryArea img, ulong off)
 {
     return(new LeImageReader(img, off));
 }
Beispiel #7
0
 public override bool TryRead(MemoryArea mem, Address addr, PrimitiveType dt, out Constant value)
 {
     return(mem.TryReadLe(addr, dt, out value));
 }