Add MagiC operating system detection.

This commit is contained in:
2018-03-02 12:27:53 +00:00
parent 90f178d5dd
commit 54edd46223
2 changed files with 13 additions and 9 deletions

View File

@@ -109,8 +109,7 @@ namespace libexeinfo
public bool Recognized { get; private set; }
public string Type { get; private set; }
public IEnumerable<Architecture> Architectures => new[] {Architecture.M68K};
public OperatingSystem RequiredOperatingSystem =>
new OperatingSystem {Name = Header.mint == MINT_SIGNATURE ? "MiNT" : "Atari TOS"};
public OperatingSystem RequiredOperatingSystem { get; private set; }
public IEnumerable<string> Strings { get; private set; }
void Initialize()
@@ -145,6 +144,8 @@ namespace libexeinfo
}
}
RequiredOperatingSystem = new OperatingSystem {Name = Header.mint == MINT_SIGNATURE ? "MiNT" : "Atari TOS"};
if(ResourceStream == null) return;
buffer = new byte[Marshal.SizeOf(typeof(GEM.GemResourceHeader))];
@@ -161,7 +162,9 @@ namespace libexeinfo
buffer = new byte[Marshal.SizeOf(typeof(GEM.MagiCResourceHeader))];
ResourceStream.Position = 0;
ResourceStream.Read(buffer, 0, buffer.Length);
ResourceHeader = BigEndianMarshal.ByteArrayToStructureBigEndian<GEM.MagiCResourceHeader>(buffer);
ResourceHeader =
BigEndianMarshal.ByteArrayToStructureBigEndian<GEM.MagiCResourceHeader>(buffer);
RequiredOperatingSystem = new OperatingSystem {Name = "MagiC"};
}
else ResourceHeader = GEM.GemToMagiC(gemResourceHeader);

View File

@@ -29,7 +29,6 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security;
using Claunia.Encoding;
namespace libexeinfo
@@ -156,7 +155,9 @@ namespace libexeinfo
buffer = new byte[Marshal.SizeOf(typeof(GEM.MagiCResourceHeader))];
ResourceStream.Position = 0;
ResourceStream.Read(buffer, 0, buffer.Length);
ResourceHeader = BigEndianMarshal.ByteArrayToStructureLittleEndian<GEM.MagiCResourceHeader>(buffer);
ResourceHeader =
BigEndianMarshal.ByteArrayToStructureLittleEndian<GEM.MagiCResourceHeader>(buffer);
RequiredOperatingSystem = new OperatingSystem {Name = "MagiC"};
}
else ResourceHeader = GEM.GemToMagiC(gemResourceHeader);