[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Apple II colors (was: Apple IIe power...)
Pim Blokland wrote:
>
> Jonathan Schattke wrote:
> >
> > Well, technically, Hi-res can display all 16 colors of lo-res.
>
> I'd like to see you do that! My record is 12, and I haven't been able
> to produce more, unless it was with dithering (i.e. displaying
> different colors on odd and even lines).
>
> > Half-pixels could be made on byte boundaries by changing the hi bit of the
> > adjacent bytes, allowing the display of
> > Dk Green
> > Dk Purple
> > Brown
> > Dk Blue
>
> This for instance, is not possible: there are only two positions in
> which you can put a half pixel (odd and even), so that you cannot get
> dark green and dark red (purple). Only brouwn and dark blue are possible.
> Unless you know something I don't. Show me!
HCOLOR=3
HPLOT 0,0 TO 0,10
HPLOT 1,11 TO 1,20
HPLOT 6,11 TO 6,20
HPLOT 13,0 TO 13,10
HCOLOR=4
HPLOT 13,11 TO 13,20
HPLOT 20,0 TO 20,10
Shows that what you say is indeed the case, you cannot display the dim purple
and dark green.
Here's why:
Every pixel is passed through the same colorburst circuit, which does not care
about what type of mode the system is in (if it is on).
This circuit has 4 base states, oscillating between mgnta, blue, green, and
orange. When a pixel is sent in, it will get the color of whatever the circuit
is currently ready to display. Each of the 4 states has 8 colors, depending on
what bit pattern is being sent through:
0000 Black
1000 Dim color
1100 Normal color - hi-res mode colors
1010 Tinted grey
1110 Bright Color
1011 Mix of Dim Color & Color +2
1101 Bright Mix of Color & Color +3
1111 White
So, for Magenta, the first color, the resulting colors would be:
0000 Black
1000 Magenta
1100 Purple
1010 Purple tinted grey
1110 Bright Purple
1011 Magenta + Green = Yellow
1101 Purple + Orange = Pink
1111 White
The Low-Res generator stuffs the bit buffer with the nybble being displayed:
those possibilities are:
0000 Black
1000 Magenta (Base)
0100 Dark Blue (Base)
1100 Purple
0010 Dark Green (Base)
1010 Grey 1 - purpleish/Green fringes
0110 Blue
1110 Light Blue (Blue mixed with some magenta)
0001 Dark Orange
1001 Orange
0101 Grey 2 - orangish/blue fringes
1101 Pink (Purple with some Orange Added)
0011 Green
1011 Yellow (Green with some purple)
0111 Aqua (Green with some blue)
1111 White
Some colors are missing from this table, but the patterns normalize to these 16
colors. The Color finges on the lo-res screen are artifacts of the colors
turning on in sequence and/or nor being off yet.
In the original Hi-Res mode, a pixel made 2 bits come on, so the typical
possibilities were:
0000 Black
1100 Purple
0110 Blue
0011 Green
00011=1001 Orange
1111 White
However, when a shifted bit is on a byte boundry, if the next byte did not
match, things would be odd:
0100 Dark Blue
0111 Aqua
0001 Dark Orange
000111=1101 Pink
Also, certain effects happen when you have a normal byte followed by a shifted
byte: the last normal pixel stretches another 1/2 pixel:
1110 Lt. Blue
00111=1011 Yellow
So, the colors which can be displayed staticly on the Hi-res screen are:
0000 Black
0100 Dk. Blue
1100 Purple
0110 Blue
1110 Lt. Blue
0001 Brown
1001 Orange
0011 Green
1011 Yellow
1101 Pink
0111 Aqua
1111 White
Dim Purple, Dark Green and both Greys are not availiable. And that is 12, as
you note.
--
\ /\ / If you aren't happy,
VVizVVom - Wandering Kernel of Happiness it's not my fault.
~~~> homepage at http://pages.ripco.net/~wizwom/ <~~~