VOGONS


40 Column Text Mode Issues

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 300 of 457, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

In 320x200x4 mode, the displayed color is:

displayed color = (pixel color) SHL 1 OR (palette bit)
for colors != 0.

So, the two four-color palettes are not the result of an obvious design choice but just a result of said relationship. "Useful" combinations such as the ones described above would essentially require some sort of lookup table, probably stored in PROM, which increases cost.

I'm sure that originally, IBM didn't even think of a 4-color mode but expected the CGA to do 16 colors in text and 320x200 graphics mode, and monochrome in 640x200 mode; I think the 4-color mode was just a compromise made to save on expensive RAM (320x200x16 requires 32k RAM, the CGA has 16k). I basically consider the PCjr, graphics-wise,to be what the CGA should have been. They would just have needed to offer a 16k RAM upgrade for the CGA (and prepare the CGA for it) instead of requiring people to buy the more expensive EGA with its slow and complicated planar graphics modes and the even more expensive ECD monitor (although I think you can also use CGA monitors with the EGA if you set some sort of DIP switch, right?)
The fact that the 5150 was supposed to be a "business computer" is no excuse; even business people might want to do charts with more than 2 non-b/w colors.

Reply 301 of 457, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

I think that IBM's design paradigms in 1981 total commitment to TTL and off-the-shelf parts may be have been impaired by a more powerful card. The later IBM EGA and PCjr. do use a VLSI chip to cut down on the parts, but IBM needed something quick and relatively cheap in 1981. The card is 13" and there is no more room available for anything else. I don't know how much 16KB went for in 1981 OEM prices, but how hard could it have been to socket the RAM and allow the user to select 16 or 32KB modules? It may have been difficult with the current design to implement four color registers on the board.

Take a look at the monstrous Professional Graphics Adapter, with two full-length boards and a smaller board sandwiched between the two and the 3270 PC Display Adapter with up to three interconnected full-length ISA boards for examples of IBM's inefficient design.

displayed color = (pixel color) SHL 1 OR (palette bit)
for colors != 0.

Could you give us an example of how this works?

Reply 302 of 457, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Hey, that makes sense! First, take the binary equivalents of 0 through 3:
00
01
10
11

Shift them left and interpret as single-bit, low-intensity RGB:
RGB
000 black
010 green
100 red
110 brown

Now change the LSB to 1 for the alternate palette:
RGB
001 blue (except it would probably be black if the "for colors != 0" part is accurate)
011 cyan
101 magenta
111 white

Reply 303 of 457, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

Thank you for the demonstration.

Now, if IBM only allowed a right bitwise shift, we could see the following combinations:
000 = black
001 = blue
010 = green
011 = cyan

100 = red
101 = magenta
110 = brown
111 = white

Is it possible to get the unofficial cyan, red and white palette by bit manipulation? How does that work?

Reply 304 of 457, by jal

User metadata
Rank Oldbie
Rank
Oldbie
NewRisingSun wrote:

"Dark yellow" is R=0.66 G=0.66 B=0.00; "Brown" is R=0.66 G=0.33 B=0.00; objectively. In RGBI, color 6 has bits 1 and 2 set, meaning that R and G should be equally bright, resulting in dark yellow; "brown" is not possible at all if you follow the RGBI color model strictly. If apparently all known RGBI monitors display color 6 at brown, they must have special circuity to recognize color 6 and lower the green signal accordingly.

I don't believe that. There is no reason to do that. Dark yellow looks like brown anyway. I remember many 80s CGA games using the dark green/red/yellow palette, on original IBMs as well as on my 'Borsu' clone, and to me the color looked like dark yellow.

NewRisingSun wrote:

(...) But if Servo says it's brown on his CGA RGBI monitor, I guess I'll just have to accept that (even though I think yellow would look a lot better in 4-color RGB games).

I wouldn't put too much faith in Servo. Many people here say it should be dark yellow, it's even your own observation! Dark yellow is really the way to go, imho. And my original point stil stands: Servo might consider dark yellow to be brown, even if someone else thinks it's yellow - it's a subjective thing!

JAL

Reply 305 of 457, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

You can call 06h dark yellow if you want, but the color shown on most RGBI monitors of the day, including IBM's was what most people would call brown and can be reproduced with the R: .66, G: .33 B: .00 perfectly. But the difference between brown and a dark yellow color at R: .66, G: .66 B: .00 are considerable, as we see:

Although dark yellow clearly looks better than brown in this screenshot, it just wasn't what the majority of users saw when playing King's Quest with a CGA.

Attachments

  • 1133401287-00.png
    Filename
    1133401287-00.png
    File size
    4.92 KiB
    Views
    3663 views
    File comment
    King's Quest using "brown"
    File license
    Fair use/fair dealing exception
  • The extension bmp has been deactivated and can no longer be displayed.

Reply 306 of 457, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie
jal wrote:

There is no reason to do that. Dark yellow looks like brown anyway.

Maybe in the colloquial sense of the word. Using a stricter definition, in an RGB color model "yellow" is defined as having (almost) equal values for the Red and Green guns, while "brown" is defined as having significantly more Red than Green.

jal wrote:

I wouldn't put too much faith in Servo.

I have great faith in Servo. He has helped me greatly in the past, providing me with accurate screenshots where I needed some for verification. Thank you, Servo!

jal wrote:

Servo might consider dark yellow to be brown, even if someone else thinks it's yellow - it's a subjective thing!

I'm not interested in subjective observations. Let's get out of this subjective realm by not asking for "dark yellow" vs. "brown", but asking instead: should color 6 be 0.6/0.6/0.0 or 0.6/0.3/0.0? In other words, an objective measurement.

All reports, minus my ET4000's CGA emulation, but including Servo's digital camera picture, reveal that it is 0.6/0.3/0.0. I don't like it, it contradicts my understanding of the RGBI color model, but until I have definite proof, as in a photograph, that color 6 displays as 0.6/0.6/0.0, I'll accept it.

Reply 307 of 457, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

All reports, minus my ET4000's CGA emulation, but including Servo's digital camera picture, reveal that it is 0.6/0.3/0.0. I don't like it, it contradicts my understanding of the RGBI color model, but until I have definite proof, as in a photograph, that color 6 displays as 0.6/0.6/0.0, I'll accept it.

It is something of a problem as it doesn't fit into the conceptual model. But the IBM 4863 PCjr. Color Display and the IBM 5154 Enhanced Color Display both show the color as brown, what are the odds that the IBM 5153 Color Display and the IBM 5145 PC Convertible Color Display (the four color canonical RGBI displays) will show the color in something other than brown? I wouldn't take them. That some clone showed dark yellow is not persuasive because during the CGA period most people bought and used IBM products.

Reply 308 of 457, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

Well, like I said, until information to the contrary comes in, I'll believe that color 6 is 0.66/0.33/0.00. Nevertheless, the 5154 Enhanced Display is irrelevant here because it operates on the EGA color model, which has 6 bits, not on the RGBI color model, which has 4 bits.

Reply 309 of 457, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

As we know, in the 200-line modes, the EGA only uses the RGBI color model. Its only in the 350-line modes that the EGA uses the 2-bit RGB color model. I think the Enhanced Color Display probably switches the character of the pins depending on whether the adapter is outputting 200 or 350 lines. Also, if a monochrome mode is selected, the pins effectively behave like they would on an MDA card. Also, a CGA can use the Enhanced Display. Maybe someone in the vintage computer forum can settle this once and for all.

Reply 311 of 457, by `Moe`

User metadata
Rank Oldbie
Rank
Oldbie

Did it occur to anyone that G could be somewhere between 0.66 and 0.33? I assume there are analog circuits involved at some point, so that might be possible (and might explain why people recall it one way or the other, subjectivity getting in the way)

Is a TRS-1000 of any help? I think that's the only classic DOS machine I have access to.

Reply 312 of 457, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

Did it occur to anyone that G could be somewhere between 0.66 and 0.33? I assume there are analog circuits involved at some point, so that might be possible (and might explain why people recall it one way or the other, subjectivity getting in the way)

The CGA outputs a four bit digital RGBI signal to the monitor. Once the signal is within the monitor, the circuitry must take the signal for each pixel and tell the CRT which color to display. I suppose you could call it digital to analog conversion, but with only 16 colors its as if the monitor uses the four-bit value to correspond with a lookup table that tells the circuitry how to display that color.

Reply 314 of 457, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

In the composite output, color 6 is always dark yellow. You can make it look brownish if you turn the "hue" control real hard to the left, but even then it will be a lot brighter than in Servo's KQ1 digital camera picture (not to mention that if you turn the hue to the left that far, everything else will look wrong).

Reply 315 of 457, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Any idea why EGA uses orange/amber/brown as its dark yellow? I distinctly remember this on my 286, although it was a clone. Having entered the PC scene with EGA, I never saw dark yellow in a 16 color palette until Windows 3.1.

Reply 316 of 457, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

I think when IBM was putting the finishing touches on the CGA, it looked over the color palette and said to themselves, "of all the primary colors, the CGA can't show brown or any decent substitute for it." Well, it was too late to change the CGA specifications, but the exclusive display monitor the device was supposed to use, the 5153 Color Graphics Display, could be changed. Obtaining brown was easy enough in the color model IBM was using, simply halve the green content of the dark yellow color and you get a solid brown. The user could already get yellow using the intensity bit.

Many people soon complained that the CGA could not produce a "necessary" color, for example, it could not produce an orange for fleshtones. In this case, the light red/pink color would have to make do as a substitute. IBM was not willing to sacrifice pink for orange. With only four colors to choose from, however, the need of a good fleshtone was not truly necessary until the EGA. At that time, the limitations of the CGA colors began to make themselves felt.

When IBM designed the EGA, it did so with the intent to make it fully-backwards compatible with the CGA and CGA monitors. This meant that in 200-line modes, the EGA would have to be restricted to the 16-color CGA palette even though EGA could generate 64 colors. If IBM allowed the programmer to manipulate the palette registers in the 200-line modes, it would not show the proper color on a CGA monitor. CGA monitors expect a 4-bit RGBI signal, EGA monitors a 6-bit RGB signal. This is why you can use an EGA card with a CGA monitor for 200-line graphics modes. (I would guess that for text modes you would have to set a dipswitch so that the EGA uses a 200-line text mode instead of the usual 350-line text mode, otherwise you would need a second monitor for the text mode or risk damaging your CGA monitor.)

With EGA, it was possible to get a good fleshtone, but it required the use of 350-line modes. Not everyone possessed an EGA with the RAM necessary for the 640x350x16 mode or the monitor to handle the 350-line signal.

Last edited by Great Hierophant on 2005-12-04, 22:03. Edited 1 time in total.

Reply 317 of 457, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

I think you're getting too much into mindreading mode here. We still don't know for sure what the 5153 displays. For the record, I have a GWBASIC/BASICA teaching book from 1985 (don't laugh), and it says about the "COLOR" command selecting palette 0 that "on SOME [emph. mine] monitors you hardly can tell the difference between colors 2 (red) and 3 (yellow). Sad, but true". 😀

Reply 318 of 457, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

I think you're getting too much into mindreading mode here. We still don't know for sure what the 5153 displays. For the record, I have a GWBASIC/BASICA teaching book from 1985 (don't laugh), and it says about the "COLOR" command selecting palette 0 that "on SOME [emph. mine] monitors you hardly can tell the difference between colors 2 (red) and 3 (yellow). Sad, but true".

I have made inquiries to knolwedgeable people (that unfortunately do not frequent this board) on the question of the 5153's capabilities. Hopefully they will be able to supply me with the final answer, even if it is from their memories. It is sad that a display device cannot distinguish between sixteen basic colors.

Reply 319 of 457, by jal

User metadata
Rank Oldbie
Rank
Oldbie
Great Hierophant wrote:

"of all the primary colors, the CGA can't show brown or any decent substitute for it."

Just to nitpick: brown is no primary color (only red, blue and yellow are), it is not even a secondary color (purple, green, orange), but a tertiary color. At least that's what I remember from my (long gone) schooldays...

JAL