VDP Mode Registers
This page was last modified 17:59, 6 December 2016 by Mars2000you.

The MSX1 VDP has only 2 Mode Registers while the MSX2/2+ VDP has 4 Mode Registers. All these Registers are Control Registers.

Note: the specific MSX2+ Control Registers are explained on a separate page - see Specific MSX2+ Registers.

Contents

The mode registers

Control Register 0

This control register is common to all MSX generations and can be read/written with the MSX-BASIC instruction VDP(), using the value 0.

The screen mode flags for SCREEN 9 and the KANJI screens depend from the Bitmap screen used by these text modes. See SCREEN and CALL KANJI for more info.

Bit Code Meaning Values
7 Always value 0
6 DG Digitize mode * Sets the color bus to the input (value 1) or output mode (value 0)
* Always value 0 on MSX1 VDP
5 IE2 Light Pen interrupts * Enable (value 1) or disable (value 0) these interrupts
* Always value 0 on MSX1 or MSX2+ VDP
4 IE1 Horizontal Retrace interrupts * Enable (value 1) or disable (value 0) these interrupts
* Always value 0 on MSX1 VDP
3 M5 Screen mode flag for SCREEN 6 to 8, 10 to 12 * Value 1 when using these screens
* Always value 0 on MSX1 VDP
2 M4 Screen mode flag for SCREEN 0 80 column or SCREEN 4, 5, 8, 10 to 12 * Value 1 when using these screens
* Always value 0 on MSX1 VDP
1 M3 Screen mode flag for SCREEN 2, 5, 7, 8, 10 to 12 Value 1 when using these screens
0 EV External VDP input * Value 1 when external VDP input enabled
* Always value 0 on MSX2/2+ VDP


Control Register 1

This control register is common to all MSX generations and can be read/written with the MSX-BASIC instruction VDP(), using the value 1.

Bit Code Meaning Values
7 4/16K VRAM mode selection * Value 1 when 4kB VRAM mode selected
* Value 0 when total VRAM mode selected
* Always value 0 on MSX2/2+ VDP
6 BL Blank screen * Value 1 when screen display is enabled
* Value 0 when screen display is disabled (no VRAM read operations are performed)
5 IE0 Vertical Retrace interrupts Enable (value 1) or disable (value 0) these interrupts
4 M1 Screen mode flag for SCREEN 0 40 column or 80 column Value 1 when using these screens
3 M2 Screen mode flag for SCREEN 3 Value 1 when using this screen
2 Always value 0
1 SI Sprite size * Value 1 when using 16x16 sprites
* Value 0 when using 8x8 sprites
0 MAG Sprite enlarging * Value 1 when using enlarged sprites
* Value 0 when using normal sprites


Control Register 8

This control register is available on the MSX2/2+ VDP and can be read/written with the MSX-BASIC instruction VDP(), using the value 9.

Bit Code Meaning Values
7 MS Mouse * Value 1 when the color bus is set into input mode and the mouse enabled
* Value 0 when the color bus is set into output mode and the mouse disabled
* Always value 0 on MSX2+ VDP
6 LP Light Pen * Value 1 when the Light Pen is enabled
* Always value 0 on MSX2+ VDP
5 TP Transparent / Palette * Used on machine with video input
* Value 1 to redefine color 0 with the color palette
* Value 0 for transparent color 0
4 CB Color Bus * Value 1 when the color bus is set into input mode
* Value 0 when the color bus is set into output mode
3 VR VRAM type * Value 1 = VRAM is 64K x 1 bit or 64K x 4 bits
* Value 0 = VRAM is 16K x 1 bit or 16K x 4 bits
* Affects how VDP performs refresh on DRAM chips
2 Always value 0
1 SPD Sprite Disable * Value 1 when sprites are not displayed and related VRAM reads are not performed
* Default value 1 for SCREEN 9 and KANJI screens
0 BW Black / White * Value 1 when output is grayscale in 32 tones
* Value 0 when color output


Control Register 9

This control register is available on the MSX2/2+ VDP and can be read/written with the MSX-BASIC instruction VDP(), using the value 10.

Bit Code Meaning Values
7 LN Line * Value 1 when vertical dot count is set to 212
* 26,5 lines on SCREEN 0 width 41-80 if value 1
* Value 0 when vertical dot count is set to 192
6 Always value 0
5-4 S1-S0 Simultaneous mode * These bits allow to select simultaneous mode
* 00 = normal
* 01 = external synchronisation
* 10 = external video
3 IL Interlace * Value 1 when interlace mode selected
* Value 0 when non-interlace mode selected
2 EO Even / Odd screens * Value 1 when display of two graphic screens interchangeably by even/odd field
* Value 0 when display same graphic screen by even/odd field
1 *NT PAL / NTSC * Parameter only for RGB output
* Value 1 when PAL mode (313 lines, 50Hz)
* Value 0 when NTSC mode (262 lines, 60Hz)
0 DC Dot Clock * Used on machine with video input
* Value 1 when *DLCLK is set in input mode
* Value 0 when *DLCLK is set in output mode