Multicolor Bitmap Mode
Multicolor Bitmap Mode is an official Graphics Mode for the Commodore 64. It can be considered Medium Resolution (compared to the High Resolution Standard Bitmap Mode). The mode allows for pictures of up to 160 x 200 pixel resolution and 16 colors across the screen. However, there are limitations on how the colors are implemented.
|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|
Multicolor Bitmap 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|
|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)|
A Multicolor Bitmap Mode picture consists of 1 Medium Resolution bitmap of maximum size 160 x 200 pixels; with a Pixel Aspect Ratio of 2:1. Each 8 x 8 pixel character location can contain 4 different colors: 1 color is defined per character location, 1 color is defined for the background, 2 colors are defined using the screen matrix (same as a hi-res bitmap) and the last is defined using the colour RAM. All 16 colors can be used.
A multicolour bitmap resolution (160 x 200) is halved horizontally from a standard bitmap (320 x 200). This is as a result of the formation of double-wide pixels but with the added advantage of 4 colors per character location. Each pair of pixels in a character location has a bitmask which denotes which color should be represented: %00 for background color 0 ($d021), %01 for the upper nibble of the screen matrix, %10 for lower nibble of the screen matrix and %11 for the lower nibble of Screen RAM.