[Coco] 256 color mode update

Robert Gault robert.gault at worldnet.att.net
Sun Sep 30 00:33:47 EDT 2007


Nickolas Marentes wrote:
> I have updated my website with some additional information regarding 
> this mystery.
> 
> Don't get excited, it's still a mystery. I just want to inform the CoCo 
> community of any possible hints towards solving this mystery.
> 
> Go to  my 256 color mode page at....
> 
> http://members.optusnet.com.au/nickma/ProjectArchive/256mode.html
> 
> ... and read the additional sections titled "Palette Bypass Found?" and 
> "The Motorola R.M.S. Chipset. Precursor to the GIME?"
> 
> The first article is courtesy of Robert Gault.
> 
> Nick Marentes
> 
> 
> 

That is actually info from an e-mail message and as such was not proof 
read as carefully as it might have been. The lines
" The above data applies when $FF90 is set for Coco3 %1xxxxxxx. What I 
have found is that when $FF90 is set for Coco1&2 %0xxxxxxx, the above 
table for HRES has different meanings."
are backwards and should read
" The above data applies when $FF90 is set for Coco3 %0xxxxxxx. What I 
have found is that when $FF90 is set for Coco1&2 %1xxxxxxx, the above 
table for HRES has different meanings.

Further as with most e-mail of this type, it is a snapshot representing 
my thinking with the data then available. That data was not sufficient 
to distinguish between all interpretations and I chose what I wanted but 
the wrong one.

  When in Coco 1&2 mode ($FF90=%1xxxxxxx) palettes $FFBA-$FFBB determine 
the PMODE4 screen colors. $FF9A determines the border color for all Coco 
modes.
  As PMODE4 is two color, each bit of a screen address determines the 
palette for that pixel. The original testing was made with $FFBA=$3F and 
$FFBB=0. The screen data in my test was controlled by the code loop
  clra
b@ ldx #disply
  adda #$11
a@ sta ,x+
  cmpx #$ffe0
  bne a@
  bra b@
  This loop was expected to change the screen rapidly with a variety of 
vertical stripes. In Composite mode this would yield artifact color and 
in RGB mode white and black stripes. However, what happened was a very 
slow flip between an all white or all black screen. I thought the 
palettes had been bypassed which at first glance seemed reasonable.
  Further testing where $33 (RGB yellow-green) was one of the colors 
proved that the palettes were still active even though there were no 
vertical stripes.

  The effect of HRES=1xx clearly corrupts ('86 GIME) how the video 
system responds to the screen data. How could one explain the lack of 
the vertical stripes for the above code? Eventually I realized that the 
extended delay in flipping between colors was a clue.  Strange as it 
might be, perhaps only two values of the 256 possible for each screen 
byte functioned!
  What actually happens is that all screen bits are ignored except for 
%1xxxxxxx. This can be proved if the above routine is changed to
  clra
b@ ldx #disply
  adda #$80
a@ sta ,x+
  cmpx #$ffe0
  bne a@
  bra b@
the screen rapidly changes between the two chosen colors.

The above effect of $FF99 can be negated with the video behaving 
normally as a PMODE4 screen if the SAM bytes at $FFC0-$FFC5 are set for 
DMA mode:
  sta $ffc1
  sta $ffc3
  sta $ffc5

===============

  Does this help with the search for the 256 color mode? Maybe not, 
although it does demonstrate a bug/feature of the '86 GIME.
  It does stress that regardless of our abilities in any field of 
endeavor, it is very easy to jump to the wrong conclusions when we have 
inadequate data.



More information about the Coco mailing list