Hardware code page
Hardware code pages (HWCP) are character sets built into hardware devices like display adapters or printers. The actual glyphs live in the device’s ROM or flash and can’t be changed by the user. Because the device provides the characters, the computer can display text without loading any font definitions.
At startup, system BIOS or early OS messages use the default HWCP of the device to show text before the OS takes over font management and graphics mode.
Most North American PCs used code page 437, but many other regions used different pages (for example Hebrew 100, Greek 737, Multilingual 850, and others). Most display adapters support a single 8-bit HWCP, though some Eastern European, Arabic, and Hebrew cards offered multiple hardware code pages that could be switched with hardware controls or BIOS features.
Printers often support several code pages as well, including various 7-bit ISO/IEC 646 variants like 367 (ASCII) and several 8-bit pages such as 437, 850, and others, plus locale-specific options. These can be selected via DIP switches, menus, or escape sequences.
Operating systems need to know which HWCP is active, but they can’t discover it on their own. In DOS and Windows 9x, you specify the hwcp parameter for the display and printer drivers (DISPLAY.SYS and PRINTER.SYS) in CONFIG.SYS. If multiple pages are supported, the first page in the list is the default. If none are specified, the system may use a dummy page or assume the country’s primary code page (often 437 or 850).
For nonstandard pages, a private handle number (E000h–EFFFh or FF00h–FFFDh) can be used. Arabic and Hebrew MS-DOS used different tools rather than DISPLAY.SYS/PRINTER.SYS.
HWCPs are a type of OEM code page—the manufacturer can tailor them for markets. Some OEM pages aren’t in ROM but are downloadable fonts loaded into a device’s font RAM or printers.
This page was last edited on 3 February 2026, at 19:23 (CET).