On April 2, 1987, when IBM rolled out the PS/2 line of personal computers, one of the hardware announcements was the VGA display chip, a standard that has lasted for 25 years and counting. While the VGA was an incremental improvement over its predecessor EGA (1984) and remained backwards compatible with the EGA as well as the earlier (1981) CGA and MDA, an entirely new display adapter was also introduced: The IBM 8514/A. The 8514/A was the first fixed-function graphics accelerator for PCs with support of 1024×768 resolution and up to 256 colors.
8514/A and VGA
There were several pieces of the puzzle: The actual 8514/A adapter, a VGA display built into a PS/2 Model 50, 60, or 80, and if one wanted to use the high-resolution 1024×768 mode, the new 8514 color monitor. The 8514/A was a microchannel (MCA) adapter which included a complete standalone display controller (IBM never built ISA-based 8514/A boards, but several clone manufacturers did). It was not compatible with any previous IBM graphics standards; for that purpose, the 8514/A used a pass-through mechanism whereby an on-board VGA provided backwards compatibility.
Unlike later pass-through solutions used by video decoder or 3D accelerator boards (notably the 3Dfx Voodoo line), the 8514/A did not use an analog pass-through. The PS/2 VGA chips supported a special digital connection which provided digital data before passing it through a palette look-up table (LUT). In pass-through mode, the LUT and DAC of the 8514/A were used, bypassing the on-board VGA ones. To this end, the 8514/A could shadow the VGA palette—writes to the VGA DAC were also directed to the 8514/A DAC, which was fully compatible but supported higher pixel clocks. The 8514/A’s DAC could also be controlled separately without affecting the VGA DAC.
Like other pass-through solutions, this set-up also allowed users to attach two monitors and use the VGA and the 8514/A simultaneously, even if that was not the typical usage scenario. This was a notable difference from nearly all follow-on designs which integrated a VGA core with an accelerator on a single chip (or at least a single board).
8514/A Display Modes
The IBM 8514/A only supported two resolutions: 640×480 and 1024×768. The basic 8514/A with 512KB VRAM only supported 16 colors; the 512KB memory expansion brought the total to 1MB VRAM and supported 256 colors as well.
The very limited set of resolutions was purely a function of the 8514/A display controller—the accelerator was much more flexible, and in fact 8514/A clones often supported 800×600 and 1280×1024 resolutions as well. The limitation was a consequence of only two oscillators on the board (and no programmable PLL), providing 25.175MHz and 44.9MHz pixel clocks for the 640×480 and 1024×768 resolutions, respectively.
The 1024×768 pixel clock was the cause of one of the biggest drawbacks of an 8514 system: The 16-inch 8514 monitor only supported a 43Hz interlaced 1024×768 resolution, and so did the 8514/A board. This was purely a cost-saving measure, especially on the part of the monitor. However, it resulted in unpleasant flicker at the high resolution. Again, clone boards often removed this limitation.
Memory Architecture and I/O Interface
The 8514/A internally used memory organized into planes, much like the EGA and VGA. In the basic 512KB configuration, only four planes were available, providing 16-color support (although a non-standard 256-color 640×480 mode was also achievable on those boards). The 512KB memory expansion added four more planes, bringing the total to 8 and hence 256 possible colors per pixel.
The planar organization was natural for the draw engine which always addressed memory the same way but could process either 4 or 8 bits at a time.
The memory organization was however not directly exposed to the programmer. Unlike MDA/CGA/EGA/VGA, the 8514/A was not mapped into the host system’s memory space at all and the framebuffer could not be accessed directly.
The 8514/A only provided an I/O port interface, and a strange one at that. Because the 8514/A required a relatively large number of 16-bit registers (around 30) to be mapped in the I/O space, IBM chose a non-traditional way to conserve the overcrowded ISA register space (the ports below 400h). The 8514/A occupied the 2E8h-2EFh space, but additionally used bits 10-15 of the I/O port address traditionally not decoded by ISA devices. The 8514/A thus for example decoded I/O addresses 02E8h, 06E8h, 12E8h, 16E8h, and so on up to BEE8h.
The I/O-space-only mapping had advantages and disadvantages. The good thing was that the 8514/A did not need to compete for the already severely overcrowded below-1MB address space. The bad thing was that reading or writing to the framebuffer had to be performed through a single 16-bit data register.
The 8514/A Draw Engine
The part which made the 8514/A really interesting was of course the accelerator (or draw engine) itself. The 8514/A was the first widespread fixed-function and therefore relatively cheap and fast accelerator. Other accelerators common at the time often used the Texas Instruments TMS34010/TMS34020 chips—RISC processors running at around 50MHz. The 340×0 chips were extremely flexible, but also significantly more complex to manage in software, more expensive, and generally about as fast as the simpler 8514/A.
The 8514/A introduced a 2D accelerator architecture which remained common for many years to come. The drawing commands included line drawing, rectangle and area fills, and BitBLTs (bit-block transfers) with X/Y coordinates. All drawing operations were subject to a scissor (clipping) rectangle.
The pixel pipeline used a specified foreground and background ‘mix’, which allowed to combine source and destination pixels with logical operators (AND, OR, XOR, NOT), addition/subtraction, maximum/minimum, etc. In many GUI environments, these are called raster operations or ROPs. A color compare register allowed to exclude certain pixels when drawing (and therefore retain the original pixel data). A mask register enabled the user to exclude specified memory planes.
Drawing commands were written by the host to a command queue (FIFO); the host was responsible for ensuring that there was enough free space in the queue which only had 8 slots on the original 8514/A (typically more on the clones). Since the the accelerator engine ran in parallel with the host CPU (a key source of accelerator performance), the 8514/A provided a mechanism to check whether the draw engine was still busy or idle.
The 8514/A line drawing was somewhat complex. Horizontal, vertical, and 45-degree lines were simple to draw, but all other lines required the user to calculate parameters for the Bresenham line drawing algorithm and program those to the accelerator. Several 8514/A clones provided enhanced functionality where the accelerator itself calculated the parameters.
There was also a special short-stroke vector (SSV) line drawing mode which provided an efficient interface for drawing short lines at multiples of 45 degrees. SSVs were often used for drawing text (the 8514/A did not provide any text mode).
The BitBLT functionality supported copying of rectangular blocks of pixels, subject to the applicable mixes etc. Optionally, either the source or the destination could be the PIX_TRANS register, which was a way for the host to write data to or read data from the 8514/A’s framebuffer. The source could be monochrome, providing color-expansion functionality often used with bit-mapped fonts.
In all supported modes, there was some amount of off-screen memory. This was often utilized to store frequently-used bitmaps or bit-mapped fonts. The draw engine could access off-screen memory considerably faster than it could receive data from the host.
Adapter Interface (AI)
IBM never published register-level documentation for the 8514/A (although several clone manufacturers did). The only documented programming interface was the so-called AI, or Adapter Interface. The AI was a software interface (implemented as a DOS TSR), deliberately not specific to the 8514/A.
The AI was reasonably easy to use and had one major benefit—hardware independence. Various TMS340x0 boards supported the AI, as did IBM’s own 8514/A successors (Image Adapter/A, XGA) and 8514/A clones. The AI also had one major drawback: Roughly 50% performance compared to direct register access. Developers had to carefully weigh the advantages and disadvantages of writing to the AI.
The one product which significantly undermined the AI idea was Microsoft Windows, as well as IBM’s own OS/2 Presentation Manager. Especially on OS/2, using the AI was a non-starter, so IBM provided 8514/A register specifications to Microsoft. Microsoft and IBM also shipped sample 8514/A drivers in their various DDKs for Windows and OS/2; these were often used as a basis for developing accelerated drivers for other boards.
IBM’s 8514/A boards were not cheap in absolute terms, although they were relatively cheap for what they could do at the time (initially $1,290 for the adapter, $270 for the 512KB memory expansion). The 8514/A market was severely limited by the fact that IBM’s boards only supported MCA systems.
In the late 1980s, several companies reverse-engineered the 8514/A and started producing clone chips, often with ISA support. Notable among those was Western Digital Imaging’s PWGA-1 (also known as the WD9500 chip set), the Chips & Technologies 82C480, and ATI’s Mach 8 and later Mach 32 chips.
The clones were all in one or way or another better than the original: faster, with enhanced drawing functionality, and/or improved mode support. The clones often supported non-interlaced modes, 800×600 and/or 1280×1024 resolutions, and typically featured deeper command queues for increased performance.
ATI Mach 8 and Mach 32
Probably the most widespread and longest-lived 8514/A clones were the ATI Mach 8 and Mach 32 family of products. ATI’s initial offerings (notably 8514/Ultra) were direct 8514/A replacements, accelerator-only boards which required a separate VGA device.
ATI’s 8514/Ultra was unique in that it supported both MCA and ISA systems. In MCA systems, it used the built-in pass-through functionality; in ISA systems, it connected to a supported VGA card through a special cable.
The 8514/Ultra supported non-interlaced 1024×768 modes, and provided several draw engine enhancements including a proprietary Crystal fonts technology for anti-aliased text.
ATI soon (late 1990) started offering single-card solutions which combined a VGA chip with a Mach 8 accelerator. These included the ATI Graphics Vantage (DRAM) and ATI Graphics Ultra (VRAM) cards. The Mach 8 boards behaved much like separate VGA + 8514/A chips with fixed pass-through. The (Super-)VGA chip, typically an ATI 28800, had its own 512KB of memory. A separate Mach 8 chip (ATI 38800) had additional 512KB or 1MB of DRAM or VRAM. The DAC was shared, which naturally reduced the cost.
The ATI Mach 32 was a second-generation 8514/A clone which integrated a VGA core and an 8514/A-compatible accelerator on a single chip (ATI 210688). The Mach 32 supported 16-bit and 24-bit color depths, up to 2MB memory (again VRAM or DRAM), a hardware cursor, and no longer had physically separate VGA/accelerator memory. The latter-day Mach 32 boards (1994) were available for the PCI bus and were thus among the first PCI graphics cards.
The Mach 32 was a modern accelerator which still retained register compatibility with the 8514/A and also supported the AI. The follow-on product, the Mach 64 (1994) was architecturally similar but used a much more modern register interface suitable for 32-bit PCI systems, and was no longer compatible with the 8514/A.
Even though the 8514/A itself was never a best-seller, it essentially created a market for fixed-function PC graphics accelerators which exploded in the early 1990s. The ATI Mach 8 and Mach 32 chips were popular clones, and several companies (notably S3) designed graphics accelerator chips which were not register compatible but were conceptually very similar to the 8514/A.
Graphics Programming for the 8514/A by Jake Richter and Bud Smith, M&T Books, 1990, ISBN 1-55851-086-9
Chips and Technologies 82C480 datasheet Revision 2.1, August 1991
One quirk of porting 8514/A to ISA is the COM4 resource conflict resulting from 10-bit decode.
What’s the story behind the 1280×1024 resolution (as opposed to 1280×960)?
Good question. The horizontal (1280) resolution had a technical background related to the memory organization of the 8514/A. Data was processed in “nuggets” which were 4 pixels wide. When another bank of memory was added, the nuggets were widened to 5 pixels. At 256 horizontal nuggets, that extended the resolution from 1024 to 1280.
But the vertical resolution I’m less sure about. I’m fairly certain that 1280×1024 was an earlier resolution common on workstations, so monitors which could handle it were already available. Why the 5:4 aspect ratio instead of 4:3… I don’t know. Obviously there’s no particular reason to use one or the other aspect ratio, but if one has a monitor with certain aspect ratio, either 1280×1024 or 1024×768 won’t have square pixels. I think that’s why I’ve always avoided the 1280×1024 resolution 🙂
I also remember controversy around the 2D graphics acceleration cards where certain adapters where optimized for the benchmarks. Methinks that there’s another story in the evolution of the 2D graphics cards. What were the true performers and what manufactures entered the market but didn’t survive?
As always a great article. It was a pleasure to read. Thanks.
Optimizing for benchmarks is inevitable in a world where product reviews and purchasing decisions are based on benchmark results. If the benchmarks reflect real-world workloads, they can be very useful. If not, well… caveat emptor. But maybe you’re referring to cases where hardware manufacturers were cheating and implemented special hacks to detect and fool benchmarks?
As for graphics card manufacturers, that would be a very long story I suspect 🙂 The only certain thing is that ATI (despite the AMD merger) is the only old-time survivor. Intel is a very special case, giving mediocre product away for free in a market they don’t particularly need. nVIDIA was a late entrant (but very successful) and essentially every other company is gone or irrelevant. Tseng, S3, Matrox, Trident, Hercules, IBM…
I have never read before about 8514/A, but it looks *very* similar to some specific graphic processors developed by Yamaha to be used on japanese/european MSX home computers circa 1984: the video display processor V9938… the same register based video memory access and the same kind of hardware accelerated commands (although there is no difficulties handling line commands). On the other hand, the Yamaha processor had support for text-mode support, but the maximum resolution was only 512 x 424.
512×424 sounds very decent if not great for 1984. But I don’t think graphics accelerators were common at the time at all! Memory cost was probably a huge factor at the time; the (up to) 1MB of VRAM on the 8514/A was not exactly cheap.
I don’t think the 8514/A was a new idea per se… but the high resolution, good performance, and reasonable price (for the time) made it an excellent choice for high-end graphics, especially CAD applications. The fact that it came from IBM no doubt also made a difference and triggered the interest in cloning.
What I wonder about is how GUI environments (especially Windows/Presentation Manager) influenced the 8514/A hardware design, and if/how the 8514/A design again influenced GUI environments. All 2D graphics accelerators I’ve seen were rather similar to the 8514/A in terms of functionality, even if they were more capable and easier to use.
Matrox is still around, but it doesn’t cater to regular PC audience anymore. S3 was bought by VIA, and is present as integrated chip on their motherboards. The rest are gone.
Actually, S3 Graphics now appears to be owned by HTC (says Wikipedia). Clearly the old IP is still worth something in the mobile market.
Anyway, Matrox and S3 certainly aren’t gone, but I would argue that they are irrelevant (in the PC market)–which is why I wrote “gone or irrelevant” 🙂 It would actually be interesting to know what happened to all those dozens of graphics chip companies of old.
According to Shittypedia, Tseng Labs sold themselves off to ATI in 1997, rather than burn cash trying to get the ET6300 chipset into the competition.
Technically ATI only bought the graphics assets, not Tseng Labs itself, but yes. Now that I think of it, ATI was the only company that successfully managed to go from EGA/VGA clones to 2D accelerators and then to 3D.
Whoops, a distinction I failed to make. :O
About ATI though, I seem to recall they were making Hercules clones in the early 80s, predating EGA/VGA somewhat? Or am I horribly mistaken?
Mid-eighties (company founded in 1985) but yes… they started out with Hercules and CGA clones. I don’t know how many of those were sold under the ATi brand as opposed selling to OEMs directly. The EGA Wonder is the first ATi-branded graphics card I’ve ever seen advertised, but I didn’t look that hard for the older ones. The EGA Wonder came in 1987 so I don’t expect they built huge numbers of the pre-EGA cards.
Shittypedia to the rescue again:
ATi Graphics Solution Rev 3: Hercules monographics, 8-bit ISA card, designed late ’85, released ’86.
I found many sources agreeing that ATI was founded in ’85, but in this blog post (referenced in the aforementioned Wikipedia article):
Which says but incorporated in 1985, but founded in ’84. The way the post is written however, sounds very much like a press release, and those can be a little economical with the truth. But hey, it feeds my confirmation bias circuit. 🙂
Off topic: I don’t mean to be a pest (I already bugged you about it six-or-so months ago), but have you worked on your VirtualBox NT video miniport driver recently? If not, is there any possibility of a source release for the tinkerers (such as myself :))?
Ack, and I completely messed up my A tags. 😛
Yeah, who knows what the real timeline was 🙂 At any rate there may not have been any hardware before 1986.
Re the miniport — to be honest, I’m not totally sure if I made any changes since the last release. Is there anything specific you’re looking for? I’d e-mail you privately but I don’t think I have your real e-mail address…
This is the most detailed history of ATI that I’ve seen: http://www.answers.com/topic/ati-technologies-inc Founded Aug ’85, first product Oct ’85, “major success” in Jul ’87.
I’ve found mentions of ATI products in InfoWorld from March 10, 1986 and PC Magazine of June 24, 1986. One mention of “ATI Graphics Solution” in an InfoWorld ad in Jan ’86. Haven’t found any trace of ATI in earlier issues.
Oops, sorry, been off-world for a few days. Ta for the link on ATI’s early years. ’twas good reading. 🙂
With your VBox miniport driver, I was just interested in running very high resolutions (at least 2048×1536) for the benefit of IDEs I run in my dev VMs. In your last post on the subject, you suggested that testing was the only real issue holding it back.
P.S. I’ve attached my real e-mail address to this reply.
Very interessting article. But what’s about the Matrox Magnum/MG Series accelerators from1989/1990, which claimed by Matrox had 100% compatibility to 8514/A?
Matrox was using the Western Digital chipset in combination with TI’s TMS340C25.
MG-104 (1024×786, 4 bit color)
MG-108 (1024×786, 8 bit color)
MG-124 (1280×1024, 4 bit color)
MG-128 (1280×1024, 8 bit color)
You can find several short articels and 1-2 cutted board images in magazine like InfoWorld and some others. Offer to send/contribute some photos from my MG board for your article.
I don’t know what about them — I’ve never seen one 🙂 (or come across it in my research) But since writing that article, I have accumulated a few more 8514/A clones. Mostly ATI but one or two C&T cards as well. If you have some good higher-res photos of a MG-1xx with a WD chip, I’d be very interesting. Maybe I need to write another article about 8514/A clones.
Does your card work for example with Windows 3.1 without any tweaking? (That is, if Windows 3.1 is installed, it should automatically detect an 8514/A and install the right driver.)
Because I never tried to use the board under Windows with some AutoCAD version, I can’t say if the built-in driver is working without tweaking. With some time to come it should be possible to set-up a test installation with Windows 3.1 and try it.
On my ride in the train made two typos:
1. resolution MG-10x: 1024×768
2. DSP transform engine and display list processing with TMS320C25
Chipset should similar to the ones of the MG-108 (found in WWW): WD WD95C00-VR, WD WD95C01-LR, Brooktree Bt478KPJ80, 1MiB VRAM
InfoWorld 27 Nov 1989, p.13
InfoWorld 11 Dec 1989, p.44 (commercial incl. prices for MG-10x)
InfoWorld 15 Jan 1990, p.29
MG-1xx boards were available for two system buses: 32bit MCA and 16bit ISA
Furthermore I’m not sure, but later there were also two more boards of the MAGNUM series (InfoWorld 29. Apr. 1991, p.28):
MG-3D (1024×768, 12 bit color, ISA)
MG-3D Ultra (1280×1024, 24 bit color, EISA)
Both boards were targeted on high-resolution CAD applications (e.g. AutoCAD) for users with ex state-of-the-art PC technology These two boards are not compatible with 8514/A but descending from the Sun Microsytems GS graphics board, also known as CG12 or cgtwelve) for SBus, running in origin under SunOS 4.1.1 up to Solaris 2.4 operating environment.
Next days, when back at home, I prepare some high resolution photos and send it to you.
I don’t see things like 1024×786, I see 1024×768 instead. But I was wondering why I couldn’t find anything about TMS340C25. The TMS320C25 is much less obscure 🙂
WD95C00/WD95C01 is the WD9500 PWGA “enhanced 8514/A compatible” chip set. Plus a RAMDAC and VRAM, that sounds like a standard 8514/A compatible. The TI DSP is anything but standard on a PC graphics card of course. The old Matrox cards were all very high-end and very rare, much like stuff from Vermont Microsystems or (high-end) SPEA.
Somewhere I have a miro Magic Plus card with a C&T 82C481. Need to try it out…
So where to put/upload/send the “high-res” photos of the 8514/A compatible Matrox MG-128 ?
In InfoWorld from July 16, 1990, pp.51-73 compared SuperVGA- (XGA), 8514/A- and TI 34010-based boards (e.g. Renaissance Rendition II). Page 59 listing three 8514/A boards, all supported upwards from Autocad Release 10, OS/2 1.2, Windows 3.0 and sold in the time of print:
– IBM: 8514/A
– Matrox Electronics Systems: Matrox MG-108
– Western Digital Imaging: Paradise Plus-A
Page 73 also notes the Aurora 1024 from company Entertonics Research with availability in Sep of year 1990.
Also stated 8514/A compatible boards from Chips&Technologies (?) and ATi 8514/A (see above MCA+ISA shared board in this article) were not available in the foreseeable future of July in 1990. So so. 😉
As somebody maybe already stated, the info from english based Wikipedia (EN) article about 8514/A is incorrect: “Later compatible 8514 boards were based on the Texas Instruments TMS34010 chip.” – 8514/A boards NEVER were based on the TI 34010/20 because the architecture was completely different, also good described in the given InfoWorld article (p.68). Better would be, that the TI based cards superseded the XGA and 8514/A boards soon later, because of equal or better performance and lower prices. Soon after well known graphics companies integrate their hole range of graphic functions from many ASIC’s into custom LSI silicon/chips, e.g. Matrox for their newer PG/SM series (PG-1280/1281) which merged into their newer MGA series (known as Ultima- and Impression and later Millennium/STORM products). — History has someting really interesting. Could read all day in the old magazines, LOL.
Sent an e-mail.
The older of my ATI 8514/A clones are from the very beginning of 1991. I don’t think I have any C&T 82C480. According to my 8514/A book, Western Digital was indeed the first producer of 8514/A clones, with ATI, C&T, and Headland following. ATI was probably by far the most successful and the mach32 was produced until 1995 or so, taking the 8514/A to PCI (and EISA and VLB in addition to MCA and ISA).
The TMS34010 and 34020 were pretty popular on high-end cards in the late 1980s. But in the early 1990s they were killed by 8514/A clones and derivatives (S3, ATI, Matrox) which were cheaper and often faster.
Mail sent with link for download the images.
Indeed, WDI was one of the first companies reverse engineered successfully the 8514/A from IBM and brought a compatible 8514/A clone to market. But neither V7 (later HT), C&T nor ATI had compatible clone products before the end of 1990. Matrox however chose to design and produce a clone using WDI’s chipset and improve the design by adding additional processing power with TMS320C25 DSP. Therefore it was one of the most expensive but also one of the most performant 8514/A clones available.
p.68 “TI 34010 … 1986, IBM 8514/A … 1987”
p.70 “High-end graphics board companies…” – with 34010 – “including VMI, #9, Matrox” Matrox with PG-1280 and PG2-1281. The 34010 boards become also preferred in X Windows environments on standard x86 hardware, e.g. Siemens Nixdorf Informationssysteme (SNI) WX 200 tower workstation. It was my third computer ever which I got retired from my father in 1996, who was employee at Siemens. Per default the WX 200 was populated with an Matrox PG-1280 (1280*1024 px resolution) ISA board (amongst other things TI’s 34010) and version of SINIX. Once used internal for archiving and image retrieval of big archive files. This is more than 20 years ago. Crazy, isn’t it?! 🙂
Feel free to post my images on your block w/o restrictions.
I know this is 7 years old, but still. Hercules is, or at least was, an OEM selling cards with ATi chips at one point during the 2000’s, as I remember seeing Hercules Radeons in 2004.
Actually the Hercules brand was owned first briefly by ELSA and then for a few years by Guillemot. The Hercules Radeons were made during the Guillemot era. I doubt they had any connection whatsoever to the original Hercules Graphics cards at that time. Earlier there were Tseng-based Hercules Dynamite cards; those were probably still made by the original Hercules company.
Do you have IBM 8514/A register reference?
No. I only have non-IBM 8514/A register references.