7.1.2a El teclado en DOS / Windows
§1 Generalidades
En MS-DOS, el fichero de definición del teclado está contenido el fichero KEYBOARD.SYS. A partir de MS-DOS 6.2 se incluyó un segundo fichero, KEYBRD2.SYS, que ofrece soporte para los teclados que no habían sido incluidos en el anterior. A pesar de lo que pudiera parecer por su nombre, el fichero KEYBOARD.SYS no es un controlador de dispositivo, sino un fichero que contiene la plantilla de códigos de teclas para cada país.
§2 Cambiar idioma del teclado en MS-DOS
En MS DOS, el cambio de idioma se realiza mediante el programa KEYB.COM, que puede ser invocado desde el "Shell" del DOS o desde el fichero CONFIG.SYS; en el primer caso se suele utilizar una línea en el fichero de configuración AUTOEXEC.BAT. La sintaxis es la siguiente:
- Desde el intérprete de comandos ("Shell") o en el fichero AUTOEXEC.BAT:
KEYB [xx[,[yyy][,[unidad:][ruta]nombrearchivo]]] [/E] [/ID:nnn]
- En el archivo CONFIG.SYS, utilice la sintaxis siguiente:
INSTALL=[[unidad-dos:]ruta-dos]KEYB.COM [xx[,[yyy][,[unidad:][ruta]nombrearchivo]]] [/E] [/ID:nnn]
Los parámetros y modificadores tienen el significado siguiente:
- xx Código alfabético (dos letras) que especifica una distribución de teclado (país o idioma). En la tabla que sigue encontrará una lista de valores válidos para este parámetro.
- yyy Código numérico que especifica el juego de caracteres (página de códigos). En la tabla incluida al final podrá consultar una lista de valores válidos para este parámetro. Si no especifica este valor, KEYB usará el juego de caracteres actual.
- [unidad:][ruta]nombrearchivo Especifica la ubicación y nombre del archivo de definición del teclado. El archivo predeterminado es KEYBOARD.SYS. Si este fichero se encuentra en un directorio incluido en la ruta por defecto (path), no es necesario especificar estos parámetros.
- [unidad-dos:]ruta-dos Especifica la ubicación del archivo KEYB.COM.
- /E Especifica que está instalado un teclado extendido. Hay que utilizar este modificador si va a usar un teclado de este tipo con un equipo 8086 (PC XT) [2].
- /ID:nnn Es un código numérico que especifica el teclado en uso. Este modificador sólo se requiere para tres países (Francia, Italia y Reino Unido) que tienen más de una configuración de teclado para el mismo idioma.
País o idioma |
xx | yyy | nnn |
Alemania | gr | 850, 437 | |
Bélgica | be | 850, 437 | |
Brasil | br | 850, 437 | |
Checoslovaquia (checo) | cz | 852, 850 | |
Checoslovaquia (eslovaco) | sl | 852, 850 | |
Dinamarca | dk | 850, 865 | |
España | sp | 850, 437 | |
Estados Unidos | us | 850, 437 | |
Finlandia | su | 850, 437 | |
Francés canadiense | cf | 850, 863 | |
Francia | fr | 850, 437 | 120, 189 |
Hungría | hu | 852, 850 | |
Italia | it | 850, 437 | 141, 142 |
Latinoamérica | la | 850, 437 | |
Noruega | no | 850, 865 | |
Países Bajos | nl | 850, 437 | |
Polonia | pl | 852, 850 | |
Portugal | po | 850, 860 | |
Reino Unido | uk | 850, 437 | 166, 168 |
Suecia | sv | 850, 437 | |
Suiza (francés) | sf | 850, 437 | |
Suiza (alemán) | sg | 850, 437 | |
Yugoslavia | yu | 852, 850 |
La tabla adjunta muestra los valores aceptados para xx, yyy y nnn, para cada país o idioma incluido en KEYBOARD.SYS:
Ejemplo: Para usar un teclado alemán si su archivo KEYBOARD.SYS está en el directorio DOS de la unidad C, escribiría el siguiente comando:
keyb gr,,c:\dos\keyboard.sys
Códigos de salida: Los códigos de salida del programa KEYB.COM son los siguientes:
0 El archivo de definición de teclado se cargó con éxito.
1 Se usó un código de teclado, juego de caracteres o sintaxis no válido.
2 El archivo de definición de teclado falta o es incorrecto.
4 Se produjo un error de comunicación con el teclado o el monitor.
5 El juego de caracteres solicitado no ha sido preparado.
Estas condiciones de error pueden ser controladas en el fichero autoexec.bat mediante una secuencia de órdenes if errorlevel colocadas después de la sentencia tal como se muestra en el ejemplo:
keyb sp,,C:\DOS\keyboard.sys
if errorlevel 5 goto Error5
if errorlevel 4 goto Error4
if errorlevel 2 goto Error2
if errorlevel 1 goto Error1
echo OK página de códigos cargada con éxito
goto FIN
:Error5
echo Error: El juego de caracteres no ha sido preparado
goto FIN
:Error4
echo Error con el teclado o monitor
...
Observe que las declaraciones if errorlevel
aparecen en orden decreciente, ya que MS DOS considera que
la declaración IF es cierta si el parámetro ERRORLEVEL devuelto por KEYB.COM
es mayor o igual que el parámetro especificado en el comando IF.
Además del programa KEYB.COM, el controlador ANSI.SYS, que se carga en el fichero de configuración CONFIG.SYS, permite modificar indiviualmente una tecla, de forma que responda con un código determinado.
Nota: El soporte para idiomas ofrecido por MS DOS es un sistema enrevesado y oscuro que utiliza seis tipos de órdenes!!. Es seguramente uno de los mejores ejemplos de las chapuzas que pueden realizar los programadores [1] para amargar la vida a la gente normal.
§3 Cambiar idioma del teclado en Windows
Por su parte, el SO Windows permite remapear los símbolos correspondientes a cada tecla (cambiar el "idioma") de forma muy sencilla. Menú de inicio configuración Panel de Control Teclado Seleccionar pestaña "Idioma".
Aparece un cuadro de diálogo en el que se pueden agregar, seleccionar y quitar idiomas; se puede seleccionar el idioma predeterminado (el que aparecerá por defecto al arrancar el Sistema); habilitar un indicador en la barra de tareas (un icono junto al reloj). Muy útil para cambiar el sentido de una tecla en medio de un documento o entrada de datos, y seleccionar una combinación de teclas que permita cambiar el idioma sin acudir al ratón.
[1] Para ser honestos, en este caso, más que los "Programadores" podríamos decir Diseñadores de Sistemas.
[2] Una curiosidad histórica que no tiene sentido a menos que se trabaje de conservador en algún museo de hardware.