Not all computers were created equal. Some were born to educate, others for playing and in the case of the IBM PC it was for business. This has been already discussed in my famous article about golden age of sound cards (in Spanish, not yet translated to English). This time we will focus in the graphical aspect of the ancient and ubiquitous computer of the Big Blue. CGA, EGA, VGA… does it ring a bell to you?
Unlike contemporary home computers, PC architecture didn’t use an integrated graphics chipset, it would use expansion cards to undertake graphical tasks. This –along with its philosophy of a more-or-less open architecture– would result in many solutions coming into existence along its lifetime. I’ve devoured quite a lot of old computer magazine pages and thus my impressions.
When the first PC was released in 1981 it was offered with two different graphics controllers: Monochrome Display Adapter (MDA) and Color Graphics Adapter (CGA). Both based upon Motorola 6845, a chip managed and generated video signals, that would end up in computers like BBC Micro and Amstrad CPC. In fact it was used for other PC video adapters that we will see soon.
Monochrome Display Adapter
The mother of all PC graphics cards is no other than the MDA, and it’s often quoted as one of the reasons of his success in business applications. It is, as its very name indicates, monochromatic display adapter, with an ISA 8-bit connection, and allows to output a character matrix of 80 by 24.
Well, truth be said “graphics card” is quite over its head, but “texts card” doesn’t fit either. Although its real resolution was 720×350 pixels (80×25 characters of 9×14 pixels) its small memory of 4K wouldn’t allow to address each pixel individually, although it would allow attributes like underlined or blinking. Thus its only display mode was text. Even then it was more than enough for a professional usage like a spreadsheet or a text processor, in fact its great picture quality made it even more popular than her sister in arms.
The display monitor and the card had a digital TTL connection, with two pins for the video signal (to transmit the intensity attribute) and two for vertical and horizontal synchrony. Screen refresh was fixed at 50 Hz and had two knobs for bright and contrast. Green phosphor screen, image of the computers since 60s until the 80s, gave a note of sobriety.
A known and curious fact is that the Monochrome Display and Printer Adapter, as it was officially named, included a parallel port for the printer.
Color Graphics Adapter
The CGA was released to market at the same time to IBM PC and MDA. It didn’t include its high resolution text mode of his suited up sister, but its 16 KB memory would allow it to use a resolution of 640×200 in black and white or 320×200 at four colours of three fixed palettes. It included text modes with 16 colours, although not as nice as MDA‘s.
Needless to say that it was the most logical approach to playful applications, and except some text mode games almost every PC game supported it to display graphics. In fact it had support in games for at least 10 years after, like Son of the Empire (Action Sixteen) in the anno domini of 1992. Even Windows 3.0 (Microsoft, 1990) could work with the CGA.
The CGA card could use the same DE9 connector that MDA used, except that instead of using two TTL pins it had four (RGBi), which gave us a digital connection with synchrony and 16 colours. Everything at a fixed frequency of 60 Hz. Curiously enough one of the pins was used as a 12V output to the monitor, which mostly didn’t use.
Along with the RGBi TTL connection one of the most interesting features of CGA cards was its NTSC video analogue output, as a composite video RCA connection. Frankly its colours were not marvelous, and they tend to blend and mix with each other. It was after all “Never Twice Same Color” composite video, no less. This could nevertheless be used as an advantage, allowing way more apparent colours when adjacent pixels blended to its adjacents generate “new”. Our friend 8-Bit guy explains it way better on his channel.
Over the years many new complex techniques were released to use more and more colours than initially designed, up to 1024 in the 8088 MPH (Hornet & CRTC & Desire, 2015) demo. Apparently when manipulating very carefully video synchronisms, accessing not documented video modes and programming at a very low level, we could made amazing tricks with this hardware. It was naturally not very practical, but there came nothing.
Due to MDA and CGA using different computer resources it was technically possible to use both simultaneously. The spreadsheet par excellence, Lotus 1-2-3 (Lotus Software, 1993) wrote directly into memory and made it possible to use both monochrome monitor to display text and colour monitor for graphics, at the same time. Although this feature wasn’t throughoutly used this software was one the PC success at mid term, and an important benchmark to determine whether a computer can be considered “compatible”.
Hercules Graphics Card
This card was, if not the first made by a third party, first doing so with a considerably commercial success. Basically it’s a card compatible with the IBM Monochrome Display Adapter that could address pixel by pixel a 720×350 resolution, thanks to its 64 KB memory, and could display high quality monochrome graphics, everything with the PC supplied monitor. Technically last two lines were not addressable, so the resolution in the end was a more-than-decent 720×348 pixels.
It wasn’t a broadly supported card as the “officials”, but there was a cohort of games that could make use of it, like many from LucasArts or Sierra On-Line, famous for working even in microwave ovens. This card launch retail price of 500 american dollars, equivalent to around 1.300 in 2018.
It was possible, nevertheless, to emulate a CGA card to have better software compatibility not directly supporting this card. Some late models would include hardware emulation but the usual at the time was to use emulators as SIMCGA, which was basically bruteforce: it copied as fast as it could memory from CGA area (wrote by programs through the BIOS) to Hercules‘ in real time. It didn’t work fantastically, especially with programs that would write directly on the memory, but was better than nothing. Software that worked did so displaying dither instead of colours, of course. Despite its advantages I really could have used that SIMCGA when this was the first graphics card that I had…
In parallel to Hercules some other with similar features were released, as Orchid Graphics Adapter or Plantronics Colorplus. In the case of Colorplus there were hardware CGA compatibility, but neither were quite a commercial success or had important software support.
IBM PCJr y Tandy 1000
PCJr was very anticipated, and many professionals and amateurs were interested in a home oriented PC as opposed to the business oriented main line. The result was the PCJr, released in 1984 and was mostly compatible with the PC and PC XT, its older brothers. Its differences began with a chiclet keyboard, its sound chip and ended with having 128 KB of RAM, so the most demanding PC programs couldn’t be run. In the graphics aspect it possesed the new Video Gate Array (not to be confused with the later VGA), better known as CGA Plus.
Differences with Color Graphics Adapter were mostly being able to use more colours at the same resolution: 16 colours at 320×200 and 4 at 640×200 pixels, although it didn’t had to be fixed palettes. Another not so desirable feature was having its 128 KB of RAM shared with the system memory, making this computer slower than others with the same processor. None of its features saved it from being one of the most important flops in modern commercial computing.
Few games were released for this platform. Most interesting were, of course, Sierra On-Line adventures. The chief example being King Quest (1984) which was released in disks, even though the expected main memory was ROM cartridges.
This computer natural relay was taken by the Tandy Corporation, with its Tandy 1000. Its graphics card was named, of course, Tandy Graphics Adapter. Even though it offered same features that CGA Plus (including the fact of sharing its memory with the system) they were not directly compatible, and software running in the other usually yielded not the best results: blank lines, some displaced ones, etc. But it wasn’t that bad, since almost nobody missed the PCJr and the software was usually written for the TGA.
Professional Graphics Controller
Even when PC was a very capable machine in enterprise applications its graphical features weren’t otherworldly. Since 1984, however, IBM began making and selling this card, also known as Professional Graphics Adapter, Professional Graphics Array or simply PGC. Its graphic arts oriented features could easily cloud almost every other home computer of the era. Its characteristics were heartshaking: 640×480 pixels of resolution at 256 colours from a palette of 4096, also being compatible with CGA graphic modes.
Its looks were terrific: it consisted of a three full sized cards (one of them just to hardware emulate CGA) that took two slots in the IBM PC XT. It couldn’t be otherwise since it had 320 KB of RAM (more than most computers!) and its own Intel 8088 processor, so writing the graphics memory was way faster that competing cards. Its price was superlative too: 3.000 dollars in 1984 (equivalent to around 7.800 in 2018) and could only be used in the IBM 5175 monitor, which was 1.300 dollars (3.400 in 2018). Wikipedia mentions, however, that a dedicated computer aided design workstation costed around 50.000 dollars (around 130.000 in 2018), so in perspective it wasn’t that wild.
Its graphical modes were not directly addressable by the BIOS, and there aren’t any games known that would use them. No big surprise there, since this was a CAD oriented product and its chief usage was Autocad 2.5 (Autodesk, 1986). It didn’t really have any competition, but in two years there were a couple of decent clones released, like the Everex EPGA, compatible with Hercules and CGA, taking just one expansion slot. In place of the 8088 it included no less than a Intel 80286, which was more powerful, and 512KB of RAM memory. It costed 999 dollars (around 2.400 in 2018).
Enhanced Graphics Adapter
The new IBM standard came with this card, which wasn’t 100% compatible but included video modes for every taste. It was launched in 1984 and had up to 640×350 pixels of resolutions at 16 colours, to be chosen of a palette of 64.
This product used a new monitor type, very conveniently named EGA. It used the DE9 TTL connector again, with 6 pins this times for the image. Its usage wasn’t restricted to the brand new AT, the new PC model that IBM presented that year, but undoubtedly it was it ideal addition to it. It gave much better graphics than competing computers like the Commodore 64 (1982) for a very competitive price, which in 1986 was 624 dollars. (about 1.350 in 2018). It was of course the card that every game wanted, and even in 1994 there were games that used it, like BlackThorne (Blizzard). High resolution modes, however, were not usually supported…
The EGA card was compatible with RGBi CGA modes, and it could change its vertical frequency from 15.7 to 21.8 kHz by the use of some small switches in the backplate of the card. This was a bit inconvenient since until autoswitching cards appeared one had to be fiddling the computers behinds, and also switching modes in the monitor, but it was OK since it provided almost complete compatibility with legacy modes. NTSC composite video was however lost, so the software (games!) using this mode weren’t exactly good looking on EGA.
Something very well received was the linear modes, as opposed as interlaced modes in Hercules and CGA. What does that exactly mean? In previous graphics adapter memory had two blocks: one with odd lines and the other with even lines. Programs were walking the memory and suddenly it advanced two lines instead of one. With EGA we could at last write from the beginning to the end without strange leaps. Other very welcomed feature was having BIOS extension on its ROM, unlike PGC for an example. One of the most impressive ways to exploiting this card was the soft scroll in Commander Keen (1990) programmed by John Carmack, in which he used pixels not directly visible (and hardware scrolling techniques) in the planar modes, making it possible to achieve visuals in the like of the contemporary video game consoles without artifacts or flickering. What was this planar thing exactly we will discussing it soon.
Soon after this standard materialized clones began appearing. Some included video modes in the likes of the MDA, others had more resolution. These modes almost didn’t had any software support so they weren’t a very interesting perk. Other cards however did include auto switching capabilities, so you didn’t had to bother to switch minuscule controls in your card when you needed to change modes. It was the case of the Paradise EGA, in 1986. For 500 USD (1.300 in 2018) it did everything that EGA, CGA, Hercules or MDA standard could, with auto switching capabilities and light pen support. It also had two RCA connectors that the heck if I know what were they for.
Multi-Color Graphics Array
Actually this card never existing on its own. It was simply the name gave to the chipset video in IBM PS/2 Model 30, an interesting computer released in 1987 which spawned the mouse and keyboard connector used until a short while ago. The computer line introduced the MCA bus (Micro Channel Arquitecture), which was an attempt by IBM of retaking the wheel of PC architecture. It was a hard and expensive reversal for IBM.
MCGA however came to stay, or better said its graphical modes did. Specially the brand new 320×200 resolution at 256 colours, chosen from a palette of 262.144, extensively used in games. It supported a 640×480 monochrome mode. Its huge disadvantage was not being compatible with EGA modes, so games not supporting MCGA had to resort to use CGA modes, which were much more ugly. Solution was simply using the 256 colour mode with the 16 that most fitted EGA‘s, but software has to be coded for that and naturally that would exclude everything written before. All in all it was then when PCs began having graphical capabilities over almost any other computer back then.
Monitor and connector used by this technology were analogic, as opposed to previous standards (salve the Professional Graphics Adapter) which was based on digital TTL signals. The conector is/was a DE15 which carried RGB signals, along with vertical and horizontal synchrony. In this case it could have screen frequencies ranging 50 to 70 Hz depending on the graphic mode. Eventually this connector was simply called VGA, and even in 2018 still has its uses despite being obsolete. Its name is very evident to all computer amateurs, as we will see soon.
MCGA died with the first IBM PS/2 line modes, which ended manufacturing in 1992. Of course MCA bus disappeared too, although keyboard and mouse connector sticked with us until well passed the first decade of the XXI century.
An alternative to MCGA in the PS/2 line was the less known IBM 8514 standard, remsembling the Professional Graphics Adapter from two years earlier as supporting similar resolutions of 640×480 pixels at 256 colours. It wasn’t just a graphics card but a whole modern GPU, supporting graphics acceleration (in 2D obviously) allowing instructions like drawing primitives or block transfer memory. Being compatible with Windows 3.X (later with Windows 2.X, too) it was IBM‘s pennant on graphics quality, showing Microsoft Excel like no other. The card costed 1.290 dollars, plus 270 if we wanted the memory expansion to 1 MB (necessary for the 640×480 at 256 colours mode) it was 270 more, and the monitor was sold by IBM at a retail price of 3.110, about 6.600 in 2018. Totalling 3.110 mother whooping dollars, around 6.600 in 2018. This card wasn’t as cloned as others by IBM, and thus the limited support and not having any games known writen for it.
Video Graphics Array
If the quintessential graphics adapter for the PC had to be chosen, look no further. It appeared in 1987 and its graphic modes are supported even today, and used when everything else fails. It was the lower common denominator in practically every PC models and compatibles, and it’s easily the most cloned graphic standard ever. Yo could write a thick book about VGA (and there are not few of them) but at this time we will consider the most important aspects.
Its standard spects included practically all the EGA, CGA and MCGA video modes, along with a 640×480 pixels mode with any 16 colours. Most however would support high resolution modes up to 800×600 pixels, although depending on the spent money in the display and or video card these could be not supported, and also the memory had to be taken in consideration, since some early cheaper models would include less than 256 KB of memory, which was the defined standard. Given its flexible and programmable nature it could use practically any arbitrary resolution with wacky combinations, along with new text modes very popular in software developers.
Since then obiquitous VGA had very interesting technical features. Its screen frame rate varied between 50 Hz for the high resolution modes to 70, and its vertical synchrony as fixed at 31.46875 kHz. This isn’t a random number: it was exactly double the NTSC signal frequency, so it was relatively easy to design and build an adapter to display image on a common television set. Thanks to its RAM memory up to 4 planes could be defined, which could be modified at any time even when they weren’t being displayed, and flip (switch which was displayed) at any time we desired. The icing of the cake was that almost every mode were reachable via BIOS thanks to the extensions it included for the said.
This adapter had however some small inconveniences. It wasn’t compatible with PCJr or Hercules special modes, and compatibility while near wasn’t 100% with EGA. It didn’t include the CGA composite video output either. Neither were really big deal since almost every mode could be easily emulated by the VGA. Finally, programing most complex graphical modes (multiple planes, complex operations) wasn’t easy and it couldn’t be achieved by the BIOS, so the bare hardware had to be managed instead. In the days to come that was an advantage too, since the flexibility of this standard allowed to develop a string of exotic graphics modes and specific algorithms.
VGA wasn’t a true GPU itself, since it didn’t have video acceleration capabilities. It had however some operations which one could take advantage of to have better graphic performance, like setting 4 pixels in a sitting or copying video RAM regions without using the CPU. This along multiplanar modes got considerable better results than EGA, achieving not only soft scroll but using sprites in a similar way to dedicated videogame system. (Note: some people suggest sprites were effectively limited to mouse sprite and not much more)
PC in Japan
Since the PC standard was meant for the latin alphabet (or cyrilic or greek if we changed the text glyphs in text mode) and din’t support Janapense characters (more complex and numerous) it was never popular in Japan. IN 1986 an EGA variation was introduced, named JEGA (Japanese EGA) which used an special BIOS along with double-width character support, but it wasn’t enough to compete with NEC PC-98 standard. AX-VGA wasn’t enough either, it’s equivalent on the VGA standard.
Solution was far simpler than it looked: Microsoft just released specific MS-DOS version since 1990, which called DOS/V and made them to work in Japanese machines with a standard VGA card, and would allow japanese double-width characters.
While most of the tricks on the hardware were known before, in 1991 Michael Abrash publised an article about a graphic mode undocumented by IBM, coming up with the name of mode X. It wasn’t unheard of and was used before in a handful of games, but it was since then when it adquired entity in the videogame programming world as it had all the desireable features of graphic modes. Except for one thing: it was quite complex to program for.
This mode provided a resolution of 320×240 pixels with 256 arbitrary colours. In the aspect relation of the PC monitors (4:3) that meant square pixels, as opposed as most of the other video modes. That simplified a lot calculating “real” distances in the screen having pixel differences. Having 256 colours meant having an exact byte-per-pixel in the memory map, so you didn’t had to read the memory in advance to do bit masks in order to draw a pixel. But most important, being a planar mode (called “unchained” in its article) would allow to write in several planes and switch them at will. From its best merit it came its best defect: writing in memory was a comples tax, since each adjacent byte was in different planes. With four planes, for instance, each 4 bytes would represent four pixels but one in each plane.
First computers including a VGA graphics card were the IBM PS/2 line, first integrated on the mother board and later as an standalone card. In fact one of the main features appealed by IBM was not being a chipset anymore, disregarding the MC6845 controller which other cards had and embedding everything into a single processor, except for memory and auxiliary electronics (crystal oscillators, passive electronics, etc.) IBM could afford including it on the mainboard precisely because this high level of integration.
It didn’t take a long time for high compatibility to be released, which went around 500 dollars in 1987 (1.100 dollars in 2018). VGA is probably, in fact, the most cloned video PC video card, and wikipedia cites S3, Ati, Matrox, Tseng, Trident, NEC and more as the main makes. Almost every card had in common the standard video modes and many others in high resolution, along with various features by each. This would allow two important things, first being industry progressing while adding new features and capabilities and second was IBM progressively losing control of the standards. This made video cards very different each other, leading to the next chapter of our soap opera.
XGA and everything else
After VGA‘s overwhelming success, next proposed standar by IBM was the Extended Graphics Array, abbreviated to XGA. Its features weren’t so impressive for 1990 in the blueprints, but it added a very interesting video mode which had a resolution of 640×480 pixels and 65.536 colours (high-colour), something close to professionals solutions. It added partial compatibility with the IBM 8514 standard, particulary with the 640×480 at 256 colours mode, and had an all-pixels-addressable 1024×768 pixels at 256 colour mode, as opposed to the 8514 which would allow only text at that resolution
The great highlight of this card was, however, an alleged performance improvement up to 50% in Windows versus the old VGA. It the end it wasn’t such a big deal since software wasn’t usually programmed to use all the resources of this card, so making an expense of 1.095 dollars (more than 2.100 in 2018) hardly justified this expensive boost. It was, nonetheless, a good choice against the costly 8514 in IBM OS/2 operating system or in the same Microsoft Windows.
This new graphics card had two crucial issues: first it was presented for PS/2 computer lines fitting a MCA bus, and since it was proprietary and expensive to implement by third parties it failed. Moreover, at that time third party makers just extended VGA specifications to achieve better features in arbitrary aspects, being this XGA specification not very attractive for them. Games and other graphic media programmers, specially for MS-DOS, had a hard time since they had to support a plethora of diverse standards, so many get stalled in the lower common denominator that VGA modes were.
Just after first VGA cards came into retail stores the first bits of this specification began to establish. It never materialized in no particular card, in fact technically it wasn’t a format specification at all, since there was no authority which published an standard outside the path that IBM or main makers walked. In this context, even IBM XGA ended up being considered as part of the blend which Super VGA was.
This changed around 1990 with VESA (Video Electronics Standards Association) publishing VBE: VESA BIOS extensions. It was since then when it began to exist a common interface to access high resolution modes, which ended up being named Super VGA or VESA modes, everything through these BIOS extensions. First specifications defined video modes which cards implemented, specially high resolution modes. In 1994 it was published the 2.0 specification which included paging support, planar modes, 16 and 24 bits of colour, linear models and everything under the protected mode of the CPU, thus finally allowing MS-DOS games with high resolution games to materialize without having to worry about every card in the market.
Other of the VESA specifications was VLB, the VESA local bus, in 1992. This interface, alternative to PC bus (which came to be called ISA bus, Industry Standard Architecture) made the CPU closer to the graphics card, allowing a better performance. Actually it was an upgrade to ISA, and allowed the graphics card for example to access main memory through DMA channels, or graphics memory mapped in the virtual memory in protected mode. It wasn’t exempt of problems however: First it was designed essentially around Intel 80486 processor, which ended up being a not very scalable solution and not very predictable. Its usage, except for very concrete exceptions, was chiefly graphic cards, and motherboards used to include at most two slots supporting VLB. Lastly its form factor made cards difficult to install, due its huge connector which applied a non trivial stress to the components when installing. The last straw was the PCI bus which appeared later that year, and compatible graphics card the following year.
Super VGA, or what it came to be through consortiums and standards was (wasn’t) the last great PC era graphics standard, now outside IBM company intent. In 1990 a decent Super VGA graphics card costed around 400 dollars (about 770 in 2018), against more than 100 (around 1.900 in 2018) which IBM solutions costed, so outside professional applications it was the big winner.
Since then it’s another story. With the downfall of MS-DOS, the beginning of Windows 95 era and the drivers model it happened something similar to sound cards, and the tussle were about specific ears like 3D or video decoding. This is different topic which I won’t be covering today, though.
My acknowledgements to my graphics friends which gave me support and joined me in this lecture:
- The Crazy Pixel
- The Human Card
- Mrs. Horizontal Resolution and Mrs. Vertical Resolution
- The Low Resolution Dwarf
- The Voyeur Display
- The Glutton Slot
- Mr. Standard
- And finally Mr. I Can’t See Shit
As always I’d love to receive comments and remarks about the above, along with personal experiences by whom expended more than they should to have 10 or 12 more colours in the screen.