Reply 320 of 329, by Jo22
- Rank
- l33t++
BitWrangler wrote on 2024-07-16, 17:44:rmay635703 wrote on 2024-04-16, 21:49:The frustrating aspect of CGA is that it had a leftover 384bytes of ram that was used for very little […]
Jo22 wrote on 2024-02-20, 11:37:Thanks, I admit I have a bit of a love/hate-relationship with CGA. One one hand, I love to tinker with it, while simultaneously […]
Thanks, I admit I have a bit of a love/hate-relationship with CGA.
One one hand, I love to tinker with it, while simultaneously wished there was "more".
There were missed opportunities so to say.Like a 4 colour mode for 640x200 resolution or a 640x400 mono mode.
Both would have helped at increasing the level of detail in games back in the day.Ok, strictly speaking, such CGA modes do exist!
..just not for official IBM CGA. 🙁640x200 4c is being part of Plantronics and Tandy/PCJr, which are "Super CGAs" of some sort.
Plantronics has full 32KB of RAM, for example.
The full RAM expansion that IBM CGA should have had from very start.I'm saying this because IBM CGA uses 16KB of RAM, but has an 32KB wide framebuffer slot.
Ie, it uses 16KB for graphics data, but it's being doubled (the cause was incomplete address decoding, I assume. A hardware bug).
Some games/applications may even depend on that mirror copy, not sure.The frustrating aspect of CGA is that it had a leftover 384bytes of ram that was used for very little
At a minimum IBM could have had all 4 colors palletized into the 16 available allowing for pallette rotation and other tricks but they instead used a strange selection of very limited fixed pallets with only the background selectable.
384 bytes (which conviently align pretty well to rows) is enough to have a full 192 pallet changes per screen (without extra cpu overhead)
Even with 4 colors out of 16
if 192 of the 200 lines vertical resolution could be palletized independently would allow for some amazing effects despite the per line limitation.Lots of possibilities if ibm would have been motivated to make their hardware as flexible as possible within the limitations of the time.
Maybe 50 cents of added cost would have made CGA much more user and programmer friendly CGA had more logic than it needed, streamlined for functionality it could have been much more interesting
I think there was a lot of first rodeo with the video chip and get it out the door before New York cancels it stuff going on. They did try a lot harder with EGA
Hm. Since we can't change the CGA logic postmortem, maybe the extra memory can be used to hold header information, at least?
I know this isn't necessary, because a dump of CGA video memory on disk isn't being limited to same filesize as physical bideo memory.
But it would be acceptable "filling material", maybe.
Provided that it doesn't cause any visual much distraction on screen.
Because, having a clean 16 or 32 KB memory dump including all header information might be nicer than dealing with odd numbers.
Or maybe we can change CGA circuit a bit, postmortem?
I mean, if the vintage computing community comes to a consensus, maybe a fix for IBM CGA board could be designed after all those years? A CGA 2.0?
To get away with certain design choices that caused issues or unnecessary limitations?
640x200 4c mode? More palettes?
It should be something that's well documented and applicable to CGA clones, too.
Some sort of revised CGA specification, which in 99% of applications doesn't break compatibility.
It would need time, I suppose. It shouldn't be rushed, considering the historical relevance.
These are just some thoughts, of course.
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel
//My video channel//