[Coco] 256 color mode and the 210 Lines Per Field "bug"

Nick Marentes nickma at optusnet.com.au
Fri Apr 12 17:49:08 EDT 2013


I've been giving some thought to my long quest for the "256 color Mode" 
and have been giving some thought to a mysterious occurence that occurs 
with Register $FF99, the Video Resolution Register.

Before I go on, let me state my stance on this great mystery that has 
consumed so much of my time.

I believe that this mode was definately on the cards for the CoCo3 and 
consisted of providing a 512 color palette of which 256 were displayable 
at one time. This is documented in an official Tandy Research & 
Development document from the early stages of the CoCo3's development 
and can be read on my webpage at:

http://www.members.optusnet.com.au/nickma/ProjectArchive/256mode.html

I believe that the mode was available in the prototype board that Allen 
Huffman has. James has done a deep analysis of the prototype from photos 
and has identified a 512 byte prom near the video output area that could 
be a 512 color lookup table. Read his analysis at:

http://home.gate.net/~jdaggett/Coco3%20Prototype%20Pictures.htm

I don't believe it made it to the production GIME chips due to cost 
cutting and Tandy's marketing which stipulated that the CoCo3 was not to 
appear more capable than the more expensive flagship Tandy 1000.

According to information from a prominant Tandy executive at the time, 
the mode was operable in a kludgy fashion. The GIME chip designer 
apparently ran out of pins to make it work properly and had to reuse 
certain pins... that's his story.

So I now turn my attention to looking for clues to indicate that he did 
*try* to include such a mode.

A register which has had me intrigued for the last 10 years is $FF99, 
the Video Resolution Register.

This register controls the selection of color mode, horizontal 
resolution and... *Lines Per Field*. This is the vertical resolution set 
in bits 5 and 6 of $FF99.

This gives us 4 combinations which have been clearly documented in all 
Memory maps, including the CoCo3 service manual as 192, 200, 210 and 225 
scanlines.

Type in this program to see the results for yourself:

10 POKE &HFF99,0
20 GOTO 20

Nothing too exciting here. Just your normal 192 scanline VDG screen.

Now change the "0" POKE value in line 10 to 32.

This is your VDG screen in 200 scanlines. Since Basic only talks to 192 
scanlines, the extra parts displayed at the bottom is just memory data 
below the screen.

Now we'll skip 210 Line Per Field for now and jump straight to the 225 
by changing the 32 in line 10 to 96.

More data outside of the display area is brought in as we now display 
more scanlines.

Now for 210!

Change the 96 in line 10 to 64.

1 of 2 things will happen. Press BREAK at any time and run again, and 
again, and again...

You should see a pattern where you will get either an all black screen 
or the text will roll endlessly from beyond the top of the display to 
beyond the bottom of the display, beyond the borders.

So, what happened? It appears that the GIME has forgotten how to count. 
It doesn't know when to stop counting scanlines or it hasn't started 
counting scanlines so they generate endlessly.

It also appears to be displaying the entire memory of the CoCo3. If you 
watch long enough, you will see it repeats the pattern.

This works even if you alter the Lines Per Field in a GIME text or 
graphics mode.

What bugs me is why doesn't 210 work like the others? Obviously, the 
circuits can count and generate the other settings so why not 210? And 
this appears like a *major* bug or fault in the GIME. It wasn't even 
fixed in the '87 release of the GIME.

Could the 210 control lines have been re-routed elsewhere for something 
else? My informant said...

/"John Prickett ran out of pins to make it work so it reused some of 
them in while in the IRQ state."/

Could he have chosen the 210 to reuse it for something else? It would 
not be a major loss to have 210 not work. Most programs use the others 
instead and 210 seemed like a logical comprise to re-route for another 
purpose.

"/It could view 512K"

/View 512K? What does he mean by this? It certainly appears to be 
rolling through the 512K like it doesn't know when to stop.

And there are more mysteries to this 210 mode which adds to the 
confusion! I'll describe this in my next posting.

If anyone has ideas, theories, suggestions and especially answers, let 
us know!   :)

Nick Marentes
//





More information about the Coco mailing list