Standard Character Mode

From C64-Wiki
Jump to: navigation, search

Introduction[edit]

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.

Implementation[edit]

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)

Characteristics[edit]

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.


Technical


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.

Examples[edit]

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

Editors[edit]