Motorola 6847

The MC6847 is a Video Display Generator (VDG) first introduced by Motorola in 1978 and used in the TRS-80 Color Computer, Dragon 32/64, Laser 200, TRS-80 MC-10/Matra Alice, NEC PC-6000 series, Acorn Atom, and the APF Imagination Machine, among others. It is a relatively simple display generator intended for NTSC television output: capable of displaying alphanumeric text, semigraphics, and raster graphics contained within a roughly square display matrix 256 pixels wide by 192 lines high.

The ROM includes a 5 x 7 pixel font, compatible with 6-bit ASCII. Effects such as inverse video or colored text (green on dark green; orange on dark orange) are possible.

The hardware palette is composed of twelve colors: black, green, yellow, blue, red, buff (almost-but-not-quite white), cyan, magenta, and orange (two extra colors, dark green and dark orange, are the ink colours for all alphanumeric text mode characters, and a light orange color is available as an alternative to green as the background color). According to the MC6847 datasheet, the colors are formed by the combination of three signals: $$Y$$ with 6 possible levels, $$R-Y$$ (or $$\phi A$$ with 3 possible levels) and $$B-Y$$ (or $$\phi B$$ with 3 possible levels), based on the YPbPr colorspace, and then converted for output into a NTSC analog signal.

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.

Variants
According to the datasheets, there are non-interlaced (6847) and interlaced (6847Y) variants, plus the 6847T1 (non-interlaced only). The chips can be found with ceramic (L suffix), plastic (P suffix) or CERDIP (S suffix) packages.

Signal levels and color palette
The chip outputs a NTSC-compatible progressive scan signal composed of one field of 262 lines 60 times per second.

According to the MC6847 datasheet, colors are formed by the combination of three signals: $$Y$$ luminance, $$\phi A$$ chroma and $$\phi B$$ chroma, according to the YPbPr color space. These signals can drive a TV directly, or be used with a NTSC modulator (Motorola MC1372) for RF output.

$$Y$$ may assume one of these voltages: "Black" = 0.72V; "White Low" = 0.65V; "White Medium" = 0.54V; "White High" = 0.42V.

$$\phi A$$ (or $$R-Y$$) and $$\phi B$$ (or $$B-Y$$) may be: "Output Low" = 1.0V; "R" = 1.5V; "Input High" = 2.0V.

The following table shows the signal values used:

Notes: 1) The colors shown are adjusted for maximum brightness and only approximate (different color spaces are used on TV - BT601 and web pages - sRGB).

2) At least on the Color Computer 1 and 2, the alternate palette of text modes (actually the text portion of semigraphic modes) was dark pink (or dark red) on light pink, of shades not listed here (and no dark orange), whereas the Color Computer 3, with a different chip, made it dark orange on orange.

The first eight colors of this table were numbered 0 to 7 in the upper bits of the character set (when bit 7 was set, bits 4-6 represented the color number), but ColorBASIC's numbering was 1 higher than that in text mode, as it used 0 for black.

Video modes
Possible MC6847 video display modes:

Character generator
The built-in character generator ROM offers 64 ASCII characters with 5x7 pixels. Characters can be green or orange, on dark green or orange background, with a possible "invert" attribute (dark character on a bright background).

The internal character rom is organized as a matrix of 64x35 (2240 bits) where each column consists of the 35 bytes (5x7) needed to form a character. The character bits are stored sequentially in column order, that is 7 bits of column 0 followed by the 7 bits of column 1, and so on.

The following picture shows the bits overlapped on top of the rom array, with the ones of the first character (@) in different colours to highlight the organization.

Motorola offered its customers the possibility of ordering the MC6847 with the internal ROM masked with a custom pattern. The customer would provide the ROM pattern on MCM2708 or MCM2716 PROMS or on a MDOS formatted 8-inch single sided, single density floppy disk. Motorola would then send 10 verification units for the customer to verify the ROM pattern.

The MC6847 also supports an external character ROM. The Dragon 200-E, a spanish variant of the Dragon 64 is a great example of this. The machine had a daughterboard that fits on the MC6847 socket and had the VDG plus a 2532 EPROM and some decoding logic.

The updated version of the chip (MC6847T1) had a 96 character ROM that included lowercase characters.

Here you can see the default MC6847 and MC6847T1 default character sets, the Dragon 200-E one and the Dragon 200-E daughterboard.