2010-03-12 8 views

ответ

3

Вы должны написать драйвер VGA первым. И драйвер мыши. И, вероятно, поймать сборщика мусора. Так много сделать.

+0

эй сэр, COSMOS - хороший инструмент для разработки операционной системы. –

1

ДА! вы можете, у меня есть какой-то хороший gui и рабочий драйвер мыши. , так что да, это возможно, но требуется время, и вам нужно знать, что писать и читать, когда вы делаете мышь-драйвер, иначе это возможно.

6

Вот как (с вехой 5, но аналогичной для других версий). Космос делает для вас материал VGA. Он также делает мышь и клавиатуру. Я еще не смог сделать клавиатуру, но у меня есть рабочая мышь (хотя я не мог узнать, как увидеть, если кнопки опущены). Ill покажу вам функции 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, и если кто-нибудь встретит это позже, я хочу оставить способ сделать это по состоянию на 10/12/2015.

Перед тем, как мы начнем 1 ВЫСОКО рекомендуем использовать devkit не userkit. Хотя devkit предназначен для модификации самого Cosmos, вы можете полностью от него отказаться и закрыть окно VS после завершения установки. У devkit есть все функции userkit, но userkit обновляется только раз в месяц или около того, может быть, больше, а devkit обновляется каждые несколько дней с последними исправлениями и функциями. Вы обязательно должны скачать devkit вместо этого, потому что он также имеет большую поддержку.

Хорошо, чтобы получить VGA, откройте новое окно Visual Studio. Создайте новый Class Library и назовите его как хотите.

Перейдите к ссылкам и добавьте ссылку на Cosmos.HAL, Cosmos.Common и Cosmos.System. Вы можете найти их в% AppData% \ Roaming \ Cosmos Kit Пользователь

Перейти в AssemblyInfo.cs и добавить using Cosmos.Common;, а в нижней части добавьте следующую строку: [сборка: Кольцо (Ring.System)]

Хорошо, теперь вам нужно зайти и создать новый класс под названием any.

Наверху добавьте использование Cosmos.HAL и используйте System.

Добавьте две строки:

public static VGAScreen screen = new VGAScreen(); и public static Mouse mi = new Mouse(); экрана Имя и ми все, что вы хотите.

Создать метод Init и Tick, названный любым.

Вот пример Init метод:

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

Теперь в методе Tick, просто добавить любой другой. Все, что вы хотите совершить каждый раз, как миллисекунда или около того. Это может быть, например, рисование мыши или что-то в этом роде. Вы можете найти это в другом месте в Интернете, это немного длинная история.

Там вы идете, теперь у вас работает VGA!

Вы можете установить пиксели с помощью screen.SetPixel320x200x8 (x, y, color);

Применимые цвета варьируются от 0 до 3f. Он следует за стандартными цветами консоли 0-f, но просто добавляет тонну дополнительных опций.

Теперь просто создайте эту dll и верните ее в свою основную ОС. Теперь добавьте методы yourvgaclass.Init к методу BeforeRun в ядре и yourvgaclass.Tick к методу Run в ядре.

+0

Где находится 'AssemblyInfo.cs'? – flash76

 Смежные вопросы

  • Нет связанных вопросов^_^