Files
SabreTools.Models/NewExecutable/Executable.cs

62 lines
2.0 KiB
C#
Raw Normal View History

2023-09-04 00:11:04 -04:00
using System.Collections.Generic;
2023-09-04 00:12:49 -04:00
namespace SabreTools.Models.NewExecutable
2023-09-04 00:11:04 -04:00
{
/// <summary>
/// The segmented EXE header contains general information about the EXE
/// file and contains information on the location and size of the other
/// sections. The Windows loader copies this section, along with other
/// data, into the module table in the system data. The module table is
/// internal data used by the loader to manage the loaded executable
/// modules in the system and to support dynamic linking.
/// </summary>
/// <see href="http://bytepointer.com/resources/win16_ne_exe_format_win3.0.htm"/>
public sealed class Executable
{
/// <summary>
/// MS-DOS executable stub
/// </summary>
2023-09-04 21:14:41 -04:00
public MSDOS.Executable? Stub { get; set; }
2023-09-04 00:11:04 -04:00
/// <summary>
/// New Executable header
/// </summary>
2023-09-04 21:14:41 -04:00
public ExecutableHeader? Header { get; set; }
2023-09-04 00:11:04 -04:00
/// <summary>
/// Segment table
/// </summary>
2023-09-10 20:47:25 -04:00
public SegmentTableEntry?[]? SegmentTable { get; set; }
2023-09-04 00:11:04 -04:00
/// <summary>
/// Resource table
/// </summary>
2023-09-04 21:14:41 -04:00
public ResourceTable? ResourceTable { get; set; }
2023-09-04 00:11:04 -04:00
/// <summary>
/// Resident-Name table
/// </summary>
2023-09-10 20:47:25 -04:00
public ResidentNameTableEntry?[]? ResidentNameTable { get; set; }
2023-09-04 00:11:04 -04:00
/// <summary>
/// Module-Reference table
/// </summary>
2023-09-10 20:47:25 -04:00
public ModuleReferenceTableEntry?[]? ModuleReferenceTable { get; set; }
2023-09-04 00:11:04 -04:00
/// <summary>
/// Imported-Name table
/// </summary>
2023-09-04 21:14:41 -04:00
public Dictionary<ushort, ImportedNameTableEntry?>? ImportedNameTable { get; set; }
2023-09-04 00:11:04 -04:00
/// <summary>
/// Entry table
/// </summary>
2023-09-10 20:47:25 -04:00
public EntryTableBundle?[]? EntryTable { get; set; }
2023-09-04 00:11:04 -04:00
/// <summary>
/// Nonresident-Name table
/// </summary>
2023-09-10 20:47:25 -04:00
public NonResidentNameTableEntry?[]? NonResidentNameTable { get; set; }
2023-09-04 00:11:04 -04:00
}
}