VDP programming MSX1

Pagina 1/5
| 2 | 3 | 4 | 5

Door erwinmusik

Master (140)

afbeelding van 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?

Aangemeld of registreer om reacties te plaatsen

Van TheSpecialist

Expert (113)

afbeelding van 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.

Van ro

Scribe (4473)

afbeelding van ro

18-06-2014, 13:35

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

Van erwinmusik

Master (140)

afbeelding van 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

Van Marq

Champion (387)

afbeelding van 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.

Van flyguille

Prophet (3028)

afbeelding van 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.

Van flyguille

Prophet (3028)

afbeelding van 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

Van erwinmusik

Master (140)

afbeelding van erwinmusik

18-06-2014, 18:19

wehre is these register? does it exist on MSX1?

Van flyguille

Prophet (3028)

afbeelding van 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.

Van Marq

Champion (387)

afbeelding van Marq

18-06-2014, 18:37

Van flyguille

Prophet (3028)

afbeelding van 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.

Pagina 1/5
| 2 | 3 | 4 | 5