More updates for ext2 and keyboard

This commit is contained in:
mterwoord_cp 2008-01-05 14:30:59 +00:00
parent d4df735c4a
commit b57040c8a1
5 changed files with 37 additions and 6 deletions

View file

@ -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]);
}
}

View file

@ -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) {

View file

@ -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];

View file

@ -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');

View file

@ -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!");