Welcome to the "Colour PET" Project Page! For a long time I have been facinated by reading some of the history of Commodore and their secret projects. One in particular is the prototype Colour PET, said to be a hack of an existing PET computer, with a third-party colour monitor perched on the top. I've always wondered how it was done, and what it would take to duplicate it. I suppose no one will really know exactly how it was done, but this project will be an attempt to create a Colour PET along the same lines.

Theory of Operation

Commodore PETs run at 1MHz. This is fast enough to do 40 column video. In order to make an 80 column PET, they had to come up with a trick. What they did was wire up two blocks of video ram in parallel. The CRTC controller accesses the two bytes at the same time, latches the data and then displays out each byte one after the other. The "Universal Dynamic PET" motherboard has jumpers to allow either 40 or 80 column operation. For 40 column we have 1K video ram installed in the "EVEN" ram bank. For 80 column we have an additional 1K ram in the "ODD" bank for a total of 2K video (80 x 25 = 2000 bytes).

My idea will be to jumper the board as 40 column, but still have both ram banks filled. This will mean the "ODD" bank of ram will be installed but not accessed for 40 column mode. We are going to use this ram as our colour ram. Now we have to decide how to use these 8 bits of colour info. We also have to keep in mind what type of Monitor we ultimately will need to use to display the final output. We have 8 bits to work with. We could split the 8 bits into two 4 bit values, with one set for foregound and one for background. This would give us 16 colors, like the C128's VDC mode (3 bits for RGB colour, plus 1 for intensity) and we could use an RGBI monitor like the 1902. This would be a digital output. Or, more colours would be more impressive, so we could use all 8 bits, giving us 256 possible colours, using an Analog signal suitable for Amiga monitors like the 1084. One nice thing about PETSCII is that you get 128 unique characters plus the REVERSE of each, so effectively we can use the reverse character to get 256