All fonts are available with the CP437 (DOS Latin-US) character set. Those with expanded, multi-lingual ('PxPlus') versions are labeled "Plus" (see the readme section for more info about encodings).
- IBM PC BIOS
- IBM 1st-Generation: CGA/PCjr ○ MDA
- IBM 2nd-Generation: EGA ○ VGA/MCGA
- Other IBM Hardware: 3270 PC ○ PGC ○ PC Convertible ○ PS/2 (ISA models)
- Amstrad PC1512
- AT&T PC6300
- Tandy 1000: Early series ○ Late series
- Other Clones: AMI BIOS ○ DTK/ERSO ○ ITT Xtra ○ Kaypro 2000 ○ Phoenix BIOS ○ VTech Laser XT
- ATI Graphics Cards: VGA Wonder and later ○ Small Wonder
- Phoenix Graphics Cards
- Rendition Verite
- Wyse WY-700
- CLICK THE FONT PREVIEWS TO EXPAND -
IBM PC BIOS
The original 8x8 font provided by the BIOS on the IBM PC and family (PCjr, XT, AT) is normally used in graphics modes. Text modes use the fonts provided by the character ROM (or BIOS ROM) on the video card; see below for these. The BIOS font contains only the lower 128 ASCII characters, but the same 8x8 font was carried over to IBM's EGA and VGA, which combine it with the upper half of the CGA charset. This fills out the CP437 character set used here. The wide '2x' version can be seen in modes such as 160x200 (PCjr) or 320x400 (VGA). The narrow '2y' version is what you get in 640x200 modes.
IBM First-Generation Video - CGA/MDA
IBM's first two video solutions used the exact 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 'PxPlus' fonts were adapted from localized ROMs off cards sold internationally (most of the Greek, Cyrillic and Hebrew blocks), plus manual additions.
CGA (and PCjr), 8x8:
For CGA, the ROM contains two different 8x8 fonts used 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 hardware only. I've included 1:1 (40-column) and half-width (80-column) versions for both of these.
The same ROM includes the 14-scanline MDA font: characters are stored as 8 pixels wide, but displayed with an additional 9th column (either blank or a duplicate of the 8th, depending on the character). MDA only had a single, 80-column text mode. The same font was used on the Hercules Graphics Card and a host of other clones.
IBM Second-Generation Video - EGA/MCGA/VGA
These adapters introduced higher-resolution text modes with fully programmable character sets. The on-board default was still the US code page (437), but DOS could now load various international encodings by redefining the bitmap glyphs. The multilingual versions of these fonts are based on various DOS code page files (even if somewhat loosely: the different DOS charsets are too inconsistent in metrics/style to to combine into a single font). The type style is consistent with the earlier PC-family fonts. Evidently, 80-column text was the main consideration by this time: 40-column modes are still available, but their funny pixel aspect ratio makes the default font even *less* readable than CGA. For the 8x8 font present in EGA/MCGA/VGA hardware, see the IBM PC BIOS font above.
EGA (and VGA), 14-line:
EGA text mode uses a 8x14 font by default (VGA has this one as well). There's also a 9x14 variant, similar to the MDA charset (with the same trick controlling the 9th pixel column), but not identical: the data comes from the 8x14 font, with certain characters replaced by wider versions. On EGA, the 9x14 font is used exclusively in MDA emulation mode, but VGA text modes may use it more freely.
VGA (and MCGA), 16-line:
The PS/2 standards further modified the system font with a character cell 16 pixels tall, a squarer capital 'O' vs. a rounded zero (now dotted rather than slashed), and so on. The 8x16 version is used in MCGA text mode. VGA keeps that one, but it also has its own 9x16 version, which once again has wider forms for specific characters and generates the 9th column MDA-like. The 9x16 font is the VGA default, and that's the one most widely associated with ASCII/ANSI art on the PC... and probably with the entire DOS era in general.
Other IBM Hardware
3270 PC (IBM 5271):
This one has some rather exotic video hardware, but it also provides a basic 80x25 text mode with a distinct 9x14 font. Unlike most PC hardware fonts, this one is sans-serif, and the stored bitmap characters are truly 9 pixels wide (rather than using just 8 and cloning/blanking the ninth).
Professional Graphics Controller:
The PGC (IBM's first foray into hardware-accelerated PC graphics) offers a 400-line text mode with a 8x16 character cell, but the font is pretty much the 8x14 EGA font padded at the top and bottom. The extra scanlines are blank for most characters, but some are stretched to the full 16-scanline height.
PC Convertible (IBM 5140):
Despite only being CGA-compatible, the Convertible supports redefinable 8x8 charsets. The default is a rather elaborate serif font, and the aspect ratio depends on whether you're using the squat, built-in monochrome LCD or an external (4:3) monitor. For PC-DOS 3.20, IBM added specific LCD codepages based on this font.
PS/2 (ISA models):
Certain PS/2 models (at least the ISA-based models 30 and 35) include additional fonts in ROM, besides the usual 8x16 MCGA font. They're all 8x16 with thin 1-pixel strokes: one serif font (somewhat 'Courier'-like) and three rather nondescript sans-serif ones. These were possibly intended to improve legibility in 40-column mode, which turns the normal ('thick') MCGA character set into an ugly mess.
This machine features a nicely readable 8x8 font, with a consistently 'boxy' style though not completely square. Characters are wider than in the IBM BIOS/CGA fonts, and therefore more tightly spaced. Other than the default codepage 437, selectable Danish and Greek fonts also came built-in; I used these as the basis for the 'PxPlus' unicode charset.
The rebadged Olivetti M24, with its enhanced CGA-compatible video, introduced 400-line text and graphics modes for increased resolution. These supported a 8x16 character set, which was similar to the IBM MDA font, but with more of a slab serif style on the uppercase letters, and more consistent metrics for the lowercase and accented Latin characters. This is the text mode version - in the 640x400 graphics mode, the only difference is a more rounded 'h' (identical to the IBM MDA one). The 8x8 BIOS font, on the other hand, was exactly the same as IBM's.
Tandy 1000 Series
This applies to the pre-VGA models. One Tandy peculiarity is the 225-line text modes, which use a 8x9 character cell to improve readability and prevent descenders from colliding with the next row of text. Enabling "TV mode" sets a more standard 200-line text mode, using 8x8 charcters. By default, all but the earliest models (pre-EX) booted into 225-line mode, so the 8x9 variant was more commonly seen. The fonts here include both options: 'TV' for 8x8, '225' for 8x9.
Early (Tandy 1000, A, HD, EX, SX, TX, HX):
The font used on these machines closely matches the IBM PC BIOS font, with some differences: most characters are shifted 1 pixel to the right, certain uppercase letters are wider, 'b' and 'd' have larger bowls, and other miscellaneous changes.
Late (Tandy 1000 SL, SL/2, TL, TL/2, TL/3, RL):
The system font in these models appears to be based on the MS-DOS 3.x codepage fonts (dotted zero and all), with some alterations. By this point the ROM included DOS 3.x which allowed loadable codepages, but the Tandy Video II chip did not support redefinable fonts; two character sets are thus built in -- codepages 437 and 850 (Western European Latin). This, along with the similarity to the DOS .CPI fonts, was used as the basis for the 'PxPlus' versions here.
Since these models can optionally drive a monochrome monitor and output MDA/Hercules-compatible modes, a matching 9x14 font is included as well. This one also seems to derive from the MS-DOS .CPI fonts, which are the same for 8- and 9-pixel wide cells; so characters like 'T', 'M' etc. don't have wider variants as they do in the MDA font.
Miscellaneous clones - BIOS/OEM fonts
These all replace the 8x8 PC BIOS font in their respective machines, so they only ever show up in graphics mode, and include just the lower 128 ASCII characters. The other 128 were added manually to complete the CP437 character set, with varying amounts of effort to keep the design consistent (and most of these didn't merit much effort).
AMI BIOS (various versions):
This font is found in different revisions of the AMI BIOS, from the 8088 to the 486 era (and possibly beyond). A rather ugly font that cannot seem to decide whether it's serif or sans-serif, often in the same character.
Generic DTK/ERSO XT clone BIOS:
Yet another pointless variation on the CGA character set, with pixels seemingly added/removed pretty much at random. This particular font is taken from v2.42 of the generic Taiwanese BIOS, although the other revisions were probably every bit as hideous.
An early (1984) PC clone, although to be accurate this version of the font was taken from v2.00 of the BIOS (1985). A squarish, (mostly) sans-serif design that somehow looks like a cross between the earlier and later versions of the Amiga Topaz font.
One of the first PC compatible laptops. The text-mode font was pretty much the same as the IBM CGA, but the BIOS (i.e. graphics mode) one is different with thin strokes, wide characters and sort of a 'techno' look. Interestingly the built-in LCD came in two form factors, so along with the variable horizontal resolution (320/640) the dimensions of the character cell could vary a lot.
Phoenix's brand of BIOSes (at least two known revisions: v2.27, v2.51) used an interesting, stylized graphics mode font that has a bit of an Amiga style to it, although the capitals and numerals also resemble the classic Atari/Namco arcade font somewhat. As a result of the Phoenix BIOS line's success, this font can be found on quite a number of machines -- from generic beige boxes to Commodore's PC-compatible range (Commodore PC-I/II/III/Colt). Some later iterations (e.g. v3.13) use a different 8x8 font which is identical to that of the Phoenix EGA.
VTech Laser XT BIOS:
Another nasty-looking font, this time a thin-stroked one, which seems to imitate a disheveled version of the alternate/thin CGA font. In sharp contrast, it clearly has the happiest-looking smiley faces in the bunch (just look at how hard they're beaming!)
ATI Graphics Cards
VGA Wonder and later:
This series of fonts includes every standard cell size supported by the usual CGA/EGA/VGA modes, and is used on a very wide range of ATI cards -- most of the EGA/VGA Wonder, Mach 32/64, Rage series, etc. include some or all of these. The different sizes maintain a similar style, and the 9-column variants have their own selection of alternate wide glyphs ('M', 'T' and co.) which replace their 8-column counterparts.
ATI Small Wonder Graphics Solution:
ATI's enhanced CGA/MDA/HGC clone offered (among other things) the ability to output 132-column text. The card has a specific 'thin' font for this purpose; on a monochrome display (MDA-compatible), 132-column mode is achieved by using 6 pixel wide character cells. The normal CGA/MDA fonts on the card are identical to IBM's.
Phoenix Graphics Cards
EGA cards based on the Phoenix 82C435 controller have these character sets built in. They all follow a consistent design with less rounded curves, sharper diagonals, and thinner strokes on the more elaborate characters. All the usual character sizes for EGA text modes make an appearance, complete with the monochrome-friendly 9x14 size. Since these cards also supported a 400-line text mode, which wasn't standard on EGA, there's also a 8x16 variant (with an unusually small x-height) but no VGA-compliant 9x16.
Rendition Verite Graphics Cards
These character sets are found on various boards based on Rendition Verite 1000 / 2x00 chipsets (Sierra Screamin' 3D, Intergraph Intense 3D 100, QDI Vision-1, etc.). All sizes are nicely readable, with a squarish/more angular take on the IBM VGA character design, plus stylized punctuation marks and special chars. There are no alternate wide glyphs for 'M', 'T' and their likes, as there usually are for the 9-pixel-wide variants; but since these cards all use standard VGA text modes, the 9x14 / 9x16 sizes are of course supported.
Wyse Graphics Cards
The Wyse WY-700 was one of the "hi-res" graphics solutions that appeared in the mid-'80s (before VGA, SVGA or VESA were a thing) and targeted the emerging GUI, desktop publishing and CAD markets. The specialized greyscale monitor had a 1280x800 resolution, on which the board could also emulate standard CGA and monochrome modes -- which allowed it to use an especially large 16x16 character cell for a 80x50 text mode, and to vertically double the size for 80x25. Two such fonts are provided in the hardware: a thick serif font, which can pass as a higher-resolution version of the IBM MDA font, and a thin sans-serif one which is probably less of an eye-strain at 80x50.
Square-pixel VGA (AST Premium Exec DOS):
AST's Premium Exec laptop came with a 640x480 VGA LCD, which would vertically squash the normal 400-line text mode, so its configuration utility includes an "Expand mode" option -- which uses a 19-scanline character cell to set up 80x25 text at the screen's native resolution. 640x480 means square pixels, so the upshot is that this font retains its aspect ratio on present-day monitors (unlike most others here). AST's customized DOS 5.0 includes 8x19 fonts for multiple codepages, which are combined here in the expanded 'PxPlus' version.
ISO-compliant IBM DOS fonts:
Starting with IBM PC DOS 5.02, 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. The same ISO-compliant fonts later found their way into MS-DOS as well. For now, only codepage 437 is included here.
Compaq-DOS thin fonts:
Compaq's OEM version of MS-DOS (at least the famous v3.31) included its own lighter versions of the system font, loadable from a command-line utility. Despite having weird gaps in some characters here and there, the overall glyph shapes are very faithful to their 'thick' CGA/EGA/VGA counterparts, more so than other thin-stroke versions.
Toshiba-DOS LCD fonts:
Version 3.30 of Toshiba MS-DOS was intended to support its various Txx00-series laptops. The included LCD codepage fonts differ from those found in "LCD.CPI" in other DOS versions: the 8x8 one is somewhat more restrained (although not by much), and there's also a very different-looking 8x16 character set (a light, 'Courier'/typewriter-style one).