Английская Википедия:Hardware code page
Шаблон:Short description Шаблон:Use dmy dates Шаблон:Use list-defined references Шаблон:Anchor In computing, a hardware code page (HWCP) refers to a code page supported natively by a hardware device such as a display adapter or printer. The glyphs to present the characters are stored in the alphanumeric character generator's resident read-only memory (like ROM or flash) and are thus not user-changeable.[1][2][3] They are available for use by the system without having to load any font definitions into the device first. Startup messages issued by a PC's System BIOS or displayed by an operating system before initializing its own code page switching logic and font management and before switching to graphics mode are displayed in a computer's default hardware code page.
Code page assignments
In North American IBM-compatible PCs, the hardware code page of the display adapter is typically code page 437.[4] However, various portable machines[5][6][7] as well as (Eastern) European, Arabic, Middle Eastern and Asian PCs used a number of other code pages as their hardware code page,[1] including code page 100 ("Hebrew"),[8] 151 ("Nafitha Arabic"),[9] 667 ("Mazovia"),[1][10] 737 ("Greek"), 850 ("Multilingual"),[7][nb 1] encodings like "Roman-8",[5][6] "Kamenický",[1][10][11] "KOI-8", "MIK",[10] and others. Most display adapters support a single 8-bit hardware code page only.[1] The bitmaps were often stored in an EPROM[12][13][4] in a DIP socket.[4] At most, the hardware code page to be activated was user-selectable via jumpers,[14] configuration EEPROMs[5][6] or CMOS setup.[15] However, some of the display adapters designed for Eastern European, Arabic and Hebrew PCs supported multiple software-switchable hardware code pages, also named font pages,[1] selectable via I/O ports[4] or additional BIOS functions.[12][13]
In contrast to this, printers frequently support several user-switchable character sets, often including various variants of the 7-bit ISO/IEC 646 character sets such as code page 367 ("ISO/IEC 646-US / ASCII"[1]), sometimes also a couple of 8-bit code pages like code page 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] and 866.[10][18][20][21] Printers for the Eastern European or Middle Eastern markets sometimes support other locale-specific hardware code pages to choose from. They can be selected via DIP switches or configuration menus on the printer, or via specific escape sequences.[1][nb 2]
Support in operating systems
When operating systems initialize their code page switching logic, they need to know but have no means to determine the previously active hardware code page by themselves. Therefore, for code page switching to work correctly, the hardware code page needs to be specified.[1][22][23][24]
Under DOS and Windows 9x this is accomplished by specifying the hardware code page as a parameter (hwcp) to the device drivers DISPLAY.SYS and PRINTER.SYS in 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]
If multiple hardware code pages are supported in OEM issues, the first hardware code page (hwcp1) in the list specifies the default hardware code page:
DEVICE=…\DISPLAY.SYS CON=(type,(hwcp1,hwcp2,…),n|(n,m))
[9]DEVICE=…\PRINTER.SYS PRN=(type,(hwcp1,hwcp2,…),n)
[9]
If no hardware code page(s) are specified, these drivers default either to a dummy code page number 999[1][23][24] or assume the hardware code page to be equal to the primary code page (the first code page listed in COUNTRY.SYS files for a particular country[27] with the country code either specified in the CONFIG.SYS COUNTRY directive or assumed to be the operating system's internal default, usually 1 (US) in Western issues of DOS).[1] In many English-speaking countries, the primary code page is either 437 (f.e. in the US) or 850 (f.e. in the UK, Ireland and Canada),[23][24] so that, without specifying a different code page, the system would often assume one of these to be the corresponding device's default hardware code page as well.[1]
If a hardware code page does not match one of those with official code page assignments, an arbitrary number from the range 57344–61439 (E000h–EFFFh) for user-definable code pages or 65280–65533 (FF00h–FFFDh) for private use code pages could be specified per IBM CDRA to give the operating system a non-conflictive "handle" to select that code page.
Arabic and Hebrew MS-DOS do not use DISPLAY.SYS and PRINTER.SYS, but provide similar facilities using ARABIC.COM, HEBREW.COM, and SKШаблон:Text.[9]
OEM code pages
Hardware code pages are also OEM code pages. The designation "OEM", for "original equipment manufacturer", indicates that the character set could be changed by the manufacturer to meet different markets.[28][29]
However, OEM code pages do not necessarily reside in ROM, but include so called prepared code pages,[2][25] (aka downloadable character sets or downloadable fonts), character sets loaded as raster fonts into the font RAM of suitable display adapters (like Sirius 1/Victor 9000,[30] NEC APC,[31] HP 100LX/200LX/700LX,[15] Persyst's BoB Color Adapter,[32] Hercules' HGC+,[33][13][34] InColor[33][35] and Network Plus[36][37] with RAMFONT, and IBM's MCGA,[33][38][13] EGA,[38][13] VGA,[38][13] etc.) and printers as well.[39][40][41][42][43] Hence, the group of OEM code pages is a superset of hardware code pages.
See also
Notes
References
External links
- ↑ 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 1,12 1,13 Ошибка цитирования Неверный тег
<ref>
; для сносокPaul_2001_CPSwitchFD
не указан текст - ↑ 2,0 2,1 2,2 Ошибка цитирования Неверный тег
<ref>
; для сносокXyWrite_2009
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокPhoenix_1991_BIOS
не указан текст - ↑ 4,0 4,1 4,2 4,3 Ошибка цитирования Неверный тег
<ref>
; для сносокElliott_2020_MDA
не указан текст - ↑ 5,0 5,1 5,2 Ошибка цитирования Неверный тег
<ref>
; для сносокHP_1985_PP
не указан текст - ↑ 6,0 6,1 6,2 Ошибка цитирования Неверный тег
<ref>
; для сносокHP_1986_PP
не указан текст - ↑ 7,0 7,1 Ошибка цитирования Неверный тег
<ref>
; для сносокHP_1991_95LXUG
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокPaul_2002-09-05
не указан текст - ↑ 9,0 9,1 9,2 9,3 Ошибка цитирования Неверный тег
<ref>
; для сносокPaul_2002-12-04
не указан текст - ↑ 10,00 10,01 10,02 10,03 10,04 10,05 10,06 10,07 10,08 10,09 10,10 10,11 Ошибка цитирования Неверный тег
<ref>
; для сносокFujitsu_1994_DL6400_DL6600
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокNEC_1992_Flyer
не указан текст - ↑ 12,0 12,1 Ошибка цитирования Неверный тег
<ref>
; для сносокRBIL_61_INT15h_AX67C3h
не указан текст - ↑ 13,0 13,1 13,2 13,3 13,4 13,5 Ошибка цитирования Неверный тег
<ref>
; для сносокBrown_2000_RBIL
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокDerfler_1985
не указан текст - ↑ 15,0 15,1 Ошибка цитирования Неверный тег
<ref>
; для сносокHP_1996_200LXUG
не указан текст - ↑ 16,0 16,1 16,2 16,3 16,4 Ошибка цитирования Неверный тег
<ref>
; для сносокNEC_1990_P90
не указан текст - ↑ 17,0 17,1 17,2 17,3 17,4 17,5 Ошибка цитирования Неверный тег
<ref>
; для сносокEpson_1991_GQ
не указан текст - ↑ 18,0 18,1 18,2 Ошибка цитирования Неверный тег
<ref>
; для сносокNEC_1993_EPROMs
не указан текст - ↑ 19,0 19,1 Ошибка цитирования Неверный тег
<ref>
; для сносокEpson_1992_EPL-4300
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокFreeBSD_2016_1
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокFreeBSD_2016_2
не указан текст - ↑ 22,0 22,1 22,2 Ошибка цитирования Неверный тег
<ref>
; для сносокCaldera_1998_USER-9
не указан текст - ↑ 23,0 23,1 23,2 23,3 23,4 Ошибка цитирования Неверный тег
<ref>
; для сносокPaul_1997_NWDOSTIP
не указан текст - ↑ 24,0 24,1 24,2 24,3 24,4 Ошибка цитирования Неверный тег
<ref>
; для сносокPaul_2001_NWDOSTIP
не указан текст - ↑ 25,0 25,1 25,2 Ошибка цитирования Неверный тег
<ref>
; для сносокCaldera_1998_USER-17
не указан текст - ↑ 26,0 26,1 Ошибка цитирования Неверный тег
<ref>
; для сносокProsise_1990
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокPaul_2001_COUNTRY
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокChen_2005_CP
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокChen_2005_OEM
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокSargent_1988_Sirius
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокNEC_1983_APC
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокHart_1985
не указан текст - ↑ 33,0 33,1 33,2 Ошибка цитирования Неверный тег
<ref>
; для сносокWilton_1987
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокElliott_2012_HGCPlus
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокElliott_2012_InColor
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокCW_1988
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокHercules_1988
не указан текст - ↑ 38,0 38,1 38,2 Ошибка цитирования Неверный тег
<ref>
; для сносокFerraro_1994
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокPaul_2001_CPI
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокElliott_2006_CPI
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокAEB_2001_CPI
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокHaralambous_2007_CPI
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокMS_1991_PR
не указан текст
Ошибка цитирования Для существующих тегов <ref>
группы «nb» не найдено соответствующего тега <references group="nb"/>