2010-03-12 70 views

回答

3

你必须先写VGA驱动程序。和鼠标驱动程序。可能会让垃圾收集器去。需要做的事情还很多。

+0

嘿,先生,是COSMOS是开发操作系统的好工具 – 2015-01-15 15:43:02

1

是的! 你可以,我有一个很好的gui和一个可用的鼠标驱动程序。 所以是的,这是可能的,但是需要时间,并且当你做鼠标驱动程序时,你需要知道要写和读什么,否则,这是可能的。

6

下面是如何(与里程碑5,但其他版本类似)。宇宙为你做VGA的东西。它也做鼠标和键盘。我还没有能够制作键盘,但我有一个工作鼠标(尽管我还没有能够找出如何查看按钮是否关闭)。我会向你展示VGA功能以帮助你开始。首先,你需要这个命名空间:

using Cosmos.Hardware; 

然后,对于住在屏幕变量添加这个类级别的变量:

VGAScreen screen: 

然后,对其进行初始化,该代码添加到您的BeforeRun ()方法:

screen = new VGAScreen(); 
screen.SetMode320x200x8(); 
screen.Clear(0); 

最后,您可以设置像素的颜色搭配:

screen.SetPixel320x200x8(uint x, uint y, uint c); 

您设置x任意y和颜色c。颜色采用256色格式。数学涉及到形状。

1

我是一个大COSMOS的家伙,如果任何人遇到这个后来我想离开的方式做到2015年10月12日。

在我们开始之前我HIGHLY推荐使用devkit而不是userkit。虽然devkit是为修改Cosmos本身而设计的,但您可以完全避开它,并在完成安装后关闭VS窗口。 devkit有所有 userkit的功能,但userkit只更新一次,每月更新一次,也许更多,并且devkit每隔几天更新一次最新的错误修复和功能。你一定要下载开发包,因为它的支持也最多。

好吧,为了得到VGA,打开一个新的Visual Studio窗口。创建一个新的Class Library并将其命名为任何你想要的。

转到参考文献并添加对Cosmos.HAL,Cosmos.Common和Cosmos.System的参考。你可以在其中找到%APPDATA%\漫游\宇宙用户套件

进入的AssemblyInfo.cs,并添加using Cosmos.Common;,并在底部添加下面一行: [装配:环(Ring.System)

好吧,现在您需要进入并创建一个名为whatever的新类。

在顶部,添加一个使用Cosmos.HAL并使用系统。

添加两行:

public static VGAScreen screen = new VGAScreen();public static Mouse mi = new Mouse();名称屏幕和MI任何你想要的。

创建一个名为whatever的Init和Tick方法。

下面是一个例子初始化方法:

public static void InitVGA() { 
    //Make SURE you have this exact line or else it won't work! Any size other than 320x200 is broken, and 8-bit is the highest VGA compatible color depth. 
    screen.SetGraphicsMode(VGAScreen.ScreenSize.Size320x200, VGAScreen.ColorDepth.BitDepth8); 
    //There's a bug currently where only 6-bit color is supported with 8-bit. 0x3f is pure white. 
    screen.Clear(0x3f); 

    //mi.Initialize(320, 200); 
} 

现在在蜱方法,只需添加什么。任何你想要发生的每一个像毫秒左右的事情。它可能就像绘制鼠标或其他东西一样。你可以在互联网上的其他地方找到,这是一个漫长的故事。

你走了,现在你已经在使用VGA了!您可以使用screen.SetPixel320x200x8(x,y,color)设置像素;您可以使用screen.SetPixel320x200x8(x,y,color)设置像素。

适用颜色范围从0-3f。它遵循通用控制台颜色0-f,但只是增加了更多的选项。

现在,只需构建此dll并将其引入您的主操作系统。现在将方法yourvgaclass.Init添加到内核中的BeforeRun方法中,并将yourvgaclass.Tick添加到内核中的Run方法中。

+0

'AssemblyInfo.cs'在哪里? – flash76 2017-11-20 20:32:32