Merge branch 'master'.

This commit is contained in:
José Pedro 2017-05-22 01:51:41 +01:00
commit 9c90f7eaae
20 changed files with 515 additions and 167 deletions

Binary file not shown.

View file

@ -96,6 +96,8 @@ Source: ".\Artwork\Cosmos.ico"; DestDir: "{app}"; Flags: ignoreversion uninsremo
Source: ".\Artwork\XSharp\XSharp.ico"; DestDir: "{app}\XSharp\"; Flags: ignoreversion uninsremovereadonly
Source: ".\source\Cosmos.Debug.DebugStub\*.xs"; DestDir: "{app}\XSharp\DebugStub\"; Flags: ignoreversion uninsremovereadonly
; VMware
Source: ".\Build\HyperV\*"; DestDir: "{app}\Build\HyperV"; Flags: ignoreversion uninsremovereadonly overwritereadonly recursesubdirs
; VMware
Source: ".\Build\VMware\*"; DestDir: "{app}\Build\VMware"; Flags: ignoreversion uninsremovereadonly overwritereadonly recursesubdirs
; ISO
Source: ".\Build\ISO\*"; DestDir: "{app}\Build\ISO"

View file

@ -15,10 +15,27 @@ namespace Cosmos.Compiler.Tests.Bcl.System.Collections.Generic
{
{"echo", "ECHO"},
{"reboot", "REBOOT" },
{"shutdown", "SHUTDOWN"}
{"shutdown", "SHUTDOWN"},
{"integer", 500}
};
Assert.IsTrue(commands.ContainsKey("echo"), "Dictionary ContainsKey does not work");
Assert.IsTrue(commands.ContainsKey("echo"), "Dictionary ContainsKey does not work1");
Assert.IsFalse(commands.ContainsKey("musterror"), "Dictionary ContainsKey does not work 2");
//String test
Assert.IsTrue((string)commands["echo"] == "ECHO", "Dictionary string not work");
commands["echo"] = "notEcho";
Assert.IsTrue((string)commands["echo"] == "notEcho", "Dictionary string been reset not working");
//Integer test
Assert.IsTrue((int)commands["integer"] == 500, "Dictionary integer not working");
commands["integer"] = 321;
Assert.IsTrue((int)commands["integer"] == 321, "Dictionary integer been reset not working");
}
}
}

View file

@ -21,6 +21,7 @@ namespace Cosmos.TestRunner.Core
// If you want to test only specific platforms, add them to the list, like next line. By default, all platforms are run.
engine.RunTargets.Add(RunTargetEnum.Bochs);
//engine.RunTargets.Add(RunTargetEnum.VMware);
//engine.RunTargets.Add(RunTargetEnum.HyperV);
// If you're working on the compiler (or other lower parts), you can choose to run the compiler in process
// one thing to keep in mind though, is that this only works with 1 kernel at a time!

View file

@ -0,0 +1,36 @@
using System.Collections.Generic;
using System.IO;
using Cosmos.Build.Common;
using Cosmos.Debug.DebugConnectors;
using Cosmos.Debug.Hosts;
namespace Cosmos.TestRunner.Core
{
partial class Engine
{
private void RunIsoInHyperV(string iso, string harddisk)
{
if (!File.Exists(harddisk))
{
throw new FileNotFoundException("Harddisk file not found!", harddisk);
}
var xParams = new Dictionary<string, string>();
xParams.Add("ISOFile", iso);
xParams.Add(BuildPropertyNames.VisualStudioDebugPortString, "Pipe: CosmosSerial");
var xDebugConnector = new DebugConnectorPipeClient(DebugConnectorPipeClient.DefaultCosmosPipeName);
InitializeDebugConnector(xDebugConnector);
var xHyperV = new HyperV(xParams, RunWithGDB, harddisk);
xHyperV.OnShutDown = (a, b) =>
{
mKernelRunning = false;
};
HandleRunning(xDebugConnector, xHyperV);
}
}
}

View file

@ -29,9 +29,21 @@ namespace Cosmos.TestRunner.Core
RunTask("Ld", () => RunLd(xTempObjectFile, xObjectFile));
RunTask("ExtractMapFromElfFile", () => RunExtractMapFromElfFile(mBaseWorkingDirectory, xObjectFile));
}
var xHarddiskPath = Path.Combine(mBaseWorkingDirectory, "Harddisk.vmdk");
var xOriginalHarddiskPath = Path.Combine(GetCosmosUserkitFolder(), "Build", "VMware", "Workstation", "Filesystem.vmdk");
File.Copy(xOriginalHarddiskPath, xHarddiskPath);
string xHarddiskPath;
if (configuration.RunTarget == RunTargetEnum.HyperV)
{
xHarddiskPath = Path.Combine(mBaseWorkingDirectory, "Harddisk.vhdx");
var xOriginalHarddiskPath = Path.Combine(GetCosmosUserkitFolder(), "Build", "HyperV", "Filesystem.vhdx");
File.Copy(xOriginalHarddiskPath, xHarddiskPath);
}
else
{
xHarddiskPath = Path.Combine(mBaseWorkingDirectory, "Harddisk.vmdk");
var xOriginalHarddiskPath = Path.Combine(GetCosmosUserkitFolder(), "Build", "VMware", "Workstation", "Filesystem.vmdk");
File.Copy(xOriginalHarddiskPath, xHarddiskPath);
}
RunTask("MakeISO", () => MakeIso(xObjectFile, xIsoFile));
switch (configuration.RunTarget)
{
@ -41,6 +53,9 @@ namespace Cosmos.TestRunner.Core
case RunTargetEnum.VMware:
RunTask("RunISO", () => RunIsoInVMware(xIsoFile, xHarddiskPath));
break;
case RunTargetEnum.HyperV:
RunTask("RunISO", () => RunIsoInHyperV(xIsoFile, xHarddiskPath));
break;
default:
throw new ArgumentOutOfRangeException("RunTarget " + configuration.RunTarget + " not implemented!");
}

View file

@ -3,6 +3,7 @@
public enum RunTargetEnum
{
Bochs,
VMware
VMware,
HyperV
}
}

View file

@ -104,14 +104,13 @@ namespace Cosmos.Build.Common
Description = "Makes a USB device such as a flash drive or external hard disk bootable.";
Deployment = DeploymentType.USB;
Launch = LaunchType.None;
}
else if (aName == "VMware")
{
Description = "Use VMware Player or Workstation to deploy and debug.";
Deployment = DeploymentType.ISO;
Launch = LaunchType.VMware;
VisualStudioDebugPort = @"Pipe: Cosmos\Serial";
}
else if (aName == "PXE")
{
@ -126,6 +125,7 @@ namespace Cosmos.Build.Common
Description = "Use Bochs emulator to deploy and debug.";
Deployment = DeploymentType.ISO;
Launch = LaunchType.Bochs;
VisualStudioDebugPort = @"Pipe: Cosmos\Serial";
}
else if (aName == "IntelEdison")
{
@ -133,6 +133,13 @@ namespace Cosmos.Build.Common
Deployment = DeploymentType.BinaryImage;
Launch = LaunchType.IntelEdison;
}
else if (aName == "HyperV")
{
Description = "Use Hyper-V to deploy and debug.";
Deployment = DeploymentType.ISO;
Launch = LaunchType.HyperV;
VisualStudioDebugPort = "Pipe: CosmosSerial";
}
}
public void DeleteProfile(string aPrefix)

View file

@ -1,9 +1,9 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Reflection;
using System.ComponentModel;
namespace Cosmos.Build.Common
{
@ -31,6 +31,8 @@ namespace Cosmos.Build.Common
Bochs,
[Description("Intel Edison")]
IntelEdison,
[Description("Hyper-V")]
HyperV
}
public enum VMwareEdition

View file

@ -18,4 +18,4 @@
<PackageReference Include="System.Threading.Thread" Version="4.3.0" />
</ItemGroup>
</Project>
</Project>

View file

@ -0,0 +1,74 @@
using System;
using System.IO.Pipes;
using System.Runtime.InteropServices;
using System.Threading;
namespace Cosmos.Debug.DebugConnectors
{
/// <summary>Use a named pipe client to implement wire transfer protocol between a Debug Stub
/// hosted in a debugged Cosmos Kernel and our Debug Engine hosted in Visual Studio.
/// Hyper-V provides a pipe server to expose guest serial ports.</summary>
public class DebugConnectorPipeClient : DebugConnectorStreamWithoutTimeouts
{
// private AutoResetEvent mWaitConnectEvent = new AutoResetEvent(false);
private NamedPipeClientStream mPipe;
public const string DefaultCosmosPipeName = "CosmosSerial";
public DebugConnectorPipeClient(string aName)
{
mPipe = new NamedPipeClientStream(".", aName, PipeDirection.InOut, PipeOptions.WriteThrough);
Start();
}
protected override int TryRead(byte[] buffer, int offset, int count, int timeout)
{
var xStream = mStream;
if (xStream == null)
{
return 0;
}
uint xBytesAvailable = 0;
if (PeekNamedPipe(mPipe.SafePipeHandle.DangerousGetHandle(), null, 0, IntPtr.Zero, ref xBytesAvailable, IntPtr.Zero))
{
if (xBytesAvailable > 0)
{
return xStream.Read(buffer, offset, count);
}
}
Thread.Sleep(timeout);
if (PeekNamedPipe(mPipe.SafePipeHandle.DangerousGetHandle(), null, 0, IntPtr.Zero, ref xBytesAvailable, IntPtr.Zero))
{
if (xBytesAvailable > 0)
{
return xStream.Read(buffer, offset, count);
}
}
return 0;
}
public override bool IsConnected
{
get
{
return base.IsConnected && mPipe.IsConnected;
}
}
protected override void InitializeBackground()
{
mPipe.Connect();
mStream = mPipe;
}
protected override bool GetIsConnectedToDebugStub()
{
return mPipe.IsConnected;
}
[DllImport("kernel32.dll", EntryPoint = "PeekNamedPipe", SetLastError = true)]
private static extern bool PeekNamedPipe(IntPtr handle,
byte[] buffer, uint nBufferSize, IntPtr bytesRead,
ref uint bytesAvail, IntPtr BytesLeftThisMessage);
}
}

View file

@ -0,0 +1,109 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.IO;
#if false
using System.Management.Automation;
using System.Management.Automation.Runspaces;
#endif
using System.Security.Principal;
using Cosmos.Build.Common;
namespace Cosmos.Debug.Hosts
{
public class HyperV : Host
{
protected string mHarddiskPath;
protected Process mProcess;
#if false
private static bool IsProcessAdministrator => (new WindowsPrincipal(WindowsIdentity.GetCurrent())).IsInRole(WindowsBuiltInRole.Administrator);
#else
private static bool IsProcessAdministrator => true;
#endif
public HyperV(Dictionary<string, string> aParams, bool aUseGDB, string harddisk = "Filesystem.vhdx") : base(aParams, aUseGDB)
{
if (!IsProcessAdministrator)
{
throw new Exception("Visual Studio must be run as administrator for Hyper-V to work");
}
mHarddiskPath = Path.Combine(CosmosPaths.Build, harddisk);
}
public override void Start()
{
CreateVirtualMachine();
// Target exe or file
var info = new ProcessStartInfo(@"C:\Windows\sysnative\VmConnect.exe", @"""localhost"" ""Cosmos""")
{
UseShellExecute = true
};
mProcess = new Process();
mProcess.StartInfo = info;
mProcess.EnableRaisingEvents = true;
mProcess.Exited += (Object aSender, EventArgs e) =>
{
OnShutDown?.Invoke(aSender, e);
};
mProcess.Start();
RunPowershellScript("Start-VM -Name Cosmos");
}
public override void Stop()
{
RunPowershellScript("Stop-VM -Name Cosmos -TurnOff -ErrorAction Ignore");
mProcess.Kill();
}
protected void CreateVirtualMachine()
{
RunPowershellScript("Stop-VM -Name Cosmos -TurnOff -ErrorAction Ignore");
RunPowershellScript("Remove-VM -Name Cosmos -Force -ErrorAction Ignore");
RunPowershellScript("New-VM -Name Cosmos -MemoryStartupBytes 268435456 -BootDevice CD");
if (!File.Exists(mHarddiskPath))
{
RunPowershellScript($@"New-VHD -SizeBytes 268435456 -Dynamic -Path ""{mHarddiskPath}""");
}
RunPowershellScript($@"Add-VMHardDiskDrive -VMName Cosmos -ControllerNumber 0 -ControllerLocation 0 -Path ""{mHarddiskPath}""");
RunPowershellScript($@"Set-VMDvdDrive -VMName Cosmos -ControllerNumber 1 -ControllerLocation 0 -Path ""{mParams["ISOFile"]}""");
RunPowershellScript(@"Set-VMComPort -VMName Cosmos -Path \\.\pipe\CosmosSerial -Number 1");
}
private static void RunPowershellScript(string text)
{
// Workaround
ProcessStartInfo xStartInfo = new ProcessStartInfo("powershell");
xStartInfo.Arguments = text;
var xProcess = Process.Start(xStartInfo);
xProcess.WaitForExit();
#if false
using (Runspace runspace = RunspaceFactory.CreateRunspace())
{
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(text);
pipeline.Commands.Add("Out-String");
Collection<PSObject> results = pipeline.Invoke();
foreach (PSObject obj in results)
{
System.Diagnostics.Debug.WriteLine(obj.ToString());
}
}
#endif
}
}
}

View file

@ -1,4 +1,4 @@
using System;
using System;
using System.Linq;
using System.Reflection;
using System.Reflection.Metadata;
@ -143,6 +143,8 @@ namespace Cosmos.IL2CPU.ILOpCodes
case Code.Ldelem_U1:
case Code.Ldelem_U2:
case Code.Ldelem_U4:
case Code.Ldelem_R4:
case Code.Ldelem_R8:
return 2;
case Code.Ldnull:
return 0;
@ -276,7 +278,9 @@ namespace Cosmos.IL2CPU.ILOpCodes
case Code.Ldelem_U1:
case Code.Ldelem_U2:
case Code.Ldelem_U4:
return 1;
case Code.Ldelem_R4:
case Code.Ldelem_R8:
return 1;
case Code.Ldnull:
return 1;
case Code.Dup:
@ -470,10 +474,15 @@ namespace Cosmos.IL2CPU.ILOpCodes
case Code.Ldelem_U4:
StackPushTypes[0] = typeof(uint);
return;
case Code.Ldelem_R4:
StackPushTypes[0] = typeof(float);
return;
case Code.Ldelem_R8:
StackPushTypes[0] = typeof(double);
return;
case Code.Ldnull:
StackPushTypes[0] = typeof(NullRef);
return;
case Code.Ldind_I:
StackPushTypes[0] = typeof(IntPtr);
return;

View file

@ -1,4 +1,4 @@
using System;
using System;
namespace Cosmos.System
{
@ -142,6 +142,7 @@ namespace Cosmos.System
case ConsoleKeyEx.Sleep:
return ConsoleKey.Sleep;
case ConsoleKeyEx.BiggerThan:
case ConsoleKeyEx.ExclamationPoint:
case ConsoleKeyEx.Period:
return ConsoleKey.OemPeriod;
case ConsoleKeyEx.LowerThan:
@ -149,10 +150,36 @@ namespace Cosmos.System
return ConsoleKey.OemComma;
case ConsoleKeyEx.NumPeriod:
return ConsoleKey.Decimal;
case ConsoleKeyEx.NumPlus:
return ConsoleKey.Add;
case ConsoleKeyEx.NumEnter:
return ConsoleKey.Enter;
case ConsoleKeyEx.Num0:
return ConsoleKey.D0;
case ConsoleKeyEx.Num1:
return ConsoleKey.D1;
case ConsoleKeyEx.Num2:
return ConsoleKey.D2;
case ConsoleKeyEx.Num3:
return ConsoleKey.D3;
case ConsoleKeyEx.Num4:
return ConsoleKey.D4;
case ConsoleKeyEx.Num5:
return ConsoleKey.D5;
case ConsoleKeyEx.Num6:
return ConsoleKey.D6;
case ConsoleKeyEx.Num7:
return ConsoleKey.D7;
case ConsoleKeyEx.Num8:
return ConsoleKey.D8;
case ConsoleKeyEx.Num9:
return ConsoleKey.D9;
case ConsoleKeyEx.NumDivide:
return ConsoleKey.Divide;
case ConsoleKeyEx.NumMultiply:
return ConsoleKey.Multiply;
case ConsoleKeyEx.NumMinus:
return ConsoleKey.OemMinus;
case ConsoleKeyEx.NumPlus:
return ConsoleKey.OemPlus;
case ConsoleKeyEx.Backslash:
return ConsoleKey.Oem5;
case ConsoleKeyEx.LBracket:
@ -175,6 +202,10 @@ namespace Cosmos.System
//TODO: .Net Core
//case ConsoleKeyEx.OEM102:
// return ConsoleKey.Oem102;
//case ConsoleKeyEx.LWin:
// return ConsoleKey.LeftWindows;
//case ConsoleKeyEx.RWin:
// return ConsoleKey.RightWindows;
default:
throw new Exception("KeyEx not implemented!");
}

View file

@ -1,12 +1,13 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.Debugger.Interop;
using Cosmos.Debug.Common;
using Cosmos.VS.DebugEngine.AD7.Definitions;
using Cosmos.VS.DebugEngine.Engine.Impl;
using Cosmos.VS.DebugEngine.Properties;
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.Debugger.Interop;
namespace Cosmos.VS.DebugEngine.AD7.Impl
{

View file

@ -5,18 +5,18 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using Cosmos.Debug.DebugConnectors;
using Cosmos.Debug.Symbols;
using Cosmos.VS.DebugEngine.Engine.Impl;
using Cosmos.VS.DebugEngine.Utilities;
using Microsoft.Internal.VisualStudio.PlatformUI;
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.Debugger.Interop;
using Label = Cosmos.Debug.Symbols.Label;
using Cosmos.Build.Common;
using Cosmos.Debug.Common;
using Cosmos.Debug.DebugConnectors;
using Cosmos.Debug.Hosts;
using Cosmos.Debug.Symbols;
using Cosmos.VS.DebugEngine.Engine.Impl;
using Cosmos.VS.DebugEngine.Properties;
using Cosmos.VS.DebugEngine.Utilities;
using Label = Cosmos.Debug.Symbols.Label;
namespace Cosmos.VS.DebugEngine.AD7.Impl
{
@ -316,7 +316,14 @@ namespace Cosmos.VS.DebugEngine.AD7.Impl
switch (xPortType)
{
case "pipe:":
mDbgConnector = new DebugConnectorPipeServer(xPortParam);
if (xLaunch == "HyperV")
{
mDbgConnector = new DebugConnectorPipeClient(xPortParam);
}
else
{
mDbgConnector = new DebugConnectorPipeServer(xPortParam);
}
break;
#if SERIAL_PORT
case "serial:":
@ -481,6 +488,9 @@ namespace Cosmos.VS.DebugEngine.AD7.Impl
case LaunchType.IntelEdison:
mHost = new IntelEdison(mDebugInfo, false);
break;
case LaunchType.HyperV:
mHost = new HyperV(mDebugInfo, false);
break;
default:
throw new Exception("Invalid Launch value: '" + mLaunch + "'.");
}

View file

@ -19,6 +19,7 @@ namespace Cosmos.VS.ProjectSystem
Add("Bochs", "Bochs");
}
Add("IntelEdison", "Intel Edison Serial boot");
Add("HyperV", "Hyper-V");
}
}
}

View file

@ -96,6 +96,7 @@
this.cmboSlavePort = new System.Windows.Forms.ComboBox();
this.label6 = new System.Windows.Forms.Label();
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
this.tabHyperV = new System.Windows.Forms.TabPage();
this.panel1.SuspendLayout();
this.TabControl1.SuspendLayout();
this.tabProfile.SuspendLayout();
@ -117,9 +118,9 @@
this.tabISO.SuspendLayout();
this.tabSlave.SuspendLayout();
this.SuspendLayout();
//
//
// panel1
//
//
this.panel1.Controls.Add(this.lablCurrentProfile);
this.panel1.Controls.Add(this.label11);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
@ -127,27 +128,27 @@
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(635, 43);
this.panel1.TabIndex = 3;
//
//
// lablCurrentProfile
//
//
this.lablCurrentProfile.AutoSize = true;
this.lablCurrentProfile.Location = new System.Drawing.Point(99, 17);
this.lablCurrentProfile.Name = "lablCurrentProfile";
this.lablCurrentProfile.Size = new System.Drawing.Size(41, 13);
this.lablCurrentProfile.TabIndex = 1;
this.lablCurrentProfile.Text = "label12";
//
//
// label11
//
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(17, 17);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(76, 13);
this.label11.TabIndex = 0;
this.label11.Text = "Current Profile:";
//
//
// TabControl1
//
//
this.TabControl1.Controls.Add(this.tabProfile);
this.TabControl1.Controls.Add(this.tabCompile);
this.TabControl1.Controls.Add(this.tabAssembler);
@ -155,6 +156,7 @@
this.TabControl1.Controls.Add(this.tabDeployment);
this.TabControl1.Controls.Add(this.tabLaunch);
this.TabControl1.Controls.Add(this.tabVMware);
this.TabControl1.Controls.Add(this.tabHyperV);
this.TabControl1.Controls.Add(this.tabBochs);
this.TabControl1.Controls.Add(this.tabPXE);
this.TabControl1.Controls.Add(this.tabUSB);
@ -167,9 +169,9 @@
this.TabControl1.SelectedIndex = 0;
this.TabControl1.Size = new System.Drawing.Size(635, 512);
this.TabControl1.TabIndex = 1;
//
//
// tabProfile
//
//
this.tabProfile.Controls.Add(this.lablPreset);
this.tabProfile.Controls.Add(this.panel2);
this.tabProfile.Controls.Add(this.lablDeployText);
@ -181,9 +183,9 @@
this.tabProfile.TabIndex = 8;
this.tabProfile.Text = "Profile";
this.tabProfile.UseVisualStyleBackColor = true;
//
//
// lablPreset
//
//
this.lablPreset.AutoSize = true;
this.lablPreset.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lablPreset.ForeColor = System.Drawing.SystemColors.HotTrack;
@ -192,9 +194,9 @@
this.lablPreset.Size = new System.Drawing.Size(247, 13);
this.lablPreset.TabIndex = 7;
this.lablPreset.Text = "** This is a preset. Some options are restricted.";
//
//
// panel2
//
//
this.panel2.Controls.Add(this.lboxProfile);
this.panel2.Controls.Add(this.toolStrip1);
this.panel2.Dock = System.Windows.Forms.DockStyle.Left;
@ -202,9 +204,9 @@
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(200, 480);
this.panel2.TabIndex = 6;
//
//
// lboxProfile
//
//
this.lboxProfile.Dock = System.Windows.Forms.DockStyle.Fill;
this.lboxProfile.FormattingEnabled = true;
this.lboxProfile.Location = new System.Drawing.Point(0, 27);
@ -212,9 +214,9 @@
this.lboxProfile.Size = new System.Drawing.Size(200, 453);
this.lboxProfile.Sorted = true;
this.lboxProfile.TabIndex = 3;
//
//
// toolStrip1
//
//
this.toolStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.butnProfileClone,
@ -225,9 +227,9 @@
this.toolStrip1.Size = new System.Drawing.Size(200, 27);
this.toolStrip1.TabIndex = 2;
this.toolStrip1.Text = "toolStrip1";
//
//
// butnProfileClone
//
//
this.butnProfileClone.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.butnProfileClone.Image = ((System.Drawing.Image)(resources.GetObject("butnProfileClone.Image")));
this.butnProfileClone.ImageTransparentColor = System.Drawing.Color.Magenta;
@ -235,9 +237,9 @@
this.butnProfileClone.Size = new System.Drawing.Size(24, 24);
this.butnProfileClone.Text = "Clone";
this.butnProfileClone.ToolTipText = "Create a new profile from an existing one.";
//
//
// butnProfileDelete
//
//
this.butnProfileDelete.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.butnProfileDelete.Image = ((System.Drawing.Image)(resources.GetObject("butnProfileDelete.Image")));
this.butnProfileDelete.ImageTransparentColor = System.Drawing.Color.Magenta;
@ -245,9 +247,9 @@
this.butnProfileDelete.Size = new System.Drawing.Size(24, 24);
this.butnProfileDelete.Text = "Delete";
this.butnProfileDelete.ToolTipText = "Delete selected profile";
//
//
// butnProfileRename
//
//
this.butnProfileRename.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.butnProfileRename.Image = ((System.Drawing.Image)(resources.GetObject("butnProfileRename.Image")));
this.butnProfileRename.ImageTransparentColor = System.Drawing.Color.Magenta;
@ -255,17 +257,17 @@
this.butnProfileRename.Size = new System.Drawing.Size(24, 24);
this.butnProfileRename.Text = "Rename";
this.butnProfileRename.ToolTipText = "Rename selected profile.";
//
//
// lablDeployText
//
//
this.lablDeployText.Location = new System.Drawing.Point(217, 44);
this.lablDeployText.Name = "lablDeployText";
this.lablDeployText.Size = new System.Drawing.Size(228, 137);
this.lablDeployText.TabIndex = 4;
this.lablDeployText.Text = "label1";
//
//
// lablBuildOnly
//
//
this.lablBuildOnly.AutoSize = true;
this.lablBuildOnly.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lablBuildOnly.ForeColor = System.Drawing.SystemColors.HotTrack;
@ -274,9 +276,9 @@
this.lablBuildOnly.Size = new System.Drawing.Size(310, 13);
this.lablBuildOnly.TabIndex = 3;
this.lablBuildOnly.Text = "** This is a build only option. No process will be launched.";
//
//
// tabCompile
//
//
this.tabCompile.AutoScroll = true;
this.tabCompile.Controls.Add(this.labelBinFormat);
this.tabCompile.Controls.Add(this.comboBinFormat);
@ -292,10 +294,10 @@
this.tabCompile.TabIndex = 0;
this.tabCompile.Text = "Compile";
this.tabCompile.UseVisualStyleBackColor = true;
//
//
// labelBinFormat
//
this.labelBinFormat.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
//
this.labelBinFormat.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.labelBinFormat.AutoSize = true;
this.labelBinFormat.Enabled = false;
@ -307,18 +309,18 @@
this.labelBinFormat.TabIndex = 23;
this.labelBinFormat.Text = "Bin format:";
this.labelBinFormat.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
//
// comboBinFormat
//
//
this.comboBinFormat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBinFormat.FormattingEnabled = true;
this.comboBinFormat.Location = new System.Drawing.Point(34, 136);
this.comboBinFormat.Name = "comboBinFormat";
this.comboBinFormat.Size = new System.Drawing.Size(228, 21);
this.comboBinFormat.TabIndex = 22;
//
//
// comboFramework
//
//
this.comboFramework.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboFramework.Enabled = false;
this.comboFramework.FormattingEnabled = true;
@ -326,9 +328,9 @@
this.comboFramework.Name = "comboFramework";
this.comboFramework.Size = new System.Drawing.Size(228, 21);
this.comboFramework.TabIndex = 5;
//
//
// buttonOutputBrowse
//
//
this.buttonOutputBrowse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttonOutputBrowse.Location = new System.Drawing.Point(430, 37);
this.buttonOutputBrowse.Name = "buttonOutputBrowse";
@ -336,10 +338,10 @@
this.buttonOutputBrowse.TabIndex = 20;
this.buttonOutputBrowse.Text = "..";
this.buttonOutputBrowse.UseVisualStyleBackColor = true;
//
//
// label2
//
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
//
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@ -350,19 +352,19 @@
this.label2.TabIndex = 19;
this.label2.Text = "Output path:";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
//
// textOutputPath
//
this.textOutputPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
//
this.textOutputPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textOutputPath.Location = new System.Drawing.Point(34, 38);
this.textOutputPath.Name = "textOutputPath";
this.textOutputPath.Size = new System.Drawing.Size(390, 20);
this.textOutputPath.TabIndex = 4;
//
//
// labelFramework
//
this.labelFramework.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
//
this.labelFramework.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.labelFramework.AutoSize = true;
this.labelFramework.Enabled = false;
@ -374,9 +376,9 @@
this.labelFramework.TabIndex = 21;
this.labelFramework.Text = "Framework:";
this.labelFramework.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
//
// tabAssembler
//
//
this.tabAssembler.Controls.Add(this.checkUseInternalAssembler);
this.tabAssembler.Controls.Add(this.labelInternalAssembler);
this.tabAssembler.Location = new System.Drawing.Point(4, 22);
@ -385,10 +387,10 @@
this.tabAssembler.TabIndex = 10;
this.tabAssembler.Text = "Assembler";
this.tabAssembler.UseVisualStyleBackColor = true;
//
//
// checkUseInternalAssembler
//
this.checkUseInternalAssembler.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
//
this.checkUseInternalAssembler.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.checkUseInternalAssembler.AutoSize = true;
this.checkUseInternalAssembler.Enabled = false;
@ -400,9 +402,9 @@
this.checkUseInternalAssembler.TabIndex = 6;
this.checkUseInternalAssembler.Text = "Use Internal Assembler";
this.checkUseInternalAssembler.UseVisualStyleBackColor = true;
//
//
// labelInternalAssembler
//
//
this.labelInternalAssembler.Enabled = false;
this.labelInternalAssembler.Location = new System.Drawing.Point(40, 32);
this.labelInternalAssembler.Margin = new System.Windows.Forms.Padding(44, 0, 3, 0);
@ -410,9 +412,9 @@
this.labelInternalAssembler.Size = new System.Drawing.Size(224, 18);
this.labelInternalAssembler.TabIndex = 20;
this.labelInternalAssembler.Text = "Experimental. Check if you like to crash!";
//
//
// tabDebug
//
//
this.tabDebug.AutoScroll = true;
this.tabDebug.Controls.Add(this.chckEnableDebugStub);
this.tabDebug.Controls.Add(this.panlDebugSettings);
@ -423,9 +425,9 @@
this.tabDebug.TabIndex = 2;
this.tabDebug.Text = "Debug";
this.tabDebug.UseVisualStyleBackColor = true;
//
//
// chckEnableDebugStub
//
//
this.chckEnableDebugStub.AutoSize = true;
this.chckEnableDebugStub.Location = new System.Drawing.Point(14, 6);
this.chckEnableDebugStub.Name = "chckEnableDebugStub";
@ -433,9 +435,9 @@
this.chckEnableDebugStub.TabIndex = 7;
this.chckEnableDebugStub.Text = "Enable Remote Debugging";
this.chckEnableDebugStub.UseVisualStyleBackColor = true;
//
//
// panlDebugSettings
//
//
this.panlDebugSettings.Controls.Add(this.stackCorruptionDetectionGroupBox);
this.panlDebugSettings.Controls.Add(this.debugLevelGroupBox);
this.panlDebugSettings.Controls.Add(this.debugStubGroupBox);
@ -443,9 +445,9 @@
this.panlDebugSettings.Name = "panlDebugSettings";
this.panlDebugSettings.Size = new System.Drawing.Size(280, 400);
this.panlDebugSettings.TabIndex = 33;
//
//
// stackCorruptionDetectionGroupBox
//
//
this.stackCorruptionDetectionGroupBox.Controls.Add(this.label12);
this.stackCorruptionDetectionGroupBox.Controls.Add(this.comboStackCorruptionDetectionLevel);
this.stackCorruptionDetectionGroupBox.Controls.Add(this.chkEnableStackCorruptionDetection);
@ -454,18 +456,18 @@
this.stackCorruptionDetectionGroupBox.Size = new System.Drawing.Size(260, 90);
this.stackCorruptionDetectionGroupBox.TabIndex = 34;
this.stackCorruptionDetectionGroupBox.TabStop = false;
//
//
// label12
//
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(3, 42);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(85, 13);
this.label12.TabIndex = 30;
this.label12.Text = "Detection Level:";
//
//
// comboStackCorruptionDetectionLevel
//
//
this.comboStackCorruptionDetectionLevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboStackCorruptionDetectionLevel.FormattingEnabled = true;
this.comboStackCorruptionDetectionLevel.Location = new System.Drawing.Point(33, 58);
@ -473,9 +475,9 @@
this.comboStackCorruptionDetectionLevel.Size = new System.Drawing.Size(220, 21);
this.comboStackCorruptionDetectionLevel.TabIndex = 9;
this.comboStackCorruptionDetectionLevel.SelectedIndexChanged += new System.EventHandler(this.stackCorruptionDetectionLevelComboBox_SelectedIndexChanged);
//
//
// chkEnableStackCorruptionDetection
//
//
this.chkEnableStackCorruptionDetection.AutoSize = true;
this.chkEnableStackCorruptionDetection.Location = new System.Drawing.Point(6, 19);
this.chkEnableStackCorruptionDetection.Name = "chkEnableStackCorruptionDetection";
@ -484,9 +486,9 @@
this.chkEnableStackCorruptionDetection.Text = "Enable Stack Corruption Detection";
this.chkEnableStackCorruptionDetection.UseVisualStyleBackColor = true;
this.chkEnableStackCorruptionDetection.CheckedChanged += new System.EventHandler(this.chkEnableStacckCorruptionDetection_CheckedChanged);
//
//
// debugLevelGroupBox
//
//
this.debugLevelGroupBox.Controls.Add(this.comboTraceMode);
this.debugLevelGroupBox.Controls.Add(this.label5);
this.debugLevelGroupBox.Controls.Add(this.label4);
@ -496,18 +498,18 @@
this.debugLevelGroupBox.Size = new System.Drawing.Size(260, 125);
this.debugLevelGroupBox.TabIndex = 34;
this.debugLevelGroupBox.TabStop = false;
//
//
// comboTraceMode
//
//
this.comboTraceMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboTraceMode.FormattingEnabled = true;
this.comboTraceMode.Location = new System.Drawing.Point(34, 94);
this.comboTraceMode.Name = "comboTraceMode";
this.comboTraceMode.Size = new System.Drawing.Size(220, 21);
this.comboTraceMode.TabIndex = 10;
//
//
// label5
//
//
this.label5.AutoSize = true;
this.label5.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label5.Location = new System.Drawing.Point(3, 73);
@ -517,9 +519,9 @@
this.label5.TabIndex = 26;
this.label5.Text = "Tracing:";
this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
//
// label4
//
//
this.label4.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label4.Location = new System.Drawing.Point(3, 19);
this.label4.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
@ -528,18 +530,18 @@
this.label4.TabIndex = 24;
this.label4.Text = "Debug Level:";
this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
//
// comboDebugMode
//
//
this.comboDebugMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboDebugMode.FormattingEnabled = true;
this.comboDebugMode.Location = new System.Drawing.Point(34, 46);
this.comboDebugMode.Name = "comboDebugMode";
this.comboDebugMode.Size = new System.Drawing.Size(220, 21);
this.comboDebugMode.TabIndex = 9;
//
//
// debugStubGroupBox
//
//
this.debugStubGroupBox.Controls.Add(this.checkIgnoreDebugStubAttribute);
this.debugStubGroupBox.Controls.Add(this.label9);
this.debugStubGroupBox.Controls.Add(this.cmboVisualStudioDebugPort);
@ -550,9 +552,9 @@
this.debugStubGroupBox.Size = new System.Drawing.Size(260, 140);
this.debugStubGroupBox.TabIndex = 31;
this.debugStubGroupBox.TabStop = false;
//
//
// checkIgnoreDebugStubAttribute
//
//
this.checkIgnoreDebugStubAttribute.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkIgnoreDebugStubAttribute.Location = new System.Drawing.Point(6, 19);
this.checkIgnoreDebugStubAttribute.Name = "checkIgnoreDebugStubAttribute";
@ -560,18 +562,18 @@
this.checkIgnoreDebugStubAttribute.TabIndex = 11;
this.checkIgnoreDebugStubAttribute.Text = "Ignore DebugStub Attribute Settings";
this.checkIgnoreDebugStubAttribute.UseVisualStyleBackColor = true;
//
//
// label9
//
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(6, 42);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(69, 13);
this.label9.TabIndex = 29;
this.label9.Text = "Cosmos Port:";
//
//
// cmboVisualStudioDebugPort
//
//
this.cmboVisualStudioDebugPort.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmboVisualStudioDebugPort.FormattingEnabled = true;
this.cmboVisualStudioDebugPort.Items.AddRange(new object[] {
@ -585,9 +587,9 @@
this.cmboVisualStudioDebugPort.Size = new System.Drawing.Size(220, 21);
this.cmboVisualStudioDebugPort.Sorted = true;
this.cmboVisualStudioDebugPort.TabIndex = 13;
//
//
// cmboCosmosDebugPort
//
//
this.cmboCosmosDebugPort.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmboCosmosDebugPort.FormattingEnabled = true;
this.cmboCosmosDebugPort.Items.AddRange(new object[] {
@ -601,18 +603,18 @@
this.cmboCosmosDebugPort.Size = new System.Drawing.Size(220, 21);
this.cmboCosmosDebugPort.Sorted = true;
this.cmboCosmosDebugPort.TabIndex = 12;
//
//
// label10
//
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(6, 90);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(93, 13);
this.label10.TabIndex = 30;
this.label10.Text = "Visual Studio Port:";
//
//
// tabDeployment
//
//
this.tabDeployment.Controls.Add(this.lboxDeployment);
this.tabDeployment.Location = new System.Drawing.Point(4, 22);
this.tabDeployment.Name = "tabDeployment";
@ -620,9 +622,9 @@
this.tabDeployment.TabIndex = 11;
this.tabDeployment.Text = "Deployment";
this.tabDeployment.UseVisualStyleBackColor = true;
//
//
// lboxDeployment
//
//
this.lboxDeployment.Dock = System.Windows.Forms.DockStyle.Left;
this.lboxDeployment.FormattingEnabled = true;
this.lboxDeployment.Location = new System.Drawing.Point(0, 0);
@ -630,9 +632,9 @@
this.lboxDeployment.Size = new System.Drawing.Size(206, 486);
this.lboxDeployment.Sorted = true;
this.lboxDeployment.TabIndex = 15;
//
//
// tabLaunch
//
//
this.tabLaunch.Controls.Add(this.lboxLaunch);
this.tabLaunch.Location = new System.Drawing.Point(4, 22);
this.tabLaunch.Name = "tabLaunch";
@ -640,9 +642,9 @@
this.tabLaunch.TabIndex = 12;
this.tabLaunch.Text = "Launch";
this.tabLaunch.UseVisualStyleBackColor = true;
//
//
// lboxLaunch
//
//
this.lboxLaunch.Dock = System.Windows.Forms.DockStyle.Left;
this.lboxLaunch.FormattingEnabled = true;
this.lboxLaunch.Location = new System.Drawing.Point(0, 0);
@ -650,9 +652,9 @@
this.lboxLaunch.Size = new System.Drawing.Size(206, 486);
this.lboxLaunch.Sorted = true;
this.lboxLaunch.TabIndex = 16;
//
//
// tabVMware
//
//
this.tabVMware.Controls.Add(this.checkEnableGDB);
this.tabVMware.Controls.Add(this.checkStartCosmosGDB);
this.tabVMware.Controls.Add(this.label3);
@ -664,9 +666,9 @@
this.tabVMware.TabIndex = 4;
this.tabVMware.Text = "VMware";
this.tabVMware.UseVisualStyleBackColor = true;
//
//
// checkEnableGDB
//
//
this.checkEnableGDB.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkEnableGDB.Location = new System.Drawing.Point(9, 77);
this.checkEnableGDB.Name = "checkEnableGDB";
@ -674,9 +676,9 @@
this.checkEnableGDB.TabIndex = 19;
this.checkEnableGDB.Text = "Enable GDB Debugger";
this.checkEnableGDB.UseVisualStyleBackColor = true;
//
//
// checkStartCosmosGDB
//
//
this.checkStartCosmosGDB.AutoSize = true;
this.checkStartCosmosGDB.Enabled = false;
this.checkStartCosmosGDB.Location = new System.Drawing.Point(24, 103);
@ -686,18 +688,18 @@
this.checkStartCosmosGDB.TabIndex = 20;
this.checkStartCosmosGDB.Text = "Use Cosmos GDB Client";
this.checkStartCosmosGDB.UseVisualStyleBackColor = true;
//
//
// label3
//
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(6, 12);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(42, 13);
this.label3.TabIndex = 18;
this.label3.Text = "Edition:";
//
//
// cmboVMwareEdition
//
//
this.cmboVMwareEdition.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmboVMwareEdition.FormattingEnabled = true;
this.cmboVMwareEdition.Location = new System.Drawing.Point(26, 37);
@ -705,9 +707,9 @@
this.cmboVMwareEdition.Size = new System.Drawing.Size(143, 21);
this.cmboVMwareEdition.Sorted = true;
this.cmboVMwareEdition.TabIndex = 18;
//
//
// tabBochs
//
//
this.tabBochs.Controls.Add(this.checkStartBochsDebugGui);
this.tabBochs.Controls.Add(this.checkEnableBochsDebug);
this.tabBochs.Location = new System.Drawing.Point(4, 22);
@ -717,9 +719,9 @@
this.tabBochs.TabIndex = 5;
this.tabBochs.Text = "Bochs";
this.tabBochs.UseVisualStyleBackColor = true;
//
//
// checkStartBochsDebugGui
//
//
this.checkStartBochsDebugGui.Enabled = false;
this.checkStartBochsDebugGui.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkStartBochsDebugGui.Location = new System.Drawing.Point(24, 43);
@ -728,9 +730,9 @@
this.checkStartBochsDebugGui.TabIndex = 35;
this.checkStartBochsDebugGui.Text = "Use Bochs Debugger GUI";
this.checkStartBochsDebugGui.UseVisualStyleBackColor = true;
//
//
// checkEnableBochsDebug
//
//
this.checkEnableBochsDebug.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkEnableBochsDebug.Location = new System.Drawing.Point(9, 17);
this.checkEnableBochsDebug.Name = "checkEnableBochsDebug";
@ -738,9 +740,9 @@
this.checkEnableBochsDebug.TabIndex = 21;
this.checkEnableBochsDebug.Text = "Enable Bochs Debugger";
this.checkEnableBochsDebug.UseVisualStyleBackColor = true;
//
//
// tabPXE
//
//
this.tabPXE.Controls.Add(this.butnPxeRefresh);
this.tabPXE.Controls.Add(this.comboPxeInterface);
this.tabPXE.Controls.Add(this.label1);
@ -751,10 +753,9 @@
this.tabPXE.TabIndex = 6;
this.tabPXE.Text = "PXE";
this.tabPXE.UseVisualStyleBackColor = true;
//
//
// butnPxeRefresh
//
//
//
this.butnPxeRefresh.AutoSize = true;
this.butnPxeRefresh.Image = ((System.Drawing.Image)(resources.GetObject("butnPxeRefresh.Image")));
this.butnPxeRefresh.Location = new System.Drawing.Point(177, 31);
@ -763,25 +764,25 @@
this.butnPxeRefresh.Size = new System.Drawing.Size(23, 23);
this.butnPxeRefresh.TabIndex = 23;
this.butnPxeRefresh.UseVisualStyleBackColor = true;
//
//
// comboPxeInterface
//
//
this.comboPxeInterface.Location = new System.Drawing.Point(28, 32);
this.comboPxeInterface.Name = "comboPxeInterface";
this.comboPxeInterface.Size = new System.Drawing.Size(146, 21);
this.comboPxeInterface.TabIndex = 22;
//
//
// label1
//
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(13, 16);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(52, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Interface:";
//
//
// tabUSB
//
//
this.tabUSB.Controls.Add(this.label7);
this.tabUSB.Location = new System.Drawing.Point(4, 22);
this.tabUSB.Name = "tabUSB";
@ -790,18 +791,18 @@
this.tabUSB.TabIndex = 7;
this.tabUSB.Text = "USB";
this.tabUSB.UseVisualStyleBackColor = true;
//
//
// label7
//
//
this.label7.Location = new System.Drawing.Point(16, 15);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(375, 102);
this.label7.TabIndex = 1;
this.label7.Text = "There are no current USB options. The target drive will be requested when you run" +
" the project.";
//
//
// tabISO
//
//
this.tabISO.Controls.Add(this.label8);
this.tabISO.Location = new System.Drawing.Point(4, 22);
this.tabISO.Name = "tabISO";
@ -810,17 +811,17 @@
this.tabISO.TabIndex = 8;
this.tabISO.Text = "ISO";
this.tabISO.UseVisualStyleBackColor = true;
//
//
// label8
//
//
this.label8.Location = new System.Drawing.Point(17, 16);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(375, 102);
this.label8.TabIndex = 1;
this.label8.Text = "There are currently no ISO options.";
//
//
// tabSlave
//
//
this.tabSlave.Controls.Add(this.cmboSlavePort);
this.tabSlave.Controls.Add(this.label6);
this.tabSlave.Location = new System.Drawing.Point(4, 22);
@ -830,9 +831,9 @@
this.tabSlave.TabIndex = 13;
this.tabSlave.Text = "Slave";
this.tabSlave.UseVisualStyleBackColor = true;
//
//
// cmboSlavePort
//
//
this.cmboSlavePort.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmboSlavePort.FormattingEnabled = true;
this.cmboSlavePort.Items.AddRange(new object[] {
@ -846,18 +847,28 @@
this.cmboSlavePort.Size = new System.Drawing.Size(146, 21);
this.cmboSlavePort.Sorted = true;
this.cmboSlavePort.TabIndex = 23;
//
//
// label6
//
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(15, 15);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(59, 13);
this.label6.TabIndex = 34;
this.label6.Text = "Slave Port:";
//
//
// tabHyperV
//
this.tabHyperV.Location = new System.Drawing.Point(4, 22);
this.tabHyperV.Name = "tabHyperV";
this.tabHyperV.Padding = new System.Windows.Forms.Padding(3);
this.tabHyperV.Size = new System.Drawing.Size(627, 486);
this.tabHyperV.TabIndex = 14;
this.tabHyperV.Text = "Hyper-V";
this.tabHyperV.UseVisualStyleBackColor = true;
//
// CosmosPage
//
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.TabControl1);
@ -971,5 +982,6 @@
private System.Windows.Forms.GroupBox debugStubGroupBox;
private System.ComponentModel.BackgroundWorker backgroundWorker1;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.TabPage tabHyperV;
}
}

View file

@ -48,16 +48,21 @@ namespace Cosmos.VS.ProjectSystem.PropertyPages
}
protected ProfilePresets mPresets = new ProfilePresets();
protected int mVMwareAndBochsDebugPipe;
protected int mHyperVDebugPipe;
protected bool mShowTabBochs;
protected bool mShowTabDebug;
protected bool mShowTabDeployment;
protected bool mShowTabLaunch;
protected bool mShowTabVMware;
protected bool mShowTabHyperV;
protected bool mShowTabPXE;
protected bool mShowTabUSB;
protected bool mShowTabISO;
protected bool mShowTabSlave;
protected bool FreezeEvents;
public CosmosPage()
@ -182,7 +187,6 @@ namespace Cosmos.VS.ProjectSystem.PropertyPages
#endregion
#region VMware
cmboVMwareEdition.SelectedIndexChanged += delegate (Object sender, EventArgs e)
@ -291,8 +295,6 @@ namespace Cosmos.VS.ProjectSystem.PropertyPages
}
};
#endregion
checkEnableGDB.CheckedChanged += delegate (Object sender, EventArgs e)
{
if (FreezeEvents) return;
@ -344,6 +346,7 @@ namespace Cosmos.VS.ProjectSystem.PropertyPages
IsDirty = true;
}
};
#endregion
}
public override void ApplyChanges()
@ -371,6 +374,7 @@ namespace Cosmos.VS.ProjectSystem.PropertyPages
RemoveTab(tabDeployment);
RemoveTab(tabLaunch);
RemoveTab(tabVMware);
RemoveTab(tabHyperV);
RemoveTab(tabPXE);
RemoveTab(tabUSB);
RemoveTab(tabISO);
@ -407,6 +411,10 @@ namespace Cosmos.VS.ProjectSystem.PropertyPages
{
TabControl1.TabPages.Add(tabVMware);
}
if (mShowTabHyperV)
{
TabControl1.TabPages.Add(tabHyperV);
}
if (mShowTabSlave)
{
TabControl1.TabPages.Add(tabSlave);
@ -455,6 +463,15 @@ namespace Cosmos.VS.ProjectSystem.PropertyPages
cmboVisualStudioDebugPort.SelectedIndex = mVMwareAndBochsDebugPipe;
}
else if (mProps.Profile == "HyperV")
{
mShowTabHyperV = true;
chckEnableDebugStub.Checked = true;
chkEnableStackCorruptionDetection.Checked = true;
cmboCosmosDebugPort.Enabled = false;
cmboVisualStudioDebugPort.Enabled = false;
cmboVisualStudioDebugPort.SelectedIndex = mHyperVDebugPipe;
}
else if (mProps.Profile == "PXE")
{
chckEnableDebugStub.Checked = false;
@ -546,6 +563,7 @@ namespace Cosmos.VS.ProjectSystem.PropertyPages
mShowTabPXE = mProps.Deployment == DeploymentType.PXE;
//
mShowTabVMware = mProps.Launch == LaunchType.VMware;
mShowTabHyperV = mProps.Launch == LaunchType.HyperV;
mShowTabSlave = mProps.Launch == LaunchType.Slave;
mShowTabBochs = (LaunchType.Bochs == mProps.Launch);
//
@ -784,6 +802,7 @@ namespace Cosmos.VS.ProjectSystem.PropertyPages
cmboVisualStudioDebugPort.Items.Clear();
FillComPorts(cmboVisualStudioDebugPort.Items);
mVMwareAndBochsDebugPipe = cmboVisualStudioDebugPort.Items.Add(@"Pipe: Cosmos\Serial");
mHyperVDebugPipe = cmboVisualStudioDebugPort.Items.Add(@"Pipe: CosmosSerial");
comboDebugMode.Items.AddRange(EnumValue.GetEnumValues(typeof(DebugMode), false));
comboTraceMode.Items.AddRange(EnumValue.GetEnumValues(typeof(TraceAssemblies), false));

View file

@ -9,6 +9,7 @@ namespace Cosmos.System.Plugs.System.Collections.Generic
{
public static EqualityComparer<T> CreateComparer()
{
throw new Exception("Create comparer not yet implemented!");
}
}