[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