Motorola 6845
A programmable CRT controller used in many 1980s computers.
The Motorola 6845, or MC6845, is a display controller widely used in 8-bit computers during the 1980s. Originally intended for designs based on the Motorola 6800 CPU, it was more commonly found in machines using the Zilog Z80 and MOS 6502. The chip's main function is to properly time access to display memory and calculate the memory address of the next portion to be drawn, while other circuitry handles pixel generation.
- Part numbers
- MC6845, HD46505, MB89321A, UM6845E, CM607, 6545
- Manufacturers
- Hitachi, Fujitsu, United Microelectronics Corporation (UMC), MOS Technology (Commodore Semiconductor Group), Rockwell
- Register count
- 18
- Address bits
- 14-bit character address, 5-bit row address
- Known uses
- BBC Micro, Amstrad CPC, Videx VideoTerm, IBM PC MDA, HGC, CGA, Plantronics Colorplus
Lore & Background
The 6845 was originally designed by Hitachi as the HD46505, and Hitachi-built versions appeared in a wide variety of Japanese computers from Sony, Sharp, Panasonic, and Casio. It was later cloned as the MB89321A by Fujitsu, and as the UM6845E by United Microelectronics Corporation. During the cold war technology embargoes, it was cloned in Bulgaria under the designation CM607. The 6845 was very similar and related to the later 6545 manufactured by MOS Technology (Commodore Semiconductor Group) and Rockwell (in two versions). The chip generates signals for raster displays but does not generate actual pixels; it provides horizontal and vertical sync, video blanking, and memory addresses. Interlaced and non-interlaced output modes are supported, as is a hardware text cursor. An internal latch allows reading back the video address for light pen or light gun input, though the interface was usually an internal connector and undocumented. All video timing is programmable, allowing a machine to switch between 50 Hz and 60 Hz in software. The 6845 is intended for character-based displays, where each address consists of a 14-bit character address and a 5-bit row address. The character address increases linearly, and when horizontal sync occurs the row address increments; if the row address does not equal the programmed rows per character, the character address resets to the start of the current character row, causing the same character values to be re-read for each scan line.
Reader's Guide
The 6845's significance lies in its widespread adoption across diverse 8-bit computer platforms and early IBM PC graphics adapters. It was not a complete display solution, leaving designers free to implement pixel generation and color handling as they saw fit, which led to widely varying capabilities—from monochrome to color, and from text-only to pixel-based graphics. Its programmable timing allowed software to switch refresh rates, and its light pen support was a common but often undocumented feature.
The chip's architecture, with separate character and row addresses, was optimized for character displays but could be repurposed for graphics by clever routing of address bits. For example, the IBM CGA used a 2-pixel character height and a row address bit to achieve 200 vertical pixels despite a 128-line limitation. The Hercules Graphics Card used two row address bits for 348 vertical pixels, and the Amstrad CPC used three row address bits for its graphics mode.
Because the 6845 did not buffer character data internally, it required high memory bandwidth—each line of character words was read repeatedly for each scan line. This put the onus on system designers to provide fast memory, but it also kept the chip small and inexpensive at a time when chip die size and memory costs were critical concerns. Its functionality was later duplicated and extended by custom circuits in the EGA and VGA adapters.
Did You Know?
- It was cloned in Bulgaria during cold war technology embargoes under the designation CM607.
- The chip has 18 8-bit registers controlling all video timings, exposed through only two external addresses.
- The 6845's light pen interface was usually an internal connector and often undocumented in user manuals.
More in Graphics Hardware, Part 2 1-24
Spotted an error? Know more?
Reader corrections go straight into our review queue. Suggest an edit · How this site is sourced
