Michael J. Mahon wrote:
Wow--they needed more than a megabyte/second of video data? I guess if you have about the same resolution as an Apple II, but twice the color depth, then you do... The //c and following Apple II's got around this by providing another memory bank in parallel with the main memory bank.
The C64 mainly needed it for its text mode. Unlike the Apple, the character shapes reside within the Video chip's AND the CPUs normal memory map, are read over the normal address bus, and can be redefined by pointing a register to RAM instead of ROM.
So once every line of characters the CPU has to stop for 40 cycles, so that the character numbers can be read and stored. Then during the normal video cycles only the character shapes are read. Color numbers for the characters, on the other hand, are read in parallel from a special SRAM with its own addressing lines going to the video chip.
The Apple reads the character numbers on every line during its normal video access, and reads the character shapes in parallel from a ROM that's not visible to the CPU. Thus you have fixed character shapes.#
In multicolor hires mode, the same system is used to read a larger set of color registers (instead of the character numbers). Sprites (movable object blocks) are created with a similar process.
The C64 design is an improvement on the VIC 20. The VIC also uses changable character shapes, but because it doesn't stop the CPU it gets only those 22 (or 23?) super broad characters per line. No time to read more if you need to read both character numbers and character shapes with no more than 1MHz of bandwidth.
Of course redefinable characters made for very nice (and fast) building blocks of game backgrounds, and were used extensively in scroller type games. That's one of the reasons why there are so many scrollers for the Commodores and so few for the Apple.
-- Linards Ticmanis