Basic - Dibujar altas resoluciones

 
Vista:

Dibujar altas resoluciones

Publicado por Gustavo (2 intervenciones) el 14/02/2004 01:20:17
Mucho les agradeceré si alguien me puede decir cómo alcanzar altas resoluciones al programar en QuickBasic 4.5, ya que para realizar dibujos o trazos se utiliza la instrucción SCREEN, y ya sea que con instrucciones como LINE, CIRCLE, PAINT, PSET o DRAW realice mis trazos, pero la instrucción tiene una limitación, la mayor resolución que alcanzo es en el modo (12) que son 640x480 puntos a 16 colores, o bien, en el modo (13) que son 320x240 puntos a 256 colores. Así que, quiero utilizar las instrucciones LINE, CIRCLE, PAINT, PSET y DRAW pero en resoluciones más altas, por ejemplo, 1280x1024puntos a 32bits de colores. Tengo entendido que hay librerías del tipo VESA pero quisiera prescindir de ellas y acceder de manera más directa al hardware de vídeo. O que también se puede acceder a través de interrupciones. Cualquier información es bienvenida.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Dibujar altas resoluciones

Publicado por __eqo__ (60 intervenciones) el 14/02/2004 09:00:11
'encontré esta informacion, espero que te sirva y
'que consigas lo que buscas, no he probado estas interrupciones
'ten buena suerte

'________________________________________________________________
'Subject: VGA/SVGA INTERRUPTS_____________Date: 03-03-96 (20:38)
'Author: Mike Huff________________________Code: Text
'Origin: FidoNet QUIK_BAS Echo____________Packet: FAQS.ABC
'________________________________________________________________
'> inreg.ax = &H1C ' Sets 640X480X256 mode
'> CALL INTERRUPT(&H10, inreg, outreg)

This routine doesn't work so great on my machine (or at least my
Trident VESA card.) You used the wrong value for the AX register.
Here's a list that should work on any VGA/SVGA machine:

AX______Resolution______Text_H/W_________Segment
_______________________________________________________
5Ch for 640x400x256_____(80x25)__________A000h
5Dh for 640x480x256_____(80x30)__________A000h
6Ch for 640x480x16M_____(80x30)__________A000h
5Bh for 800x600x16______(100x75)_________A000h
5Eh for 800x600x256_____(100x75)_________A000h
5Fh for 1024x768x16_____(128x48)_________A000h
62h for 1024x768x256____(128x48)_________A000h
63h for 1280x1024x16____(160x64)_________A000h
64h for 1280x1024x256___(160x64)_________A000h

Some of the higher res or color modes may not work on every
video card. You should also use direct memory writes instead
of the extremely slow BIOS "PSET" routines. Here's an example
in case you don't know:

DEF SEG = &HA000
POKE (Xmax& * Y& + X&), TheColorYaWant%
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar