Windows XP Pro SP3 Español - tengo el mismo en mi PC de escritorio y en mi notebook, y suelo instalar exactamente los mismos programas. Sin embargo ayer en mi notebook se cambió el layout de teclado e idioma de la consola de DOS por arte de magia!
En el Windows el teclado me queda en español como siempre, pero en una sesión de DOS o cualquier programa de DOS (por ej. el TurboC++) queda en inglés, y en la línea de comandos tiende a escribir en español pero con símbolos extraños (por ej. en vez de ó sale ¾ - onda versi¾n 5.1.2600). Moví todo lo que se me ocurrió en los settings de idioma de Windows pero nada, sólo afecta al entorno Win y no al DOS. Esto pasó de un día para otro sin haber instalado algo en particular.
Haciendo memoria de esos años dorados de Win 3.1/95/98, recordé que pasaba este problema cuando no se seteaba la página de códigos a la 850 que es la que usamos en Español y varios otros idiomas con acentos, en lugar de la 1252 que ocupan los gringos. Había que pasar estas líneas mágicas al AUTOEXEC.BAT y CONFIG.SYS para tener teclado en Español y caracteres correctos.
Código: Seleccionar todo
AUTOEXEC.BAT
mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi)
mode con codepage select=850
keyb sp,,C:\WINDOWS\COMMAND\keyboard.sys
CONFIG.SYS
Device=C:\WINDOWS\COMMAND\display.sys con=(ega,850,2)
Country=034,850,C:\WINDOWS\COMMAND\country.sys
Investigando descubrí que el comando KEYB aún existe en XP pero se llama KB16, y el comando CHCP sirve para cambiar la página de códigos y para ver cuál es la que está activa actualmente.
Efectivamente CHCP me muestra que la codepage en uso es la 1252, y en mi PC de escritorio es la 850. Si ejecuto en el notebook en una sesión de DOS
Código: Seleccionar todo
CHCP 850
KB16 SP,850,C:\Windows\System32\KEYBOARD.SYS


Tío Google me dice que pocos han tenido el mismo problema, y no han logrado encontrar una solución. Recomiendan chequear estas claves de registro:
Código: Seleccionar todo
In system.ini:
[386Enh]
woafont=app850.fon
Ih the registry:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\Codepage
OEMCP "850"
OEMHAL "vga850.fon"
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardwa reProfiles\Current\Software\Fonts
OEMFONTS.FON "vga850.fon"

Como necesito el TurboC++ para los estudios, hice un pequeño archivo .BAT que llama a CHCP y KB16 con los argumentos correctos antes de ejecutar el TurboC++ para así tener el idioma correcto en ese programa y no andar buscando los ( ) { } [ ] # % & ^ * " = < > + ; : \ / ! ¬ | como chimpancé en máquina de escribir, pero a fin de cuentas es una solución parche. Me gustaría solucionar el problema de raíz, sin tener que reinstalar Win
