diff --git a/BurnOutSharp.Models/LinearExecutable/Executable.cs b/BurnOutSharp.Models/LinearExecutable/Executable.cs
index 732b53da..8b62c9ed 100644
--- a/BurnOutSharp.Models/LinearExecutable/Executable.cs
+++ b/BurnOutSharp.Models/LinearExecutable/Executable.cs
@@ -49,8 +49,13 @@ namespace BurnOutSharp.Models.LinearExecutable
///
public ModuleFormatDirectivesTableEntry[] ModuleFormatDirectivesTable { get; set; }
- // TODO: Resident directives data
- // TODO: Per-page checksum table
+ // TODO: Verify Record directives table
+
+ ///
+ /// Per-Page checksum table
+ ///
+ public PerPageChecksumTableEntry[] PerPageChecksumTable { get; set; }
+
// TODO: Fix-up page table
// TODO: Fix-up record table
// TODO: Imported modules name table
diff --git a/BurnOutSharp.Models/LinearExecutable/PerPageChecksumTableEntry.cs b/BurnOutSharp.Models/LinearExecutable/PerPageChecksumTableEntry.cs
new file mode 100644
index 00000000..17209fb4
--- /dev/null
+++ b/BurnOutSharp.Models/LinearExecutable/PerPageChecksumTableEntry.cs
@@ -0,0 +1,24 @@
+using System.Runtime.InteropServices;
+
+namespace BurnOutSharp.Models.LinearExecutable
+{
+ ///
+ /// The Per-Page Checksum table provides space for a cryptographic checksum for
+ /// each physical page in the EXE file.
+ ///
+ /// The checksum table is arranged such that the first entry in the table corresponds
+ /// to the first logical page of code/data in the EXE file (usually a preload page)
+ /// and the last entry corresponds to the last logical page in the EXE file (usually
+ /// a iterated data page).
+ ///
+ ///
+ ///
+ [StructLayout(LayoutKind.Sequential)]
+ public class PerPageChecksumTableEntry
+ {
+ ///
+ /// Cryptographic checksum.
+ ///
+ public uint Checksum;
+ }
+}