Ir al contenido principal

This is my blog, more about me at marianoguerra.github.io

🦋 @marianoguerra.org 🐘 @marianoguerra@hachyderm.io 🐦 @warianoguerra

Codigo viejo

este codigo es una partecita de una libreria para manejar VESA en DOS que escribi hace 5 años, esta parte me encanta, porque esa lib esta toda escrita para hacer todo independiente de la resolucion, los bits por pixel y los bancos del modo (una cosa que es una porqueria:

esta parte:


void Video::putPixel( word x , word y , byte red , byte green , byte blue )

{

word color = ( ( word )( red & ( ( 1
color |= ( ( word )( green & ( ( 1
color |= ( ( word )( blue & ( ( 1
long addr = (long)y * vbeModeInfoBlock.BytesPerScanLine + x * (vbeModeInfoBlock.BitsPerPixel >> 3);

setBank((int)(addr >> 16));

*(videoMemory + (addr & 0xFFFF)) = (char)color;

*(videoMemory + (addr & 0xFFFF) + 1 ) = (char)(color >> 8);

}


pone un pixel en la posicion definida con el color definido en la pantalla para cualquier modo de vesa.

C++, 17 años, DOS, Turbo C++ 1.01, que epocas aquellas :P