mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-27 05:52:11 +00:00
Ongoing changes.
This commit is contained in:
parent
bccf8cb64f
commit
0b5490a281
9 changed files with 52 additions and 21 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Cosmos.Debug.Kernel;
|
||||||
using Sys = Cosmos.System;
|
using Sys = Cosmos.System;
|
||||||
|
|
||||||
namespace Cosmos.Compiler.Tests.SingleEchoTest
|
namespace Cosmos.Compiler.Tests.SingleEchoTest
|
||||||
|
|
|
||||||
|
|
@ -22,10 +22,10 @@ namespace Cosmos.TestRunner.Core
|
||||||
//engine.RunIL2CPUInProcess = true;
|
//engine.RunIL2CPUInProcess = true;
|
||||||
engine.RunWithGDB = false;
|
engine.RunWithGDB = false;
|
||||||
|
|
||||||
engine.AddKernel(typeof(Cosmos.Compiler.Tests.SimpleWriteLine.Kernel.Kernel).Assembly.Location);
|
//engine.AddKernel(typeof(Cosmos.Compiler.Tests.SimpleWriteLine.Kernel.Kernel).Assembly.Location);
|
||||||
engine.AddKernel(typeof(SimpleStructsAndArraysTest.Kernel).Assembly.Location);
|
//engine.AddKernel(typeof(SimpleStructsAndArraysTest.Kernel).Assembly.Location);
|
||||||
engine.AddKernel(typeof(VGACompilerCrash.Kernel).Assembly.Location);
|
//engine.AddKernel(typeof(VGACompilerCrash.Kernel).Assembly.Location);
|
||||||
//engine.AddKernel(typeof(Cosmos.Compiler.Tests.SingleEchoTest.Kernel).Assembly.Location);
|
engine.AddKernel(typeof(Cosmos.Compiler.Tests.SingleEchoTest.Kernel).Assembly.Location);
|
||||||
|
|
||||||
// known bugs, therefor disabled for now:
|
// known bugs, therefor disabled for now:
|
||||||
//engine.AddKernel(typeof(BoxingTests.Kernel).Assembly.Location);
|
//engine.AddKernel(typeof(BoxingTests.Kernel).Assembly.Location);
|
||||||
|
|
|
||||||
|
|
@ -40,8 +40,8 @@ namespace Cosmos.TestRunner.Core
|
||||||
{
|
{
|
||||||
var xArguments = new[]
|
var xArguments = new[]
|
||||||
{
|
{
|
||||||
"DebugEnabled:True",
|
"DebugEnabled:true",
|
||||||
"StackCorruptionDetectionEnabled:false",
|
"StackCorruptionDetectionEnabled:true",
|
||||||
"DebugMode:Source",
|
"DebugMode:Source",
|
||||||
"TraceAssemblies:",
|
"TraceAssemblies:",
|
||||||
"DebugCom:1",
|
"DebugCom:1",
|
||||||
|
|
|
||||||
|
|
@ -124,11 +124,16 @@ namespace Cosmos.HAL
|
||||||
{
|
{
|
||||||
TextScreen = textScreen;
|
TextScreen = textScreen;
|
||||||
}
|
}
|
||||||
if (keyboard != null)
|
if (keyboard == null)
|
||||||
{
|
{
|
||||||
Keyboard = keyboard;
|
Core.Global.Dbg.Send("No keyboard specified!");
|
||||||
}
|
Keyboard = new PS2Keyboard();
|
||||||
Global.Dbg.Send("Before Core.Global.Init");
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Keyboard = keyboard;
|
||||||
|
}
|
||||||
|
Global.Dbg.Send("Before Core.Global.Init");
|
||||||
Core.Global.Init();
|
Core.Global.Init();
|
||||||
Global.Dbg.Send("Static Devices");
|
Global.Dbg.Send("Static Devices");
|
||||||
InitStaticDevices();
|
InitStaticDevices();
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,13 @@ namespace Cosmos.HAL {
|
||||||
Debugger.DoSend("Skipping creation of key queue!");
|
Debugger.DoSend("Skipping creation of key queue!");
|
||||||
}
|
}
|
||||||
mQueuedKeys = new Queue<KeyEvent>(32);
|
mQueuedKeys = new Queue<KeyEvent>(32);
|
||||||
|
Debugger.DoSend("mQueuedKeys created");
|
||||||
SetKeyLayout(new US_Standard());
|
SetKeyLayout(new US_Standard());
|
||||||
|
Debugger.DoSend("Keylayout set");
|
||||||
Initialize();
|
Initialize();
|
||||||
|
Debugger.DoSend("Initialized");
|
||||||
UpdateLeds();
|
UpdateLeds();
|
||||||
|
Debugger.DoSend("Leds updated");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Cosmos.Common.Extensions;
|
using Cosmos.Common.Extensions;
|
||||||
using Cosmos.Core;
|
using Cosmos.Core;
|
||||||
|
using Cosmos.Debug.Kernel;
|
||||||
|
|
||||||
namespace Cosmos.HAL
|
namespace Cosmos.HAL
|
||||||
{
|
{
|
||||||
|
|
@ -31,15 +32,16 @@ namespace Cosmos.HAL
|
||||||
|
|
||||||
public override void UpdateLeds()
|
public override void UpdateLeds()
|
||||||
{
|
{
|
||||||
IO.Port60.Byte = 0xED;
|
// for now, lets not do this..
|
||||||
while ((new IOPort(0x64).Byte & 2) != 0)
|
//IO.Port60.Byte = 0xED;
|
||||||
{
|
//while ((new IOPort(0x64).Byte & 2) != 0)
|
||||||
}
|
//{
|
||||||
var led_status = (Global.ScrollLock ? 1 : 0) | ((Global.NumLock ? 1 : 0) << 1) | ((Global.CapsLock ? 1 : 0) << 2);
|
//}
|
||||||
IO.Port60.Byte = (byte)led_status;
|
//var led_status = (Global.ScrollLock ? 1 : 0) | ((Global.NumLock ? 1 : 0) << 1) | ((Global.CapsLock ? 1 : 0) << 2);
|
||||||
while ((new IOPort(0x64).Byte & 2) != 0)
|
//IO.Port60.Byte = (byte)led_status;
|
||||||
{
|
//while ((new IOPort(0x64).Byte & 2) != 0)
|
||||||
}
|
//{
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void HandleScancode(byte aScancode, bool aReleased)
|
protected override void HandleScancode(byte aScancode, bool aReleased)
|
||||||
|
|
@ -107,6 +109,10 @@ namespace Cosmos.HAL
|
||||||
|
|
||||||
public bool GetKey(byte aScancode, bool released, out KeyEvent keyInfo)
|
public bool GetKey(byte aScancode, bool released, out KeyEvent keyInfo)
|
||||||
{
|
{
|
||||||
|
if (KeyLayout == null)
|
||||||
|
{
|
||||||
|
Debugger.DoSend("No KeyLayout");
|
||||||
|
}
|
||||||
keyInfo = KeyLayout.ConvertScanCode(aScancode, ControlPressed, ShiftPressed, AltPressed, Global.NumLock, Global.CapsLock, Global.ScrollLock);
|
keyInfo = KeyLayout.ConvertScanCode(aScancode, ControlPressed, ShiftPressed, AltPressed, Global.NumLock, Global.CapsLock, Global.ScrollLock);
|
||||||
return keyInfo != null;
|
return keyInfo != null;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Cosmos.Debug.Kernel;
|
||||||
|
|
||||||
namespace Cosmos.HAL
|
namespace Cosmos.HAL
|
||||||
{
|
{
|
||||||
|
|
@ -37,6 +38,11 @@ namespace Cosmos.HAL
|
||||||
for (var index = 0; index < _keys.Count; index++)
|
for (var index = 0; index < _keys.Count; index++)
|
||||||
{
|
{
|
||||||
var t = _keys[index];
|
var t = _keys[index];
|
||||||
|
if (t == null)
|
||||||
|
{
|
||||||
|
Debugger.DoSend("Key received but item is NULL");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (t.Scancode == scan)
|
if (t.Scancode == scan)
|
||||||
{
|
{
|
||||||
found = true;
|
found = true;
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ namespace Cosmos.IL2CPU.X86.IL
|
||||||
new CPUx86.Pop {DestinationReg = CPUx86.Registers.EDX};
|
new CPUx86.Pop {DestinationReg = CPUx86.Registers.EDX};
|
||||||
// convert to real memory address
|
// convert to real memory address
|
||||||
new CPUx86.Mov { DestinationReg = CPUx86.Registers.EDX, SourceReg = CPUx86.RegistersEnum.EDX, SourceIsIndirect = true };
|
new CPUx86.Mov { DestinationReg = CPUx86.Registers.EDX, SourceReg = CPUx86.RegistersEnum.EDX, SourceIsIndirect = true };
|
||||||
|
|
||||||
new CPUx86.Add {DestinationReg = CPUx86.Registers.EDX, SourceReg = CPUx86.Registers.EAX};
|
new CPUx86.Add {DestinationReg = CPUx86.Registers.EDX, SourceReg = CPUx86.Registers.EAX};
|
||||||
|
|
||||||
var xSizeLeft = aElementSize;
|
var xSizeLeft = aElementSize;
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,19 @@
|
||||||
namespace Cosmos.System
|
using Cosmos.Debug.Kernel;
|
||||||
|
|
||||||
|
namespace Cosmos.System
|
||||||
{
|
{
|
||||||
// This class exists purely for testing purposes.
|
// This class exists purely for testing purposes.
|
||||||
internal static class TestingHelpers
|
internal static class TestingHelpers
|
||||||
{
|
{
|
||||||
internal static void KeyboardAddFakeScanCode(byte aScanCode, bool aReleased)
|
internal static void KeyboardAddFakeScanCode(byte aScanCode, bool aReleased)
|
||||||
{
|
{
|
||||||
|
Debugger.DoSend("Before HandleFakeScanCode");
|
||||||
|
if (HAL.Global.Keyboard == null)
|
||||||
|
{
|
||||||
|
Debugger.DoSend("No Keyboard set!");
|
||||||
|
}
|
||||||
HAL.Global.Keyboard.HandleFakeScanCode(aScanCode, aReleased);
|
HAL.Global.Keyboard.HandleFakeScanCode(aScanCode, aReleased);
|
||||||
|
Debugger.DoSend("After HandleFakeScanCode");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue