In computing, a hardware code page (HWCP) refers to a
code page
In computing, a code page is a character encoding and as such it is a specific association of a set of printable characters and control characters with unique numbers. Typically each number represents the binary value in a single byte. (In some co ...
supported natively by a hardware device such as a
display adapter or
printer. The
glyph
A glyph () is any kind of purposeful mark. In typography, a glyph is "the specific shape, design, or representation of a character". It is a particular graphical representation, in a particular typeface, of an element of written language. A g ...
s 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.
They are available for use by the system without having to load any
font
In metal typesetting, a font is a particular size, weight and style of a typeface. Each font is a matched set of type, with a piece (a "sort") for each glyph. A typeface consists of a range of such fonts that shared an overall design.
In mod ...
definitions into the device first. Startup messages issued by a
PC's
System BIOS
In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the ...
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 PC
IBM PC compatible computers are similar to the original IBM PC, XT, and AT, all from computer giant IBM, that are able to use the same software and expansion cards. Such computers were referred to as PC clones, IBM clones or IBM PC clones. ...
s, the hardware code page of the display adapter is typically
code page 437
Code page 437 (CCSID 437) is the character set of the original IBM PC (personal computer). It is also known as CP437, OEM-US, OEM 437, PC-8, or DOS Latin US. The set includes all printable ASCII characters as well as some accented letters (diacri ...
.
However, various portable machines
as well as (Eastern) European, Arabic, Middle Eastern and Asian PCs used a number of other code pages as their hardware code page,
including
code page 100
In communications and information processing, code is a system of rules to convert information—such as a letter, word, sound, image, or gesture—into another form, sometimes shortened or secret, for communication through a communication ...
("Hebrew"),
151
Year 151 (CLI) was a common year starting on Thursday (link will display the full calendar) of the Julian calendar. At the time, it was known as the Year of the Consulship of Condianus and Valerius (or, less frequently, year 904 ''Ab urbe cond ...
("Nafitha Arabic"),
667
__NOTOC__
Year 667 ( DCLXVII) was a common year starting on Friday (link will display the full calendar) of the Julian calendar. The denomination 667 for this year has been used since the early medieval period, when the Anno Domini calendar era ...
("
Mazovia"),
737 737 most commonly refers to:
* Boeing 737, an American narrow-body passenger airplane
** Boeing 737 Classic
** Boeing 737 MAX
** Boeing 737 Next Generation
* AD 737, a year in the common era
* 737 BC, a year
* 737 (number), a number
737 may als ...
("Greek"),
850 ("Multilingual"),
encodings like "
Roman-8
In computing HP Roman is a family of character sets consisting of HP Roman Extension, HP Roman-8, HP Roman-9 and several variants. Originally introduced by Hewlett-Packard around 1978, revisions and adaptations were published several times up ...
",
"
Kamenický",
"
KOI-8", "
MIK",
and others. Most display adapters support a single 8-bit hardware code page only.
The
bitmaps were often stored in an
EPROM in a
DIP socket.
At most, the hardware code page to be activated was user-selectable via
jumper
Jumper or Jumpers may refer to:
Clothing
*Jumper (sweater), a long-sleeve article of clothing; also called a top, pullover, or sweater
**A waist-length top garment of dense wool, part of the Royal Navy uniform and the uniform of the United State ...
s,
configuration
EEPROM
EEPROM (also called E2PROM) stands for electrically erasable programmable read-only memory and is a type of non-volatile memory used in computers, usually integrated in microcontrollers such as smart cards and remote keyless systems, or as a ...
s
or
CMOS setup.
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,
selectable via I/O ports
or additional BIOS functions.
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
__NOTOC__
Year 367 ( CCCLXVII) was a common year starting on Monday of the Julian calendar. At the time, it was known as the Year of the Consulship of Lupicinus and Iovanus (or, less frequently, year 1120 '' Ab urbe condita''). The denominatio ...
("
ISO/IEC 646-US /
ASCII"
), sometimes also a couple of 8-bit code pages like
code page 437
Code page 437 (CCSID 437) is the character set of the original IBM PC (personal computer). It is also known as CP437, OEM-US, OEM 437, PC-8, or DOS Latin US. The set includes all printable ASCII characters as well as some accented letters (diacri ...
,
850,
851,
852
__NOTOC__
Year 852 ( DCCCLII) was a leap year starting on Friday (link will display the full calendar) of the Julian calendar.
Events
By place
Europe
* March 4 – Trpimir I, duke ('' knez'') of Croatia, and founder of the Trpimi ...
,
853
__NOTOC__
Year 853 ( DCCCLIII) was a common year starting on Sunday (link will display the full calendar) of the Julian calendar.
Events
By place Byzantine Empire
* May 22 – A Byzantine fleet (85 ships and 5,000 men) sacks and d ...
,
855
__NOTOC__
Year 855 ( DCCCLV) was a common year starting on Tuesday (link will display the full calendar) of the Julian calendar.
Events
By place
Byzantine Empire
* November 20 – Theoktistos, co-regent of the Empire on behalf of ...
,
857,
860
__NOTOC__
Year 860 ( DCCCLX) was a leap year starting on Monday (link will display the full calendar) of the Julian calendar.
Events
By place
Byzantine Empire
* June 18 – Byzantine–Rus' War: A fleet of about 200 Rus' vessel ...
,
861,
863
__NOTOC__
Year 863 ( DCCCLXIII) was a common year starting on Friday (link will display the full calendar) of the Julian calendar.
Events
By place Byzantine Empire
* September 3 – Battle of Lalakaon: A Byzantine army confronts ...
,
865,
and
866
__NOTOC__
Year 866 ( DCCCLXVI) was a common year starting on Tuesday (link will display the full calendar) of the Julian calendar.
Events
By place
Byzantine Empire
* April 21 – Bardas, the regent of the Byzantine Empire, is murd ...
.
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.
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.
Under
DOS and
Windows 9x this is accomplished by specifying the hardware code page as a parameter (hwcp) to the
device driver
In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and ot ...
s
DISPLAY.SYS and
PRINTER.SYS in
CONFIG.SYS
CONFIG.SYS is the primary configuration file for the DOS and OS/2 operating systems. It is a special ASCII text file that contains user-accessible setup or configuration directives evaluated by the operating system's DOS BIOS (typically residing ...
:
:
DEVICE
A device is usually a constructed tool. Device may also refer to:
Technology Computing
* Device, a colloquial term encompassing desktops, laptops, tablets, smartphones, etc.
* Device file, an interface of a device driver
* Peripheral, any devi ...
=…\DISPLAY.SYS CON=(type,hwcp,n, (n,m))
:
DEVICE=…\PRINTER.SYS PRN=(type,hwcp,n)
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))
:
DEVICE=…\PRINTER.SYS PRN=(type,(hwcp1,hwcp2,…),n)
If no hardware code page(s) are specified, these drivers default either to a dummy code page number 999
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
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).
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),
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.
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.
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.
However, OEM code pages do not necessarily reside in ROM, but include so called
prepared code pages,
(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,
NEC APC,
HP 100LX
The HP 200LX Palmtop PC (F1060A, F1061A, F1216A), also known as project ''Felix'', is a personal digital assistant introduced by Hewlett-Packard in August 1994. It was often called a Palmtop PC, and it was notable that it was, with some mi ...
/
200LX/
700LX,
Persyst's
BoB Color Adapter,
Hercules'
HGC+,
InColor and
Network Plus with
RAMFONT, and IBM's
MCGA,
EGA
Ega or EGA may refer to:
Military
* East German Army, the common western name for the National People's Army
* Eagle, Globe, and Anchor, the emblem of the United States Marine Corps
People
* Aega (mayor of the palace), 7th-century noble of Neus ...
,
VGA,
etc.) and printers as well.
Hence, the group of OEM code pages is a superset of hardware code pages.
See also
*
PC-9800 series
*
Alt codes
Notes
References
External links
*
{{DEFAULTSORT:Hardware code page
DOS code pages
Character encoding