Standard Character Mode

From C64-Wiki
Jump to: navigation, search


Standard Character Mode is an official Graphics Mode for the Commodore 64. It is sometimes referred to as Low Resolution (LoRes). The mode allows for pictures of up to 40 x 25 character blocks filled with PETSCII characters (although technically still 320 x 200 pixel resolution) and 16 colors across the screen. However, there are limitations on how the colors are implemented.


In Control Register 1 ($d011) bit 6 (ECM) must be cleared and bit 5 (BMM) must be cleared. In Control Register 2 ($d016), bit 5 (MCM) must be cleared. Table 1 highlights these bits.

Table 1 - VIC-II Control Registers
Hex Address Dec Address Type Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Contents
$D011 53265 Register RST8 ECM BMM DEN RSEL YSCROLL Control Register 1
$D016 53270 Register - - RES MCM CSEL XSCROLL Control Register 2

Standard Character Mode is 1 of 5 legal graphics modes achievable by the VIC-II; the others being combinations of the bits ECM, BMM and MCM. Table 2 shows the possible graphics modes available from the VIC-II.

Table 2 - Graphics Modes VIC-II Bit Combinations
Mode ECM BMM MCM Result
0 0 0 0 Standard Character Mode
1 0 0 1 Multicolor Character Mode
2 0 1 0 Standard Bitmap Mode
3 0 1 1 Multicolor Bitmap Mode
4 1 0 0 Extended Background Color Mode
5 1 0 1 Extended Background Color Multicolor Character Mode (invalid)
6 1 1 0 Extended Background Color Standard Bitmap Mode (invalid)
7 1 1 1 Extended Background Color Multicolor Bitmap Mode (invalid)


Standard Character Mode is used primarily for writing text, however Low Resolution pictures are possible using PETSCII characters (which each comprise of an 8 x 8 pixel block). A Standard Character Mode picture, or screen of text, consists of a maximum size 40 x 25 character locations each filled with a PETSCII character. Each 8 x 8 pixel character location can contain 2 different colors: 1 color is defined per character location, and 1 color is defined for the entire screen background. All 16 colors can be used.


The memory required to hold the data for a bitmap is 1.5 kilobytes; 1 kilobyte for the Screen Memory ($0400-$07ff) and 500 bytes for color RAM ($d800-$dbff). Inconveniently, only the lower nibble for each of the 1000 character locations is used in color RAM with the upper nibble unused; and so the data still spans a block of nearly 1 kilobyte. The background color is defined in $d021. PETSCII characters are stored in Character Generator ROM although other memory locations can hold user-defined characters. User defined characters are popular in when creating tiles in games and it is notably easier to soft scroll a screen of Standard Character Mode than Standard Bitmap Mode.


Gary by Mermaid
Victor Charlie by Mermaid
N00NEFUKWITEN0NE by Archmage
PETSCII and Pilt by Pal