Tienes que utilizar la memoria de video... ¿cómo hacerlo?
Los punteros son la respuesta a tu pregunta.
Cada elemento de tu puntero es una posición en la pantalla.
¿Cómo utilizarlo?
Debes declarar el puntero como char de esta manera:
char *p;
Justo después de las declaraciones asignarle la dirección de la memoria de video de esta manera.
p = (unsigned char far *)0xB800000;
Con esto ya tienes el puntero señalando a la primera posición de la memoria de video.
Ahora viene lo más importante... puedes asignarle un valor de tipo char a ese puntero y también puedes asignarle un atributo( color , parpadeo, intensidad....) ¿Cómo?
Si se supone que estamos situados en la primera posición del puntero y le asignamos una letra, por ejemplo, 'A', al compilar nos saldrá una 'A' en la primera fila y columna de la pantalla...
Si avanzamos el puntero con *(p++) y repetimos la operación, entonces estaremos accediendo al atributo de esa celda... si le asignamos un número la letra cambiará de atributo.
Si volvemos a avanzar entonces nos colocaremos encima del siguiente caracter de la pantalla...
Puedes inventarte tu propia fórmula para acceder a un lugar concreto de la pantalla y cambiarle el atributo...
De todas maneras, yo te puedo proporcinar una función que lo hace....
Si estás interesado o tienes alguna duda sólo tienes que escribirme...