En informática, una página de códigos de hardware ( HWCP ) se refiere a una página de códigos compatible de forma nativa con un dispositivo de hardware, como un adaptador de pantalla o una impresora . Los glifos para presentar los caracteres se almacenan en la memoria de solo lectura residente del generador de caracteres alfanuméricos (como ROM o flash) y, por lo tanto, no son modificables por el usuario. [1] [2] [3] Están disponibles para su uso por parte del sistema sin tener que cargar primero ninguna definición de fuente en el dispositivo. Los mensajes de inicio emitidos por el BIOS del sistema de una PC o mostrados por un sistema operativo antes de inicializar su propia lógica de cambio de página de códigos y administración de fuentes y antes de cambiar al modo gráfico se muestran en la página de códigos de hardware predeterminada de una computadora .
En los PC norteamericanos compatibles con IBM , la página de códigos de hardware del adaptador de pantalla es típicamente la página de códigos 437. [ 4] Sin embargo, varias máquinas portátiles [5] [6] [7] así como PC de Europa (oriental), árabes, de Oriente Medio y asiáticos usaban una serie de otras páginas de códigos como su página de códigos de hardware, [1] incluyendo la página de códigos 100 ("hebreo"), [8] 151 ("árabe nafitha"), [9] 667 (" mazovia "), [1] [10] 737 ("griego"), 850 ("multilingüe"), [7] [nb 1] codificaciones como " Roman-8 ", [5] [6] " Kamenický ", [1] [10] [11] " KOI-8 ", " MIK ", [10] y otras. La mayoría de los adaptadores de pantalla admiten solo una única página de códigos de hardware de 8 bits. [1] Los mapas de bits se almacenaban a menudo en una EPROM [12] [13] [4] en un zócalo DIP . [4] Como máximo, la página de códigos de hardware que se iba a activar era seleccionable por el usuario a través de puentes , [14] configuración de EEPROM [5] [6] o configuración de CMOS . [15] Sin embargo, algunos de los adaptadores de pantalla diseñados para PC de Europa del Este, árabes y hebreos admitían múltiples páginas de códigos de hardware conmutables por software, también denominadas páginas de fuentes , [1] seleccionables a través de puertos de E/S [4] o funciones BIOS adicionales. [12] [13]
En contraste con esto, las impresoras frecuentemente admiten varios conjuntos de caracteres conmutables por el usuario, a menudo incluyendo varias variantes de los conjuntos de caracteres ISO/IEC 646 de 7 bits , como la página de códigos 367 (" ISO/IEC 646-US / ASCII " [1] ), a veces también un par de páginas de códigos de 8 bits como la página de códigos 437 , [10] [16] [17] 850 , [10] [ 16] [17] 851 , [ 10 ] 852 , [10] [18] 853 , [ 19 ] 855 , [10] [ 18 ] 857 , [19] 860 , [10] [16] [17] 861 , [17] 863 , [10] [ 16] [17] 865 , [10] [16] [17] y 866 . [10] [18] [20] [21] Las impresoras para los mercados de Europa del Este o Oriente Medio a veces admiten otras páginas de códigos de hardware específicas de la configuración regional entre las que elegir. Se pueden seleccionar a través de interruptores DIP o menús de configuración en la impresora, o mediante secuencias de escape específicas . [1] [nb 2]
Cuando los sistemas operativos inicializan su lógica de cambio de página de códigos, necesitan saber, pero no tienen medios para determinar por sí mismos, la página de códigos de hardware activa previamente. Por lo tanto, para que el cambio de página de códigos funcione correctamente, es necesario especificar la página de códigos de hardware. [1] [22] [23] [24]
En DOS y Windows 9x, esto se logra especificando la página de códigos de hardware como parámetro (hwcp) para los controladores de dispositivo DISPLAY.SYS y PRINTER.SYS en CONFIG.SYS :
DEVICE=…\DISPLAY.SYS CON=(type,hwcp,n|(n,m))
[1] [2] [22] [23] [24] [25] [26]DEVICE=…\PRINTER.SYS PRN=(type,hwcp,n)
[1] [22] [23] [24] [25] [26]Si se admiten varias páginas de códigos de hardware en problemas OEM, la primera página de códigos de hardware (hwcp1) de la lista especifica la página de códigos de hardware predeterminada:
DEVICE=…\DISPLAY.SYS CON=(type,(hwcp1,hwcp2,…),n|(n,m))
[9]DEVICE=…\PRINTER.SYS PRN=(type,(hwcp1,hwcp2,…),n)
[9]Si no se especifica ninguna página de códigos de hardware, estos controladores toman como predeterminado un número de página de códigos ficticio 999 [1] [23] [24] o asumen que la página de códigos de hardware es igual a la página de códigos principal (la primera página de códigos listada en los archivos COUNTRY.SYS para un país en particular [27] con el código de país especificado en la directiva CONFIG.SYS COUNTRY o asumido como el predeterminado interno del sistema operativo, generalmente 1 (EE. UU.) en las versiones occidentales de DOS). [1] En muchos países de habla inglesa, la página de códigos principal es 437 (fe en EE. UU.) u 850 (fe en el Reino Unido, Irlanda y Canadá), [23] [24] de modo que, sin especificar una página de códigos diferente, el sistema a menudo asumiría que una de estas es también la página de códigos de hardware predeterminada del dispositivo correspondiente. [1]
Si una página de códigos de hardware no coincide con una de aquellas con asignaciones de páginas de códigos oficiales, se podría especificar un número arbitrario del rango 57344–61439 (E000h–EFFFh) para páginas de códigos definibles por el usuario o 65280–65533 (FF00h–FFFDh) para páginas de códigos de uso privado según IBM CDRA para brindar al sistema operativo un "identificador" no conflictivo para seleccionar esa página de códigos.
Los MS-DOS árabes y hebreos no utilizan DISPLAY.SYS ni PRINTER.SYS, pero proporcionan funciones similares utilizando ARABIC.COM, HEBREW.COM y SK_HGC.COM. [9]
Las páginas de códigos de hardware también son páginas de códigos OEM . La designación "OEM", de " fabricante de equipos originales ", indica que el fabricante podría cambiar el conjunto de caracteres para adaptarse a los distintos mercados. [28] [29]
Sin embargo, las páginas de códigos OEM no residen necesariamente en la ROM, sino que incluyen las llamadas páginas de códigos preparadas, [2] [25] (también conocidas como conjuntos de caracteres descargables o fuentes descargables ), conjuntos de caracteres cargados como fuentes rasterizadas en la RAM de fuentes de adaptadores de pantalla adecuados (como Sirius 1 / Victor 9000 , [30] NEC APC , [31] HP 100LX / 200LX / 700LX , [15] BoB Color Adapter de Persyst , [32] HGC + de Hercules , [33] [13] [34] InColor [33] [35] y Network Plus [36] [37] con RAMFONT , y MCGA de IBM , [33] [38] [13] EGA , [38] [13] VGA , [38] [13] etc.) e impresoras también. [39] [40] [41] [42] [43] Por lo tanto, el grupo de páginas de códigos OEM es un superconjunto de páginas de códigos de hardware.
ESC R (n)
La […] página de códigos del sistema activa […] a veces también llamada página de códigos global […] es la página de códigos actualmente en uso para el núcleo DOS , por ejemplo, el orden de intercalación y otras tablas I18N dependen de esta página de códigos. Si bien en la mayoría de los casos la página de códigos del sistema refleja la página de códigos utilizada para dispositivos como la consola (DISPLAY.SYS), impresoras (PRINTER.SYS) y el teclado ( KEYB.COM ), esto no es un requisito ya que existen medios para cambiar las páginas de códigos de dispositivos individuales sin cambiar la página de códigos del sistema (por ejemplo, usando MODE ). Además, al tratar con problemas de NLS , es importante distinguir entre la página de códigos activa actualmente, la página de códigos de hardware y la página de códigos principal de cualquier dispositivo o sistema. La página de códigos de hardware es la página de códigos predeterminada que admite un dispositivo después de la inicialización del hardware. Normalmente, el valor predeterminado es 437 para la consola, pero algunos clones europeos tienen 850 almacenado en las ROM de fuentes de video, y me han dicho que algunas tarjetas CGA y MDA checas tenían la página de códigos Kamenicky 867 (también conocida como página de códigos Wordperfect 895) almacenada en sus ROM. La mayoría de las impresoras tienen como valor predeterminado 367 ( ISO-646-US de 7 bits) o 437 al encenderse, y la página de códigos predeterminada del sistema, o global, siempre es 437 en DR-DOS […] pero en MS-DOS / PC DOS refleja la entrada de la página de códigos en COUNTRY =country,codepage,filespec donde debe ser una de las páginas de códigos válidas para el país dado según COUNTRY.SYS filespec - esto es 437 (u 850 en sistemas más nuevos) en la mayoría de los casos, pero no necesariamente. El país predeterminado es 1 (EE. UU.), la especificación de archivo predeterminada es "\COUNTRY.SYS", y si no se encuentra ninguna especificación de archivo, el sistema funcionará con los datos preinicializados estáticamente en el núcleo, que son los datos de EE. UU. en la mayoría de los casos. Si no se proporciona ninguna página de códigos con COUNTRY, el BIOS de DOS buscará la primera entrada de página de códigos para un país determinado (o 1), esto se llama página de códigos principal. El valor de la página de códigos 0 se utiliza internamente para recuperar esta página de códigos y para los analizadores de archivos COUNTRY.SYS en el BIOS DOS y NLSFUNC., un valor de página de códigos de cero significa "coincidir con cualquier página de códigos, lo que aparezca primero para el código de país dado". Por lo tanto, depende del orden de las entradas de la página de códigos en el archivo COUNTRY.SYS si el sistema utilizará por defecto 437, 850 u otro. […] Sin embargo, algunas tarjetas HGC y CGA árabes y hebreas tienen múltiples fuentes de hardware, llamadas páginas de fuentes, […] de modo que un dispositivo puede admitir múltiples páginas de códigos de hardware al mismo tiempo. Las funciones de página de fuentes correspondientes son INT 2Fh/AD41h e INT 2Fh/AD42h. […] COUNTRY.SYS y KEYBOARD.SYS contienen solo dos entradas de página de códigos para un país determinado en las versiones occidentales de DOS. (En las ediciones árabe y hebrea puede haber hasta 8 páginas de códigos para un país […]) […] Cuando se especifica una línea como: DEVICE =…\display.sys con=(ega,437,1) […] se le dice a DISPLAY.SYS que se debe asumir que 437 es la página de códigos de hardware del adaptador de pantalla. Es necesario que DISPLAY.SYS lo sepa porque usará mecanismos diferentes para cambiar a las páginas de códigos preparadas por software y a la página de códigos de hardware, y no hay forma de recuperar la información sobre la página de códigos de hardware por sí mismo. Cuando la página de códigos solicitada es igual a la página de códigos de hardware declarada aquí, DISPLAY.SYS usará el método para cambiar a la página de códigos de hardware; de lo contrario, intentará buscar la información de la fuente en su búfer interno. […](NB. Basado en la publicación fd-dev [1].)
[…] La lectura desde el puerto 03BAh devuelve sincronización vertical en el bit 7 y una identificación de tarjeta en los bits 6-4: 000: Hercules, 001: Hercules Plus, 101: Hercules InColor, 111: Clon desconocido […] Una tarjeta […] que parece ser un clon de Hercules de origen europeo del este, tiene una capacidad adicional: dos fuentes ROM, seleccionables en el software. Estas opciones se controlan de manera similar a otras funciones extendidas en Hercules: el bit 2 del puerto 3BFh debe configurarse para habilitar la función y, luego, el bit 4 del puerto 3B8h selecciona qué fuente usar. El ID de la tarjeta en los bits 6-4 del puerto 03BAh tiene los tres bits configurados. […]
El
conjunto de caracteres
de HP 95LX es equivalente a
la página de códigos 850
, el
conjunto de caracteres multilingües
de IBM PC . (Tenga en cuenta que su HP 95LX contiene
MS-DOS 3.22
, que no admite
el cambio de página de códigos
). Todas las aplicaciones de HP 95LX utilizan este conjunto excepto
1-2-3
, que utiliza
LICS
, el
Lotus International Character Set
. La mayoría de los caracteres LICS están incluidos en la página de códigos 850; los pocos que no lo son no se mostrarán […] Si su HP 95LX no puede mostrar […] o si su impresora no puede imprimir un carácter LICS, la HP 95LX utiliza una presentación alternativa para ese carácter […] si utiliza el símbolo
©
y su impresora no puede imprimirlo, la HP 95LX podría mostrar
(c)
o
c
como presentación alternativa (dependiendo de las capacidades de su impresora).
Su palmtop admite
las páginas de códigos 850
y
437
. Las aplicaciones integradas (excepto
1-2-3
) y las aplicaciones compatibles
con System Manager
[…] utilizan la página de códigos 850. […] Cualquier aplicación DOS que cargue y ejecute utilizará de forma predeterminada la página de códigos 437. Si una aplicación requiere la página de códigos 850, puede seleccionarla mediante la utilidad de configuración.