Note: in cases of manufacturers who have made both home and personal computers, only machines fitting into the home computer category are listed. Systems in the personal computer category, except for Early Macintosh PCs, are generally based on the VGA standard and use a video chip known as a Graphics Processing Unit. Very early PCs used one of the much simpler (even compared to most home computer video hardware) video display controller cards, using parts like the MDA, the Hercules Graphics Card, the CGA and the EGA standard). Only after the introduction of the VGA standard could PCs really compete with the home computers of the same era, such as the Amiga and Atari ST, or even with the MSX-2. Also, not listed are systems that are typically only gaming systems, like the Atari 2600 and the Bally Astrocade, even though these systems could sometimes be upgraded to resemble a home computer.
The importance of having capable video hardwareEdit
Early home computers all used similar hardware and software, mostly using the 6502, the Z80, or in a few cases the 6809 microprocessor. They could have as little as 1 KB of RAM or as much as 128K, and software-wise, they could use a small 4K BASIC interpreter, or an extended 12K or more BASIC. The basic systems were quite similar with the exception of the video display hardware. As a result, the success of a system proved to primarily rely on the performance of the video display hardware, since this had a direct implication on the kind of games that could be played on the system.
The most important aspect of a home computer was how far programmers could push the hardware to create games. A case in point is the Commodore 64. Its microprocessor lacked advanced math functions and was relatively slow. In addition, the built-in BASIC interpreter lacked any sort of graphics commands, as it was the same version that was developed for the older Commodore PET (a computer without any high-resolution graphics capabilities at all). However, these drawbacks were of little consequence, because the C64 had the VIC-II chip. When accessed by machine language programs, the graphic capabilities of this chip made it practical to develop arcade-style games on a home system. Additionally, specific machine language code exploiting quirks of the VIC-II chip allowed for special tricks to draw even better pictures out of the VIC-II chip. The comparatively large memory and the audio capabilities of the C64 also lent themselves well toward the production of larger games.
An example of the opposite is the Aquarius by Mattel which had such incredibly limited video hardware that it was retracted from the market after only four months due to poor sales.
Video arbitration logicEdit
One major problem that early computer video hardware had to overcome was the video bus arbitration problem. The problem was determining a way to give both the video hardware (VDU) and the CPU continuous read access to the video RAM. The obvious solution, using interleaving time slots for the VDU and RAM was hard to implement because the logic circuits and video memory chips of the time did not have the switching speed necessary to do so. For higher resolutions, the logic and the memory chips were barely fast enough to support reading the display data, let alone for dedicating half the available time for the slow 8-bit CPU. That being said, one system, the Apple II, was one of the first to use a feature of the data-bus logic of the 6502 processor to implement a very early interleaving time slot mechanism to eliminate this problem. The BBC Microcomputer used 4 MHz RAM with a 2 MHz 6502 in order to interleave video accesses with CPU accesses.
Most other systems used a much simpler approach, and the TRS-80's video logic was so primitive that it simply did not have any bus arbitration at all. The CPU had access to the video memory at all times. Writing to the video RAM simply disabled the video display logic. The result was that the screen often displayed random horizontal black stripes on screen when there was heavy access to the video RAM, like during a video game.
Most systems avoided the problem by having a status register that the CPU could read, and which showed when the CPU could safely write to the video memory. That was possible because a composite video signal blanks the video output signal during the "blanking periods" of the horizontal and especially the long vertical video sync pulses. So by simply waiting for the next blanking period, the stripes were avoidable. This approach did have one disadvantage, it relied on the software not to write to the screen during the non-blanking periods. If the software ignored the status register the stripes would re-appear. Another approach, used by most other machines of the time, was to temporarily stop the CPU using the "WAIT/BUSRQ" (Z80) "WAIT" (6809) or "SYNC" (6502) control signal whenever the CPU tried to write to the screen during a non-blanking period. Yet another, more advanced, the solution was to add a hardware FIFO so that the CPU could write to the FIFO instead of directly to the RAM chips, which were updated from the FIFO during a blanking interval by special logic circuitry. Some later systems started using special "two-port" video memory, called VRAM, that had independent data output pins for the CPU interface and the video logic.
The main classes of video hardwareEdit
There are two main categories of solutions for a home computer to generate a video signal:
A custom design, either built from discrete logic chips or based around some kind of custom logic chips (an ASIC or PLD).
A system using some form of video display controller (VDC), a VLSI chip that contained most of the logic circuitry needed to generate the video signal
Systems in the first category were the most flexible and could offer a wide range of (sometimes unique) capabilities, but generally speaking, the second category could offer a much more complex system for a comparatively lower price.
The VDC based systems can be divided into four sub-categories:
Simple video shift register based solutions, have a simple "video shifter chip", and the main CPU doing most of the complex stuff. Only one example of such a chip for a home computer exists, the RCA CDP1861 used in the COSMAC VIP. It could only create a very low-resolution monochrome graphic screen. The chip in the Sinclair ZX-81 also is a video shifter but is a custom logic chip (a ULA) rather than a single-purpose commercial IC like the CDP1861. Dedicated Video shifter chips did have some use in very early game systems, most notably the Television Interface Adapter chip in the Atari 2600. Note that although one of the chips in an Atari ST is also called a "video shift register" it does not fall into this class, mainly because the IC's in this class depends on the main CPU to feed them with picture data. They do nothing more than generating the sync signals and convert parallel data into a serial video data stream. The Atari ST's chip used a DMA system to read out video data independent of the main CPU and contained a palette RAM, and resolution/color mode switching logic.
CRTC (Cathode Ray Tube Controller) based solutions. A CRTC is a chip that generates most of the basic timing and control signals. It must be complemented with some "Video RAM" and some other logic for the "arbitration" so that the CPU and the CRTC chip can share access to this RAM. To complete the design, a CRTC chip also needs some other support logic. For example, a ROM containing the bitmapfont for text modes, and logic to convert the output from the system into a video signal.
Video interface controllers were a step up on the ladder, these were true VLSI chips that integrated all of the logic that was in a typical CRTC based system, plus a lot more, into a single chip. The VIC-II chip is probably the best-known chip of this category.
Video co-processor chips are at the highest end of the scale; Video interface controllers that can manipulate, and/or interpret and display, the contents of their own dedicated Video RAM without intervention from the main CPU. These chips are highly flexible offering options and features with minimal CPU involvement that on other systems are impossible or at best difficult to produce, requiring extensive CPU overhead. The Atari ANTIC/GTIA and Amiga OCS/ECS/AGA are well known examples of this high-feature category. But note that not all video co-processors are powerful, some are even simpler than many Video interface controllers, notably the primitive SAA5243 which is still technically a co-processor.
Explanation of the terms used in the tablesEdit
The name of the system, or if there are many similar versions, the name of the most well-known variant, see Notes.
The year that the first version of this system came on the market.
The name of the chip that was used as the basis for the video logic.
The maximum amount of RAM used for the video display, depending on the resolution used the system may use less.
Video mode(s) [i.e. Text mode(s) and Graphics modes]
The numbers of characters per line and lines of text the system supported and the number of colors they could have. Sometimes more than one mode was possible: The number of horizontal and Vertical pixels the system could display in a high resolution mode and The number of colors each pixel could have in High-resolution mode, where several high-resolution modes exist each one is listed separately. Beginning with the Xerox Alto, systems forewent independent text modes and drew text on a high-resolution graphics screen. This required more video RAM, but also freed computer fonts from a fixed grid.
Describes extra graphical possibilities a video system had because of optional features of their character sets, there are currently three categories:
Some systems could only display upper case characters in text mode because of their limited character set, If a system was able to also support lower case letters in a text mode, (in any high-resolution mode it is of course always possible), then there is LC (for Lower Case) in this column.
Some systems used a matrix of blocky pixels instead of a letter in their font sets (or used dedicated hardware to emulate them, like the TRS-80 did), to support some sort of all points addressable (APA) mode. It's hard to call this a "high resolution" mode because the resolution could be as low as 80×48 pixels, but in any case, it was possible to draw pictures with them. In the case of systems that used such a system as its "APA" mode, there is BG (for Block Graphics) in this column.
Some other systems used semi graphical characters like box-drawing characters dots and card symbols, and "graphical building block" geometric shapes such as triangles to give the system the appearance it could do high-resolution graphics while in reality it could not, Systems like that have SG (for semi graphical characters) in this column. Many systems like the PET had a few of such characters dedicated to blocking graphics for an APA mode as well, often only for 2×2 matrix characters. Sometimes the system filled (or could fill) a reprogrammable section of the font set which such characters, these systems mainly fall under the "soft font" heading. Note that the BG and SG entries are only used when the system relied on them, had them predefined in its default character set, or, (what often happened on early systems) had them printed on the keyboard keys for direct entry in combination with some kind of "graphic shift" key.
When the system had a programmable font RAM instead of a static "font ROM", or when the video system did not have a hardware text mode, but painted text in the high-res screen using software, the video display wasn't dependent on a permanent font set, in this case we are talking about a system with a "soft" font.
in "high-resolution mode" it was often the case that a certain pixel could not be given an arbitrary color, often certain clusters of pixels, (quite often 8×8 pixels large) shared the same "color attribute", so as to spare video memory, as an 8-bit computer only had a 64 KB address space, and the CPU often had limited capabilities to manipulate video memory, therefore it was often necessary to keep the video RAM size as small as possible, so a minimum of the address space of the micro was used, and also the video content could be changed relatively rapidly.
If the system could translate a "logical color" into a (larger number) or true colors using a palette mechanism then this column lists the number of logical colors the palette could accept, and the number of colors it could translate to.
Short for "hardware acceleration", can take several forms, the most obvious form is "bit blitting", that is the moving of groups of pixels from one place in video memory to another without the CPU doing any of the moving, another often-used technique is hardware scrolling which in fact emulates moving the whole screen in the video RAM, the third form of hardware acceleration is the use of sprites implemented in hardware. Some systems also supported drawing lines (and sometimes rectangles) using special line drawing hardware. The entry in the column reveals which methods the hardware supported with two letters for each method.
Covers three facets of the sprite support hardware the system used. Each number in the table cell is preceded by two letters.
For the first facet, is the total number of hardware sprites the system could support, in hardware (not counting re-use of the same hardware). if the system doesn't support hardware sprites at all the table cell only contains "-" . If S# is 1 then the single sprite is most often used to support a mouse cursor.
For the second facet, is the size of the sprite in screen pixels. A sprite could be displayed by the hardware, as a matrix of horizontal by vertical pixels. If more than one sprite size mode is available each one is listed.
For the third facet, is the number of sprite colors, it gives the number of colors that a sprite could have. It is about the total number of colors that could be used to define the sprite (transparent NOT included), so if a sprite could only be displayed as a figure in a single color the number is 1. If more than one sprite size mode is available each one is listed.
For the fourth facet, is the number of sprites per scan line. Hardware spites use a kind of Z-buffer to determine which sprite is "on top". Availability of hardware to do this limits the number of sprites that can be displayed on each scan line. This number tells how many sprites could be displayed on a scanline before one of them became invisible because of hardware limitations.
If the video display has unique features (or limitations) they will be listed here, if space is a limitation the remaining special features are expressed as notes.
A "-" in a table cell means that the answer is irrelevant, unknown, or in another way has no meaning, for example, the sprite size of a system that does not support hardware sprites.
A "?" in a table cell means that the entry has not yet been determined. if a ? follows an entry it means that other options than the listed ones may also exist
"Mono" in a table cell means monochrome that is, for example, black on white, or black on green.
The list of home computers and their video capabilitiesEdit
Systems with video logic designed as terminalsEdit
Characters were drawn on a 112×78 pixel graphics screen which means that each character was 6×6 pixels, including blank space between the characters, which led to very blocky characters, which simply didn't allow for distinct lower case characters.
In theory, the "graphics" screen text was drawn on could be the text-mode semigraphics screen for a more standard (for the time) 56x26 or 56x39 high-resolution text mode, though in practice this real text mode was apparently never used (if it even could be).
unique semi-graphic pixel color attribute scheme made that each of the 64×48 semi-graphic "pixels" (consisting of a quarter of an 8×8 pixel character space) could have its own independent color, these semi-graphics could be combined with predefined characters, or programmable characters, each of which could also have an independent foreground and background color out of a palette of 8.
not really, but something similar could be done by manipulating the four colors out of sixteen chosen for each tile, or the global background color
The VIC chip allowed a character generator in RAM to redefine the pixel-by-pixel depictions of the on-screen characters and it allowed for double-height characters (8 pixels wide, 16 pixels high). It was possible to get a fully addressable 160 by 160 screen by filling the screen with a sequence of 200 different double-height characters, then turning on the pixels selectively inside the RAM-based character definitions. The 200-character limitation was so that enough bytes would be left over for the screen character grid itself to remain addressable by the VIC chip. The Super Expander cartridge provided such a mode in BASIC, although it often had to move the BASIC program around in memory to do it. It was also possible to fill a larger area of the screen with addressable graphics using a more dynamic allocation scheme if the contents were sparse or repetitive enough.
The VIC-20 had hardware support for a Light pen, but its most obvious features were its text mode with very wide characters and its built-in composite video output and the NTSC VIC’s interlaced mode
The TMS9918 was designed for the TI-99/4, it has text characters of 8x8 (32 characters per line) or 8x6 pixels (40 characters per line ,and features limited attribute clash colour limitations, it has 32 monochrome sprites of 8x8 or 16x16 pixels.
in CRT: 320×200 to 1600×608 Graphics 2,4,16,256 colors (indexed), 32768 colors (+overlay), 65536 colors (Hi-Color)
VGA: 640×480 or 800×608 Graphics 2,4,16,256 colors (indexed), 32768 colors (+overlay), 65536 colors (Hi-Color)
CRT: 320×200 to 1600×608
VGA: 640×480 or 800×608
2 to 65536 colors out of 262,144 colors
Systems that fall into multiple classificationsEdit
For these systems, it is established that they are based on multiple technologies. The hardware chosen to be used by these systems may have a substantial or insubstantial impact on the video they output.
^Some of the graphics capabilities of the 1982 VIC-II chip, designed at a time that other systems could only generate much more primitive graphics
^Actually the real figure is more complex, it's 6144 bits of which 5760 bits were actually used. This is so because the video data was stored, not in RAM, but in six Signetics 2504 "Dynamic shift registers" which each held 1024 bits. But only 40×24=960 locations in the shift register were actually used.
^the six bits per character location were only enough to address 64 characters, A Signetics 2513 character generator ROM held only uppercase characters and some other alphanumerical characters in a 5×7 matrix.
^The Datapoint used shift registers for its video RAM and used the power line frequency timing (50 or 60 cycles per second) for a complete refresh cycle. When writing to the Display the CPU had to wait for the next "window", which came 50 (or 60) times a second. Then the CPU could write a single character, or (with special software) multiple characters, up to all 960.
^"oldcomputers.com entry tells us that the Mupid was developed between 1981 and 1983". Archived from the original on 2010-11-21. Retrieved 2012-10-14.
^The SOL-20 used the Motorola 6574 character generator ROM as a basis
^the first 32 characters in the Motorola character generator ROM contained special pseudo graphics characters, mostly line-drawing characters, and such. For the ASCII BELL code there was a simple bell shape in the character set. Alternatively, the character ROM could produce two-letter abbreviations of the ASCII control characters
^even earlier than the SOL-20 were the many early S100 bus based systems one could also insert a video card into, some were very primitive but many had very good graphics capabilities, one such an S100 based system was the ECD corp. Micro mini. A very capable early S100 video card was the "Merlin intelligent video interface" by "MiniTerm" associates. Perhaps the most famous one (at the time) was the Cromemco Dazzler. However all S100 based systems fall outside the scope of this article, as this article describes complete (and standardized) systems, not just video cards
^There is no real video RAM, as the display is mostly built up using software, for purposes other than the character generator driven 32×16 display more RAM could be used.
^Common hacked Galaksija 1 firmware allows character definitions to be switched out line by line like the MC6883 does; corresponding Galaksija 2 graphics mode permits full graphics (derived from an 8x13 character matrix)
^Using 2×3 text semigraphics characters, like the TRS-80 on an 8×13 pixels per character matrix this means that one of the rows was 4 pixels high instead of 3 note that the pixels were separated by a 1-pixel wide barrier, this was necessary because the bottom (last) row of pixels of any character had to be black, as it was this row that was used during times when not displaying the visible area of the screen.
^the default Character generator EEPROM did not support lowercase
^due to a special software trick the Galaksija could do smooth scrolling
^The OSI Superboard II was also famous for being the first system for which Microsoft BASIC in ROM was available
^Virtual clone of Ohio Scientific Superboard II computer with an improved text mode, as the original used a less useful 32×32 text mode
^Presumably the Compukit UK101 could access this mode
^alternating used and unused lines of a 64x32 matrix
^ abcdselectable by a poke to the keyboard register
^actually only an area of 24×24 or 48x15 (alternating used and unused lines of a 48x30 matrix) visible, the area outside that wasn't normally visible on a TV, and therefore not used by the software.
^actually only an area of 192x192 or 384x120 visible, the area outside that wasn't normally visible on a TV, and therefore not used by the software.
^actually only an area of 48X72 or 96x45 visible, the area outside that wasn't normally visible on a TV, and therefore not used by the software.
^Ferranti ULA 2C184E / 2C210E integrates the video logic of the ZX80 into one circuit
^In fact unlike any other system (except the ZX81) the ZX80 used a flexible "display buffer", that contained no more than the absolute number of bytes, that is one byte for each character displayed from the start of a line, plus an "end of line" byte.
^because the display was completely under software control some very ingenious games managed to generate a true "high resolution" display potentially with a 256×192 resolution
^Using the eight text semigraphics characters, plus the "inverse video" option, it was possible to display a very coarse 64×48 point addressable mode
^slow mode meant that BASIC programs only could generate a display or do computing work, not both at the same time while displaying a picture the only other task the ZX80 did was waiting for a key-press. Some assembler programs managed to overcome the problem. The ZX80 successor, the ZX81 overcame the problem by using the time between two display frames to do some computing
^Somewhat like the Sinclair Spectrum with its "parallel attributes" the serial attributes of the Oric could, using an amount of video memory that was just big enough for a monochrome display, create a color display with many extra features. In Oric's case they were double-height characters, blinking characters, switching between text and high-res graphics on the screen, switching between character sets, (from character ROM, or programmable character sets) switching the eight fore- and background colors, and more. However, it came with the price that the screen was difficult to manage, and that the attributes took up six consecutive pixels (a character) on the screen in which only the background color could be displayed. Reference see:  Archived 2010-02-15 at the Wayback Machine
^The Apple II has a 1K text buffer for the 40×24 text mode or the 40×48 low-resolution graphics mode, and an 8K frame buffer for the 280×192 High-resolution graphics mode. But because Apple had two text and two graphics pages the total reserved memory for video is 18K. The first text/low-resolution page runs from 0400H to 07FFH, the second from 0800H to 0BFFH. The first high-resolution frame buffer runs from 2000H to 3FFFH and the second one from 4000H to 5FFFH.
^in a 5×7 dot matrix with one pixel on either side of characters and a one-dot high space between each line.
^ abThere are six colors available in the High-Resolution Graphics mode: black, white, orange, blue, green and violet. Each dot can be black, white, or color, although not all colors are available for every dot. If a pixel would be 0 then the corresponding pixel would become black, if it was 1, it would become either white or color. Which color a pixel in a 7-pixel "line" of dots would become was determined both by the eighth bit of the pixel data byte, but also by its bit location in the byte. If the bit was in the leftmost column on the screen, or in any even-numbered column, then it would appear violet. If the bit was in the rightmost pixel column, or any odd-numbered column, it would become green, except when two even and odd pixels were on alongside each other, then both pixels would be white. All this is true for all seven pixels of a display byte where its eighth bit would be 0 (off), if this bit was turned "on" (to 1), then the violet and green would be exchanged by blue and orange, except in revision 0 board, which could only display 4 colors, black, white, green and violet, because the eighth bit of the display byte had no effect
^The Apple only displayed 7 pixels of each byte of the frame buffer, the eighth one was used to determine which color combinations the pixels of the other seven bits could have
^exchanging the character set for blocks of 1x2 pixels
^ abeach byte of text-mode RAM was divided in two nibbles. The "lower" nibble determined the color of the top block, the upper nibble determined the color of the lower block. The sixteen available bit combinations produced fifteen unique colors as the two grays were identical in shade; the colors were, according to the official documentation: black, magenta, dark blue, purple, dark green, grey 1, medium blue, light blue, brown, orange, grey 2, pink, light green, yellow, aquamarine, white
^Characters could also be inverted or blinking, The arrangement was not completely ASCII compatible! Characters from 00H to 3FH were inverted, from 40H to 7FH were flashing, from 80H to BFH the normal set. Later models added first lowercase and then also line-drawing characters from C0 to DFH so that all 256 combinations were used.
^In high or low-resolution graphics mode the Apple could replace the bottom 32 display lines with a four-line text "caption", allowing for the simultaneous display of text and graphics.
^With clever programming the actual resolution of the screen of 512×240 could be put to good use. Per default, the firmware filled the programmable character set with pseudo graphics symbols like the PET, and the Superboard II and UK101, which could be used to build larger simple graphical figures, like a "Stick figure".
^Limited "graphics" modes were possible by programming the 128 (8×8 pixel) programmable characters, one way is to dedicate 64 of them to program 2×3 pseudo graphics characters (text semigraphics like the TRS-80) which would make a 128×90 "pseudo graphics" mode possible.
^128 permanent characters, and 128 free definable (8×8 pixel) characters
^The Ferguson Big Board was notorious for being a variant of the microprocessor board for the much-maligned Xerox 820 office computer
^A descendant of this computer, the Xerox 8/16, supported 640x256 graphics
^For each character position there was an attribute byte (from C500 to C7FF in memory, see (translate with Babelfish)). The three least significant bits (0,1 & 2) determined the foreground color, and the next three bits (3, 4 & 5) the background color, from LSB to MSB in the order blue, red, green. Bit six was used to switch between predefined, and software-defined characters. A similar scheme was used when one of the 16 semi graphics characters was chosen, where two attribute bytes were used for each of the sixteen block combinations, to determine the color of each quadrant of the semi graphics character.
^Not point addressable, but through the 8×8 pixel programmable character set
^64×48 by using one of the 16 available characters with a 4×4 pixel (quarter character) text semigraphics pattern
^1K for fonts, (128 8×8 characters) and 1K for character data (768 bytes)
^for basic system, the Hires expansion board had its own 16K Video RAM
^2, 4 or 16 tints with Hires expansion board; grayscale with monochrome monitor and composite interface only, color with color monitor and composite or TTL RGB interface
^ abCode table 1 contained 16 text semigraphics characters with all combinations of a 2×2 matrix of blocks on and off to use to create a pseudo all points addressable 80×50 mode
^The MZ-80 K had very poor graphics capabilities, but the large sets of well-chosen pseudo graphic characters made it possible to still create some enjoyable games, especially when the MZ700 came out which added color
^Actually there were only seven 1024×1 bit RAMs used in the Model I to store the seven bits per character, but there was an unpopulated socket for an eighth RAM. That is also why lowercase could not easily be accomplished. Of the 128 possible characters 64 were used for the "pseudographics", and the remaining 64 came from a character generator PROM that only contained uppercase characters
^actually exists in the Model I character set, but Model I needs an eighth chip (which BASIC needs to be disabled) to display it
^each character mapped to a matrix of 2×3 pixels to generate a "semi-high resolution mode". No Video RAM arbitration logic meant that writing to the screen caused a lot of "black snow", that is black stripes in the screen during write accesses.
^The framebuffer was built out of discrete logic, but a PAL generated the video timing signals
^basically the VDU was built using discrete logic, but a Ferranti ZNA134 was used to generate the video timing pulses
^Depending on the resolution 715/1430 bytes, 2860/5720 bytes, 11440/22880 bytes or 15840/31680 bytes of RAM was used
^ abblocky versions of the high resolution graphics mode
^The ZNA134 actually generated the correct video timing pulses for lines of 66 characters but the VDU generally would not display these extra columns in text mode
^In 4 color mode the logical palette per line was limited to one foreground and one background color, and in 16 color mode it was limited to four. In either mode only one palette color was allowed to be changed at a time.
^Calculated as 288×256 pixels/8 = 9216 bytes for pixel data and 384 bytes for grayscale data (2 bits per pixel) for each of the 48 (6-pixel) rows per line
^assuming 6×8 pixels per character, details are unclear
^soft fonts as characters are drawn only in a graphics mode screen, no text mode hardware exists
^Most likely at least 16 to maintain backward compatibility
^ abPart of regular RAM and size depending on graphic resolution
^64×32 when using K of RAM, 64×64 when using K of RAM, 64x128 with 1K of RAM
^ abin practice text was often drawn in the low resolution graphics mode, especially when using the CHIP-8 programming system
^With the CDP 1862 also on board either computer could display 8 colors per pixel on a background that could be chosen from 4 colors, boosting its Video RAM support up to 3K
^64x48 when using 384 Bytes of RAM, 64x96 when using 768 Bytes of RAM, 64x192 with 1.5K of RAM
^With the CDP 1862 also on board any of these could display 8 colors per pixel on a background that could be chosen from 4 colors, boosting its Video RAM support up to 4.5K
^The Apple IIe used two ASICs (the MMU and IOU) to replace most of the discrete logic of the Apple II. All comments for the Apple II apply to the IIe, but the IIe has additional capabilities.
^And Apple IIc Plus, which has identical graphics capabilities
^has all the capabilities of the Apple IIe, and an improved character set
^Most of the discrete logic of earlier Apple IIs has reimplemented in two ASICs: a memory-management unit (MMU) and an input/output unit (IOU). These chips were also used in the IIc.
^The Apple IIe used 1K of auxiliary-slot RAM for the 80-column text mode and 8K of auxiliary-slot RAM for Double Hi-Res. A 64K expansion (the "Extended 80-Column Card") was most commonly installed, though Apple also briefly offered a 1K card that only enabled 80-column text.
^ abeffectively the color resolution was only 140×192, due to pixel placement restriction
^using the "resolution doubler" originally developed for the double low resolution mode uses the second bank of high resolution RAM.
^double low resolution mode, using the extra 1K text mode
^The Apple IIc now used a small part of the character set to display special "mouse graphics" symbols, and the character ROM was doubled in size, so it was possible to switch to a character set that could display extra local language characters and symbols such as accented letters such as "á", "é", "ç" etc.
^The Apple IIe used a hardware character generator, but could not mix text and graphics except by displaying four lines of text beneath the graphics screen, also the text was strictly black and white, so often text on the screen was displayed using software so colored text could be displayed in different fonts.
^Only intermediate modes available in hardware are 200 lines and glitchy 210 lines where GIME continues processing the last line of real color data "forever"
^ abcThe characterset includes 8 (one set for each color) ×16 characters with a 2×2 pixel matrix, with this a mixed text and semi graphics mode can be created that can display pixels in 8 colors against a black background, albeit with some color clash
^ abcAnother semigraphics mode, like the 64×32 mode, but exchanging a more limited number of colors for a somewhat higher resolution
^It was one of the biggest problems of BK, which wasn't corrected even in updated -0011 model that had 128 KB of memory, as 16 KB was VP1-037's hardwired limit due to the low gate count of its host PLA.
^BK-0011 only. VDC lacked hardware text modes, so they were simulated in software by BIOS routines. The -0011 model had an updated BIOS that could display "narrow" symbols. It also had some limited palette support.
^16 hardwired 4-color sets selectable from a 64-color palette
^BK's VDC was rather primitive and lacked most advanced features except hardware scrolling (implemented through software-controlled framebuffer offset register). However, the fact that the screen output was almost entirely software-generated, together with powerful 16-bit CPU, made possible seamless integration of text and graphics with escape sequence-controlled composite output.
^and Enterprise 128, which is the same machine, only with more memory, also known as DPC, Samurai, Oscar, Elan and Flan
^In "LORES" mode using half as much memory, the horizontal resolution is halved, while the number of colors remain the same.
^In any mode except 256 color mode, it was possible to choose the colors for the restricted set out of the 256 available colors
^The Enterprise's "Nick" chip could be programmed to do more than the built-in software supported, so the mentioned resolutions are meant as what the built-in software supported, not as what the hardware could actually do, it's very hard to get reliable data as to what the "Nick" chip could actually do. These figures are gathered from the "Enterprise programming guide"
^and Oric Atmos, which is the same system, only with a better keyboard and improved ROM. The STRATOS / IQ 164 was almost identical but was planning to support 16 colors. Although never released, it inspired the French TELESTRAT, which is also very similar to the Oric 1, but was to have 80-column text mode and CP/M.
^When in text mode it reads 40 bytes in memory to display a 240-pixel line, that is it uses six bits per byte, six bits are used to choose one of the 64 available characters in the current character set, (which could be switched) the other two bits are used to choose whether either to display the character or to process an attribute. If both bits are zero then the character is simply displayed. If not then space is displayed in the current background color. The most significant bit is a video reverse bit. When an attribute byte is encountered it immediately affects the rest of the line and can switch foreground and background color, switch between character sets, change the height of the character, switch to graphics mode, and more.
^Eight colors, but with two brightness levels, however the "color" black is repeated twice (it was the same with each brightness level), so actually there are just 15 color tints
^The Sinclair Spectrum high-resolution screen has serious color limitations. Each 8×8 pixel block can have only one set of foreground and background colors. This is because of the separate 768-byte color table, (one byte for each 8×8 pixel block). In each of these bytes, the lower three bits (0–2) are the background color, the next three higher bits (3–5) are the foreground color and the two remaining high-order bits were used for a "bright" (6th) and a "blinking" (7th) bit. The color limitations of this design can cause some heavy attribute clashes, for which the Spectrum is indeed infamous. For more information see ZX Spectrum graphic modes.
^Timex's own CPLD called an "SCLD", made by NCR Corporation for Sinclair, Type "TS 2068 PAL" in a 68-pin QFP
^The Copper is a simple programmed system which allows certain Next Registers to be altered automatically at certain scanline positions.
^This is how the QL physically simulated up to 256 colors, but an RF connection did not copy this effect to a TV reliably
^In 256×256 (eight-color mode), the QL uses one nibble (four bits) per pixel, three bits are used for the color itself, leaving one bit per pixel which is used for turning hardware blinking on or off on a per-pixel basis.
^8000 bytes for pixels; 6000 bytes for color attributes, either 7000 or 8000 bytes for TO7-70
^The TO7 used a complex system with color restrictions, Each line is split into 40 spans of 8 pixels and each span can only have two different colors (among eight or sixteen in the case of the TO7-70). This allows representing 8 pixels with 14-16 bits (two three-bit palette entries [either these and one common intensity bit or two four-bit palette entries in the case of the TO7-70], and 8 one-bit pixel entries) instead of 24 bits or 32 in the case of the TO7-70.
^Depending on the boot floppy used, the Aster reconfigured its internal memory map for use as a TRS-80 compatible machine or a fully CP/M compatible machine, including the location in the internal memory map of the video memory. In TRS-80 mode it used 1K (16 lines of 64 characters) and used all 8 bits of the character to support a full set of 256 characters, and in CP/M compatible mode it used 2000 bytes (25 lines of 80 characters) of a dedicated 2K memory, using the same character set as the TRS-80 mode
^in TRS-80 as well as in CP/M mode the Aster could switch to a display mode where it would only display the odd display memory bytes at double width. The 40×25 mode was initiated when the system was booted with a special Videotexterminal emulator program. In both modes, a hardware "de-snowing" (Video memory arbitration system) system was employed that removed the bothersome "snow" that appeared on a TRS-80 screen whenever the system made a large number of accesses to the video memory. The memory arbitration logic did not need software support, so it also worked with all existing software
^Actually, the Aster could display the TRS-80 graphics in black (pixel off), white (pixel on) and one grayscale halfway in-between black and white, which was accomplished by dithering the pixels in the semi-graphics block with a checkerboard pattern
^although the original TRS-80 Model 1 did not support lowercase the Aster did. It also supported a second copy of the 2×3 semi graphics set that was dithered to emulate a "grey" version of the TRS-80 graphics pixels, and it supported a set of semi-graphic characters similar to the PETSCII set
^The Aster system could switch "on the fly" between two completely different system architectures, and also switched its video logic and memory map accordingly, it also lowered the dot clock (crystal) in CP/M mode, so the 64×16 and 80×25 screens were equally wide
^using the usual TRS-80 semi-graphics trick by programming the font RAM with the needed 2×3 pattern
^VRAM 32 KB + 2 KB Character RAM, 2K attribute RAM and 2K Programmable font (PCG) RAM
^G version had a NTSC genlocker, and P version a PAL genlocker
^Or less when one or more "display pages" were turned off. The Lynx used a display page for each of the three primary colors. For example when the BASIC instruction TEXT was executed the Lynx turned off the display panes for red and blue, so it could reclaim ⅔ of the memory for the display for bigger programs (with all planes on the Lynx had just 16K left for programs) and this also increased the speed of the system because the VDU did not prohibit the CPU access to the memory so often
^The Lynx used a trick, the natural resolution of 256 pixels would have called for a display of only 32×24, but by only using 6 pixels wide characters the Lynx could fit in 40 per line, only a very large software overhead was needed, so the display was slow, so slow in fact that the software did not scroll a text screen but simply started on the top line again
^Colour Genie used 4080 bytes of video RAM when displaying 160×102 graphics in 4 colors and could use "page flipping" to flip up to 4 different palettes of 4 colors, all of which could be unique
^128 8×8 pixel programmable characters, plus 128 semi graphic characters in two sets.
^There is some confusion here, according to some sources, the programmable character generator (PCG) of the X1 used four bits per pixel, which means 64000 bytes of RAM for 640x200 pixels, other data claims only 48000 bytes of VRAM
^Not accessed through the memory map, but through the Z80's special instructions to access the "I/O map"
^Turbo series used bank switching to store pixel data for 640x400 resolution and probably 12-bit color
^It is not obvious whether this is an All Points Addressable mode, or that these are in fact text modes that used the Programmable Character Generator of the X1 to create an illusion that High-Resolution APA graphics were possible. That is, it is possible that the X1 had 1000 (40×25) or even 2000 (80×25) or even more unique programmable characters so that there could be one PCG character for each screen location)
^It is not obvious how many unique programmable characters the X1 had, only that they were programmable on a per-pixel basis with 3 or 4 bits per pixel
^The X1 had a programmable character generator that allowed per-pixel programming with 3 or 4-bit per pixel data. This meant that delicate color graphic "building blocks" could be created on the fly to create bigger full-color graphic elements, not only for text but more specifically for games. Plus the fact that the X1's VRAM was not memory mapped, but used the Z80 unique extended I/O mapping, where normally the i8080 had just 256 I/O locations, the Z80 supported 16-bit I/O addressing, so the "I/O map" could cover 64K. There is confusion as to whether the X1 used 48000 or 64000 bytes of the I/O map to address VRAM, so all of the 64K memory maps could be RAM (except for a small BIOS/IPL ROM).
^2K for characters; 2K for attributes, which is 3 bits for the foreground, and 3 bits for background color, one bit for blinking, and one bit for double-height characters
^Most probably just a tweaked semigraphics mode dividing the text screen's characters into a 2x4 (single height) or 2x8 (double height) semigraphics matrix instead of the presumed 2x3 included in the system font
^1K Video ram and 2K character RAM for 128 programmable characters (6×8 Bytes NTSC or 6×9 Bytes PAL, RAM was available for 6×16 which was possible to use via assembler code)
^In Assembler the width and/or height of the characters could be doubled, so 20×24, 40×12, and 20×12 was also possible
^Using a programmable font (with 128 characters 6 pixels wide and 9 pixels high) that meant that not each pixel of the theoretical 240×192, 240x216 or 240x384 could be individually addressed. In fact at most 128×6×8 = 6144, 128×6×9 = 6912 or 128x6x16 = 12288 individual pixels could be addressed at any one time
^One way to create a real high-res mode was to program the character set by dividing the 6x8 or 6×9 pixels of the character into 3x2 and 3×3 zones (like the TRS-80 graphics mode), in this way an 80×72 point addressable high-res mode was feasible using 64 characters
^By using the max character size of 6×16, double-height and double-width a resolution of 120×96 was possible using 120 characters (20x6) to fill the complete screen
^Except by reprogramming the 64 character set, But BASIC used uppercase only
^Like the MZ-80K but with color added, and without a built in CRT
^Most probably the PC-8001 used a pseudo graphics mode based on the 80×25 text screen with a 2×4 (2x8 with expansion) pseudo graphics matrix. The 80×25 mode used 2000 bytes, so there were 1072 bytes leftover for attributes. so three bits for the foreground color and three for the background color, the two remaining bits were used for invert and blinking bits
^Lapierre, Patrice. "Le wiki d'Alice - Hardware". Le wiki d'Alice. Retrieved 4 April 2018.
^The Matra Alice 90 featured video-in, so EF9345 graphics could be overlaid onto the input video
^The Rabbit 83 is probably a copy of the Belgian GEM 1000, and was also brought out, with more memory, as the Brazilian MC-1000. Unlike many other MC6847 based systems (CoCo clones) it didn't use all Motorola chips, like the 6809 CPU. Instead it used a Z80, and the General Instrument AY-3-8910 sound chip. Graphically it was mainly let down by such a low amount of RAM that most 6847 video modes were impossible
^The VTech Laser 200 was also called the "Salora Fellow" (mainly in Scandinavia, particularly Finland), the "Texet TX8000" (in the United Kingdom) and the Dick Smith "VZ 200" (in Australia and New Zealand) The Laser 100 and 110 are simpler earlier models
^There were three models, but the video display capabilities of the first two models differed only slightly
^Some later models of the CoCo model 2 used the MC6847T1.
^This semigraphics mode technically exists, but the BASIC cannot access it
^Later models that used the MC6847T1 did support lower case
^or 'Video interface controller', Pertaining to the MOS technology 6560 (NTSC version) and the 6561 (PAL version) chips. These chips did more than supporting the video display, they also provided the sound system, and had two A/D converters for its paddle game control system
^The VIC chip in and of itself could address 16K of address space for screen and character memory. But only the 5K that points to internal RAM can be used by it on the VIC-20 (even with a RAM expansion module plugged in) without a hardware modification, and the unexpanded VIC-20 only had a grand total of 5K of which only 512 bytes was reserved for the screen; character shape data was 2K but normally came from ROM, not RAM. Color memory is nibble memory (4 bits per location) that is separate from normal RAM because both have to be accessed at the same time.
^ ab8×8 characters, the VIC also supported 8×16 characters; up to 31x29 possible on NTSC machines or up to 32x35 possible on PAL machines
^PETSCII contained 2x2 block graphics characters, and the 22x23 standard for the VIC-20 firmware text screen was enough for PETSCII block graphics to significantly beat the Apple II's block graphics mode, although mysteriously nobody really cared much about that at the time.
^Like on the PET, 256 different characters could be displayed at a time, normally taken from one of the two character generators in ROM (one for upper-case letters and simple graphics, the other for mixed-case -- non-English characters were not provided)
^176×184 is the standard for the VIC-20 firmware, although up to 248×232p/464i is possible on an NTSC machine and 256x280 is possible on a PAL machine.
^No fixed graphics modes, any mode can be generated by supplying timings. Modes are limited only by analog video bandwidth, video RAM, or DRAM bandwidth and the minimum refresh rate monitor will accept. Definitions for common monitors are supplied up to 1600×1200×256cols.
^one byte for font and one nibble for color, per character, assumed
^Details are very sketchy, this is a "best guess" based on the point addressable mode that there seemed to have been; that is, the 168 bytes of video memory were reinterpreted as the 4-bit RGBI values of a column of 336 pixels, being then reloaded 384 times per frame
^Details are very sketchy, this is a "best guess" based on 8×8 (blocky) pixel characters, these most likely being of 3x6i high-resolution pixels
^text apparently drawn in blocky pixels on high-resolution graphics screen
^Including the Atari 400, 600XL, 800/XE/XL, 65XE, 1200XL and 130XE.
^The extremely flexible ANTIC chip can access the entire 64K of addressable memory space. But, the highest of all possible resolutions could utilize a maximum of 15K for playfield graphics, plus 2K for Player/Missile Graphics, plus 1K for the character set. However, since multiple redefined character sets are possible the maximum amount of memory in use by ANTIC could be even higher than 18K. Scrolling map memory can occupy any amount of available RAM.
^A maximum of 30 Characters can be displayed in a row in PAL. In 48 Characters Width mode, only 42-44 characters are shown on a normal TV.
^192 lines is the arbitrary default set by the Operating System when creating display lists. Custom display lists can use fewer or more lines into the display overscan area limited to the hardware's 240 maximum scan lines of playfield graphics.
^The default system font includes lowercase letters, and graphics characters for drawing lines, boxes and graphics on the screen. ANTIC also supports a specific "Lowercase with descenders" mode as part of custom display lists, which is not available via a BASIC GRAPHICS mode command. In this mode characters are 10 pixels high and occupy either the upper or lower 8 pixels of that height. This is not strictly speaking a 40×24 text mode, because of the unusual height.
^The character set was easily redirected by changing an ANTIC register, allowing the user to create their own character sets with relative ease, or built out of the CTIA/GTIA's P/M Graphics as had to be done with the TIA of the Atari 2600.
^MSX wasn't a single machine, but a standard that was followed by various manufacturers. Thus, specs vary between various models and standard revisions. But from the perspective of the video hardware, all MSX1 systems are the same, as they use the same video display generator with 16K of Video-RAM.
^The Memotech MTX500, MTX512A and RS128 machines all have the same video capabilities
^the "Texas Instruments TMS9918" is actually a family of devices. The TMS9918A outputs 60 Hz NTSC composite video and TMS9928 and TMS9929 output three separate signals (Y, R-Y and B-Y) with which either a 60 Hz NTSC (TMS9928A) or a 50 Hz PAL or SECAM (TMS9929A) video signal could be created
^TMS9918/28 based systems: in 32×24 text mode the character set is divided in 32 blocks of eight characters. each block of eight characters can have a different foreground and background color. This can be used in games, because it is possible to generate a relatively fast high-resolution mode by reprogramming the characters as 8×8 tiles and grouping them together in blocks of eight with the same colors. The tiles can then be manipulated quickly through the character pointer table. Sprites could be used too in this mode, and all 16 colors could be displayed at the same time. Another use is to have four identical character sets, each with 64 characters in them but with different colors. with this character set, it is possible to create a 32×24 text mode that can display texts with four different foreground and background colors at the same time, on the same screen. In 256×192 graphics mode, there is a 2-color limitation for each 8-pixel wide line inside a character.
^the MTX character set included only lowercase letters
^Except for the ASCII character set the MSX standard did not define the character set, however, most MSX systems sold in the West did have among Greek and other alphabets a large set of semi graphical characters including some for block graphics. Some systems even had the pseudo graphic characters printed on their keys
^Second through fourth revisions of MSX standard, significantly extending the machine's capabilities. Most notable change was the so-called MSX-video chip -- an upgraded version of the TMS9918VDP used in MSX-1 machines -- and its upgraded version the Yamaha V9958, and a corresponding memory upgrade.
^Depending on manufacturer or revision. It can only be expanded to 192KB by modding the machine.
^ ab26.5 rows aren't supported by default by MSX BASIC, but it's easy to enable it.
^vertical only. Horizontal scroll limited to 16 pixels, by using the screen position adjust register.
^1 color per line. Supports combining sprites as bitplanes to allow 3 or 8 colors per line.
^MSX2 machines and higher featured advanced VDP, that was somewhat similar in abilities to the Amiga one. It was able to do hardware-accelerated scrolling, bit copy (with logical operations), line drawing, area-filling, and even included overlay support, digitization, mouse and light pen ports. Sprite engine was especially powerful, allowing preprogrammed movement of multicolored (up to 16 colors) sprites. Several VDP exceptions, such as sprite collision and backtracking, had special status flags that, with skillful manipulation of VDP registers, allowed for many visual tricks.
^the P2000M had nothing to do with the P2000T; it was a CP/M business machine without any special video attributes, just 80×24 text
^Essentially Philips (a TV maker) simply used a video chip used in their TVs for the display of Teletext, I believe it was the SAA5243 but am not completely sure, as Philips used many different Teletext chips. If there is evidence Philips used another chip please correct.[original research?]
^The FM-77AV used twelve (AV and AV20) or eighteen (AV40) "graphics planes", four (AV and AV20) or six (AV40) for each primary color, each plane had one bit for each pixel, so it used 8000 bytes, so 192 bytes per plane went unused
^The FM-7 used three "graphics planes", one for each primary color, each plane had one bit for each pixel, so it used 16000 bytes, so 384 bytes per plane went unused
^due to its use of a separate 6809 processor for graphics, the FM-7 could use a massive 48K of RAM for three 16K bit planes each using 16000 bytes, and the FM-77AV could use an even more massive 96K (AV and AV20) or 144K (AV40) but only for 8K bit planes each using 8000 bytes (why Fujitsu made this decision is a mystery), that way it could have pixels with twelve or eighteen bits to call their own respectively. The remaining 16K or more (32 or 112K for FM-77AV and AV20 or 48 or 176K for FM-77AV40) of RAM was used to store fonts and drawing routines. To communicate with the main CPU the FM-7 used a shared memory system, not unlike the "Tube" of the BBC Micro.
^Pertaining to the Amiga 1000, Amiga 2000 and Amiga 500 machines
^ abFor DMA memory access and Blitter functions, and a Copper (co-processor), a programmable finite state machine that executes a programmed instruction stream, synchronized with the video hardware
^the main video processor. Without using overscan, the display was 320 (low-res) or 640 (hires) pixels wide by 200 (NTSC) or 256 (PAL) tall. It also supported interlacing which doubled the vertical resolution. Anything between 2 and 32 unique colors (1 to 5 bitplanes) from a 12 bit (4096 colors) palette, was supported. A 6th bitplane was available for either the Halfbrite mode that added a copy of the first 32 colors but with half the intensity or Holds And Modify mode which allowed access to all 4096 colors at once. Denise supported eight sprites, smooth scrolling, and "dual playfield". For more information see Original Amiga chipset.
^All text output rendered by Blitter or software in any graphics mode
^ ab320×256p, 640×256p, 320×512i or 640×512i in PAL mode
^The Amiga's hardware engine supports only 8 sprites, but with copper support, can present the illusion of many more. Each sprite is drawn in a certain position until the raster beam has passed it; the copper can then instantly change its location and appearance, moving it below the raster beam again
^3 colors (plus a fourth transparent "color"). Two sprites could be attached to make a single 15-color sprite.
^Could do all the things the original Agnus chip could and added support for Productivity (640×480 noninterlaced) and Super Highres (1280×200 or 1280×256) display modes, which were however limited to only 4 colors. Also the blitter could copy regions larger than 1024×1024 pixels in one operation. Sprites could be displayed in border regions (outside of any display window where bitplanes are shown).
^AGA is able to do 8-bit pixels, which gives 256 colors in normal display mode and 262144 colors in HAM-8 (Hold-And-Modify) mode (18-bit color, 6 bits per RGB channel). Palette for AGA chipset is 256 entries from 16,777,216 colors (24-bit). The original Amiga chipset (OCS) had 4096 colors (12-bit, 4 bits per RGB channel), of which 32 could be displayed unless in half-bright (which provided an additional 32 colors fixed at half the brightness of the first 32) or HAM mode.
^Other features added to AGA over ECS were SuperHiRes, smooth scrolling, and 32-bit fast page memory fetches to supply the graphics data bandwidth for 8 bitplane graphics modes and wider sprites see Advanced Graphics Architecture, the CD32 has an Akiko bitmap to planar conversion chip
^An alternative 80×25 text mode card later also became available
^Modes 0 to 6 could display a choice of colors from a logical palette of sixteen, though only eight colors were available; the eight basic RGB colors (0-black, 1-red, 2-green, 3-yellow, 4-blue, 5-magenta, 6-cyan, 7-white) and eight colors in a flashing state, (8-black/white, 9-red/cyan, 10-green/magenta, 11-yellow/blue, 12-blue/yellow, 13-magenta/green, 14-cyan/red, 15-white/black)
^Mode 7 was a Teletext mode and extremely economfical on memory, using only 1K, In addition, the BBC B+ and the later Master allowed 'shadow modes', where the framebuffer was stored in 20 K of extra RAM mapped to location 0x8000 onwards ('shadowing' the BASIC ROM mapped to that area), instead of taking up the user memory below 0x8000. This feature was enabled by setting bit 7 of the mode variable, i.e. by requesting modes 128–135.
^Teletext graphics, using text semigraphics characters, unlike the TRS-80 the pseudo graphics characters came in two kinds, "massive" and "separate", the first is exactly like the TRS-80, the second has each "pixel block" surrounded by a narrow line of background color
^Used a chip designed to display Teletext in TV's. This "video co-processor" uses "serial attributes" for its "teletext text mode"
^The two main CRT Controller chips were called "VINAS 1 + 2", later models used a chip called VICON. The "Video Controller" was called "VSOP", or in later models "VIPS". The separate "Sprite Controller" was called "CYNTHIA / Jr" in its first incarnation, and later just "CYNTHIA", then last but not least there was the "Video Data Selector" first called (strangely enough) "RESERVE", but later more fanciful "CATHY"
^512KB Text VRAM, 512KB Graphic VRAM, 32KB Sprite VRAM
^The X68000 had a separate 768KB Character Generator ROM, with fonts for 16×16, 8×16, 8×8 and JIS 1 + 2 characters.