In order to check if the M.E.S.S. implementation of MC6847 was correct, I wrote a program in my MC-1000 (.wav file) that draws the characters in Resolution Graphics 6 (two-color 256x192) mode (with data from one of the "fontdata" arrays found in file m6847.c) and other bytes so that, alternating between text mode and RG6 mode, the real characters and the characters drawn alternate in the same screen positions, so I could compare and easily perceive any misplaced or lacking pixels.

Code
10  HGR 
20  OUT 128,158
30  FOR A = 0 TO 511
40  POKE 32768 + A,32
50  NEXT 
60  FOR A = 64 TO 127
70  POKE 32768 + A,A
80  FOR B = 3 TO 9
90  READ C
100  IF C THEN  POKE 32768 + (A AND 224) * 12 + B * 32 + (A AND 31),C
110  NEXT B,A
120  OUT 128,1: FOR A = 1 TO 200: NEXT 
130  OUT 128,159: FOR A = 1 TO 200: NEXT 
140  GOTO 120
10000  REM DADOS DOS CARACTERES
10010  DATA 28,34,2,26,42,42,28
10020  DATA 8,20,34,34,62,34,34
10030  DATA 60,18,18,28,18,18,60
10040  DATA 28,34,32,32,32,34,28
10050  DATA 60,18,18,18,18,18,60
10060  DATA 62,32,32,60,32,32,62
10070  DATA 62,32,32,60,32,32,32
10080  DATA 30,32,32,38,34,34,30
10090  DATA 34,34,34,62,34,34,34
10100  DATA 28,8,8,8,8,8,28
10110  DATA 2,2,2,2,34,34,28
10120  DATA 34,36,40,48,40,36,34
10130  DATA 32,32,32,32,32,32,62
10140  DATA 34,54,42,42,34,34,34
10150  DATA 34,50,42,38,34,34,34
10160  DATA 62,34,34,34,34,34,62
10170  DATA 60,34,34,60,32,32,32
10180  DATA 28,34,34,34,42,36,26
10190  DATA 60,34,34,60,40,36,34
10200  DATA 28,34,16,8,4,34,28
10210  DATA 62,8,8,8,8,8,8
10220  DATA 34,34,34,34,34,34,28
10230  DATA 34,34,34,20,20,8,8
10240  DATA 34,34,34,42,42,54,34
10250  DATA 34,34,20,8,20,34,34
10260  DATA 34,34,20,8,8,8,8
10270  DATA 62,2,4,8,16,32,62
10280  DATA 56,32,32,32,32,32,56
10290  DATA 32,32,16,8,4,2,2
10300  DATA 14,2,2,2,2,2,14
10310  DATA 8,28,42,8,8,8,8
10320  DATA 0,8,16,62,16,8,0
10330  DATA 0,0,0,0,0,0,0
10340  DATA 8,8,8,8,8,0,8
10350  DATA 20,20,20,0,0,0,0
10360  DATA 20,20,54,0,54,20,20
10370  DATA 8,30,32,28,2,60,8
10380  DATA 50,50,4,8,16,38,38
10390  DATA 16,40,40,16,42,36,26
10400  DATA 24,24,24,0,0,0,0
10410  DATA 8,16,32,32,32,16,8
10420  DATA 8,4,2,2,2,4,8
10430  DATA 0,8,28,62,28,8,0
10440  DATA 0,8,8,62,8,8,0
10450  DATA 0,0,0,48,48,16,32
10460  DATA 0,0,0,62,0,0,0
10470  DATA 0,0,0,0,0,48,48
10480  DATA 2,2,4,8,16,32,32
10490  DATA 24,36,36,36,36,36,24
10500  DATA 8,24,8,8,8,8,28
10510  DATA 28,34,2,28,32,32,62
10520  DATA 28,34,2,12,2,34,28
10530  DATA 4,12,20,62,4,4,4
10540  DATA 62,32,60,2,2,34,28
10550  DATA 28,32,32,60,34,34,28
10560  DATA 62,2,4,8,16,32,32
10570  DATA 28,34,34,28,34,34,28
10580  DATA 28,34,34,30,2,2,28
10590  DATA 0,24,24,0,24,24,0
10600  DATA 24,24,0,24,24,8,16
10610  DATA 4,8,16,32,16,8,4
10620  DATA 0,0,62,0,62,0,0
10630  DATA 16,8,4,2,4,8,16
10640  DATA 24,36,4,8,8,0,8
Here I used black-and-white RG6. To avoid the resulting artifacting, I changed to black-and-green RG6:

Code
130  OUT 128,157: FOR A = 1 TO 200: NEXT 
Then I realized that NO CHANGE IN BACKGROUND COLOR is perceived. shocked

Here's a video with the result:
http://www.ensjo.net/mc-1000/MVI_1262.AVI

I have realized long before that black-and-green RG6's "black" background was somewhat greenish, but it never occurred to me that it was SO SIMILAR to text mode's dark green background. (Seemingly RG6's bright border gives us the impression that they are different.)

Note that when we alternate between black-and-white and black-and-green RG6, we do perceive a change in background color:
http://www.ensjo.net/mc-1000/MVI_1261.AVI

This having been said... QUESTIONS: Is this phenomenon observed in other machines based on MC6847? (A real TRS-80 Color Computer, for instance. Can anyone check it?) Is DARK GREEN the real background color of MC6847's black-and-green RG6 mode?

Last edited by Ensjo; 09/02/09 06:22 PM.