diff --git a/source/Cosmos.sln b/source/Cosmos.sln
index c66003268..81ab4574b 100644
--- a/source/Cosmos.sln
+++ b/source/Cosmos.sln
@@ -232,9 +232,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
Performance1.psess = Performance1.psess
EndProjectSection
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Playground", "..\source2\users\Matthijs\Playground\Playground.csproj", "{89868CAD-AAFC-45F1-81B3-C323F87D5742}"
+EndProject
+Project("{471EC4BB-E47E-4229-A789-D1F5F83B52D4}") = "PlaygroundBoot", "..\source2\users\Matthijs\Playground\PlaygroundBoot.Cosmos", "{7D29D57D-A78B-4E67-BBC3-DF84BD10FC6D}"
+ ProjectSection(ProjectDependencies) = postProject
+ {89868CAD-AAFC-45F1-81B3-C323F87D5742} = {89868CAD-AAFC-45F1-81B3-C323F87D5742}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DebugCompiler", "..\source2\users\Matthijs\DebugCompiler\DebugCompiler.csproj", "{3720749F-1519-4A35-B944-FF05AD01F8DC}"
+EndProject
Global
GlobalSection(TeamFoundationVersionControl) = preSolution
- SccNumberOfProjects = 59
+ SccNumberOfProjects = 62
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = https://tfs.codeplex.com/tfs/tfs04
SccLocalPath0 = .
@@ -472,6 +481,18 @@ Global
SccProjectName58 = ../Docs
SccLocalPath58 = ..\\Docs
SccProjectEnlistmentChoice58 = 2
+ SccProjectUniqueName59 = ..\\source2\\users\\Matthijs\\Playground\\Playground.csproj
+ SccProjectTopLevelParentUniqueName59 = Cosmos.sln
+ SccProjectName59 = ../source2/users/Matthijs/Playground
+ SccLocalPath59 = ..\\source2\\users\\Matthijs\\Playground
+ SccProjectUniqueName60 = ..\\source2\\users\\Matthijs\\Playground\\PlaygroundBoot.Cosmos
+ SccProjectTopLevelParentUniqueName60 = Cosmos.sln
+ SccProjectName60 = ../source2/users/Matthijs/Playground
+ SccLocalPath60 = ..\\source2\\users\\Matthijs\\Playground
+ SccProjectUniqueName61 = ..\\source2\\users\\Matthijs\\DebugCompiler\\DebugCompiler.csproj
+ SccProjectTopLevelParentUniqueName61 = Cosmos.sln
+ SccProjectName61 = ../source2/users/Matthijs/DebugCompiler
+ SccLocalPath61 = ..\\source2\\users\\Matthijs\\DebugCompiler
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -1127,6 +1148,37 @@ Global
{0A7DF241-1000-405D-A09B-9E2C51A5CB95}.Release|Mixed Platforms.Build.0 = Debug|x86
{0A7DF241-1000-405D-A09B-9E2C51A5CB95}.Release|x86.ActiveCfg = Debug|x86
{0A7DF241-1000-405D-A09B-9E2C51A5CB95}.Release|x86.Build.0 = Debug|x86
+ {89868CAD-AAFC-45F1-81B3-C323F87D5742}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {89868CAD-AAFC-45F1-81B3-C323F87D5742}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {89868CAD-AAFC-45F1-81B3-C323F87D5742}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {89868CAD-AAFC-45F1-81B3-C323F87D5742}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {89868CAD-AAFC-45F1-81B3-C323F87D5742}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {89868CAD-AAFC-45F1-81B3-C323F87D5742}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {89868CAD-AAFC-45F1-81B3-C323F87D5742}.Release|Any CPU.Build.0 = Release|Any CPU
+ {89868CAD-AAFC-45F1-81B3-C323F87D5742}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {89868CAD-AAFC-45F1-81B3-C323F87D5742}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {89868CAD-AAFC-45F1-81B3-C323F87D5742}.Release|x86.ActiveCfg = Release|Any CPU
+ {7D29D57D-A78B-4E67-BBC3-DF84BD10FC6D}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {7D29D57D-A78B-4E67-BBC3-DF84BD10FC6D}.Debug|Any CPU.Build.0 = Debug|x86
+ {7D29D57D-A78B-4E67-BBC3-DF84BD10FC6D}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {7D29D57D-A78B-4E67-BBC3-DF84BD10FC6D}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {7D29D57D-A78B-4E67-BBC3-DF84BD10FC6D}.Debug|x86.ActiveCfg = Debug|x86
+ {7D29D57D-A78B-4E67-BBC3-DF84BD10FC6D}.Debug|x86.Build.0 = Debug|x86
+ {7D29D57D-A78B-4E67-BBC3-DF84BD10FC6D}.Release|Any CPU.ActiveCfg = Debug|x86
+ {7D29D57D-A78B-4E67-BBC3-DF84BD10FC6D}.Release|Mixed Platforms.ActiveCfg = Debug|x86
+ {7D29D57D-A78B-4E67-BBC3-DF84BD10FC6D}.Release|Mixed Platforms.Build.0 = Debug|x86
+ {7D29D57D-A78B-4E67-BBC3-DF84BD10FC6D}.Release|x86.ActiveCfg = Debug|x86
+ {7D29D57D-A78B-4E67-BBC3-DF84BD10FC6D}.Release|x86.Build.0 = Debug|x86
+ {3720749F-1519-4A35-B944-FF05AD01F8DC}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {3720749F-1519-4A35-B944-FF05AD01F8DC}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {3720749F-1519-4A35-B944-FF05AD01F8DC}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {3720749F-1519-4A35-B944-FF05AD01F8DC}.Debug|x86.ActiveCfg = Debug|x86
+ {3720749F-1519-4A35-B944-FF05AD01F8DC}.Debug|x86.Build.0 = Debug|x86
+ {3720749F-1519-4A35-B944-FF05AD01F8DC}.Release|Any CPU.ActiveCfg = Release|x86
+ {3720749F-1519-4A35-B944-FF05AD01F8DC}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {3720749F-1519-4A35-B944-FF05AD01F8DC}.Release|Mixed Platforms.Build.0 = Release|x86
+ {3720749F-1519-4A35-B944-FF05AD01F8DC}.Release|x86.ActiveCfg = Release|x86
+ {3720749F-1519-4A35-B944-FF05AD01F8DC}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1167,6 +1219,9 @@ Global
{239E33A7-F0C3-4801-85CA-4D8F89A31DC0} = {6A15C540-8278-4B9C-B890-FA57FB6AE6A6}
{F708C866-1C9B-4579-8C28-0728ECCFC1ED} = {6A15C540-8278-4B9C-B890-FA57FB6AE6A6}
{6658FCE0-7032-4B7B-BD95-F2765C393442} = {2DF5F17F-4890-4856-ADFD-4DE23282C3B7}
+ {89868CAD-AAFC-45F1-81B3-C323F87D5742} = {0CF14D0F-6054-4D3D-9062-E3D2EB064A4E}
+ {7D29D57D-A78B-4E67-BBC3-DF84BD10FC6D} = {0CF14D0F-6054-4D3D-9062-E3D2EB064A4E}
+ {3720749F-1519-4A35-B944-FF05AD01F8DC} = {0CF14D0F-6054-4D3D-9062-E3D2EB064A4E}
{1116130E-28E0-428A-A597-F4B3B676C0CA} = {576C3D3B-A3EA-44FA-8E39-AFD3E6F3FE23}
{693C6704-6934-410F-97E0-4B6900730E63} = {426E77A5-80AA-48DC-97F9-037071345778}
{E3779B95-E47B-4CAD-B8C1-0549E30AA4F2} = {426E77A5-80AA-48DC-97F9-037071345778}
diff --git a/source2/Build/Cosmos.Build.MSBuild/Cosmos.targets b/source2/Build/Cosmos.Build.MSBuild/Cosmos.targets
index 1c17d3d67..1cf59b1eb 100644
--- a/source2/Build/Cosmos.Build.MSBuild/Cosmos.targets
+++ b/source2/Build/Cosmos.Build.MSBuild/Cosmos.targets
@@ -6,6 +6,7 @@
$(CosmosDir)\Build\Tools
$(CosmosDir)\Build\VSIP
$(BuildToolsDir)\Nasm\nasm.exe
+ x86
bin
diff --git a/source2/Build/Cosmos.Build.MSBuild/IL2CPUTask.cs b/source2/Build/Cosmos.Build.MSBuild/IL2CPUTask.cs
index 518581ab7..aa041a2ca 100644
--- a/source2/Build/Cosmos.Build.MSBuild/IL2CPUTask.cs
+++ b/source2/Build/Cosmos.Build.MSBuild/IL2CPUTask.cs
@@ -172,37 +172,44 @@ namespace Cosmos.Build.MSBuild {
DebugCom = 0;
}
- var xAsm = new AppAssembler(DebugCom);
- using (var xDebugInfo = new DebugInfo(xOutputFilename + ".mdf", true)) {
- xAsm.DebugInfo = xDebugInfo;
- xAsm.DebugEnabled = DebugEnabled;
- xAsm.DebugMode = mDebugMode;
- xAsm.TraceAssemblies = mTraceAssemblies;
- xAsm.IgnoreDebugStubAttribute = IgnoreDebugStubAttribute;
- if (DebugEnabled == false) {
- xAsm.ShouldOptimize = true;
- }
-
- xAsm.Assembler.Initialize();
- using (var xScanner = new ILScanner(xAsm)) {
- xScanner.TempDebug += x => LogMessage(x);
- if (EnableLogging) {
- xScanner.EnableLogging(xOutputFilename + ".log.html");
+ using (var xAsm = new AppAssembler(DebugCom))
+ {
+ using (var xDebugInfo = new DebugInfo(xOutputFilename + ".mdf", true))
+ {
+ xAsm.DebugInfo = xDebugInfo;
+ xAsm.DebugEnabled = DebugEnabled;
+ xAsm.DebugMode = mDebugMode;
+ xAsm.TraceAssemblies = mTraceAssemblies;
+ xAsm.IgnoreDebugStubAttribute = IgnoreDebugStubAttribute;
+ if (DebugEnabled == false)
+ {
+ xAsm.ShouldOptimize = true;
}
- xScanner.QueueMethod(xInitMethod.DeclaringType.BaseType.GetMethod("Start"));
- xScanner.Execute(xInitMethod);
- using (var xOut = new StreamWriter(OutputFilename, false)) {
- //if (EmitDebugSymbols) {
- xAsm.Assembler.FlushText(xOut);
- xAsm.FinalizeDebugInfo();
+ xAsm.Assembler.Initialize();
+ using (var xScanner = new ILScanner(xAsm))
+ {
+ xScanner.TempDebug += x => LogMessage(x);
+ if (EnableLogging)
+ {
+ xScanner.EnableLogging(xOutputFilename + ".log.html");
+ }
+ xScanner.QueueMethod(xInitMethod.DeclaringType.BaseType.GetMethod("Start"));
+ xScanner.Execute(xInitMethod);
+
+ using (var xOut = new StreamWriter(OutputFilename, false))
+ {
+ //if (EmitDebugSymbols) {
+ xAsm.Assembler.FlushText(xOut);
+ xAsm.FinalizeDebugInfo();
+ }
}
+ // If you want to uncomment this line make sure to enable PERSISTANCE_PROFILING symbol in
+ // DebugInfo.cs file.
+ //LogMessage(string.Format("DebugInfo flatening {0} seconds, persistance : {1} seconds",
+ // (int)xDebugInfo.FlateningDuration.TotalSeconds,
+ // (int)xDebugInfo.PersistanceDuration.TotalSeconds));
}
- // If you want to uncomment this line make sure to enable PERSISTANCE_PROFILING symbol in
- // DebugInfo.cs file.
- //LogMessage(string.Format("DebugInfo flatening {0} seconds, persistance : {1} seconds",
- // (int)xDebugInfo.FlateningDuration.TotalSeconds,
- // (int)xDebugInfo.PersistanceDuration.TotalSeconds));
}
LogTime("Engine execute finished");
return true;
diff --git a/source2/Debug/Cosmos.Debug.Common/Cosmos.Debug.Common.csproj b/source2/Debug/Cosmos.Debug.Common/Cosmos.Debug.Common.csproj
index ef59a5729..be864585c 100644
--- a/source2/Debug/Cosmos.Debug.Common/Cosmos.Debug.Common.csproj
+++ b/source2/Debug/Cosmos.Debug.Common/Cosmos.Debug.Common.csproj
@@ -125,6 +125,7 @@
EntityModelCodeGenerator
DebugModel.Designer.cs
+
diff --git a/source2/Debug/Cosmos.Debug.Common/Entities2.datasource b/source2/Debug/Cosmos.Debug.Common/Entities2.datasource
new file mode 100644
index 000000000..47cbf4923
--- /dev/null
+++ b/source2/Debug/Cosmos.Debug.Common/Entities2.datasource
@@ -0,0 +1,10 @@
+
+
+
+ Cosmos.Debug.Common.Entities, DebugModel.Designer.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+
\ No newline at end of file
diff --git a/source2/IL2CPU/Cosmos.IL2CPU/AppAssembler.cs b/source2/IL2CPU/Cosmos.IL2CPU/AppAssembler.cs
index f8279f6d4..155c45161 100644
--- a/source2/IL2CPU/Cosmos.IL2CPU/AppAssembler.cs
+++ b/source2/IL2CPU/Cosmos.IL2CPU/AppAssembler.cs
@@ -14,7 +14,7 @@ using Cosmos.IL2CPU.Plugs;
using Mono.Cecil;
namespace Cosmos.IL2CPU {
- public class AppAssembler {
+ public class AppAssembler: IDisposable {
public const string EndOfMethodLabelNameNormal = ".END__OF__METHOD_NORMAL";
public const string EndOfMethodLabelNameException = ".END__OF__METHOD_EXCEPTION";
protected const string InitStringIDsLabel = "___INIT__STRINGS_TYPE_ID_S___";
@@ -40,10 +40,20 @@ namespace Cosmos.IL2CPU {
public AppAssembler(int aComPort) {
Assembler = new Cosmos.Assembler.Assembler(aComPort);
- mLog = new System.IO.StreamWriter("Cosmos.Assembler.Log");
+ mLog = new System.IO.StreamWriter("Cosmos.Assembler.Log", false);
InitILOps();
}
+ public void Dispose()
+ {
+ if (mLog != null)
+ {
+ mLog.Dispose();
+ mLog = null;
+ }
+ GC.SuppressFinalize(this);
+ }
+
protected void MethodBegin(MethodInfo aMethod) {
new Comment("---------------------------------------------------------");
new Comment("Assembly: " + aMethod.MethodBase.DeclaringType.Assembly.FullName);
diff --git a/source2/Users/Matthijs/DebugCompiler/DebugCompiler.csproj b/source2/Users/Matthijs/DebugCompiler/DebugCompiler.csproj
new file mode 100644
index 000000000..430cfff1d
--- /dev/null
+++ b/source2/Users/Matthijs/DebugCompiler/DebugCompiler.csproj
@@ -0,0 +1,72 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {3720749F-1519-4A35-B944-FF05AD01F8DC}
+ Exe
+ Properties
+ DebugCompiler
+ DebugCompiler
+ v4.0
+
+
+ 512
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ x86
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ x86
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {BC6AE974-1F18-4A19-A956-5062E4D3FD53}
+ Cosmos.Build.MSBuild
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source2/Users/Matthijs/DebugCompiler/DebugCompiler.csproj.vspscc b/source2/Users/Matthijs/DebugCompiler/DebugCompiler.csproj.vspscc
new file mode 100644
index 000000000..feffdecaa
--- /dev/null
+++ b/source2/Users/Matthijs/DebugCompiler/DebugCompiler.csproj.vspscc
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}
diff --git a/source2/Users/Matthijs/DebugCompiler/Program.cs b/source2/Users/Matthijs/DebugCompiler/Program.cs
new file mode 100644
index 000000000..1d77cbbc8
--- /dev/null
+++ b/source2/Users/Matthijs/DebugCompiler/Program.cs
@@ -0,0 +1,139 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Cosmos.Build.MSBuild;
+using Microsoft.Build.Framework;
+using System.Diagnostics;
+
+namespace DebugCompiler
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ var xTimespans = new List();
+ #region Bench
+ for (int i = 0; i < 3; i++)
+ {
+ var xSW = Stopwatch.StartNew();
+ try
+ {
+ var xTask = new IL2CPUTask();
+ xTask.DebugEnabled = true;
+ xTask.DebugMode = "Source";
+ xTask.TraceAssemblies = "User";
+ xTask.DebugCom = 1;
+ xTask.UseNAsm = true;
+ xTask.OutputFilename = @"C:\Data\Sources\Cosmos\source2\users\Matthijs\Playground\bin\Debug\PlaygroundBoot.asm";
+ xTask.EnableLogging = true;
+ xTask.EnableLogging = false;
+ xTask.EmitDebugSymbols = true;
+ xTask.IgnoreDebugStubAttribute = false;
+ xTask.References = GetReferences();
+ xTask.OnLogError = (m) => Console.WriteLine("Error: {0}", m);
+ xTask.OnLogWarning = (m) => Console.WriteLine("Warning: {0}", m);
+ xTask.OnLogMessage = (m) => Console.WriteLine("Message: {0}", m);
+ xTask.OnLogException = (m) => Console.WriteLine("Exception: {0}", m.ToString());
+ if (xTask.Execute())
+ {
+ Console.WriteLine("Executed OK");
+ }
+ else
+ {
+ Console.WriteLine("Errorred");
+ }
+ xSW.Stop();
+ xTimespans.Add(xSW.Elapsed);
+
+ }
+ catch (Exception E)
+ {
+ Console.WriteLine(E.ToString());
+ Console.ReadLine();
+ return;
+ }
+ }
+ #endregion Bench
+ for (int i = 0; i < xTimespans.Count; i++)
+ {
+ Console.WriteLine("Run {0} took {1}", i + 1, xTimespans[i].ToString());
+ }
+ }
+
+ private static ITaskItem[] GetReferences()
+ {
+ return new ITaskItem[]{
+ new TaskItemImpl(@"c:\Data\Sources\Cosmos\source2\Users\Matthijs\Playground\bin\Debug\Playground.dll"),
+ new TaskItemImpl(@"c:\Data\Sources\Cosmos\source2\Kernel\System\Hardware\Core\Cosmos.Core.Plugs\bin\x86\Debug\Cosmos.Core.Plugs.dll"),
+ new TaskItemImpl(@"c:\Data\Sources\Cosmos\source2\Kernel\Debug\Cosmos.Debug.Kernel.Plugs\bin\x86\Debug\Cosmos.Debug.Kernel.Plugs.dll"),
+ new TaskItemImpl(@"c:\Data\Sources\Cosmos\source2\Kernel\System\Cosmos.System.Plugs.System\bin\x86\Debug\Cosmos.System.Plugs.System.dll")
+ };
+ }
+
+ private class TaskItemImpl : ITaskItem
+ {
+ private string path;
+ public TaskItemImpl(string path)
+ {
+ this.path = path;
+ }
+ public System.Collections.IDictionary CloneCustomMetadata()
+ {
+ throw new NotImplementedException();
+ }
+
+ public void CopyMetadataTo(ITaskItem destinationItem)
+ {
+ throw new NotImplementedException();
+ }
+
+ public string GetMetadata(string metadataName)
+ {
+ if (metadataName == "FullPath")
+ {
+ return path;
+ }
+ throw new NotImplementedException();
+ }
+
+ public string ItemSpec
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public int MetadataCount
+ {
+ get
+ {
+ return MetadataNames.Count;
+ }
+ }
+
+ public System.Collections.ICollection MetadataNames
+ {
+ get
+ {
+ return new String[] { "FullPath" };
+ }
+ }
+
+ public void RemoveMetadata(string metadataName)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void SetMetadata(string metadataName, string metadataValue)
+ {
+ throw new NotImplementedException();
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/source2/Users/Matthijs/DebugCompiler/Properties/AssemblyInfo.cs b/source2/Users/Matthijs/DebugCompiler/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..4a583d4fa
--- /dev/null
+++ b/source2/Users/Matthijs/DebugCompiler/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("DebugCompiler")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("DebugCompiler")]
+[assembly: AssemblyCopyright("Copyright © 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("43b8e76a-d735-42d5-a417-e4028b48225c")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/source2/Users/Matthijs/DebugCompiler/app.config b/source2/Users/Matthijs/DebugCompiler/app.config
new file mode 100644
index 000000000..cb2586beb
--- /dev/null
+++ b/source2/Users/Matthijs/DebugCompiler/app.config
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source2/Users/Matthijs/Playground/AssemblyInfo.cs b/source2/Users/Matthijs/Playground/AssemblyInfo.cs
new file mode 100644
index 000000000..118d44883
--- /dev/null
+++ b/source2/Users/Matthijs/Playground/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Package Name")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Company")]
+[assembly: AssemblyProduct("Package Name")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: ComVisible(false)]
+[assembly: CLSCompliant(false)]
+[assembly: NeutralResourcesLanguage("en-US")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+
+
+
diff --git a/source2/Users/Matthijs/Playground/Kernel.cs b/source2/Users/Matthijs/Playground/Kernel.cs
new file mode 100644
index 000000000..522526e56
--- /dev/null
+++ b/source2/Users/Matthijs/Playground/Kernel.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Sys = Cosmos.System;
+
+namespace Playground
+{
+ public class Kernel : Sys.Kernel
+ {
+ protected override void BeforeRun()
+ {
+ Console.WriteLine("Cosmos booted successfully. Type a line of text to get it echoed back.");
+ }
+
+ protected override void Run()
+ {
+ Console.Write("Input: ");
+ var input = Console.ReadLine();
+ Console.Write("Text typed: ");
+ Console.WriteLine(input);
+ }
+ }
+}
diff --git a/source2/Users/Matthijs/Playground/Playground.csproj b/source2/Users/Matthijs/Playground/Playground.csproj
new file mode 100644
index 000000000..96d9bac15
--- /dev/null
+++ b/source2/Users/Matthijs/Playground/Playground.csproj
@@ -0,0 +1,71 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {89868CAD-AAFC-45F1-81B3-C323F87D5742}
+ Library
+ Properties
+ Playground
+ Playground
+ 512
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+ {61607F1E-58F9-41CF-972F-128384F3E115}
+ Cosmos.Debug.Kernel
+
+
+ {DA50B9B2-0E95-4F0D-A3C8-79FC549301B5}
+ Cosmos.System
+
+
+ {5AC4773C-CB4E-4CD9-8D50-02E10A07DEE6}
+ Cosmos.Core
+
+
+ {6A991D03-1435-4005-9809-B8BACDF3B021}
+ Cosmos.Hardware
+
+
+
+
+
\ No newline at end of file
diff --git a/source2/Users/Matthijs/Playground/Playground.csproj.vspscc b/source2/Users/Matthijs/Playground/Playground.csproj.vspscc
new file mode 100644
index 000000000..feffdecaa
--- /dev/null
+++ b/source2/Users/Matthijs/Playground/Playground.csproj.vspscc
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}
diff --git a/source2/Users/Matthijs/Playground/PlaygroundBoot.Cosmos b/source2/Users/Matthijs/Playground/PlaygroundBoot.Cosmos
new file mode 100644
index 000000000..3f631470c
--- /dev/null
+++ b/source2/Users/Matthijs/Playground/PlaygroundBoot.Cosmos
@@ -0,0 +1,68 @@
+
+
+
+ Debug
+ 2.0
+ {7d29d57d-a78b-4e67-bbc3-df84bd10fc6d}
+ false
+ PlaygroundBoot
+ elf
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ VMware
+
+ True
+ Source
+ User
+ False
+ False
+ Player
+ bin\Debug\
+ PlaygroundBoot
+ Use VMware Player or Workstation to deploy and debug.
+ ISO
+ VMware
+ Pipe: Cosmos\Serial
+ User
+ PlaygroundBoot
+ Use VMware Player or Workstation to deploy and debug.
+ ISO
+ VMware
+ True
+ Source
+ Pipe: Cosmos\Serial
+ Player
+ bin\Debug\
+ User
+ False
+ False
+
+
+
+ Cosmos.Debug.Kernel.Plugs
+ {b97a2956-c363-47f2-a6aa-b4fccff4d315}
+ True
+
+
+ Cosmos.System.Plugs.System
+ {7c64b97f-516d-4a6d-b9e1-3fe48f561409}
+ True
+
+
+ Cosmos.Core.Plugs
+ {d9a87aad-fcc9-4517-b31d-e904dad00784}
+ True
+
+
+ Playground
+ {380cbca2-3283-4667-a824-196036f95ced}
+
+
+
+
\ No newline at end of file
diff --git a/source2/Users/Matthijs/Playground/PlaygroundBoot.Cosmos.vspscc b/source2/Users/Matthijs/Playground/PlaygroundBoot.Cosmos.vspscc
new file mode 100644
index 000000000..feffdecaa
--- /dev/null
+++ b/source2/Users/Matthijs/Playground/PlaygroundBoot.Cosmos.vspscc
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}