actually has the color from the second color RAM byte,
the second from the third, and so on. It’s not optimal but
it works. The second problem is the border now shows
phantom colors from characters on the screen. We will
need to blank the border, which can be done
by controlling the MUX output with the border
blank signal at UC1 pin 6 on the motherboard.
All of this hardware would be useless
without code to support it. Things like clearing
the screen, scrolling, inserting, and deleting
characters need to account for the color RAM.
Just printing characters needs to write to the
color RAM, plus we need some way to change
the foreground and background colors. We
need to initialize the CRTC controller properly,
and we probably want to change the sign-on
message. That’s a lot.
Early on, I started by patching things
manually and burning a new EPROM, but it
soon became apparent that this method was
very time-consuming and not very flexible.
The PET firmware consists of a KERNEL —
much like a PC’s BIOS — plus BASIC and, as
mentioned earlier, the EDITOR ROM. The
EDITOR ROM is responsible for all keyboard
decoding, interrupt handling for such things as
48 September 2015
FIGURE 5. ColourPET
FIGURE 6. First breadboard.