Lenguaje ensamblador

Páginas: 9 (2208 palabras) Publicado: 15 de abril de 2013
MODO DE VIDEO 13H


    Estos números representan uno de los modos de video más utilizado para la programación de videojuegos. Cada modo de video tiene dos características, primero la resolución o número de pixels horizontales y verticales, 320 y 200 en nuestro caso, y segundo el número de colores que pueden aparecer simultáneamente en pantalla, 256 para nosotros. Por píxel se entiendemínimo elemento (punto) que se puede representar en pantalla.
    En el mercado existen varios tipos de tarjetas de video: EGA, VGA y Super-VGA. La primera ya esta obsoleta y la última es nuestros propósitos inmediatos. Comenzaremos con el modo 13h de la VGA para realizar los programas y no otros modos con más resolución como el 0Eh (640x200), el 10h (640x350) o el 12h (640x480), debido alnúmero de colores. Estos tres modos que hemos nombrado tienen un máximo de 16 colores simultáneos en pantalla y como ya hemos dicho, el modo 13h cuenta con 256 colores, y preferimos tener más colores en pantalla a consta de perder resolución. Además otra ventaja adicional de este modo es la organización de su memoria de video, que es muy sencilla como veremos más adelante.
    Algunos lenguajescomo C y Pascal suministran unos controladores e instrucciones especiales para trabajar en modo gráfico, pero nosotros en la medida de lo posible evitaremos el uso de estos servicios, ya que además de tener que cargar con los controladores gráficos ,dígase BGI o como sea, suelen ser bastante lentos derivadas del hecho de ser una "librería gráfica no especializada". Por otra parte, su principalventaja era que nos permitía trabajar en cualquier modo de video sin apenas trabajo de creación de nuestra parte.
    Si pretendemos usar los distintos modos gráficos de que disponemos, nos vemos en la necesidad de crear nuestro propio set de funciones ( putpixel(),getpixel(),line(),etc... ) para poder trabajar en el modo gráfico que deseemos. El problema es que cada modo de video seprograma de una manera. De los (en principio) 19 estándar existentes se gestiona de una forma diferente, por lo que tendremos que crear una librería especializada para cada uno de ellos, aprovechando las ventajas que ese modo nos proporciona para obtener un código mas rápido y optimizado. Por supuesto, pueden agruparse estas librerías en una sola, para crear una librería no especializada, pero muchomás que cualquier BGI, y permitir en nuestros programas que el usuario elija el modo de video en el que desea trabajar, tal como lo hacen Quake, Windows y la mayoría de los juegos profesionales actuales.
 
El modo de video 320X200X256
    Para programar gráficos en este modo de video, principalmente hemos de saber hacer tres cosas:
1)    Inicializar el modo de video 320X200 ó 13h.2)    Comprender el modo de direccionamiento lineal del 13h y su organización interna
3)    Realizar rutinas gráficas para dicho modo.
    Veamos primero cómo inicializar cualquier modo de vide (entre ellos el 13h), utilizando los servicios disponibles en la ROM-BIOS del PC
La BIOS del PC
    La ROM-BIOS del PC es una zona de memoria no modificable, en la cual disponemos de una serie defunciones y servicios para su uso por el sistema operativo ( utilizables por el usuario ), que gestionan accesos a disco, control de la tarjeta de video, gestión de impresora, etc. Estas funciones son las llamadas "interrupciones de software" y proporcionan al programador todo el control sobre el hardware del PC.
    La manera de llamar a una de esas interrupciones, en lenguaje assembler,consiste en preparar todos los parámetros que ésta requiera (cargar los registros del PC, como AX, BX, CX, con los valores adecuados) y ejecutar la llamada a la interrupción. Supongamos que queremos iniciar el 320x200. Cargamos los registros como se solicita y efectuamos la llamada:
                                                    mov ah,0                    /* AH=0 :  Init VideoMode */...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Lenguaje Ensamblador
  • Lenguaje ensamblador
  • Lenguaje ensamblador
  • Lenguaje ensamblador
  • Lenguaje ensamblador
  • Lenguaje ensamblador
  • Lenguaje ensamblador
  • Qué es el lenguaje ensamblador

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS