Difference between revisions of "MC6847"

From The Dragon Archive
Line 1: Line 1:
 
 
The MC6847 is a video display generator (VDG) first introduced by Motorola and used in the [[Dragon 32]], [[Dragon 64]], [[Dragon 200]] and [[Dragon Alpha]]. It is a relatively simple display generator compared to other display chips of the time. It is capable of displaying text and graphics contained within a roughly square display matrix 256 pixels wide by 192 lines high. It is capable of displaying 9 colors: black, green, yellow, blue, red, buff (almost-but-not-quite white), cyan, magenta, and orange. The low display resolution is a necessity of using television sets as display monitors. Making the display wider risked cutting off characters due to overscan. Compressing more dots into the display window would easily exceed the resolution of the television and be useless.
 
The MC6847 is a video display generator (VDG) first introduced by Motorola and used in the [[Dragon 32]], [[Dragon 64]], [[Dragon 200]] and [[Dragon Alpha]]. It is a relatively simple display generator compared to other display chips of the time. It is capable of displaying text and graphics contained within a roughly square display matrix 256 pixels wide by 192 lines high. It is capable of displaying 9 colors: black, green, yellow, blue, red, buff (almost-but-not-quite white), cyan, magenta, and orange. The low display resolution is a necessity of using television sets as display monitors. Making the display wider risked cutting off characters due to overscan. Compressing more dots into the display window would easily exceed the resolution of the television and be useless.
  
Line 112: Line 111:
  
 
The 256x192 two color graphics mode uses four colors due to a quirk in the NTSC television system. It is not possible to reliably display 256 dots across the screen due to the limitations of the NTSC signal and the phase relationship between the VDG clock and colorburst frequency. In the first colorset, where green and black dots are available, alternating columns of green and black are not distinct and appear as a muddy green color. However, when one switches to the white and black colorset, instead of a muddy gray as expected, the result is either red or blue. Reversing the order of the alternating dots will give the opposite color. In effect this mode becomes a 128x192 4 color graphics mode where black, red, blue, and white are available. Most games ported from the Tandy CoCo used this mode as the colors available are more useful than the ones provided in the hardware 4 color modes, however these did not always look that good on a UK PAL TV set.
 
The 256x192 two color graphics mode uses four colors due to a quirk in the NTSC television system. It is not possible to reliably display 256 dots across the screen due to the limitations of the NTSC signal and the phase relationship between the VDG clock and colorburst frequency. In the first colorset, where green and black dots are available, alternating columns of green and black are not distinct and appear as a muddy green color. However, when one switches to the white and black colorset, instead of a muddy gray as expected, the result is either red or blue. Reversing the order of the alternating dots will give the opposite color. In effect this mode becomes a 128x192 4 color graphics mode where black, red, blue, and white are available. Most games ported from the Tandy CoCo used this mode as the colors available are more useful than the ones provided in the hardware 4 color modes, however these did not always look that good on a UK PAL TV set.
 +
 +
 +
[[Category:Documentation]] [[Category:Hardware]]

Revision as of 15:44, 5 August 2014

The MC6847 is a video display generator (VDG) first introduced by Motorola and used in the Dragon 32, Dragon 64, Dragon 200 and Dragon Alpha. It is a relatively simple display generator compared to other display chips of the time. It is capable of displaying text and graphics contained within a roughly square display matrix 256 pixels wide by 192 lines high. It is capable of displaying 9 colors: black, green, yellow, blue, red, buff (almost-but-not-quite white), cyan, magenta, and orange. The low display resolution is a necessity of using television sets as display monitors. Making the display wider risked cutting off characters due to overscan. Compressing more dots into the display window would easily exceed the resolution of the television and be useless.

The MC6847 is a relatively simple display generator compared to the display chips of some of the time. It is capable of displaying text and graphics contained within a roughly square display matrix 256 pixels wide by 192 lines high. It is capable of displaying 9 colors: black, green, yellow, blue, red, buff (almost-but-not-quite white), cyan, magenta, and orange. The low display resolution is a necessity of using television sets as display monitors. Making the display wider risked cutting off characters due to overscan. Compressing more dots into the display window would easily exceed the resolution of the television and be useless.

Video Modes

Video Mode Resolution Colours Bytes
Alphanumeric Internal 32 x 16 1 + Black 512
Alphanumeric External 32 x 16 1 + Black 512
Semigraphics 4 64 x 32 8 + Black 512
Semigraphics 6 64 x 48 4 + Black 512
Color Graphics 1 64 x 64 4 1024
Resolution Graphics 1 128 x 64 1 + Black 1024
Color Graphics 2 128 x 64 4 2048
Resolution Graphics 2 128 x 96 1 + Black 1536
Color Graphics 3 128 x 96 4 3072
Resolution Graphics 3 128 x 192 1 + Black 3072
Color Graphics 6 128 x 192 4 6144
Resolution Graphics 6 256 x 192 1 + Black 6144

Alphanumeric/Semigraphics display

In alphanumeric mode, each character is a 5 dot wide by 7 dot high character in a box 8 dots wide and 12 lines high. This display mode consumes 512 bytes of memory and is a 32 character wide screen with 16 lines. The internal ROM character generator only holds 64 characters, so no lower case characters are provided. Lower case characters were rendered as upper case characters with inverted color.

Semigraphics is a hybrid display mode where alphanumerics and chunky block graphics can be mixed together on the same screen. If the 8th bit of the character is set, it is a semigraphics character. If cleared, it is an alphanumeric. When the 8th bit is set, the next three bits determine the color and last 4 bits determine which "quadrant" of the character box is either the selected color or black. This is the only mode where it is possible (without sneaky tricks) to display all 9 colors on the screen simultaneously. If used to only display semigraphics, the screen becomes a 64x32 9 color graphics mode.

The alphanumeric display has two colorsets. The one used by default has black characters on a green background. The alternate has black characters on an orange background. The colorset selection does not affect semigraphics characters. The border in this mode is always black. The 6847 is capable of a Semigraphics 6 display mode, where two bits select a color and 6 bits determine which 1/6th of the character box is lit. In this mode only 4 colors are possible but the Colorset bit of the VDG can select two different groups of the 4 colors.


Additional Semigraphics modes

By setting the SAM such that it believes it is displaying a full graphics mode, but leaving the VDG in Alphanumeric/Semigraphics 4 mode, it is possible to subdivide the character box into smaller pieces. This creates the "virtual" modes Semigraphics 8, 12, and 24[4]. In these modes it was possible to mix bits and pieces of different text characters as well as Semigraphics 4 characters. These modes were an interesting curiosity but not widely used, as the Semigraphics 24-screen consumed 6144 bytes of memory.


Graphics display

There were several full graphics display modes, which were divided into two categories: "resolution" graphics and "color" graphics. In resolution modes, each pixel is addressable as either on or off. There are two colorsets available, the first was black dots on a green background and green border, the second, more commonly used one has white dots on a black background with a white border. In color modes, each pixel was two bits, selecting one of four colors. Again the colorset input to the VDG determined which colors were used. The first colorset has a green border, and the colors green, yellow, red, and blue were available. The second colorset has a white border and the colors white, cyan, magenta and orange were available. Resolution graphics have 8 pixels per byte and are available in 128x64, 128x96, 128x192, and 256x192 densities. Color graphics have 4 pixels per byte and are available in 64x64, 128x64, 128x96, and 128x192 densities. The maximum size of a graphics screen is 6144 bytes


NTSC Artifact colors

The 256x192 two color graphics mode uses four colors due to a quirk in the NTSC television system. It is not possible to reliably display 256 dots across the screen due to the limitations of the NTSC signal and the phase relationship between the VDG clock and colorburst frequency. In the first colorset, where green and black dots are available, alternating columns of green and black are not distinct and appear as a muddy green color. However, when one switches to the white and black colorset, instead of a muddy gray as expected, the result is either red or blue. Reversing the order of the alternating dots will give the opposite color. In effect this mode becomes a 128x192 4 color graphics mode where black, red, blue, and white are available. Most games ported from the Tandy CoCo used this mode as the colors available are more useful than the ones provided in the hardware 4 color modes, however these did not always look that good on a UK PAL TV set.