SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: kenshin en Sábado 9 de Marzo de 2002, 18:59
-
Alguien puede echarme una mano sobre cómo declarar un puntero a la memoria de video...
El tema es el siguente:
typedef unsigned char uchar;
//ahora el puntero a la memoria de video
//que no funciona:(
uchar *vga_ptr=(uchar *)MK_FP(0xA000,0);
//después cualquier cosa, p.e: pintar de negro toda la pantalla
memset(vga_ptr, 0, 64000);
...el tema es que no sé porqué el puntero debe estar mal direccionado y no consigo hacer esto tan simple.
...luego, se podría aplicar a crear un buffer para almacenar gráficos y después volcarlos a la pantalla, etc...
Please help...GRACIAS!
:D
-
La Declaracion e inicializacion que tienes del puntero es Correcta si has incluido el archivo dos.h, De Tal Forma Que Debes Revizar la Activacion del Modo Grafico
la Cual Dependera del Sistema Operativo. Si es en Ambiente Unix(linux) el Modo Grafico se Activa Con Una Funcion de ioctl.
Tambien puedes Declarla Como:
unsigned char *Dir_Vga = (unsigned char *) 0xA0000000;
Espero Te Sirva la Informacion.
-
Gracias, ya había encontrado la solución del "problema"...
...era simplemente que debía compilar en modo LARGE (para la memoria)...
Un saludo, gracias!
;)
-
Compilar en modo large ?
No seria mejor usar un puntero de tipo far ?
-
Yo he trabajado mucho con esto, y nunca me ha hecho falta compilar en modo large.
Yo declaraba los punteros a la memoria de video como unsigned int, por lo menos así viene en todos los libros.
unsigned int *video = 0xA000;