[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Compare Apple II's and Commodore 64's Video



The C64 has only 64K and its unfair to compare a 128K
double-hires-capable Apple IIe/c/gs with it. So for the sake of
fairness we compare the standard Apple hires mode with the C64.

The Apple can only display 6 true colors (artefacts on certain
positions and under certain circumstances not counted) in 280 x 192.
The 2 other colors you mentioned are White2 and Black2 which are
practically identical to White1 and Black1.
There are certain wicked rules, however: You cannot, for example,
display two colors from different color groups in a single byte
(because of the color bit), two pixels together are always white and so
on. Finally, the "real" color resolution is only 140 x 192.

The C64 is a completely different beast, though the video memory is
nearly the same size.
The keyword here is the word "nearly"! Actually the C64 has two memory
areas for the display hardware:

One is the normal frame buffer. It is either 1KB (text modes) or 8 KB
(graphics modes). There are basically only two graphics modes: 320 x
200 with 1 bit (= 2 colors) per pixel and 160 x 200 with 2 bits per
pixel (= 4 colors). In the text modes you always have a 40 x 25 matrix
and 8 x 8 or 4 x 8 pixel characters (the latter is multicolored text
like in the old Ataris).

But how does the C64 achieve its 16 colors simultaneously?

Of course you can change color registers on scan lines to change colors
in certain vertical areas (like the old Ataris for example) but that is
not the trick.
The trick isn't its sprite capabilities either (though it had the most
advanced sprite hardware of its time: 24 x 21 pixels large with 1 bit
per pixel - but 2 sprites combineable giving 4 colors).

This trick is a second, 1KB large area of memory: The so-called
"Color-RAM".

You may have noticed that the C64 is capable of colored text (unlike
the Apple II and the 8-bit Ataris). I assume that the Color RAM was
integrated to give the C64 this color text capability but its also
active in the "normal" hires modes - a brilliant move (though probably
very simple to construct).

For each cursor cell in the 40 x 25 matrix (= 8 x 8 hires pixels each -
either in graphics mode or as a single character in text mode) you have
a byte which controls the background (4 bits = 16 colors) and the
foreground color (also 4 bits = 16 colors).

The video chip "mixes" the bit-data it fetches from the frame buffer
with this color-data from this specialized RAM (don't ask me for
details ;-)

This means, that you can display all 16 colors even in its highest
resolution of 320 x 200 in a single line - without complicated
interrupts and timings. If you use this capability intelligently you
can achieve great results.

All this with only a single additional kilobyte...  ;-)

In the first revisions of the C64 this Color-RAM was integrated with
two 2114 (1k x 4Bit) static RAM chips but in later revisions it was
integrated directly into one of the custom chips (interestingly *not*
into the video chip!). Hence its not visible any more on schematics of
newer revisions.

By the way: Schematics of the C64 motherboard and information on the
function and addresses are freely available on the net if you want to
study this.

bye
Marcus