From 5e487bc4ba45c0c2b8391768dc6cefb539dfe02d Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 8 Nov 2022 13:41:37 -0800 Subject: [PATCH] Add NE entry table printing --- ExecutableTest/Program.cs | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/ExecutableTest/Program.cs b/ExecutableTest/Program.cs index f6a9d9e0..1bdb24c7 100644 --- a/ExecutableTest/Program.cs +++ b/ExecutableTest/Program.cs @@ -342,7 +342,36 @@ namespace ExecutableTest } Console.WriteLine(); - // TODO: Add table printing + Console.WriteLine(" Entry Table Information:"); + Console.WriteLine(" -------------------------"); + if (executable.Header.EntryTableSize == 0 || executable.EntryTable.Length == 0) + { + Console.WriteLine(" No entry table items"); + } + else + { + for (int i = 0; i < executable.EntryTable.Length; i++) + { + var entry = executable.EntryTable[i]; + Console.WriteLine($" Entry Table Entry {i}"); + Console.WriteLine($" Entry count = {entry.EntryCount}"); + Console.WriteLine($" Segment indicator = {entry.SegmentIndicator} ({entry.GetEntryType()})"); + switch (entry.GetEntryType()) + { + case BurnOutSharp.Models.NewExecutable.SegmentEntryType.FixedSegment: + Console.WriteLine($" Flag word = {entry.FixedFlagWord}"); + Console.WriteLine($" Offset = {entry.FixedOffset}"); + break; + case BurnOutSharp.Models.NewExecutable.SegmentEntryType.MoveableSegment: + Console.WriteLine($" Flag word = {entry.MoveableFlagWord}"); + Console.WriteLine($" Reserved = {entry.MoveableReserved}"); + Console.WriteLine($" Segment number = {entry.MoveableSegmentNumber}"); + Console.WriteLine($" Offset = {entry.MoveableOffset}"); + break; + } + } + } + Console.WriteLine(); } } } \ No newline at end of file