Autor Tema: Añadiendo funcionalidad gráfica  (Leído 1090 veces)

Desconectado JMA_SP

  • Moderator
  • Miembro Imprescindible
  • *****
  • Mensajes: 752
    • Ver Perfil
Añadiendo funcionalidad gráfica
« en: Enero 04, 2009, 03:31:45 am »
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=1
http://www.hardwarebook.info/VGA

El 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.html

Algo más sobre video:

http://www.stanford.edu/class/cs140/projects/pintos/specs/freevga/home.htm

Este 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.html
http://oopweb.com/Assembly/Documents/ArtOfAssembly/Volume/Chapter_23/CH23-1.html
A000 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
« última modificación: Enero 04, 2009, 04:19:40 am por JMA_SP »

Desconectado HQH

  • Administrator
  • Miembro Imprescindible
  • *****
  • Mensajes: 1.856
    • Ver Perfil
Re: Añadiendo funcionalidad gráfica
« Respuesta #1 en: Enero 04, 2009, 02:35:01 pm »
Muy interesante para poder hacer el driver gráfico, una de las primeras cosas a hacer para poder hacer debug y poder probar cosas.

A tener en cuenta en la retomación del proyecto.