The Ultimate Apple II Font

Download the world's most complete Apple II text font, in TrueType format. Works on Mac OS X, Windows, or any operating system that supports TrueType.

The 40-column version is called Print Char 21.
The 80-column version is called PR Number 3.

A new version released April 26, 2020 adds support for the Symbols for Legacy Computing block introduced in Unicode 13.0 and removes characters in the C0 (0x00-0x1F) and C1 (0x80-0x9F) areas.

Additional characters have been added to the font to support all of ISO-Latin-1, Windows ANSI, and MacRoman, as well as box drawing characters and other miscellaneous Unicode characters. These additional characters have been modeled after the actual accented characters on international versions of the Apple II where possible. MouseText is encoded at the appropriate Unicode code points, many of which were recently added in Unicode 13.0.

This font packs a lot of stuff into the Unicode Private Use Area for special effects. ISO-Latin-1 and MouseText are mirrored at 0xE000-0xE0FF. Inverted versions of the same characters are at 0xE100-0xE1FF.

Visual representations of Applesoft BASIC tokens are at 0xE280-0xE2FF.

Sabine 10-Bit Text System characters are at 0xE800-0xEBFF in Unicode Latin, Greek, and Cyrillic order, and at 0xEC00-0xEFFF in their original order. (These characters are 8x8 rather than 7x8.)

Other characters are sprinkled throughout the Unicode code space.


Shaston GS/OS System Font

Download the TrueType version of the GS/OS system font, Shaston. It comes in four variants for both Shaston 8 and Shaston 16 in both 320x200 (1-by-1 pixel aspect ratio) and 640x200 (1-by-2 pixel aspect ratio) video modes.

Additional characters have been added to support all of ISO-Latin-1, Windows ANSI, MacRoman, and Latin Extended A. These additional characters have been modeled after the existing characters as much as possible.


Berkelium (BSW) GEOS System Font

Download the TrueType version of the GEOS system font, BSW. It comes in two variants, Berkelium II HGR (1-by-1 pixel aspect ratio) and Berkelium II DHR (1-by-2 pixel aspect ratio).

Additional characters have been added to support all of ISO-Latin-1, Windows ANSI, and MacRoman. These additional characters have been modeled after the existing characters as much as possible.


Lo-Res & Hi-Res Bit Pattern Fonts

Download two TrueType fonts consisting solely of bit patterns for Apple II lo-res and hi-res graphics. These bit patterns are how lo-res and hi-res graphics appear on a monochrome monitor as opposed to a color monitor.

BLoad A1024 encodes bit patterns for standard lo-res graphics at 0xE000-0xE0FF (even addresses) and 0xE100-0xE1FF (odd addresses).

Double lo-res graphics are encoded at 0xE200-0xE2FF (even addresses) and 0xE300-0xE3FF (odd addresses). (The bit pattern is only affected by whether the address is even or odd. Main versus auxiliary memory affects the color but not the underlying bit pattern! Apple II video is weird; what else is new?)

BLoad A8192 encodes bit patterns for standard hi-res graphics at 0xE000-0xE0FF (for when bit 6 of the previous byte is cleared) and 0xE100-0xE1FF (for when bit 6 of the previous byte is set). (Yes, the bit pattern is affected by the second-most significant bit of the previous byte. Apple II video is weird; what else is new?)

Hi-res graphics with annunciator 3 off but the 80-column firmware inactive are encoded at 0xE200-0xE2FF. (This looks kind of like standard hi-res graphics, except the color group bit is ignored, so the bit patterns are not shifted and the only colors available are green and purple. Apple II video is weird; what else is new?) Double hi-res graphics are encoded at 0xE300-0xE3FF.

Using only the four fonts of Print Char 21, PR Number 3, BLoad A1024, and BLoad A8192, you can very easily recreate any Apple II screen in black and white (or amber, or green). With an additional understanding of precisely how Apple II video output works, you can transform the bit pattern into a corresponding full-color image without needing any additional information.

One consequence of how Apple II video works that I have not seen mentioned anywhere is that the half-pixels of the doubled video modes (80-column, double lo-res, and double hi-res) start 7 half-pixels earlier than the whole pixels of the standard video modes. If you have a physical Apple II+, IIe, or IIc, you can see this yourself by running the following code. (The IIgs uses a different video system, so I don't think it does this, and the behavior of an emulator may be different.)

10 PR#3:NOTRACE:HGR:HCOLOR=3
20 FOR Y=0 TO 159:HPLOT 0,Y TO 279,Y:NEXT Y
30 FOR Y=0 TO 23:PRINT:NEXT Y
40 FOR X=0 TO 318:PRINT "*";:NEXT X
50 GET A$
RUN