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."); } }
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())); }
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()); }
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))); }
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()); }