Soft character set definition for the Commodore 128

This information is derived from an article, "C-128 Custom Character
Sets" by Isaac Malitz, Run magazine, February 1986, pp. 42-46

The Commodore 128 has a character shape table in ROM, like most other
computers, but also allows an alternate shape table at address 3000H or
12288 decimal. In order to activate the table, poke the value 28 into
location 2604. The table is 4096 bytes long (3000H to 3FFFH, or 12288
to 16383). Each character is represented in an 8 x 8 cell, with the
left column and bottom row generally all zeroes.

For example, the ASCII @ character is represented as

0 0 1 1 1 1 0 0 3CH   60
0 1 1 0 0 1 1 0 66H  102
0 1 1 0 1 1 1 0 6EH  110
0 1 1 0 1 1 1 0 6EH  110
0 1 1 0 0 0 0 0 60H   96
0 1 1 0 0 0 1 0 62H   98
0 0 1 1 1 1 0 0 3CH   60
0 0 0 0 0 0 0 0 00H    0

We have several I-APL character sets for the IBM PC CGA, EGA, Hercules
graphics and RAMfont, and Apple II. One of them will probably be
suitable for automatic conversion to the Commodore format.

The information in the article is incomplete. There are 512 character
cells in the shape table, and no indication in the article of what goes
where.  The shape table in ROM can be read with this BASIC program:

100 BANK 14
110 FOR I=0 TO 4096
120 P=PEEK(53248+I)
130 POKE 12288+I, P
140 NEXT I
150 BANK 15
160 POKE 2604, 28

The Commodore 64 allows a similar technique for using a shape table in
RAM, but the details are different and not specified in the article.
