"Character memory" is the bitmapped definitions for each of the characters (e.g. "glyphs") that are displayed in text mode, based on the "character codes" that are poked into the "screen memory".
Depending on which graphics mode you enable, there are several different memory areas that will be accessed by the VIC-II in creating the display. If we only focus on text mode (ignoring bitmapped graphics mode), then the relevant memory areas are:
- VIC-II bank - specifies which 16KB bank of the memory map is used by the VIC-II. Default is $0000-$3FFF, and depends on bits 0/1 in $DD00.
- Screen memory - for text mode, this is the 1KB used to hold the character codes for each character in the 80x2540x25 screen. Default is $0400-$07FF and depends on bits 4-7 of $D018, given as an offset to the VIC-II bank.
- Character memory - for text mode, this is the 2KB used to hold the glyph data for the 256 possible characters, where each character is an 8x8 bitmap. Default is the Character ROM data $D000-$D7FF and depends on bits 1-3 of $D018, also given as an offset. Special provisions are made to tell the VIC-II to use the character ROM vs. user-defined characters in the VIC-II bank memory.
- Color memory - for text mode, this is the 1KB used to hold the (normally foreground) color code for each character specified in screen memory. Only the lower nibble is used to specify 1 of 16 possible colors per character glyph. Color memory is always located at $D800-$DBFF.
There are additional memory areas and "complexifiers" if you enable multicolor and bitmap modes.