[Coco] RGB to XGA (Bruce Borer)

Andrew Ayers keeper63 at cox.net
Wed Dec 24 04:40:59 EST 2025


Probably the "best" that I know of (if anyone knows of a better one, I'm 
all ears) is Chris Lomont's memory map.

https://www.lomont.org/software/misc/coco/Lomont_CoCoHardware.pdf

There's also this version - I'm not sure which version it is, though:

http://lomont.org/software/misc/coco/Lomont_CoCoHardware_2.pdf

As you can tell by either - there is a ton of "TODOs" and missing 
information. Some is stuff that just needs to be filled in and checked 
from other sources (?). Others may need deeper investigation. But the 
majority of useful stuff is all there.

Also check out the various "Unravelled" books - while these are more 
about the ROM contents and such, they can be helpful when used with the 
memory maps:

https://colorcomputerarchive.com/repo/Documents/Books/Unravelled%20Series/

Note that if you want to use them, you'll need all of them; also, the 
XLS (Excel) file is an update in some fashion, but I haven't delved into 
it much - I'm not sure how it is structured.

You need all of those books at hand because each (in each ROM 
disassembly) reference "labels" - and those labels could be in "earlier" 
(or "lower level") ROMs. For instance, Disk BASIC will reference stuff 
in Extended BASIC, which in turn will reference stuff in Color BASIC.

Each book is mainly interested in the BASIC ROM it has disassembled, and 
doesn't include those other ROMs. Also note that Super Extended BASIC 
can be tricky to understand in areas, due to how SECB does it's overlay 
and patching in the "All-RAM" mode that is native to the CoCo 3 (I know 
the CoCo 2 could be put into "All-RAM" mode, and I think the CoCo 1 
could as well - but the CoCo 3 boots into that mode; I don't recall 
off-hand, but I think there is actually a way to disable the mode on the 
CoCo 3 which probably clobbers things).

You might find the Color BASIC and Extended BASIC books useful for 
learning more about how the CoCo VDG stuff works, which the GIME in the 
CoCo 3 partially "emulates" (it doesn't handle all of the SG modes 
mainly that the CoCo 1/2 does.

I think the GIME supports everything else, but it also allows the 
changing of the palette for the SG and PMODEs - which is how, IIRC, 
those "composite emulation" mods for RGB monitors work; the mode is set 
for PMODE 3 (128x192x4-color mode) and the colors are changed to match up).

If that doesn't make sense, the explanation is that PMODE 4 is actually 
a monochrome mode (black and white or black and green); on a proper 
composite monitor with enough bandwidth, you only get the monochrome 
representation.

Color on TVs and lower-bandwidth composite monitors are achieved by 
putting black and white vertical stripes next to each other 1 pixel 
wide, with "even/odd" selection (so - black/white vs white/black); the 
pixel color transitions between "white" and "black" (two different 
voltage levels) "bleeds" over (due to lack of bandwidth) and shows 
different colors...depending on where the clock is in its phase for the 
chip, which is "random" at startup (for the 6847; it is -fixed- on the 
CoCo 3 and GIME!). Which is why PMODE 4 games say "press reset until 
screen is red" or whatever. This is why it is also called "artifact 
coloring" - because the colors are the result of an artifact of the 
hardware and NTSC color system being...well, crappy in a way (but was 
done that way to support and allow for b&w broadcasting to continue and 
be viewed on color TV sets, and for color broadcasting to be seen as 
black and white on those sets - a clever hack, I guess.

Anyhow - because of that "even/odd" spacing thing, horizontal resolution 
is effectively considered halved, so on the CoCo 3, switching the mode 
to PMODE 3 and changing the palette of the 4 colors in that mode can be 
done to simulate/emulate PMODE 4 colors on an RGB monitor.

With that said - what you see in PMODE 4 on an RGB monitor without that 
trick is actually how the mode is -meant- to be seen, at least according 
to the Motorola 6847 datasheet. Which is kinda a pity, because there 
were games on other systems that had similar limitations to their 
graphics, which used a different method (or simply because it wasn't 
NTSC) - and they couldn't use artifact coloring. Which led to a 
different way of doing things to give detail and such to graphics for 
games (dithering of black/white pixels, patterns, etc). It also led to 
(for the CoCo; not sure about the Dragon) software which was meant to 
use artifacting looking weird on (say) PAL televisions. Strangely 
though, there are some titles for the CoCo that were made to look decent 
on either video standard (IIRC, the one Walt Disney title was that way). 
Most though, either had strange "colors" (not at all what was meant) or 
were just monochrome (with colors showing as vertical stripes).

...and with all that, I will probably be ripped a new one by AllenH, 
because my descriptions and such are mostly wrong in a technical sense, 
because I'm not an engineer who worked with such systems intimately like 
he did (I don't mind, Allen - I know what I'm talking about isn't 100% 
right, but hopefully I do convey the intention and reasoning - so 
correct away if you can or must - when your arm is feeling better, 
perhaps!).

Andrew L. Ayers
Glendale, Arizona
phoenixgarage.org
github.com/andrew-ayers

On 12/24/25 12:57 AM, Bruce Borer wrote:
> Hi Andrew,
>      After reading your comments about 225 lines I searched and found 
> this site
> BASIC225 <https://nickmarentes.com/ProjectArchive/basic225.html>
> This will help me support 192, 200 and 225 lines.  But that will be in 
> the  new year.
> 
> Bruce


More information about the Coco mailing list