2010-03-12 34 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