diff --git a/exeinfogui.Desktop/Info.plist b/exeinfogui.Desktop/Info.plist
new file mode 100644
index 0000000..24f487d
--- /dev/null
+++ b/exeinfogui.Desktop/Info.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleName
+ exeinfogui
+ CFBundleIdentifier
+ com.example.exeinfogui
+ CFBundleShortVersionString
+ 1.0
+ LSMinimumSystemVersion
+ 10.7
+ CFBundleDevelopmentRegion
+ en
+ NSHumanReadableCopyright
+
+ CFBundleIconFile
+ MacIcon.icns
+
+
diff --git a/exeinfogui.Desktop/MacIcon.icns b/exeinfogui.Desktop/MacIcon.icns
new file mode 100644
index 0000000..8f385bb
Binary files /dev/null and b/exeinfogui.Desktop/MacIcon.icns differ
diff --git a/exeinfogui.Desktop/Program.cs b/exeinfogui.Desktop/Program.cs
new file mode 100644
index 0000000..51ac74b
--- /dev/null
+++ b/exeinfogui.Desktop/Program.cs
@@ -0,0 +1,15 @@
+using System;
+using Eto.Forms;
+using Eto.Drawing;
+
+namespace exeinfogui.Desktop
+{
+ class Program
+ {
+ [STAThread]
+ static void Main(string[] args)
+ {
+ new Application(Eto.Platform.Detect).Run(new MainForm());
+ }
+ }
+}
\ No newline at end of file
diff --git a/exeinfogui.Desktop/exeinfogui.Desktop.csproj b/exeinfogui.Desktop/exeinfogui.Desktop.csproj
new file mode 100644
index 0000000..6b40c0f
--- /dev/null
+++ b/exeinfogui.Desktop/exeinfogui.Desktop.csproj
@@ -0,0 +1,14 @@
+
+
+ WinExe
+ net461
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-128%402x.png b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-128%402x.png
new file mode 100644
index 0000000..f4c8d29
Binary files /dev/null and b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-128%402x.png differ
diff --git a/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png
new file mode 100644
index 0000000..d0b5a80
Binary files /dev/null and b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png differ
diff --git a/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-16%402x.png b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-16%402x.png
new file mode 100644
index 0000000..0986d31
Binary files /dev/null and b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-16%402x.png differ
diff --git a/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png
new file mode 100644
index 0000000..ebb5a0f
Binary files /dev/null and b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png differ
diff --git a/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-256%402x.png b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-256%402x.png
new file mode 100644
index 0000000..a142c83
Binary files /dev/null and b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-256%402x.png differ
diff --git a/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png
new file mode 100644
index 0000000..f4c8d29
Binary files /dev/null and b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png differ
diff --git a/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-32%402x.png b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-32%402x.png
new file mode 100644
index 0000000..412d6ca
Binary files /dev/null and b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-32%402x.png differ
diff --git a/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png
new file mode 100644
index 0000000..0986d31
Binary files /dev/null and b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png differ
diff --git a/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-512%402x.png b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-512%402x.png
new file mode 100644
index 0000000..e99022a
Binary files /dev/null and b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-512%402x.png differ
diff --git a/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png
new file mode 100644
index 0000000..a142c83
Binary files /dev/null and b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png differ
diff --git a/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/Contents.json b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..6b28545
--- /dev/null
+++ b/exeinfogui.XamMac/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,68 @@
+{
+ "images": [
+ {
+ "filename": "AppIcon-16.png",
+ "size": "16x16",
+ "scale": "1x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-16@2x.png",
+ "size": "16x16",
+ "scale": "2x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-32.png",
+ "size": "32x32",
+ "scale": "1x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-32@2x.png",
+ "size": "32x32",
+ "scale": "2x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-128.png",
+ "size": "128x128",
+ "scale": "1x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-128@2x.png",
+ "size": "128x128",
+ "scale": "2x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-256.png",
+ "size": "256x256",
+ "scale": "1x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-256@2x.png",
+ "size": "256x256",
+ "scale": "2x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-512.png",
+ "size": "512x512",
+ "scale": "1x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-512@2x.png",
+ "size": "512x512",
+ "scale": "2x",
+ "idiom": "mac"
+ }
+ ],
+ "info": {
+ "version": 1,
+ "author": "xcode"
+ }
+}
\ No newline at end of file
diff --git a/exeinfogui.XamMac/Assets.xcassets/Contents.json b/exeinfogui.XamMac/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..033a618
--- /dev/null
+++ b/exeinfogui.XamMac/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info": {
+ "version": 1,
+ "author": "xcode"
+ }
+}
\ No newline at end of file
diff --git a/exeinfogui.XamMac/Info.plist b/exeinfogui.XamMac/Info.plist
new file mode 100644
index 0000000..3c15930
--- /dev/null
+++ b/exeinfogui.XamMac/Info.plist
@@ -0,0 +1,30 @@
+
+
+
+
+ CFBundleName
+ EtoApp
+ CFBundleIdentifier
+ com.example.EtoApp
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+ LSMinimumSystemVersion
+ 10.7
+ CFBundleDevelopmentRegion
+ en
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ APPL
+ CFBundleSignature
+ ????
+ NSHumanReadableCopyright
+
+ NSPrincipalClass
+ NSApplication
+ XSAppIconAssets
+ Assets.xcassets/AppIcon.appiconset
+
+
diff --git a/exeinfogui.XamMac/Program.cs b/exeinfogui.XamMac/Program.cs
new file mode 100644
index 0000000..7b3ee86
--- /dev/null
+++ b/exeinfogui.XamMac/Program.cs
@@ -0,0 +1,13 @@
+using AppKit;
+using Eto.Forms;
+
+namespace exeinfogui.XamMac
+{
+ static class MainClass
+ {
+ static void Main(string[] args)
+ {
+ new Application(Eto.Platforms.XamMac2).Run(new MainForm());
+ }
+ }
+}
diff --git a/exeinfogui.XamMac/exeinfogui.XamMac.csproj b/exeinfogui.XamMac/exeinfogui.XamMac.csproj
new file mode 100644
index 0000000..3eb2af0
--- /dev/null
+++ b/exeinfogui.XamMac/exeinfogui.XamMac.csproj
@@ -0,0 +1,56 @@
+
+
+
+ {E2DC1857-A942-419B-849E-58AC8BBB94CD}
+ {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Exe
+ exeinfogui.XamMac
+ exeinfogui.XamMac
+ v2.0
+ Xamarin.Mac
+ Resources
+
+
+ false
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2.4.1
+
+
+
+
+ {223AE794-0CBD-42D3-8C98-D79090006DE5}
+ exeinfogui
+
+
+
+
\ No newline at end of file
diff --git a/exeinfogui/MainForm.xeto b/exeinfogui/MainForm.xeto
new file mode 100644
index 0000000..103306a
--- /dev/null
+++ b/exeinfogui/MainForm.xeto
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exeinfogui/MainForm.xeto.cs b/exeinfogui/MainForm.xeto.cs
new file mode 100644
index 0000000..a28ca7d
--- /dev/null
+++ b/exeinfogui/MainForm.xeto.cs
@@ -0,0 +1,87 @@
+using System;
+using System.IO;
+using Eto.Forms;
+using Eto.Serialization.Xaml;
+using libexeinfo;
+
+namespace exeinfogui
+{
+ public class MainForm : Form
+ {
+ TextBox txtFile;
+ TextBox txtType;
+ TextArea txtInformation;
+
+ public MainForm()
+ {
+ XamlReader.Load(this);
+ }
+
+ protected void OnBtnLoadClick(object sender, EventArgs e)
+ {
+ txtFile.Text = "";
+ txtType.Text = "";
+ txtInformation.Text ="";
+
+ OpenFileDialog dlgOpen = new OpenFileDialog {Title = "Choose executable file", MultiSelect = false};
+
+ if(dlgOpen.ShowDialog(this) != DialogResult.Ok) return;
+
+ txtFile.Text = dlgOpen.FileName;
+
+ FileStream exeFs = File.Open(dlgOpen.FileName, FileMode.Open, FileAccess.Read);
+
+ MZ mzExe = new MZ(exeFs);
+ NE neExe = new NE(exeFs);
+ AtariST stExe = new AtariST(exeFs);
+ LX lxExe = new LX(exeFs);
+ COFF coffExe = new COFF(exeFs);
+ PE peExe = new PE(exeFs);
+
+ if(mzExe.IsMZ)
+ {
+ if(neExe.IsNE)
+ {
+ txtType.Text = "New Executable (NE)";
+ txtInformation.Text = neExe.GetInfo();
+ }
+ else if(lxExe.IsLX)
+ {
+ txtType.Text = "Linear eXecutable (LX)";
+ txtInformation.Text = lxExe.GetInfo();
+ }
+ else if(peExe.IsPE)
+ {
+ txtType.Text = "Portable Executable (PE)";
+ txtInformation.Text = peExe.GetInfo();
+ }
+ else
+ txtType.Text = "DOS Executable (MZ)";
+
+ txtInformation.Text += mzExe.GetInfo();
+ }
+ else if(stExe.IsAtariST)
+ {
+ txtType.Text = "Atari ST executable";
+ txtInformation.Text = stExe.GetInfo();
+ }
+ else if(coffExe.IsCOFF)
+ {
+ txtType.Text = "Common Object File Format (COFF)";
+ txtInformation.Text = coffExe.GetInfo();
+ }
+ else
+ txtType.Text = "Format not recognized";
+ }
+
+ protected void OnMnuAboutClick(object sender, EventArgs e)
+ {
+ new AboutDialog().ShowDialog(this);
+ }
+
+ protected void OnMnuQuitClick(object sender, EventArgs e)
+ {
+ Application.Instance.Quit();
+ }
+ }
+}
\ No newline at end of file
diff --git a/exeinfogui/exeinfogui.csproj b/exeinfogui/exeinfogui.csproj
new file mode 100644
index 0000000..e18e3f2
--- /dev/null
+++ b/exeinfogui/exeinfogui.csproj
@@ -0,0 +1,20 @@
+
+
+ net461
+ exeinfogui
+ 1.0
+ exeinfogui
+ Copyright © 2018
+ Description of exeinfogui
+
+
+
+
+
+
+
+ {5DD22357-AEA1-4B1D-9CAB-F51873A3A5D0}
+ libexeinfo
+
+
+
\ No newline at end of file
diff --git a/libexeinfo.sln b/libexeinfo.sln
index b43d645..c0343ad 100644
--- a/libexeinfo.sln
+++ b/libexeinfo.sln
@@ -1,10 +1,16 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "exeinfo", "exeinfo\exeinfo.csproj", "{504F0A15-25DC-42B1-81FE-BA22A8EF24B5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "libexeinfo", "libexeinfo\libexeinfo.csproj", "{5DD22357-AEA1-4B1D-9CAB-F51873A3A5D0}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "exeinfogui", "exeinfogui\exeinfogui.csproj", "{8628775A-F351-4B1C-9EA6-ED836980C9B2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "exeinfogui.Desktop", "exeinfogui.Desktop\exeinfogui.Desktop.csproj", "{65F985F1-E73C-4515-93B3-25F49C22F1AC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "exeinfogui.XamMac", "exeinfogui.XamMac\exeinfogui.XamMac.csproj", "{E2DC1857-A942-419B-849E-58AC8BBB94CD}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
@@ -19,6 +25,18 @@ Global
{5DD22357-AEA1-4B1D-9CAB-F51873A3A5D0}.Debug|x86.Build.0 = Debug|Any CPU
{5DD22357-AEA1-4B1D-9CAB-F51873A3A5D0}.Release|x86.ActiveCfg = Release|Any CPU
{5DD22357-AEA1-4B1D-9CAB-F51873A3A5D0}.Release|x86.Build.0 = Release|Any CPU
+ {8628775A-F351-4B1C-9EA6-ED836980C9B2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8628775A-F351-4B1C-9EA6-ED836980C9B2}.Debug|x86.Build.0 = Debug|Any CPU
+ {8628775A-F351-4B1C-9EA6-ED836980C9B2}.Release|x86.ActiveCfg = Release|Any CPU
+ {8628775A-F351-4B1C-9EA6-ED836980C9B2}.Release|x86.Build.0 = Release|Any CPU
+ {65F985F1-E73C-4515-93B3-25F49C22F1AC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {65F985F1-E73C-4515-93B3-25F49C22F1AC}.Debug|x86.Build.0 = Debug|Any CPU
+ {65F985F1-E73C-4515-93B3-25F49C22F1AC}.Release|x86.ActiveCfg = Release|Any CPU
+ {65F985F1-E73C-4515-93B3-25F49C22F1AC}.Release|x86.Build.0 = Release|Any CPU
+ {E2DC1857-A942-419B-849E-58AC8BBB94CD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E2DC1857-A942-419B-849E-58AC8BBB94CD}.Debug|x86.Build.0 = Debug|Any CPU
+ {E2DC1857-A942-419B-849E-58AC8BBB94CD}.Release|x86.ActiveCfg = Release|Any CPU
+ {E2DC1857-A942-419B-849E-58AC8BBB94CD}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
version = 0.2