diff --git a/source/Cosmos/Cosmos.Kernel.Plugs/Console.cs b/source/Cosmos/Cosmos.Kernel.Plugs/Console.cs index 1a51983c6..c0361011f 100644 --- a/source/Cosmos/Cosmos.Kernel.Plugs/Console.cs +++ b/source/Cosmos/Cosmos.Kernel.Plugs/Console.cs @@ -61,6 +61,13 @@ namespace Cosmos.Kernel.Plugs { public static void Write(string aText) { for (int i = 0; i < aText.Length; i++) { + if (aText[i] == '\n') { + TextScreen.NewLine(); + continue; + } + if (aText[i] == '\r') { + continue; + } TextScreen.WriteChar(aText[i]); } } diff --git a/source/Cosmos/Cosmos.Kernel/FileSystem/Ext2.cs b/source/Cosmos/Cosmos.Kernel/FileSystem/Ext2.cs index c105979a7..5669598f0 100644 --- a/source/Cosmos/Cosmos.Kernel/FileSystem/Ext2.cs +++ b/source/Cosmos/Cosmos.Kernel/FileSystem/Ext2.cs @@ -10,7 +10,6 @@ namespace Cosmos.Kernel.FileSystem { private Ext2 mFilesystem; private uint mPosition = 0; public FileStream(uint aINodeNumber, Ext2 aFilesystem) { - DebugUtil.SendNumber("Ext2", "FileStream..ctor(aINodeNumber)", aINodeNumber, 32); mINodeNumber = aINodeNumber; mFilesystem = aFilesystem; } @@ -39,10 +38,8 @@ namespace Cosmos.Kernel.FileSystem { public override long Length { get { INode xINode; - DebugUtil.SendNumber("Ext2", "FileStream, Length, INodeNumber", mINodeNumber, 32); mFilesystem.ReadINode(mINodeNumber, out xINode); long xSize = xINode.Size; - DebugUtil.SendNumber("Ext2", "FileStream, Length, ", (uint)xSize, 32); return xSize; } } @@ -56,6 +53,7 @@ namespace Cosmos.Kernel.FileSystem { } } + // todo: add support for reading one chunk of data which spans multiple logical blocks public override int Read(byte[] buffer, int offset, int count) { uint xBlock = (mPosition / mFilesystem.mBlockSize); if (xBlock != 0) { diff --git a/source/Cosmos/Cosmos.Kernel/FileSystem/TestsMatthijs.cs b/source/Cosmos/Cosmos.Kernel/FileSystem/TestsMatthijs.cs index 8868979f3..71d4cd79e 100644 --- a/source/Cosmos/Cosmos.Kernel/FileSystem/TestsMatthijs.cs +++ b/source/Cosmos/Cosmos.Kernel/FileSystem/TestsMatthijs.cs @@ -17,7 +17,7 @@ namespace Cosmos.Kernel.FileSystem { } else { Console.WriteLine("Ext2 Initialization failed!"); } - Stream xFileStream = xExt2.OpenFile(new string[] { "readme.txt" }); + Stream xFileStream = xExt2.OpenFile(new string[] { "readme2.txt" }); if (xFileStream == null) { Console.WriteLine("Couldn't read file!"); return; @@ -28,7 +28,7 @@ namespace Cosmos.Kernel.FileSystem { byte[] xBytes = new byte[(int)xFileStream.Length]; int xBytesRead = xFileStream.Read(xBytes, 0, (int)xFileStream.Length); DebugUtil.SendNumber("MatthijsStage", "Bytes Read", (uint)xBytesRead, 32); - DebugUtil.SendByteStream("CPU", "Readme.txt contents", xBytes); + DebugUtil.SendByteStream("CPU", "Readme.txt2 contents", xBytes); char[] xChars = new char[xBytes.Length - 1]; for (int i = 0; i < xChars.Length; i++) { xChars[i] = (char)xBytes[i]; diff --git a/source/Cosmos/Cosmos.Kernel/Keyboard.cs b/source/Cosmos/Cosmos.Kernel/Keyboard.cs index 29db83a56..cea9f17eb 100644 --- a/source/Cosmos/Cosmos.Kernel/Keyboard.cs +++ b/source/Cosmos/Cosmos.Kernel/Keyboard.cs @@ -121,6 +121,32 @@ namespace Cosmos.Kernel { AddKey(0x320000, 'M'); #endregion + #region digits + AddKey(0x1, '`'); + AddKey(0x10000, '~'); + AddKey(0x2, '1'); + AddKey(0x20000, '!'); + AddKey(0x3, '2'); + AddKey(0x30000, '@'); + AddKey(0x4, '3'); + AddKey(0x40000, '#'); + AddKey(0x5, '4'); + AddKey(0x50000, '$'); + AddKey(0x6, '5'); + AddKey(0x60000, '%'); + AddKey(0x7, '6'); + AddKey(0x70000, '^'); + AddKey(0x8, '7'); + AddKey(0x80000, '&'); + AddKey(0x9, '8'); + AddKey(0x90000, '*'); + AddKey(0xA, '9'); + AddKey(0xA0000, '('); + AddKey(0xB, '0'); + AddKey(0xB0000, ')'); + + #endregion + #region Special AddKey(0x1C, '\n'); AddKey(0x1C0000, '\n'); diff --git a/source/Cosmos/Cosmos.Shell.Console/Commands/TypeCommand.cs b/source/Cosmos/Cosmos.Shell.Console/Commands/TypeCommand.cs index a02463a8a..5d52f29dc 100644 --- a/source/Cosmos/Cosmos.Shell.Console/Commands/TypeCommand.cs +++ b/source/Cosmos/Cosmos.Shell.Console/Commands/TypeCommand.cs @@ -26,7 +26,7 @@ namespace Cosmos.Shell.Console.Commands { { System.Console.WriteLine("Ext2 Initialization failed!"); } - byte[] xItem = xExt2.ReadFile(new string[] { param }); + byte[] xItem = xExt2.ReadFile(new string[] { param }); if (xItem == null) { System.Console.WriteLine("Couldn't read file!");