especially so, and this was an important concern. In the 1970s and early to mid-1980s, chip circuit densities were not very high either, and putting an 80-byte or larger character buffer into a chip like the 6845 might have enlarged the chip die by 50-100%, in turn making it more expensive by a few times that factor due to the exponential growth of chip defect rates and the consequent decline of production yield with die size. Therefore, adding such a character buffer to the 6845 was not a cost-effective approach when the chip was introduced. Now that memory is very inexpensive, fast memory included, there is little motivation to reduce the memory bandwidth required by a video display controller, so this is no longer an important engineering consideration. At the same time, chip densities have skyrocketed—which is actually the main reason for today's low memory prices—and many chips used in computers have large buffers and caches; a chip like the 6845 designed today could easily use a character line cache to avoid reading and re-reading characters for each video scan line within a character line. For low-power handheld devices, which would be the main ones likely to use character displays now, the power used for high-bandwidth memory access would be good reason to reduce the memory bandwidth for display refresh through the use of a line cache in the display controller. If the character address is used to look up a character reference in RAM and the row address to index a table of character graphics in ROM an ordinary text mode display is constructed. The character reference read from memory must be combined with the row address to form the address for the character graphics ROM, with the character reference selecting a set of scan line patterns that forms one character and the row address indexing into that set to select one scan line. In other words, the ROM address is split into two parts in order to use the ROM as a two-dimensional array: the first dimension selects a character, and the second selects a row of that character's graphic pattern. Linear framebuffers As described above, the 6845 is not ordinarily able to provide large linear framebuffers. A design could use only the character address and set the number of rows per character to 1 but it would be constrained to of addressable memory. A solution is found