• Please review our updated Terms and Rules here

Why did IBM create CGA - What user was there target?

Was there non-IBM / non-MSFT 3rdparty software available on release day?
IBM did contract with several other companies. It took a few months for the flood of software to arrive. I remember a magazine article that made a simple full screen text editor because there weren't any. By the time the article got printed, there were dozens.
 
Notice that those colors don't really match the IBM CGA palette, unless they had the tint control misadjusted, or it's an inaccurate scan of the magazine.

I think the image was op-ed. It was common to slap on a picture over a turned off monitor.
 
Notice that those colors don't really match the IBM CGA palette, unless they had the tint control misadjusted, or it's an inaccurate scan of the magazine.

Don't forget that the "brown" you get in the "official" CGA palette is a hack that IBM specifically implemented on the 5153 to make "dark yellow" a little less gross. Digital RGB monitors that predate the 5153 often didn't implement that.

Looking at the pictures in the article I'm not even sure the monitor they have hooked up has the "I" intensity signal hooked up. (8-color RGB-without-the-I was also pretty common on early digital RGB monitors.)
 
Amdek color monitors were a popular choice for any computer that didn't have its own official monitor (yet)... Apple II Plus, Commodore VIC-20, Atari 400/800, etc. They had a composite version (basically a tunerless TV set) and a much more expensive RGB version with a higher-res picture tube.


Notice that those colors don't really match the IBM CGA palette, unless they had the tint control misadjusted, or it's an inaccurate scan of the magazine.
West, nice article. Looking at the cost of the IBM PC and keyboard the article says about $1260 or so back in 1983 (sans floppy drives and monitor, etc). A fully decked out IBM PC with color monitor and CGA would have been about the price of a new car, or more, back then. Kind of makes the 1986 release of the Tandy 1000SX at $1199 look like a sweetheart deal.
 
Don't forget that the "brown" you get in the "official" CGA palette is a hack that IBM specifically implemented on the 5153 to make "dark yellow" a little less gross. Digital RGB monitors that predate the 5153 often didn't implement that.

Looking at the pictures in the article I'm not even sure the monitor they have hooked up has the "I" intensity signal hooked up. (8-color RGB-without-the-I was also pretty common on early digital RGB monitors.)
The Apparat ad in Feb-Mar 1982 PC Magazine has a NEC RGB monitor with "16 color modifications" showing a golden brown color, unless that's another case of artistic license with the photo?

 
Don't forget that the "brown" you get in the "official" CGA palette is a hack that IBM specifically implemented on the 5153 to make "dark yellow" a little less gross. Digital RGB monitors that predate the 5153 often didn't implement that.

Looking at the pictures in the article I'm not even sure the monitor they have hooked up has the "I" intensity signal hooked up. (8-color RGB-without-the-I was also pretty common on early digital RGB monitors.)

Just to be clear, I was responding to photos in the Byte magazine review of the IBM PC, like this one:

Screenshot 2025-04-02 at 12.26.24 PM.png

Conspicuous by its absence is any sign of the two grays ("dark white" and "light black") that are available in the full RGBI palette. (If you're just doing RGB-no-I you only have "black" and "white").

And... here's an article by someone who describes owning one of these Amdek Color II monitors; according to them the original cable supplied with the monitor didn't support the intensity line, AND they discuss a $50 "upgrade" Amdek offered to implement the "brown fix"; the stock monitor didn't have it.
 
Before the introduction of IBMs CGA monitor, you had to go elsewhere up to '83. This was mentioned before, however, were there monitors that used the DE9 CGA connector *before* IBMs monitor. At that time were they all composite?

In 1984, before EGA, could you get Tandy graphics on an ISA card? With 20/20 heignsight this looks like the best compatible graphics system. But did this ever exist? Not sure if the programs available made use of tandy graphics much at its '84 introduction. Was it that by the time it was popular, EGA was out?

Who were the first to fix the snow issue? Was the card incompatible? If so, who fixed it properly?

Also it was touched on, in the EGA thread, Double-scan CGA. Incompatibility problems apparently, but pre-EGA-introduction, any that stand out as good? I recall there was some DIY mod to CGA, but I can't recall if it was double scan or snow removal or both. Anyone know about either?

Looking at what people were trying to address with CGAs shortcomings is quite interesting. A lot happened between '81 to '85. Eudimorphodon, your review of CGA in comparison to existing systems in '81 was very useful. Following on, I believe someone mentioned that CGA was designed to do everything the Apple II did? I'd be interested in how the apple II was used for business graphics. This may help answer the OPs question. Lotus 123 is the first program that I can think of with business graphics and that was '83. Did VisCalc do graphs? What else was about?

As to the popularity of MDA(& HGC) vs. CGA. At least here in te UK, in the 90s, when I was climbing over piles of used computers, MDA was like 10 to 1 CGA. This isn't just IBM PC's, it's clones in general. Additionally I was tripping over MDA monitors. It's a bit hard to remember, but I think most of the color monitors I found were for other systems. There were quite a lot of VGA-640x480 only monitors and quite a few b&w VGA floating about.
 
Following on, I believe someone mentioned that CGA was designed to do everything the Apple II did?

A while back someone posted a link to the original design proposal for what became the IBM 5150; I'm too lazy to find it at the moment, but if you look it up a kind of crazy detail in it is IBM proposed that the most minimal possible configuration of the machine would be to have zero K of memory on the system board and use the RAM on the CGA card for both video and system memory, like, well, an Apple II or other *really minimal* home computer. Per whit:

Who were the first to fix the snow issue?

The PC only "snows" in the 80 column text mode, CGA is actually surprisingly good by the standards of the time at handling memory contention in the other modes, which may actually be a leftover from that proposal of using unused CGA memory as video memory. (Otherwise the screen would just be a constant mess.) FWIW, I think, but don't quote me on this, that "alternate universe" version of the CGA card would also have supported an even *more* Apple II-like graphics mode that would have been like the 320x200 mode but only single bit with artifact colors; this would have allowed using 8K for graphics while saving 8K for other uses.

If IBM had actually gone through with this plan to use a more "UMA" design for video memory we might have actually ended up with a 5150 that was more like the PCjr or Tandy 1000. There definitely would have been pros and cons to such an approach, but if IBM had done it correctly (by that I mean like how Tandy did with the 1000, where they strategically used 16 bit access for video with storage latches to cut down on the contention compared to the PCjr) then it might have been a bit more palatable to allow for 32K of video memory in 1981, since it could have done double-duty as system memory in lower spec configurations. But...

In 1984, before EGA, could you get Tandy graphics on an ISA card? With 20/20 heignsight this looks like the best compatible graphics system.

The Plantronics Colorplus is the best known example of a "Super-CGA" card for 16 color graphics that predates the PCjr and Tandy 1000, but it might not be the first. Note that it's not *compatible* with Tandy or PCjr, it implements the color planes differently so the memory layout doesn't match up.

Here's the thing, though: if you look at the Plantronics adapter you'll see it occupies *two* full length boards. CGA is actually a *pretty darn complicated* standard; if you look at the details it basically has three separate pixel generation chains and the PCjr and the Tandy 1000 both rely on some custom ICs to get the parts count down. Custom ICs were more mainstream in 1984 than they were in 1980, and while you could probably make an argument that if IBM had really wanted to they could have comissioned some custom glue to make CGA fancier while still fitting it into the target price they were after it would have front-loaded a lot more investment in what was kind of a skunkwork's project.... and that probably would have torpedoed the whole thing.

Judged by the standards of its time CGA was plenty good for what it cost, and its flexibility and low cost to implement (by the mid-80s they'd compressed it down to blob chips that basically just needed to be slapped on a card with a couple RAM chips) kept it in the game right up until the end of the 80's. IBM deserves at least a silver medal for it. They might have gotten gold if instead of those gross pre-set palettes they had for the 320x200 mode they'd just slapped an 74LS670 addressible register chip on it and let you pick which four colors you wanted.

(Okay, for *double gold* they could have put a SRAM chip on it instead of the font ROM and allowed for redefineable character sets. The irony there is the 5150 *has* a set of font glyphs in the system BIOS anyway for drawing characters in graphics mode; they could have just included in the start-up routine a loop to copy that into the character SRAM. Considering the relative costs of a ROM and a 2K SRAM that change would have been almost free.)
;)
 
Before the introduction of IBMs CGA monitor, you had to go elsewhere up to '83. This was mentioned before, however, were there monitors that used the DE9 CGA connector *before* IBMs monitor. At that time were they all composite?
Many early RGB monitors used the EIAJ connector, which was a Japanese standard:


445px-PCT-55_Digital_RGB_connector.jpg
 
Before the introduction of IBMs CGA monitor, you had to go elsewhere up to '83. This was mentioned before, however, were there monitors that used the DE9 CGA connector *before* IBMs monitor. At that time were they all composite?

In 1984, before EGA, could you get Tandy graphics on an ISA card? With 20/20 heignsight this looks like the best compatible graphics system. But did this ever exist? Not sure if the programs available made use of tandy graphics much at its '84 introduction. Was it that by the time it was popular, EGA was out?

Who were the first to fix the snow issue? Was the card incompatible? If so, who fixed it properly?

Also it was touched on, in the EGA thread, Double-scan CGA. Incompatibility problems apparently, but pre-EGA-introduction, any that stand out as good? I recall there was some DIY mod to CGA, but I can't recall if it was double scan or snow removal or both. Anyone know about either?

Looking at what people were trying to address with CGAs shortcomings is quite interesting. A lot happened between '81 to '85. Eudimorphodon, your review of CGA in comparison to existing systems in '81 was very useful. Following on, I believe someone mentioned that CGA was designed to do everything the Apple II did? I'd be interested in how the apple II was used for business graphics. This may help answer the OPs question. Lotus 123 is the first program that I can think of with business graphics and that was '83. Did VisCalc do graphs? What else was about?

As to the popularity of MDA(& HGC) vs. CGA. At least here in te UK, in the 90s, when I was climbing over piles of used computers, MDA was like 10 to 1 CGA. This isn't just IBM PC's, it's clones in general. Additionally I was tripping over MDA monitors. It's a bit hard to remember, but I think most of the color monitors I found were for other systems. There were quite a lot of VGA-640x480 only monitors and quite a few b&w VGA floating about.
VisiCalc was the daddy of them all back in 1979 with the Apple II. Then you could get VisiCalc for the Model II (catalog number 26-4511) that was released in December 1980 and cost $299.00. Lotus 1-2-3 was an IBM thing.
 
I've seen quite a few early monitors on top of a PC in mags pre-83, Amdek being common. But not seen the back. Only seen this connector on 80s pro VCRs. So in 1981-82 you could use the digital DE9 connector. Thanks for clearing that up.

The Plantronics is an interesting one but it never really went anywhere. I would bet most code executions that have color plus modes were executed on a system with a clone card that can do Plantronics mode, instead of actually being a Plantronics. Though that may be somewhat true of HGC (most of my cards are clones). Say, it looks like tandy was the best option in 1984 with hindsight, but AFAIK was not available in ISA form. So I am assuming it wasn't considered that important.

It's interesting you mention the custom chips. Yes the default for IBM was to make everything custom and IBM, the PC was supposed to be off the shelf parts, so a custom ASIC/gate array would have been against the design philosophy. Then there was the PS/2 with a very bizarre array of standard chips glued together with gate arrays.

I will have to read that article, very interesting about the abandoned UMA architecture.

It's funny how in '81 it's "wow it can do COLOR!" by '85 it's "OMG doesn't even have sprites"

Also did VisCalc do graphics on PC or apple II?
 
Say, it looks like tandy was the best option in 1984 with hindsight, but AFAIK was not available in ISA form. So I am assuming it wasn't considered that important.
I don't think 'ISA' was a factor until the clones took hold and folks started to tinker and do things for themselves.
 
Say, it looks like tandy was the best option in 1984 with hindsight, but AFAIK was not available in ISA form.
Soon after that Radio Shack ended up with a lot of unsold monitors due to the Tandy 2000 being a flop, so they introduced several ISA cards (made for them by STB) designed to make use of those special hi-res monitors -- one of them being a really odd text-only color display card:

 
a... kind of crazy detail in it is IBM proposed that the most minimal possible configuration of the machine would be to have zero K of memory on the system board and use the RAM on the CGA card for both video and system memory, like, well, an Apple II or other *really minimal* home computer.
Well, if you consider the Apple II motherboard to be a video card with a computer on the board as well.

I would consider PC video to actually be a UMA architecture, since it places the frame buffers in the same address space as the rest of the memory. The 16K of RAM on the card is just 16K of RAM to the computer, regardless that there's other circuitry also reading from that RAM. Just as the 1K of text/low-res graphics frame buffer RAM or 8K of high-res graphics RAM works on the Apple II. The memory on the original PC works the same way whether it's physically located on the motherboard or on the ISA bus and on the early machines it was normal to install a QuadRAM QuadBoard to add 384K of memory in the range above the 256K you could have on the motherboard itself. There's no reason you couldn't build a straight-up memory board with 16K RAM mapped into the CGA RAM area and the PC would see no difference between that and the 16K on a CGA card.

In fact, with a bit of clever design, I bet that the CGA card could have just used system memory on the motherboard as its frame buffer, just as the Apple II and the like did.

The reasons for not using the video card RAM as sole system RAM are pretty obvious if you start to work out the design: you a kilobyte of memory at $000-$3FF for the interrupt vector table, and working out how to share that with the frame buffer and the program, while it could be done, would be rather a pain.

Many early RGB monitors used the EIAJ connector, which was a Japanese standard:


445px-PCT-55_Digital_RGB_connector.jpg

This is a Hirose Minicon 1308 connector, and yes, was pretty much the (unofficial) standard for 200-line and some 400-line RGB monitors in Japan from 1979 through the mid-80s. There were actually two pinouts used, one for everything but MSX (usually with just three channels, but sometimes with an intensity bit) and, later, a different pinout for MSX.

Only seen this connector on 80s pro VCRs.
For some reason I thought those were used for control, not video, on VTRs. But I see that e.g. the Sony VO-9800P U-matic deck uses one of these for combined audio/video output. That's composite, though, and an entirely different pinout from the RGB usage.

So in 1981-82 you could use the digital DE9 connector.
It's effectively the same thing, so long as you could solder up (or just buy) a cable. You simply need conductors for R, G, B, I (optionally), hsync, vsync and ground.
 
I would consider PC video to actually be a UMA architecture, since it places the frame buffers in the same address space as the rest of the memory.
No, it's not. Yes, on CGA it is in the adress space of the CPU, directly accessible without bankswitching like on VGA, but it is not the memory chips which are on the mainboard, it is extra memory chips on the graphics card. A real UMA PC graphics solution later in the 1990's used the mainboard memory for the framebuffer. But this kind of UMA is already older than these 1990's PC chipsets, already many "homecomputers" like ATARI ST, Commodore Amiga used that shared memory architecture.
 
Oh, and if anybody wants to see what was available in terms of (digital) RGB colour displays from 1979 through about 1983, I've extracted my PC-8001 CRT display list and updated it, here. There are all displays that were widely available in Japan, and for the early ones anyway likely shipped to the U.S. and Europe in quantities about as limited as the PC-8001. I don't know to what degree they were rebadged by OEMs.
 
No, it's not. Yes, on CGA it is in the adress space of the CPU, directly accessible without bankswitching like on VGA, but it is not the memory chips which are on the mainboard, it is extra memory chips on the graphics card. A real UMA PC graphics solution later in the 1990's used the mainboard memory for the framebuffer. But this kind of UMA is already older than these 1990's PC chipsets, already many "homecomputers" like ATARI ST, Commodore Amiga used that shared memory architecture.
So can you give me a precise definition of "UMA"? The Apple II generated its video display by reading memory on the mainboard; was that UMA?

What if I create a graphics board that reads its data from any arbitrary memory location in the PC's memory, and ask it to read from a buffer starting at $10000 (64K from the beginning of memory). Is it UMA if I load up the motherboard with 128K of RAM? What if I put only 64K of RAM on the motherboard and another 64K on an ISA card? Is it now not UMA, even though neither the PC CPU nor the graphics card hardware can distinguish between these two situations?
 
I don't think 'ISA' was a factor until the clones took hold and folks started to tinker and do things for themselves.

Yup the bus was dubbed ISA once PCs became prevalent and masses of clones out there, hence "industry standard".
Perhaps the first 'cloners' didn't want to use IBM's terminology - PC BUS, AT BUS, for potential legal issues?

In the official documentation of Olivetti XT that I have, the PC BUS is just called "internal 8 bit bus".
 
So can you give me a precise definition of "UMA"?

I am not an expert on UMA, but doesn't it require symmetrical access to memory resources without arbitrating in favor of one processor over another?

So shared memory is not, by default then, UMA?

And I was wondering if the CPU timing is used as the arbiter, is that UMA or NUMA?

I used video timing to arbiter memory access in a recent design, and I wouldn't have thought that was UMA?

I would have thought that the timing would be somewhat asynchronous within a UMA? And that any access might be contended and delayed without respect to the function or intent of that access?

What were you thinking of?
 
The Apple II generated its video display by reading memory on the mainboard; was that UMA?
Yes, this is UMA before it was called UMA. Also the CBM computers, Atari 8 bit and so on. Maybe there are little exceptions like the color RAM on Commodore 64 which is a separate RAM chip.

And I was wondering if the CPU timing is used as the arbiter, is that UMA or NUMA?

UMA = Unified Memory Architecture, also called "shared memory", where CPU and graphics frame buffer is in the same RAM chips. So CPU and Graphics Chip share the same memory for software, data and frame buffer and access alternately to it. Means, if CPU is accessing it has to wait until the video chip has read it's part. This for example was made very intelligent in the Atari ST where this works without waitstates for the CPU. CPU to memory acces in Amiga in the "Chipmem" is slower than ST does because Denise video chip stopps the CPU more often. "Chipmem" is the original 512 kB / 1 MB a standard Amiga 500 has. Amiga knows also "Fastram" which is not accessible for Denise video chip, it's exclusively for CPU.

NUMA = Non-Uniform Memory Access - it's not the opposite of UMA, but it is something completely different, means: Im a multiprocessor system each CPU has it's own local connected memory. But other CPUs on the system can access it through the CPU where this memory is connected. A popular and early example for NUMA in the x86 family is for example the AMD Operon. https://en.wikipedia.org/wiki/Non-uniform_memory_access
 
Last edited:
Back
Top