About

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 & 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 (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).

Cursor shapes: Unicode character U+2581 ▁ 'lower one eighth block' can be used to mimic the classic text-mode cursor appearance. U+2584 ▄ 'lower half block' and U+2588 █ 'full block' could also stand in for those respective cursor forms.

Remapped codepage 437 glyphs: The 'PxPlus' fonts still include all the original glyphs from the CP437 (DOS/OEM) versions. However, they also include a full Greek alphabet, which takes over the code points that Unicode assigns to the CP437 Greek/Math characters, and the new glyphs don't necessarily look the same.
Instead of just dropping the CP437 originals, I tried to retain them at remapped code points for the sake of completeness. Here's what's changed:

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.

Rendering/anti-aliasing

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.