Engineering:Motorola 6847
The MC6847 is a Video Display Generator (VDG) first introduced by Motorola in 1978[3] and used in the TRS-80 Color Computer,[4] Dragon 32/64,[5] Laser 200,[6] TRS-80 MC-10/Matra Alice,[7] NEC PC-6000 series,[8] Acorn Atom,[9] and the APF Imagination Machine,[10] among others. It is a relatively simple display generator compared to other display chips of the time. It is capable of displaying alphanumeric text, semigraphics,[11] 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.[12]
The hardware palette is composed of twelve colors:[13] 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: [math]\displaystyle{ Y }[/math] with 6 possible levels, [math]\displaystyle{ R-Y }[/math] (or [math]\displaystyle{ \phi A }[/math] with 3 possible levels) and [math]\displaystyle{ B-Y }[/math] (or [math]\displaystyle{ \phi B }[/math] with 3 possible levels), based on the YPbPr colorspace, and then converted for output into a NTSC analog signal.[12]
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.[14][15]
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.
Die pictures
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,[16][17] colors are formed by the combination of three signals: [math]\displaystyle{ Y }[/math] luminance, [math]\displaystyle{ \phi A }[/math] chroma and [math]\displaystyle{ \phi B }[/math] 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.
[math]\displaystyle{ Y }[/math] may assume one of these voltages: "Black" = 0.72V; "White Low" = 0.65V; "White Medium" = 0.54V; "White High" = 0.42V.
[math]\displaystyle{ \phi A }[/math] (or [math]\displaystyle{ R-Y }[/math]) and [math]\displaystyle{ \phi B }[/math] (or [math]\displaystyle{ B-Y }[/math]) may be: "Output Low" = 1.0V; "R" = 1.5V; "Input High" = 2.0V.
The following table shows the signal values used:[16][17]
Color | [math]\displaystyle{ Y }[/math] | [math]\displaystyle{ \phi A }[/math] | [math]\displaystyle{ \phi B }[/math] |
---|---|---|---|
Green | 0.54 | 1.0 | 1.0 |
Yellow | 0.42 | 1.0 | 1.5 |
Blue | 0.65 | 2.0 | 1.5 |
Red | 0.65 | 1.5 | 2.0 |
Buff | 0.42 | 1.5 | 1.5 |
Cyan | 0.54 | 1.5 | 1.5 |
Magenta | 0.54 | 2.0 | 2.0 |
Orange | 0.54 | 1.0 | 2.0 |
Black | 0.72 | 1.5 | 1.5 |
Dark Green | 0.72 | 1.0 | 1.0 |
Dark Orange | 0.72 | 1.0 | 2.0 |
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).[citation needed]
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:[1]
Video Mode | Resolution | Colors | Bytes | |
---|---|---|---|---|
Mode 1: Alpha Modes | Internal Alphanumerics | 32 x 16 (8x12 pixel characters) | 2 (GDG or ODO) | 512 |
Internal Alphanumerics Inverted | ||||
External Alphanumerics | ||||
External Alphanumerics Inverted | ||||
Semigraphics 4 (SG4) | 64 × 32 | 8 (BGYBRWCMO) | 512 | |
Semigraphics 6 (SG6) | 64 × 48 | 8 (BGYBRWCMO) | ||
Mode 2: Graphics Modes | Color Graphics One (CG1) | 64 × 64 | 4 (GYBR or WCMO) | 1024 |
Resolution Graphics One (RG1) | 128 × 64 | 2 (GW or BW) | ||
Color Graphics Two (CG2) | 4 (GYBR or WCMO) | 2048 | ||
Resolution Graphics Two (RG2) | 128 × 96 | 2 (GW or BW) | 1536 | |
Color Graphics Three (CG3) | 4 (GYBR or WCMO) | 3072 | ||
Resolution Graphics Three (RG3) | 128 × 192 | 2 (GW or BW) | ||
Color Graphics Six (CG6) | 4 (GYBR or WCMO) | 6144 | ||
Resolution Graphics Six (RG6) | 256 × 192 | 2 (GW or BW) |
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).[1]
MC6847 Character Generator Alphanumeric Characters | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
1x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
2x | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | |
3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
6x | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | |
7x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
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.[2]
Here you can see the default MC6847 and MC6847T1 default character sets, the Dragon 200-E one and the Dragon 200-E daughterboard.
See also
- Motorola 6845, video address generator
- Thomson EF9345
- TMS9918
- MOS Technology VIC-II
- List of home computers by video hardware
References
- ↑ 1.0 1.1 1.2 "MC6847/MC6847Y Video Display Generator, Motorola, 1984". https://people.ece.cornell.edu/land/courses/ece4760/ideas/mc6847.pdf.
- ↑ 2.0 2.1 "MC6847T1 Datasheet". Motorola. 1985. https://colorcomputerarchive.com/repo/Documents/Datasheets/MC6847T1%20MOS%20Video%20Display%20Generator%20(Motorola).pdf.
- ↑ "(1) History of GPU – The Consumer 3D Graphics Cards (1976-1995)". https://www.diskmfr.com/1-history-of-gpu-the-consumer-3d-graphics-cards-1976-1995/.
- ↑ "Color Computer Technical Reference Manual - III THEORY OF OPERATION". https://www.bighole.nl//pub/mirror/homepage.ntlworld.com/kryten_droid/coco/coco_tm_s3.htm.
- ↑ "Dragon 32". http://oldcomputer.info/8bit/dragon32/index.htm.
- ↑ "old-computers.com: VIDEO TECHNOLOGY > LASER 200 / 210". https://www.old-computers.com/museum/computer.asp?c=155.
- ↑ "old-computers.com: - TANDY RADIO SHACK > MC 10". https://www.old-computers.com/museum/computer.asp?c=163&st=1.
- ↑ "old-computers.com: NEC > PC 6001". https://www.old-computers.com/museum/computer.asp?c=177.
- ↑ "Yet another computer museum - The Acorn Atom". https://fjkraan.home.xs4all.nl/comp/atom/index.html.
- ↑ "Home computer & video game museum: APF Imagination Machine". http://hcvgm.org/APF_Imagination_Machine.html.
- ↑ "Semi-graphics-6 display mode". February 14, 2021. http://www.cs.unc.edu/~yakowenk/coco/text/semigraphics.html.
- ↑ 12.0 12.1 "Datasheet Archive MC6847 datasheet download". https://www.datasheetarchive.com/pdf/download.php?id=850df0fa50e5b4996304d289f7fb181a685f9b&type=M&term=MC6847.
- ↑ "Motorola VDG Colours". http://hcvgm.org/VDG_Colours.html.
- ↑ Benchoff, Brian (29 January 2016). "VGA In Memoriam". Hackaday. https://hackaday.com/2016/01/29/vga-in-memoriam/.
- ↑ Posey, Bruce Charles (1982) (in en). Graphics Using the Motorola 6847 Integrated Circuit. W.S.U. Printing Service. https://books.google.com/books?id=dDqvHAAACAAJ. Retrieved 2020-09-16.
- ↑ 16.0 16.1 "MC6847* datasheet & applicatoin notes - Datasheet Archive". http://www.datasheetarchive.com/MC6847*-datasheet.html.
- ↑ 17.0 17.1 MC6847/MC6847Y VIDEO DISPLAY GENERATOR (VDG). Motorola Semiconductor Products Inc.. 1984. pp. 3. https://www.datasheetarchive.com/pdf/download.php?id=76ae30fa50e5b4996304d289f7fb181a685f9b&type=M&term=MC6847.