diff --git a/BurnOutSharp.Models/LinearExecutable/Executable.cs b/BurnOutSharp.Models/LinearExecutable/Executable.cs
index b2ea7731..e9382f07 100644
--- a/BurnOutSharp.Models/LinearExecutable/Executable.cs
+++ b/BurnOutSharp.Models/LinearExecutable/Executable.cs
@@ -67,7 +67,10 @@ namespace BurnOutSharp.Models.LinearExecutable
///
public FixupPageTableEntry[] FixupPageTable { get; set; }
- // TODO: Fix-up record table
+ ///
+ /// Fix-up record table
+ ///
+ public FixupRecordTableEntry[] FixupRecordTable { get; set; }
///
/// Import module name table
diff --git a/BurnOutSharp.Models/LinearExecutable/FixupRecordTableEntry.cs b/BurnOutSharp.Models/LinearExecutable/FixupRecordTableEntry.cs
index 20293531..5c5d461e 100644
--- a/BurnOutSharp.Models/LinearExecutable/FixupRecordTableEntry.cs
+++ b/BurnOutSharp.Models/LinearExecutable/FixupRecordTableEntry.cs
@@ -1,6 +1,4 @@
-using System.Runtime.InteropServices;
-
-namespace BurnOutSharp.Models.LinearExecutable
+namespace BurnOutSharp.Models.LinearExecutable
{
///
/// The Fixup Record Table contains entries for all fixups in the linear EXE module.
@@ -236,14 +234,62 @@ namespace BurnOutSharp.Models.LinearExecutable
#region MOD ORD# / IMPORT ORD / ADDITIVE
- /*
- TODO: Implement IMPORT ORD
- IMPORT ORD = D[B|W|D] Imported ordinal number.
- This is the imported procedure's ordinal number. It is a Byte value when the
- '8-bit Ordinal' bit in the target flags field is set. Otherwise it is a Word value
- when the '32-bit Target Offset Flag' bit in the target flags field is clear and a
- Dword value when the bit is set.
- */
+ #region 8-bit Ordinal Flag
+
+ #region Set
+
+ ///
+ /// Imported ordinal number.
+ ///
+ ///
+ /// This is the imported procedure's ordinal number. It is a Byte value when the
+ /// '8-bit Ordinal' bit in the target flags field is set. Otherwise it is a Word value
+ /// when the '32-bit Target Offset Flag' bit in the target flags field is clear and a
+ /// Dword value when the bit is set.
+ ///
+ public byte ImportedOrdinalNumberByte;
+
+ #endregion
+
+ #region Unset
+
+ #region 32-bit Target Offset Flag
+
+ #region Set
+
+ ///
+ /// Imported ordinal number.
+ ///
+ ///
+ /// This is the imported procedure's ordinal number. It is a Byte value when the
+ /// '8-bit Ordinal' bit in the target flags field is set. Otherwise it is a Word value
+ /// when the '32-bit Target Offset Flag' bit in the target flags field is clear and a
+ /// Dword value when the bit is set.
+ ///
+ public uint ImportedOrdinalNumberDWORD;
+
+ #endregion
+
+ #region Unset
+
+ ///
+ /// Imported ordinal number.
+ ///
+ ///
+ /// This is the imported procedure's ordinal number. It is a Byte value when the
+ /// '8-bit Ordinal' bit in the target flags field is set. Otherwise it is a Word value
+ /// when the '32-bit Target Offset Flag' bit in the target flags field is clear and a
+ /// Dword value when the bit is set.
+ ///
+ public uint ImportedOrdinalNumberWORD;
+
+ #endregion
+
+ #endregion
+
+ #endregion
+
+ #endregion
#endregion
@@ -299,6 +345,19 @@ namespace BurnOutSharp.Models.LinearExecutable
#endregion
- // TODO: Implement SRCOFFn
+ #region SCROFFn
+
+ ///
+ /// Source offset list.
+ ///
+ ///
+ /// This list is present if the Source List Flag is set in the Target Flags field.
+ /// The number of entries in the source offset list is defined in the SRCOFF/CNT
+ /// field. The source offsets are relative to the beginning of the page where the
+ /// fixups are to be made.
+ ///
+ public ushort[] SourceOffsetList;
+
+ #endregion
}
}