[✓] Text mode:
 1  2  3  4  5  6 

The Ultimate Oldschool PC Font Pack (v1.0) - Documentation

Jump to:



The Ultimate Oldschool PC Font Pack started out with the idea of paying tribute to ancient PCs and their bitmapped, pre-GUI typography (if you can call it that). It was inspired by similar efforts that cover other vintage machines: classic system fonts from the Amiga, C64, Apple II, Mac, ZX Spectrum, Atari 8-bit/ST etc. are all celebrated. On the other hand, the IBM PC and its clones seem to get little love... except for that one VGA text mode font (which has been remade numerous times, to varying degrees of success). This collection is here to remedy that, and to bring you pixel-perfect remakes of various type styles from text-mode era PCs - in modern, multi-platform, Unicode-compatible TrueType form (plus straight bitmap versions). Although the goal is to make it a complete resource, the main focus is on hardware character sets: the kind that's located in a ROM chip on the system board or graphics card, which is what you'd see by default when working in text (or graphics) mode. Software-loadable fonts are also within the scope of this collection (if associated with a particular machine or display system), so some of these have also made it in.


Pack Contents

The collection includes 185 font files in total (made up of 81 different typefaces).  All styles are available with the CP437 character set (DOS Latin-US), in both .FON and .TTF formats, and 23 of them also have expanded Unicode versions ('PxPlus', .TTF only).
Here's a quick rundown of what's inside - check out the detailed fonts page for more info on what's what, and the next few sections for the lowdown on formats and encodings.

Font             Sizes:   Charset:
Style            Pixel Pt 437 Plus
════════════════ ════════ ════════
AMI BIOS         8x8    6  ■
AMI BIOS-2y      8x16  12  ■
AmstradPC1512    8x8    6  ■   ■
AmstradPC1512-2y 8x16  12  ■   ■
AT&T PC6300      8x16  12  ■
AT&T PC6300-2x   16x16 12  ■
ATI 8x14         8x14  12  ■
ATI 8x16         8x16  12  ■
ATI 8x8          8x8    6  ■
ATI 8x8-2y       8x16  12  ■
ATI 9x14         9x14  12  ■
ATI 9x16         9x16  12  ■
ATI SmallW 6x8   6x8    6  ■
CompaqThin 8x14  8x14  12  ■
CompaqThin 8x16  8x16  12  ■
CompaqThin 8x8   8x8    6  ■
DTK BIOS         8x8    6  ■
DTK BIOS-2y      8x16  12  ■
IBM 3270pc       9x14  12  ■
IBM BIOS         8x8    6  ■   ■
IBM BIOS-2x      16x8   6  ■   ■
IBM BIOS-2y      8x16  12  ■   ■
IBM CGA          8x8    6  ■   ■
IBM CGA-2y       8x16  12  ■   ■
IBM CGAthin      8x8    6  ■   ■
IBM CGAthin-2y   8x16  12  ■   ■
IBM Conv         8x8    6  ■
Font             Sizes:   Charset:
Style            Pixel Pt 437 Plus
════════════════ ════════ ════════
IBM Conv-2x      16x8   6  ■
IBM Conv-2y      8x16  12  ■
IBM EGA8         8x14  12  ■   ■
IBM EGA8-2x      16x14 12  ■   ■
IBM EGA9         9x14  12  ■   ■
IBM EGA9-2x      18x14 12  ■   ■
IBM ISO8         8x16  12  ■
IBM ISO9         9x16  12  ■
IBM MDA          9x14  12  ■   ■
IBM PGC          8x16  12  ■
IBM PGC-2x       16x16 12  ■
IBM PS/2thin1    8x16  12  ■
IBM PS/2thin2    8x16  12  ■
IBM PS/2thin3    8x16  12  ■
IBM PS/2thin4    8x16  12  ■
IBM VGA8         8x16  12  ■   ■
IBM VGA8-2x      16x16 12  ■   ■
IBM VGA9         9x16  12  ■   ■
IBM VGA9-2x      18x16 12  ■   ■
ITT BIOS         8x8    6  ■
ITT BIOS-2y      8x16  12  ■
Kaypro2K         8x8    6  ■
Kaypro2K-2y      8x16  12  ■
Phoenix BIOS     8x8    6  ■
Phoenix BIOS-2y  8x16  12  ■
PhoenixEGA 8x14  8x14  12  ■
PhoenixEGA 8x16  8x16  12  ■
Font              Sizes:   Charset:
Style             Pixel Pt 437 Plus
═════════════════ ════════ ════════
PhoenixEGA 8x8    8x8    6  ■
PhoenixEGA 8x8-2y 8x16  12  ■
PhoenixEGA 9x14   9x14  12  ■
TandyNew 225      8x9    9  ■   ■
TandyNew 225-2y   8x18  18  ■   ■
TandyNew Mono     9x14  12  ■
TandyNew TV       8x8    6  ■   ■
TandyNew TV-2y    8x16  12  ■   ■
TandyOld 225      8x9    9  ■
TandyOld 225-2y   8x18  18  ■
TandyOld TV       8x8    6  ■
TandyOld TV-2y    8x16  12  ■
ToshibaLCD 8x16   8x16  12  ■
ToshibaLCD 8x8    8x8    6  ■
Verite 8x14       8x14  12  ■
Verite 8x16       8x16  12  ■
Verite 8x8        8x8    6  ■
Verite 8x8-2y     8x16  12  ■
Verite 9x14       9x14  12  ■
Verite 9x16       9x16  12  ■
VGA SquarePx      8x19  18  ■   ■
VTech BIOS        8x8    6  ■
VTech BIOS-2y     8x16  12  ■
Wyse700a          16x16 12  ■
Wyse700a-2y       16x32 24  ■
Wyse700b          16x16 12  ■
Wyse700b-2y       16x32 24  ■

NOTE: the 'pt' sizes listed are for a screen density of 96 PPI (see below)


Font Sizes & Display

Pixel & Point Sizes

TrueType fonts have scalable outlines, but to reproduce oldschool raster characters, the outlines are designed to snap to the pixel grid at one particular font size. Obviously this "native" size differs from font to font, but each font will look best at that native size (or integer multiples thereof). Otherwise you *will* get fugly scaling artifacts. This size depends on the original font's pixel dimensions, but scalable text is usually measured in points (pt). The resulting pixel size (px) depends on your PPI settings: common standards are based on multiples of 96 PPI (Windows: 1pt = 3/4px) or 72 PPI (Mac: 1pt = 1px). The font metrics have been tuned so that the "native" point size is an integer in both systems, so with 96 DPI it'll be a multiple of 3, and with 72 DPI a multiple of 4. On newfangled super-high-PPI displays scaling artifacts become less apparent, so you may be able to get away with arbitrary sizes.

Aspect ratio

All fonts replicate the original bitmap characters for modern square-pixel displays. However, the original fonts were (mostly) used in various non-square pixel resolutions, so aspect ratio is not preserved: most of these fonts will be somewhat squashed vertically, compared to their appearance on original hardware. Aspect-corrected variants may be added in the future.


Formats & Encodings

Fonts in this pack come in three variants. Each font has at least the first two:

Px437: TrueType (TTF), CP437 charset

These fonts feature the classic set of 256 characters established by the original PC, also known as Code Page 437 (or PC ASCII, Latin-US DOS/OEM, and other catchy names). They are exact duplicates of the original pixel fonts in outline form, and characters are Unicode-mapped for maximum compatibility (see below for details).

Bm437: Bitmap (FON), CP437 charset

Bitmap versions of the above. Available only in Windows .FON format for now, but other versions may be added at some point. The straight bitmap conversions may still be more useful than TrueType in certain situations:

* You don't need to modify the registry to use them in the Windows console.
* The .FON format isn't Unicode, so these versions can force the CP437 encoding on misbehaving programs.
* Bitmap fonts aren't subject to ClearType subpixel anti-aliasing.

PxPlus: TrueType (TTF) fonts with a multi-lingual expanded character set

On top of the CP437 range, these support extended Latin, Greek, Cyrillic and Hebrew scripts plus a bunch of additional glyphs and Unicode symbols. The extra characters were taken from international versions of the original hardware (if available), or designed to closely follow the existing ones.

There are 782 characters in total (more than the Windows Glyph List v4 -- in fact the entire WGL4 range is there). A handful of the cp437 glyphs had to be remapped (here's why), but they're all still around.


Notes on the DOS-to-Unicode Character Map ('Px437' fonts)

The Px437 versions feature the Codepage 437 character set (DOS/OEM-US). Since any TrueType font can (and should) include a Unicode character map, these are still Unicode fonts with multi-platform support - they just don't include a whole lot of the Unicode range. Mapping CP437 to Unicode isn't that simple, due to characters 00h-1Fh and 7Fh: they can be interpreted either as control codes, or as graphical symbols. Thus there are two widely used mappings: the standard IBM/MS map (which does the former), and Unicode's "IBMGRAPH" map (which does the latter). Trouble is, software that expects one of them may not always play nice with the other one. As a solution, these fonts cover both bases in one mapping: the ambiguous characters are duplicated so that your program will find them at either placement. Windows detects the fonts as "OEM/DOS", and you can use them in any program or environment that understands this charset (including the Command Prompt). The same will be true on other platforms, as long as your software is properly configured -- RTFM, GIYF, etc.

Codepage 437 mapped to Unicode

Codepage 437 (column + row) mapped to Unicode values, all in hexadecimal.
* = these characters are also duplicated at the Control Code points (with values equal to the CP437 ones).


Notes on the Extended Unicode Character Map ('PxPlus' fonts)

The full 'PxPlus' charset (along with the supported Unicode ranges):

PxPlus extended Unicode character set

A few things that may (or may not) be useful to know:


Misc. Usage Notes

Windows console / Command Prompt

Bitmap (raster) fonts can be freely selected for use in the Windows console. For TrueType fonts, Microsoft has somehow seen fit to require an unsupported registry hack. Since the extended Unicode charset ('PxPlus') fonts are TrueType-only, if you'd like to use them in console windows, you'll have to start regedit.exe and open this key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont You'll probably see two fonts defined (Lucida Console and Consolas), as "0" and "00" respectively. To enable more TrueType fonts, add a new String Value with one more 0 in its name (the first one you add will be 000, then 0000 and so on). In the Value field simply enter the font's name, e.g. PxPlus IBM VGA9. Hit OK and exit the editor. The font will now be available in the Properties dialog for console windows.

Web usage

There are various font formats suitable for embedding in web pages, but providing such things would be a bit pointless, since most browsers these days support plain old TrueType as an embeddable format. I'd recommend simply using Font Squirrel's Webfont Generator, which can optimize the .TTF for web usage, create additional formats such as WOFF/EOT/SVG, and generate the appropriate stylesheet rules. There are lots of equivalent tools out there, but that's the one I used for this site.


Current operating systems usually have subpixel anti-aliasing enabled by default: ClearType on Windows, FreeType on Linux, Core Text on Mac OS X. This is less than ideal for TrueType pixel fonts, since it may introduce a sort of smearing/fringing effect in some cases. In practice I don't find it *that* noticeable, but it bothers you, you can get rid of it. On Windows, turn ClearType off or use the bitmap (.FON) version, which is not affected. On Linux, there are ways to disable anti-aliasing for specific fonts with FreeType. You'll have to see your docs/the web on how to pull that off though.


Credits & Acknowledgements

Fonts, documentation, website: VileR

Thanks to:

Tools used:



I can be reached at:   email - viler/ΑΤ/int10h/DΟТ/org
                         www -
                        blog -

* Spam and/or excessive dumbness will be ignored, deleted, spindled and mutilated *


Legal Stuff

I do not claim any rights to the original raster fonts on which this work is based.  Credit for these goes to their respective designers.
The font files in this pack (TTF and FON remakes and enhancements) are © 2016 VileR, and are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

"tl;dr" version (which is not a substitute for the license):