From 2d21791c66f7e00a816e34a00c472f8b471c7955 Mon Sep 17 00:00:00 2001 From: Siaranite Date: Sun, 1 Apr 2018 15:58:58 +0100 Subject: [PATCH] Return to text mode fixed for VMWare --- Demos/CosmosGraphicSubsystem/Kernel.cs | 6 +++--- source/Cosmos.HAL2/Drivers/PCI/Video/VMWareSVGAII.cs | 5 +++++ source/Cosmos.System2/Graphics/SVGAIIScreen.cs | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Demos/CosmosGraphicSubsystem/Kernel.cs b/Demos/CosmosGraphicSubsystem/Kernel.cs index 31f50c527..7ddb1bcff 100644 --- a/Demos/CosmosGraphicSubsystem/Kernel.cs +++ b/Demos/CosmosGraphicSubsystem/Kernel.cs @@ -72,18 +72,18 @@ namespace Cosmos_Graphic_Subsytem * canvas.DrawString(pen, "Please press any key to continue the Demo..."); */ Console.ReadKey(); - /* + // Throws a NotImplementedException in VMWare, // due to being unable to escape from the clutches of the SVGA II driver... // // Probably best to leave this commented out until it can work in VMWare as well - + canvas.Clear(); canvas.Disable(); Console.Clear(); Console.WriteLine("If it worked, you've successfully returned back to standard VGA Text Mode!"); Console.WriteLine("Let's try returning back to CGS mode... Press any key!"); Console.ReadKey(true); - */ + /* Let's try to change mode...*/ canvas.Mode = new Mode(1024, 768, ColorDepth.ColorDepth32); diff --git a/source/Cosmos.HAL2/Drivers/PCI/Video/VMWareSVGAII.cs b/source/Cosmos.HAL2/Drivers/PCI/Video/VMWareSVGAII.cs index 00a75ac88..8977edd83 100644 --- a/source/Cosmos.HAL2/Drivers/PCI/Video/VMWareSVGAII.cs +++ b/source/Cosmos.HAL2/Drivers/PCI/Video/VMWareSVGAII.cs @@ -333,6 +333,11 @@ namespace Cosmos.HAL.Drivers.PCI.Video WaitForFifo(); } + public void Disable() + { + WriteRegister(Register.Enable, 0); + } + public void SetCursor(bool visible, uint x, uint y) { WriteRegister(Register.CursorID, 1); diff --git a/source/Cosmos.System2/Graphics/SVGAIIScreen.cs b/source/Cosmos.System2/Graphics/SVGAIIScreen.cs index 0f8e7e89d..068676567 100644 --- a/source/Cosmos.System2/Graphics/SVGAIIScreen.cs +++ b/source/Cosmos.System2/Graphics/SVGAIIScreen.cs @@ -9,7 +9,7 @@ namespace Cosmos.System.Graphics { public override void Disable() { - throw new NotImplementedException(); + xSVGAIIDriver.Disable(); } public VMWareSVGAII xSVGAIIDriver;