Mensajepor na_th_an » 22 Feb 2014, 12:54
Veamos. La CGA mapea 16Kb de memoria en el segmento $B000 para los modos gráficos. Sin embargo, para acceder al modo de texto, la memoria de la CGA está mapeada en $B800 (32Kb más adelante en el mapa de memoria). Sin embargo, se trata de los mismos 16Kb.
Por lo que veo, los modos de video funcionan correctamente. También, según has dicho, si inicias EDIT de MSDOS se ve el fondo azul correctamente sin cosas raras, por lo que yo diría que los 16Kb de VRAM funcionan perfectamente.
En los modos de texto, la CGA consulta una ROM de 2Kb con los glifos (8 bits por glifo, 256 caracteres). Para saber qué dibujar, mapea empleando el byte que hay en las posiciones pares de la memoria de video. Eso le da espacio para las 8 páginas de texto. Los atributos van intercalados en las posiciones impares, por lo que si los atributos salen bien (y además, los modos gráficos funcionan) la VRAM está definitivamente bien.
El problema puede estar en la ROM donde están los caracteres, o en el chip generador de caracteres, más bien, ya que la ROM de caracteres se emplea para pintarlos en modo gráfico, y ahí sí que se te ven bien.
Yo diría, pues, que el chip que se encarga de componer un caracter en modo texto según el valor de VRAM y los datos de la ROM está fallando, o la conexión del mismo con la ROM de los caracteres tiene pistas chungas.
Si no lo pudieses arreglar, a unas malas, podrías seguir usando el ordenador, al menos para jugar. Se puede hacer un pequeño archivo .COM que pase al modo 5h, que es el de 640x200 monocromo, y luego salga sin volver al modo de texto. Al menos así podrías ver qué estás escribiendo.