Skip to content

Apple II Text Mode

Peter Evans edited this page Feb 17, 2021 · 6 revisions

Apple II text mode is one in which all data in the text pages 1 and 2 are treated as character entries on a set of rows and columns. In 40-column text mode, only one page is used at a time; in 80-column text mode, both are used together.

Memory Addresses

The use of the term "text page" is unfortunately a confusing one, although it is consistent with documentation that Apple provided in the IIe Technical Reference. These pages are not traditional memory pages; each text page is 1 kilobyte, or 4 times larger than a traditional memory page would be. You can find the addresses in memory for the pages below.

Page Start End
Page 1 $0400 $07FF
Page 2 $0800 $0BFF

In 40-column text mode, only page 1 is generally used. In 80-column text mode, both pages are used together.

Fonts

Some kind soul out there has produced TrueType fonts of the Apple 40-column and 80-column character sets. While that is awesome, those fonts would be difficult to use in an application that requires pixel-perfect accuracy. Because of that, we must use our own bitmapped font.

The Apple II uses essentially two character sets that emulate. The first is essentially Latin-1; the other is called, er, well, it's called MouseText.

You can find where the system font is built in the a2.SystemFont function. It defines glyphs for a gfx.Font (which is a bitmapped font type) for each ASCII code, each glyph being 7 dots wide and 8 dots high. The intention is generally to build the font at boot-time; when the glyphs need to be rendered on screen, they can be done so through the Blit frame buffer method.

Clone this wiki locally