La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1620 - PROGRAMAR LA TARGETA DE VIDEO EN QBASIC
Autor:  Antonio Gonzalez
Hola programadores del mundo alguien me puede orientar, para saber como puedo sacarle el mejor provecho a mi targeta de video VESA en el lenguaje basic en otras palabras poder aprovechar la gama de colores y resoluciones que me ofece y ademas tambien solicito ayuda para poder bloquear palestas de colores en archivos de captura en pantalla ya que al abrir una imagen gif en qb al capturarla y guardarla, al momento de reabrirla
los colores originales cambian ala paleta por omicion que tiene la funciòn SCREEN 13 de ante mano gracias.

Un Saludo de Soledad, San Luis Potosi Mèxico

  Respuesta:  Jesús Antón Martín
La manera de programar la VESA en QBASIC pasa por escribir mucho ensamblador. Existe, sin embargo una librería llamada QBasic Toolkit, donde vienen las rutinas necesarias para llamar a interrupciones desde QBASIC.

Con estas rutinas, lo que necesitas es esto:

SUB EstableceVESA(modo%)
DIM r AS REGISTERS

´Puedes hacer un chequeo con la función 01
´Mira el documento del estándar VESA
r.AX = &H4F02
r.BX = modo%
Interrupt &H10, r
END SUB

SUB CambiaBancoVESA(banco%)
r.AX = &H4F05
r.BX = 0 ´Número de ventana: A = 0, B = 1
r.DX = banco%
END SUB

SUB PonPixelVESA(x%, y%, color&)
Dir& = (x% + y%* xres) * (numbits DIV 8)
banco% = Dir& DIV &H10000
Dir& = Dir& MOD &H10000
CambiaBancoVESA(banco%)
DEF SEG = &HA0000
POKE Dir&, color& MOD 256
´PARA 16 bits,
´ POKE Dir&, color& MOD 256
´ POKE Dir&+1, (color& DIV 256) MOD 65536
´PARA 24 bits, añadir
´ POKE Dir&+3, (color& DIV) 65536
´PARA 32 bits, ...
DEF SEG
END SUB

´ObtPixel es tremendamente parecido, claro.

Líneas, Círculos, ... Pueden ser creados con PonPixelVESA

Estas rutinas son LLLLLLLEEEEEEENNNNNNNTTTTTTTAAAAAASSSSSS, así que te recomiendo el ensamblador.