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.
Also download the corresponding keyboard layout for Mac OS X, called IN Number Zero. Option key enables access to inverse characters. Control-Shift enables access to MouseText characters.
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 0x80-0x9F, and at the appropriate Unicode code points where possible.
This font packs a lot of stuff into the Unicode Private Use Area for special effects. ISO-Latin-1 and MouseText (0x00-0xFF) are mirrored at 0xE000-0xE0FF. Inverted versions of the same characters are at 0xE100-0xE1FF.
Patterns to render low-resolution graphics are at 0xE200-0xE20F (top half, zero-width) and 0xE210-0xE21F (bottom half, 7 pixel width). 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 on 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 on 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.
Finally, there is something I want to confirm. Can someone with a physical Apple II+, IIe, or IIc (not an emulator, and not a IIgs) please run the following code and take a picture of the bottom left corner of the screen for me? Or at least tell me if something looks a little... misaligned. ☺ Thanks!
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