• Please review our updated Terms and Rules here

True CGA vs VGA card in CGA mode

It's even more weird that the MDA's character ROM includes both CGA fonts.

Too bad I don't got a PC... If I did, I could have dumped my norwegian version of the character ROM (from my MDA card) and then made a copy for my CGA card...

Maybe I'll also solder a 2-pin header to P3, but first of all, I need a 5153.
 
That'll do it :)

New version is 0.5a at http://www.oldskool.org/pc/cgacomp and it should report your system properly. I also added Tandy 1000 detection logic and also reduced memory requirements such that it should run on a 128KB machine quite comfortably.

Unless bugs are found, I plan to be done with this. Next two projects coming up are 1. that benchmarking/comparison program I keep threatening to write (going over my detection code was a nice refresher), and 2. a substantial rewrite of MONOTONE to make the program more practical and support the Tandy/PCjr chip.

I'll test it on saturday.

BTW, when running on new computers, the machine detection code gives a runtime error.
 
Oh, I'm sure M$ would have sold licenses for a machine-specific cassette BASIC to other vendors...in fact, they did...to everybody!
And I believe the generic MS-DOS GWBASIC (not requiring the IBM BASIC ROM) includes cassette commands... I know at least MOTOR works, since some programs used it to create sounds via the cassette motor relay on the PC's motherboard, such as a ticking clock, percussion in time to music, or if you toggle it fast enough (abuse!), a buzzing sound.
 
You are 100% right, the 5150 is more like half System 23 Datamaster

Taken from my histroy page:

[SIZE=-1]A 2nd very common myth is the IBM 5150 PC was designed from entirely “off the shelf” parts. That is also true to some degree. About half of the system was from the IBM system 23 Data master, such as the expansion bus, display, monitor, BIOS, floppy interface, keyboard and the other half of the system from “off the shelf” parts such as the floppy drives, all the software, BASIC in ROM, and Intel CPU. And some parts of the system were designed from “scratch” such as the motherboard.[/SIZE]

To back up the display copy of system 23 Check out this:
http://www.ibm5150pc.com/docs/lew_c.zip

Page 12 cover the Loma MDA Display. Loma is the codename for the System 23 data master. Pages 10 and 11 cover the color display in it's very early design stage! Those pages also cover all kinds of cool stuff!




But remember, IBM was reusing a lot of parts from the System/23 DataMaster in the PC, most noticeably the keyboard and the expansion bus slot design. I haven't found info to confirm this, but it is likely that the MDA specs were a direct copy of the DataMaster's internal display, with the addition of what we can guess was a project to add color capability that seems to have been 50% to 60% complete at the time it was cancelled in favor of a separate CGA board.
 
Last edited:
I'll test it on saturday.

BTW, when running on new computers, the machine detection code gives a runtime error.

Yeah, I don't plan on fixing that. I tested it successfully up to a 1.3GHz machine, I figure that's good enough.

Said benchmark, when I write it, has a very specific focus; for that focus, it doesn't make sense to support anything faster than a Pentium III.
 
Good news, the updated program detected my IBM CGA card, IBM PC and my Intel 8088 accurately. All I need do now is to try it on a real 5153.

Although it is more of a speed test than an adapter test, I would love to see one test that changes the background in mid-frame and another test that changes the palette in mid-frame.

Also, and it is not a favored test, I would really appreciate a small composite color test. Just a simple pattern for each color palette will do, such as the ones on the wikipedia page. Of course, it would not be complete without the option to cycle the background or foreground color, depending on the mode.
 
Last edited:
It still puzzles me that the interlace mode doesn't work on fixed-frequency RGB monitors, but it works perfectly fine on the equally fixed-frequency monochrome monitors.
 
Good news, the updated program detected my IBM CGA card, IBM PC and my Intel 8088 accurately.

Hooray for bugfixes! :)

Although it is more of a speed test than an adapter test, I would love to see one test that changes the background in mid-frame and another test that changes the palette in mid-frame.

Your wish is already granted: The horizontal retrace detect test (the one with the demoscene-ish transparent copper bar effect) changes the background color every single scanline. And yes, that took assembler :)

As for changing the palette mid-frame, a good test for that (if you have a real 4.77MHZ 8088 IBM) is California Games. Choose "more-color mode" from the video configuration menu and several parts (most notably the footbag event) change the palette mid-frame to stick 6 or 7 colors on the screen simultaneously. I have thought about using that trick to try to get 320x200 16-color pictures displayed, like C64 "FLI" pix... and also hack multiple pages to get C64 "IFLI"-like pix... maybe next year.

Also, and it is not a favored test, I would really appreciate a small composite color test. Just a simple pattern for each color palette will do, such as the ones on the wikipedia page. Of course, it would not be complete without the option to cycle the background or foreground color, depending on the mode.

I'll look into it, but the real "problem" (not really) is that composite mode can generate -- I'm not making this up -- over 100 unique colors depending on what the background color, foreground palettes, and some other regs are set to. So there really isn't one standard set of 16 colors.
 
It still puzzles me that the interlace mode doesn't work on fixed-frequency RGB monitors, but it works perfectly fine on the equally fixed-frequency monochrome monitors.

The book you told me about (which I then purchased and was surprised at the high volume of m6845 programming info, given that is a BASIC book) has a theory, that the very long phosphor times completely mask the interlacing flicker. I can buy that.

The same book also notes, however, that it is STILL useless on MDA because there's not enough RAM to display 80x50. So the book, as an example, programs a 40x25 mode in a column down the screen and then goes interlaced. So you get either 80x25 or 40x50... So it is still useless unless you have Hercules.
 
Now that I have my IBM 5153 and an original IBM CGA card, do you want me to run the tests and report them here or is it not necessary because we kind of already know the results ?

I can also tell you this:

CGA performance is much better with the original CGA card. Colors look perfect now.
(When I used the VGA card it was always cyan magenta white).

Performance speed-wise is better. Alley Cat is now fully playable, even in the fish-tank. (Don't get me wrong about this game, I's not my favorite game or anything, but I used it as an example because this is where the difference is really visible)

Leisure Suit Larry 1 shows up in B/W.
 
Last edited:
CGA performance is much better with the original CGA card. Colors look perfect now.
(When I used the VGA card it was always cyan magenta white).

A number of games (most of the Atarisoft ones for example) set the palettes by writing directly to 3D9h. Dig Dug actually looks better on VGA (color-wise) than CGA.

One other little thing is that I never cared for the way 40-column text looks on VGA (too horizontally-stretched). The CGA 40-column text is perfect.

Performance speed-wise is better. Alley Cat is now fully playable, even in the fish-tank. (Don't get me wrong about this game, I's not my favorite game or anything, but I used it as an example because this is where the difference is really visible)

Leisure Suit Larry 1 shows up in B/W.

All Sierra AGI games start up in composite mode, which of course appears as the normal 640x200 mode on a RGB monitor. You can switch to RGB mode in AGI games by pressing CTRL-R, but it's not pretty (red-green-brown on dark blue). Definitely use a composite monitor for Sierra games (anything pre-SCI, at least).
 
You can switch to RGB mode in AGI games by pressing CTRL-R, but it's not pretty (red-green-brown on dark blue). Definitely use a composite monitor for Sierra games (anything pre-SCI, at least).

Yeah, that's the shortcut. I did not remember that last night when trying it. I'll test it when I get home today :)
 
The book you told me about (which I then purchased and was surprised at the high volume of m6845 programming info, given that is a BASIC book) has a theory, that the very long phosphor times completely mask the interlacing flicker. I can buy that.
It's not just a theory. The Amiga features properly implemented 320x400 and 640x400 interlaced modes, and Commodore made several monitors with long-persistence phosphor specifically to make these modes tolerable to view.

Also, the MDA's 50 Hz refresh rate is already flickery enough on a monitor with short-persistence phosphor. Interlaced MDA at 25 Hz (!) would be downright seizure-inducing to view if the 5151 didn't have radar-scope-style looooong persistence phosphor.
 
The same book also notes, however, that it is STILL useless on MDA because there's not enough RAM to display 80x50. So the book, as an example, programs a 40x25 mode in a column down the screen and then goes interlaced. So you get either 80x25 or 40x50... So it is still useless unless you have Hercules.

Wrong. I tried it on a Hercules card, and it still wouldn't display 80x50 text. I thought that the Hercules could use it's extra memory in text mode, but it apparently can't.
 
As for changing the palette mid-frame, a good test for that (if you have a real 4.77MHZ 8088 IBM) is California Games. Choose "more-color mode" from the video configuration menu and several parts (most notably the footbag event) change the palette mid-frame to stick 6 or 7 colors on the screen simultaneously.

[snip]

I'll look into it, but the real "problem" (not really) is that composite mode can generate -- I'm not making this up -- over 100 unique colors depending on what the background color, foreground palettes, and some other regs are set to. So there really isn't one standard set of 16 colors.

California Games changes the palette more than once per scanline in some screens. On the skating screen, you can see every single intense foreground color (light cyan, light magenta, light red, high intensity white, light green, yellow) the CGA card could produce!

What I suggest regarding the color composite tests is to make the program draw the patterns that are shown in the wikipedia entry, then cycle them through each intensity and foreground/background color. Start with the black & white versions for greater effect.
 
What I suggest regarding the color composite tests is to make the program draw the patterns that are shown in the wikipedia entry, then cycle them through each intensity and foreground/background color. Start with the black & white versions for greater effect.
For compsite color mode, the most useful tool would be a pattern with predictable results to help adjust the color trimmer on the motherboard and the tint control on the monitor. (Some computers, such as the Tandy 1000 series, lack the internal color trimmer, so you just have to make do with the monitor's tint control.)

Also, even the standard non-artifacted 16 CGA colors show up differently on a color composite monitor versus a color RGBI monitor. For example, color 6 (brown) shows up as dark yellow (just like on "non-CGA-modified" older RGB monitors), and "cyan" shows up with more of a greenish hue, like aquamarine.
 
I'll test it on saturday.

BTW, when running on new computers, the machine detection code gives a runtime error.

I've now gotten to test it.

Here is what it's reporting:
Model: IBM XT
Processor: Intel 8088
Processor Speed: 4.77MHz
Display Adapter: CGA
BIOS: 1501512 Corp. IBM 1981 (11/08/82, Rev. 244)

Everyhting as expected (maybe except the Revision number). However, when run on my 486SX, it reports it as a 486DX or 487SX.
 
Now that I have my IBM 5153 and an original IBM CGA card, do you want me to run the tests and report them here or is it not necessary because we kind of already know the results ?

If the host computer is still the same, I am curious to see what the memory speed benchmarks show now, because IIRC your VGA card had substantially faster read and write times, which surprised me given that it was an 8088.

Leisure Suit Larry 1 shows up in B/W.

It's in composite color mode. Hit CTRL-R or equivalent to switch to CGA paletted rendering.
 
I've now gotten to test it.

Here is what it's reporting:
Model: IBM XT
Processor: Intel 8088
Processor Speed: 4.77MHz
Display Adapter: CGA
BIOS: 1501512 Corp. IBM 1981 (11/08/82, Rev. 244)

Everything as expected (maybe except the Revision number). However, when run on my 486SX, it reports it as a 486DX or 487SX.

The BIOS: string is just the ASCII string copied from your ROM, so if it says "Rev. 244" then it's rev 244 :)

As for the 486SX, do you have the 487 installed?
 
The BIOS: string is just the ASCII string copied from your ROM, so if it says "Rev. 244" then it's rev 244 :)
Strange. I've examined the BIOS dump, and I can't seem to find anything like that. I found the date and copyright, but not any revision number. I guess IBM didn't include revision numbers properly in the earlier BIOS'es before 1985.
As for the 486SX, do you have the 487 installed?
No. The 487SX socet is empty. The first versions of CGA_COMP wouldn't even run on it because it lacks a math coprocessor.
 
Back
Top