Example #1
0
        private void TranslatePhysicalAddress(int pAddress)
        {
            if (pAddress < 0 || pAddress > _system.MemoryController.DebugMemory.Size - 1)
            {
                WriteLine("Invalid address.");
                return;
            }

            int found = 0;

            for (int mapAddr = 0x10000; mapAddr < 0x14000; mapAddr++)
            {
                bool   valid     = false;
                ushort entryWord = _system.MemoryController.DebugMemory.ReadWord(mapAddr, out valid);

                MapEntry entry = new MapEntry(entryWord);

                if ((pAddress >> 8) == entry.PageNumber)
                {
                    int vAddress = ((mapAddr & 0xffff) << 8) | (pAddress & 0xff);
                    WriteLine(String.Format("Map entry at 0x{0:x5} - {1}", mapAddr, entry.ToString()));
                    WriteLine(String.Format("PA 0x{0:x5} maps to VA 0x{1:x6}", pAddress, vAddress));
                    found++;
                }
            }

            if (found == 0)
            {
                WriteLine("No map entry for physical address.");
            }
        }
Example #2
0
        private void DumpMapEntry(int address)
        {
            if (address < 0x10000 || address > 0x13fff)
            {
                WriteLine("Invalid address.");
                return;
            }

            bool   valid     = false;
            ushort entryWord = _system.MemoryController.DebugMemory.ReadWord(address, out valid);

            MapEntry entry = new MapEntry(entryWord);

            WriteLine(String.Format("Map entry at 0x{0:x5} - {1}", address, entry.ToString()));
        }
Example #3
0
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder("TTypeEntry(");

            sb.Append("PrimitiveEntry: ");
            sb.Append(PrimitiveEntry == null ? "<null>" : PrimitiveEntry.ToString());
            sb.Append(",ArrayEntry: ");
            sb.Append(ArrayEntry == null ? "<null>" : ArrayEntry.ToString());
            sb.Append(",MapEntry: ");
            sb.Append(MapEntry == null ? "<null>" : MapEntry.ToString());
            sb.Append(",StructEntry: ");
            sb.Append(StructEntry == null ? "<null>" : StructEntry.ToString());
            sb.Append(",UnionEntry: ");
            sb.Append(UnionEntry == null ? "<null>" : UnionEntry.ToString());
            sb.Append(",UserDefinedTypeEntry: ");
            sb.Append(UserDefinedTypeEntry == null ? "<null>" : UserDefinedTypeEntry.ToString());
            sb.Append(")");
            return(sb.ToString());
        }
Example #4
0
        private void TranslateVirtualAddress(int vAddress)
        {
            if (vAddress < 0 || vAddress > 0x1000000)
            {
                WriteLine("Invalid address.");
                return;
            }

            int mapAddr    = 0x10000 + (vAddress >> 8);
            int pageOffset = vAddress & 0xff;

            bool   valid     = false;
            ushort entryWord = _system.MemoryController.DebugMemory.ReadWord(mapAddr, out valid);

            MapEntry entry = new MapEntry(entryWord);

            WriteLine(String.Format("Map entry at 0x{0:x5} - {1}", mapAddr, entry.ToString()));
            WriteLine(String.Format("VA 0x{0:x6} maps to PA 0x{1:x5}", vAddress, pageOffset + (entry.PageNumber << 8)));
        }
Example #5
0
        public override string ToString()
        {
            var  sb      = new StringBuilder("TTypeEntry(");
            bool __first = true;

            if (PrimitiveEntry != null && __isset.primitiveEntry)
            {
                if (!__first)
                {
                    sb.Append(", ");
                }
                __first = false;
                sb.Append("PrimitiveEntry: ");
                sb.Append(PrimitiveEntry == null ? "<null>" : PrimitiveEntry.ToString());
            }
            if (ArrayEntry != null && __isset.arrayEntry)
            {
                if (!__first)
                {
                    sb.Append(", ");
                }
                __first = false;
                sb.Append("ArrayEntry: ");
                sb.Append(ArrayEntry == null ? "<null>" : ArrayEntry.ToString());
            }
            if (MapEntry != null && __isset.mapEntry)
            {
                if (!__first)
                {
                    sb.Append(", ");
                }
                __first = false;
                sb.Append("MapEntry: ");
                sb.Append(MapEntry == null ? "<null>" : MapEntry.ToString());
            }
            if (StructEntry != null && __isset.structEntry)
            {
                if (!__first)
                {
                    sb.Append(", ");
                }
                __first = false;
                sb.Append("StructEntry: ");
                sb.Append(StructEntry == null ? "<null>" : StructEntry.ToString());
            }
            if (UnionEntry != null && __isset.unionEntry)
            {
                if (!__first)
                {
                    sb.Append(", ");
                }
                __first = false;
                sb.Append("UnionEntry: ");
                sb.Append(UnionEntry == null ? "<null>" : UnionEntry.ToString());
            }
            if (UserDefinedTypeEntry != null && __isset.userDefinedTypeEntry)
            {
                if (!__first)
                {
                    sb.Append(", ");
                }
                __first = false;
                sb.Append("UserDefinedTypeEntry: ");
                sb.Append(UserDefinedTypeEntry == null ? "<null>" : UserDefinedTypeEntry.ToString());
            }
            sb.Append(")");
            return(sb.ToString());
        }