diff --git a/source/Cosmos/Cosmos.Kernel.Plugs/Console.cs b/source/Cosmos/Cosmos.Kernel.Plugs/Console.cs
index 48e87a96e..2f41173ba 100644
--- a/source/Cosmos/Cosmos.Kernel.Plugs/Console.cs
+++ b/source/Cosmos/Cosmos.Kernel.Plugs/Console.cs
@@ -27,8 +27,28 @@ namespace Cosmos.Kernel.Plugs {
TextScreen.NewLine();
}
+ public static void Write(char[] buffer) {
+ for (int i = 0; i < buffer.Length; i++)
+ Write (buffer[i]);
+ }
+
+ public static void WriteLine(char[] buffer) {
+ Write (buffer);
+ WriteLine ();
+ }
+
public static void WriteLine() {
TextScreen.NewLine();
}
+
+ public static string ReadLine() {
+ char current;
+ string result = "";
+ while ((current = Keyboard.ReadChar ()) != 'a') {
+ result += new string (new char[] { current });
+ Write (current);
+ }
+ return result;
+ }
}
}
diff --git a/source/Cosmos/Cosmos.Kernel/CPU.cs b/source/Cosmos/Cosmos.Kernel/CPU.cs
index d11aa7233..bae5d09a2 100644
--- a/source/Cosmos/Cosmos.Kernel/CPU.cs
+++ b/source/Cosmos/Cosmos.Kernel/CPU.cs
@@ -34,6 +34,7 @@ namespace Cosmos.Kernel {
Console.Write("Creating IDT...");
Hardware.CPU.CreateIDT();
Console.WriteLine("Done");
+ Keyboard.Initialize ();
TestATA();
}
diff --git a/source/Cosmos/Cosmos.Kernel/Staging/Stages/TestStage.cs b/source/Cosmos/Cosmos.Kernel/Staging/Stages/TestStage.cs
index e10d242ba..42bec177f 100644
--- a/source/Cosmos/Cosmos.Kernel/Staging/Stages/TestStage.cs
+++ b/source/Cosmos/Cosmos.Kernel/Staging/Stages/TestStage.cs
@@ -13,7 +13,7 @@ namespace Cosmos.Kernel.Staging.Stages {
}
public override void Initialize() {
- CPU.TestATA ();
+ //CPU.TestATA ();
}
public override void Teardown() {
diff --git a/source/Cosmos/Cosmos.Shell.Console/Commands/FSTestCommand.cs b/source/Cosmos/Cosmos.Shell.Console/Commands/FSTestCommand.cs
new file mode 100644
index 000000000..3afe38d4c
--- /dev/null
+++ b/source/Cosmos/Cosmos.Shell.Console/Commands/FSTestCommand.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Cosmos.Shell.Console.Commands {
+ public class FSTestCommand : ICommand {
+ public override string Name {
+ get {
+ return "fstest";
+ }
+ }
+
+ public override void Execute() {
+ System.Console.WriteLine ("Testing...");
+ }
+ }
+}
diff --git a/source/Cosmos/Cosmos.Shell.Console/Commands/ICommand.cs b/source/Cosmos/Cosmos.Shell.Console/Commands/ICommand.cs
new file mode 100644
index 000000000..59438b90d
--- /dev/null
+++ b/source/Cosmos/Cosmos.Shell.Console/Commands/ICommand.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Cosmos.Shell.Console.Commands {
+ ///
+ /// Represents a command.
+ ///
+ public abstract class ICommand {
+ ///
+ /// Gets the name of the command (must be lowercase).
+ ///
+ public abstract string Name {
+ get;
+ }
+
+ public abstract void Execute();
+ }
+}
diff --git a/source/Cosmos/Cosmos.Shell.Console/Cosmos.Shell.Console.csproj b/source/Cosmos/Cosmos.Shell.Console/Cosmos.Shell.Console.csproj
index 7a6c4fc86..bed8f22ba 100644
--- a/source/Cosmos/Cosmos.Shell.Console/Cosmos.Shell.Console.csproj
+++ b/source/Cosmos/Cosmos.Shell.Console/Cosmos.Shell.Console.csproj
@@ -41,6 +41,8 @@
+
+
@@ -51,9 +53,6 @@
Cosmos.Kernel
-
-
-