Jay Taylor's notes

back to listing index

The Ultimate Oldschool PC Font Pack: Font Index

[web search]
Original source (int10h.org)
Tags: font ibm bios old-school int10h.org
Clipped on: 2024-07-08

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
◄◄ INT10h.org© 2015-2020 VileR