VDP Specific MSX2+ Registers
This page was last modified 11:25, 6 December 2016 by Mars2000you.

The MSX2+ VDP has 3 specific Control Registers.

The specific MSX2+ control registers

Control Register 25

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

Bit Code Meaning Values
7 Always value 0
6 CMD Command Function * Value 0 by default = the internal VDP commands are not extended to screens 0 to 4
* Value 1 = enables the extension of the internal VDP commands to all screens
* When extended, the VDP commands will work in screens 0 to 4 as in SCREEN 8 (the parameters need to be set by using the x,y coordinates of SCREEN 8)
5 VDS Output Selection * Value 0 by default = the CPUCLK signal is output (3,579545 MHz for the Z80A)
* Value 1 = the VDS signal is output
4 YAE YAE Mode * Value 0 = the entire YJK mode (if enabled) is used to display SCREEN 12
* Value 1 = the YJK/Palette mixed mode is used to display SCREEN 10 or 11 if the YJK mode is enabled
3 YJK YJK Mode * Value 0 by default = the YJK to RGB conversion system is disabled (SCREEN 8 is displayed)
* Value 1 = the YJK to RGB conversion system is enabled (the colors of the sprites are as in screens 1 to 5 and 7)
2 WTE WAIT Function * Value 0 by default = disables the WAIT function
* Value 1 = enables the WAIT function (not used on MSX system)
* Effect: when the CPU accesses the VRAM, accesses to all ports on the VDP are held in the WAIT state until access to the VRAM is completed
* This function is not provided for incomplete access to the register and the color palette or for the data ready status of the internal VDP commands
1 MSK Mask * Value 0 by default = no mask applied on left dots for horizontal scroll
* Value 1 = mask applied on the left dots (8 dots in screens 5, 8, 10 to 12 - 16 dots in screens 6 and 7) and border color is output
* Masking is required to ensure proper display of the screen during horizontal scroll because the data of these dots are not controlled by the VDP once they disappear to the left of the screen or once they appear on the screen
* No need to mask if value in control register 27 is 0
0 SP2 Scrolling Pages * Value 0 by default = sets the horizontal screen size to one page (the non-displayed left part of the page will appear on the right hand side of the screen)
* Value 1 = sets the horizontal screen size to two pages (the second page will appear at the scroll operation)


Control Registers 26 and 27

These control registers are available only on the MSX2+ VDP and can be read/written with the MSX-BASIC instruction VDP(), using the values 27 and 28.

Value of bits 7 and 6 of register 26 and bits 7 to 3 of register 27 is always 0.

The other bits are used to set the scroll volume of still pictures in the horizontal direction one dot at a time in screens 5, 8, 10 to 12, two dots at a time in screens 6 and 7. They specify the number of the vertical line that will be the most on the left side.

Bit 5 of register 26 is useful only when bit 0 - SP2 - of register 25 has value 1 to set the horizontal screen size to two pages for the horizontal scrolling.