Jay Taylor's notes
back to listing indexThe Ultimate Oldschool PC Font Pack: Font Index
[web search]FONT INDEX: Select a font to see a detailed preview and try it out for yourself.
- ♦ All fonts include the full CP437[→] (DOS/US) character range; fonts labeled "+Plus" have extended Unicode versions, too.
- ♦ Most of these fonts were made for CRT or LCD monitors that didn't necessarily have square pixels, unlike current displays. Alongside the simple square-pixel versions, these fonts have aspect-corrected variants to reproduce the original appearance.
- ♦ For fonts that *were* originally used in square-pixel resolutions (or close enough that the difference is negligible), no aspect-corrected variants are provided.
I. Fonts from the IBM PC & Family
These are the original character sets provided with the IBM PC line (PC, XT, PCjr, AT, PS/2, etc.) in hardware or firmware, and with official add-on products from IBM, such as graphics adapters and certain versions of DOS. Naturally, they were also duplicated by a huge number of 3rd-party hardware manufacturers.
IBM PC System BIOS
With pre-EGA video, the system BIOS provides the default 8x8 font for graphics mode (the firmware contains only the lower 128 ASCII characters; the upper half has to be loaded separately). For EGA and up, IBM included the full version in the on-board video ROM, for text *and* graphics modes that require an 8x8 font.
The wide '2x' version is seen e.g. in 160x200 (PCjr) or 320x400 (VGA). The '2y' version is what you get in 640x200 modes.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM BIOS
8x8; CP437, +Plus |
Square 1:1 | |
Correct 5:6 | ||
IBM BIOS-2x
8x8; CP437, +Plus |
Square 2:1 | |
Correct 5:3 | ||
IBM BIOS-2y
8x8; CP437, +Plus |
Square 1:2 | |
Correct 5:12 |
IBM First-Generation Video - CGA/MDA
IBM's first two video solutions shared the same character ROM, which provided the text mode font: neither CGA nor MDA could redefine it. Cards for the US market contained the CP437 character set; the non-US characters in the 'Plus' fonts were adapted from localized ROMs off cards sold internationally (most of the Greek, Cyrillic and Hebrew blocks), plus manual additions.
CGA (Color/Graphics Adapter) and PCjr:
For CGA, the ROM contains two different 8x8 fonts usable in text mode. The default 'thick' variant differs from the BIOS font in only four characters (♣, ♠, ☼, S); PCjr text modes use this font too. The alternate 'thin' one is selectable in CGA only, and requires hardware modification. I've included 1:1 (40-column) and half-width (80-column) versions for both of these.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM CGA
8x8; CP437, +Plus |
Square 1:1 | |
Correct 5:6 | ||
IBM CGA-2y
8x8; CP437, +Plus |
Square 1:2 | |
Correct 5:12 | ||
IBM CGAthin
8x8; CP437, +Plus |
Square 1:1 | |
Correct 5:6 | ||
IBM CGAthin-2y
8x8; CP437, +Plus |
Square 1:2 | |
Correct 5:12 |
MDA (Monochrome Display/Printer Adapter):
The same ROM includes the 14-scanline font used by the MDA for its single mode – 80-column text. Its characters are stored as 8 pixels wide, but displayed with an additional 9th column: blank for most glyphs, but for box/block-drawing chars it duplicates the 8th. The same font was used on the Hercules Graphics Card and a host of other clones.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM MDA
9x14; CP437, +Plus |
Square 1:1 | |
Correct 2:3 |
IBM Second-Generation Video - EGA/MCGA/VGA
These adapters introduced fully programmable character sets, so DOS could now redefine them for international scripts - the multilingual 'Plus' versions here are based on various DOS code pages. 80-column text was evidently the main focus by this point: at 40 columns, the funny pixel aspect ratio makes the default font even *less* readable than CGA.
EGA (and later):
The EGA's text modes (and 640x350 graphics mode) use the new 8x14 font by default. The 8x8 font is identical to the PC BIOS one, but it gets its own version, since the narrower aspect ratio in 350-line modes is specific to EGA:
Font/Charsets | Aspect | Sample |
---|---|---|
IBM EGA 8x14
8x14; CP437, +Plus |
Square 1:1 | |
Correct 3:4 | ||
IBM EGA 8x14-2x
8x14; CP437, +Plus |
Square 2:1 | |
Correct 3:2 | ||
IBM EGA 8x8
8x8; CP437, +Plus |
Square 1:1 | |
Correct 3:4 | ||
IBM EGA 8x8-2x
8x8; CP437, +Plus |
Square 2:1 | |
Correct 3:2 |
When the EGA is used with a monochrome monitor, character cells receive a bonus 9th column just like on MDA/Hercules. The 14-line font even sports wider variants of some glyphs for this purpose.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM EGA 9x14
9x14; CP437, +Plus |
Square 1:1 | |
Correct 2:3 | ||
IBM EGA 9x14-2x
9x14; CP437, +Plus |
Square 2:1 | |
Correct 4:3 | ||
IBM EGA 9x8
9x8; CP437, +Plus |
Square 1:1 | |
Correct 2:3 | ||
IBM EGA 9x8-2x
9x8; CP437, +Plus |
Square 2:1 | |
Correct 4:3 |
VGA/MCGA (and later):
The PS/2 standards further modified the system font, with a character cell 16 pixels tall and a few stylistic changes ('O', '0' etc.).
With VGA, 9-dot character cells were now the default, and the resulting 9x16 glyphs make up the famous font which remains most strongly associated with ASCII art on the PC, and probably with the entire DOS era in general. The EGA sizes were also available, but with different aspect ratios due to the extra vertical resolution.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM VGA 9x16
9x16; CP437, +Plus |
Square 1:1 | |
Correct 3:4 | ||
IBM VGA 9x16-2x
9x16; CP437, +Plus |
Square 2:1 | |
Correct 3:2 | ||
IBM VGA 9x14
9x14; CP437, +Plus |
Square 1:1 | |
Correct 3:4 | ||
IBM VGA 9x14-2x
9x14; CP437, +Plus |
Square 2:1 | |
Correct 3:2 | ||
IBM VGA 9x8
9x8; CP437, +Plus |
Square 1:1 | |
Correct 3:4 | ||
IBM VGA 9x8-2x
9x8; CP437, +Plus |
Square 2:1 | |
Correct 3:2 |
Plain old 8-dot characters were still available, both on VGA and on its lobotomized low-end cousin, MCGA (where they were the only option). The 8x8 size here was exactly the same as the PC BIOS font once again, so no sense in adding yet another version of it.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM VGA 8x16
8x16; CP437, +Plus |
Square 1:1 | |
Correct 5:6 | ||
IBM VGA 8x16-2x
8x16; CP437, +Plus |
Square 2:1 | |
Correct 5:3 | ||
IBM VGA 8x14
8x14; CP437, +Plus |
Square 1:1 | |
Correct 5:6 | ||
IBM VGA 8x14-2x
8x14; CP437, +Plus |
Square 2:1 | |
Correct 5:3 |
Other IBM Hardware
3270 PC (IBM 5271):
This one has some rather exotic video hardware[→], but also offers a basic 80x25 text mode with a distinct, (mostly) sans-serif 9x14 font. Unlike most PC hardware fonts, the 9th column is stored in the actual bitmap data.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM 3270pc
9x14; CP437 |
Square 1:1 | |
Correct 2:3 |
PGC (Professional Graphics Controller):
IBM's first high-end PC graphics card has a 400-line text mode with an 8x16 character cell. It basically takes the 8x14 EGA font and adds two scanlines, which most characters simply use as extra padding.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM PGC
8x16; CP437 |
Square 1:1 | |
Correct 5:6 | ||
IBM PGC-2x
8x16; CP437 |
Square 2:1 | |
Correct 5:3 |
PC Convertible (IBM 5140):
Mostly based on CGA, the Convertible adds support for redefinable 8x8 charsets. The default is a rather elaborate serif font, which IBM also used as a basis for PC-DOS 3.20's LCD-specific codepages.
The squat, built-in monochrome LCD had square pixels at 640x200 (that's 16:5 - how's that for you widescreen fanatics?), but the optional external monitor was a regular 4:3 CRT, so the aspect-corrected versions are based on that.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM Conv
8x8; CP437 |
Square 1:1 | |
Correct 5:6 | ||
IBM CONV-2x
8x8; CP437 |
Square 2:1 | |
Correct 5:3 | ||
IBM CONV-2y
8x8; CP437 |
Square 1:2 | |
Correct 5:12 |
PS/2 Model 30 (early revision):
In the earliest variant of the PS/2 Model 30 (the 'rev. 0' BIOS dated 09/02/86), the built-in 8x16 font is slightly different from the MCGA/VGA font of the later units: "0", "O", "ß", and characters with descenders and umlauts are closer to their EGA forms. The Model 30 is MCGA-only, so there is no 9-dot-wide version.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM Model30r0
8x16; CP437 |
Square 1:1 | |
Correct 5:6 | ||
IBM Model30r0-2x
8x16; CP437 |
Square 2:1 | |
Correct 5:3 |
PS/2 16-Bit ISA Models (alternate fonts):
PS/2 models based on the 16-bit ISA bus (at least the 25-286, 30-286, 25 SX, 35 SX) include additional fonts in ROM, alongside the usual VGA fonts. These are all rather nondescript, and I'm not aware of any software that ever actually used them; they're not documented and the video BIOS code doesn't seem to reference them, so such software is unlikely to exist.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM Model3x Alt1
8x16; CP437 |
Square 1:1 | |
Correct 5:6 | ||
IBM Model3x Alt2
8x16; CP437 |
Square 1:1 | |
Correct 5:6 | ||
IBM Model3x Alt3
8x16; CP437 |
Square 1:1 | |
Correct 5:6 | ||
IBM Model3x Alt4
8x16; CP437 |
Square 1:1 | |
Correct 5:6 |
PS/55:
The PS/2's Japanese cousin[→] had generously large bitmap fonts to support that language's various scripts. Since full CJK fonts are outside the scope of this collection, the version here is a CUSTOM REMAPPING to CP437 (with supplements).
Internally the bitmaps are 12x24 dots. Later, they were replicated in IBM DOS/V for generic PCs; at least the half-width Latin alphanumerics appear to be exactly the same, so this version is almost identical to the "JP-24" font in the DOS/V section. Almost, but not quite: the PS/55's display adapter[→] padded the characters[→] to 13x29, so this font follows suit.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM PS/55 re.
13x29; CP437 |
Square 1:1 |
8514/A, XGA, XGA-2, Image Adapter/A - Adapter Interface drivers:
These are a bit of an exception here, since they're not really hardware fonts. IBM's more advanced PC video standards had, among other things, hardware-accelerated text output for their high-resolution graphics modes. These were accessed with an API called simply the Adapter Interface ("AI"), and the AI drivers for DOS contained some fonts for this purpose. (There's also an 8x14 size, but it basically copies the EGA/VGA font.)
True text modes remained purely a VGA function, although XGA(-2) had integrated the VGA part into the chipset, so they still used the same fonts as VGA.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM XGA-AI 7x15
7x15; CP437 |
Square 1:1 | |
IBM XGA-AI 12x20
12x20; CP437, +Plus |
Square 1:1 | |
IBM XGA-AI 12x23
12x23; CP437 |
Square 1:1 |
Fonts from Specific IBM PC-DOS Versions
These are NOT what most would call "the" DOS fonts, since DOS normally uses the video hardware's character set (or .CPI versions that strongly resemble it). Still, a number of DOS versions provided different fonts for specific purposes.
ISO-compliant IBM PC-DOS fonts:
Starting with IBM PC-DOS 5.02 (and later in MS-DOS as well), the "ISO.CPI" file included a bunch of new 8x16 codepage fonts. These were intended to comply with the (then-new) ISO standard for display ergonomics, namely ISO 9241-3:1992, "Ergonomics - Office Work with Visual Display Terminals (VDTs) - Visual Display Requirements", which went into extreme detail regarding character height, stroke width, size uniformity, spacing, and so on so forth.
Font/Charsets | Aspect | Sample |
---|---|---|
IBM DOS ISO8
8x16; CP437 |
Square 1:1 | |
Correct 5:6 | ||
IBM DOS ISO8-2x
8x16; CP437 |
Square 2:1 | |
Correct 5:3 | ||
IBM DOS ISO9
9x16; CP437 |
Square 1:1 | |
Correct 3:4 | ||
IBM DOS ISO9-2x
8x16; CP437 |
Square 2:1 | |
Correct 3:2 |
DOS/V - Japanese versions of IBM (PC-)DOS / MS-DOS:
Technically these aren't hardware/text mode fonts, so they're another exception here. DOS/V (V for VGA, not 5.0) ran in permanent graphics mode to support Japanese full-width glyphs and double-byte charsets, so you could choose from a whole heap of resolutions[→] (all with a square pixel ratio) and character cell sizes.
However, the following versions do *not* include the Japanese scripts. They're REMAPPED/REMADE for codepage 437/US, so they preserve only the half-width Latin alphanumerics, with custom additions to fill out the rest.
These originate from the various IBM versions of PC-DOS/V. The 8x19 and 12x30 fonts mostly duplicate their smaller siblings, with more generous vertical padding. For the 24/30-pixel versions, cf. IBM PS/55:
Font/Charsets | Aspect | Sample |
---|---|---|
DOS/V re. JPN12
6x12; CP437 |
Square 1:1 | |
DOS/V re. JPN16
8x16; CP437 |
Square 1:1 | |
DOS/V re. JPN19
8x19; CP437 |
Square 1:1 | |
DOS/V re. JPN24
12x24; CP437 |
Square 1:1 | |
DOS/V re. JPN30
12x30; CP437 |
Square 1:1 |
Microsoft came in a bit later in the game; MS-DOS/V used a similar system, through it redesigned (and renamed) the font files:
Font/Charsets | Aspect | Sample |
---|---|---|
DOS/V re. ANK16
8x16; CP437 |
Square 1:1 | |
DOS/V re. ANK19
8x19; CP437 |
Square 1:1 | |
DOS/V re. ANK24
12x24; CP437 |
Square 1:1 | |
DOS/V re. ANK30
12x30; CP437 |
Square 1:1 |
Chinese PC-DOS versions (Taiwan & PRC):
These were technically DOS/V as well, and the ASCII portion of the 24/30-pixel fonts is identical to the Japanese version, so these larger charsets are not repeated here.
In Taiwan, the Latin fonts unique to PC-DOS T7.0/V do have native CP437 encoding, so no remapping was needed. In fact they look like they're probably derived from OS/2:
Font/Charsets | Aspect | Sample |
---|---|---|
DOS/V TWN16
8x16; CP437 |
Square 1:1 | |
DOS/V TWN19
8x19; CP437 |
Square 1:1 |
The fonts from the PRC version are once again REMAPPED, and slightly adjusted for legibility to boot. Interestingly, they look quite close to those used on the Japanese IBM JX[→] (still mising from this collection).
Font/Charsets | Aspect | Sample |
---|---|---|
DOS/V re. PRC16
8x16; CP437 |
Square 1:1 | |
DOS/V re. PRC19
8x19; CP437 |
Square 1:1 |