VDP programming MSX1

Página 1/5
| 2 | 3 | 4 | 5

Por erwinmusik

Master (140)

Imagen del erwinmusik

18-06-2014, 13:06

I studied the entire VDP Programming Guide and realize f.e. the following:

If I want to put f.e. the letter "A" in three different Colors on the Screen
- I have to use screen2
- I have to copy the pattern of "A" two times in the upper pattern table
- define three color schemes in the correpondending adresses in the Color Table
- put "A" three times at the needed position in the Name Table with they unique Patterns

Am I right?

There is no other way to Change the Color of a letter independend?

Login sesión o register para postear comentarios

Por TheSpecialist

Expert (113)

Imagen del TheSpecialist

18-06-2014, 13:34

correct.
the color table is connected with the pattern table.

your specific wish of displaying the same pattern data in different colors would need the color table to be connected to the name table. some consoles have this, but not MSX.

Por ro

Guardian (4204)

Imagen del ro

18-06-2014, 13:35

Screen 1 is also possible (or any other graphical screen when using msx2/+)

Por erwinmusik

Master (140)

Imagen del erwinmusik

18-06-2014, 17:10

As far as I read, it is not possible to display all 768 individual Patterns on each screen location.
It´s divided into three blocks, therefore I can display only 256 individual characters on each block.
That means, if I want a red, a blue and a yellow "A" placed over the whole screen, I have to create these three patterns and colorschemes three times, one for each block. Otherwise I cannot display as free as I want.

And it costs a lot of logical code to keep track of an entire alphabet in multicolor Cool

Por Marq

Champion (386)

Imagen del Marq

18-06-2014, 18:08

There are the character number mask registers that let you have the same 256 characters in all the three slices.

Por flyguille

Prophet (3028)

Imagen del flyguille

18-06-2014, 18:16

Marq wrote:

There are the character number mask registers that let you have the same 256 characters in all the three slices.

You know, that is not standard.

Por flyguille

Prophet (3028)

Imagen del flyguille

18-06-2014, 18:19

erwinmusik wrote:

As far as I read, it is not possible to display all 768 individual Patterns on each screen location.
It´s divided into three blocks, therefore I can display only 256 individual characters on each block.
That means, if I want a red, a blue and a yellow "A" placed over the whole screen, I have to create these three patterns and colorschemes three times, one for each block. Otherwise I cannot display as free as I want.

And it costs a lot of logical code to keep track of an entire alphabet in multicolor Cool

I used the +128 characters for duplicating the patterns the same as the first 128 characters. And fixing the print routine to set bit7 when printing character if the COLOUR will be HIGHLIGHTED or INVERTED (in the '80 days, having the pattern inverted was a way to highlight), so in screen1 is possible to do that with patterns or with the colour table.
Smile

Por erwinmusik

Master (140)

Imagen del erwinmusik

18-06-2014, 18:19

wehre is these register? does it exist on MSX1?

Por flyguille

Prophet (3028)

Imagen del flyguille

18-06-2014, 18:20

erwinmusik wrote:

wehre is these register? does it exist on MSX1?

it is a misuse hack, it is not standard IIRC.

Por Marq

Champion (386)

Imagen del Marq

18-06-2014, 18:37

Por flyguille

Prophet (3028)

Imagen del flyguille

18-06-2014, 18:46

note the warning

Quote:

Control register #4:
bit 7 - 3 : ignored
bit 2 : PG13; if set, PG = 2000h otherwise 0
bit 1 : if set, the last 8 rows use the 3rd pattern table otherwise 1st.
bit 0 : if set, the middle 8 rows use the 2nd pattern table otherwise 1st.

This undocumented mode is not available in the V9938 as far as I know.

Página 1/5
| 2 | 3 | 4 | 5