Se que es algo que queda muy a posteriori en la creación de un sistema operativo pero es bueno tener nociones de como manejar el sistema gráfico del ordenador, es el siguiente paso después del manejo en modo texto.
En el modo texto podemos utilizar o bien las ventajas que nos ofrece la BIOS con sus interrupciones y servicios de interrupción o bien directamente mediante la utilización de puertos y registros de forma que utilicemos un direccionamiento en memoria para poner el contenido gráfico que deseemos.
Pues bien una forma bastante buena de asegurarse el éxito es utilizar algo lo más estandar posible y es donde juega su papel el estándar VESA en sus diferentes versiones.
Os dejaré aquí enlaces a dichas informaciones en diversos sitios, es un tema también de mucho estudio y ensayo pero que puede dar mucha vistosidad a un sistema, pero claro está que es trabajar a un nivel de código laborioso.
http://www.ddj.com/cpp/184403213?pgno=1http://www.hardwarebook.info/VGAEl siguiente enlace es muy interesante puesto que sin tener que ponernos a programar directamente podemos ver el resultado de las explicaciones, muestra algo realmente importante como es el cambio de banco (ver granularidad) y otros aspectos importantes:)
http://www.speccy.org/websromero/articulos/gfx/graf7.htmlAlgo más sobre video:
http://www.stanford.edu/class/cs140/projects/pintos/specs/freevga/home.htmEste enlace lo pongo porque entre otras cosas explica como situar caracteres tipo texto en la pantalla con su caracter/atributo, con la ventaja de que os muestra todos los colores para texto. En definitiva que con la información que os presenta podéis empezar a experimentar con los modos texto, os muestra la interrupción para establecer el modo, los atributos y la localidad de memoria donde situarlos. Los ejemplos en ensamblador no os resultarán muy complejos puesto que prácticamente se corresponden a llamadas a la interrupción 10h, solo tenéis que mirar un poco el comentario o buscar esa interrupción para ver a que se refiere cada registro y para ello solo hay que localizar el servicio concreto de esa interrupción:
http://www.cs.uregina.ca/Links/class-info/250/f06/lab9/index.htmlhttp://oopweb.com/Assembly/Documents/ArtOfAssembly/Volume/Chapter_23/CH23-1.htmlA000 gráficos
B800 texto color
B000 texto monocromo
Dejo el enlace a VESA para los interesados pero que conste que los documentos con especificaciones pueden ser de pago:
http://www.vesa.org/Standards/summaries.htm