Screen POKEs On The 64
I recently bought a second Commodore 64 and found that if you try to POKE a character to the screen, it won't appear. For example, POKE 1024,1 should put the letter A in the first position of the screen, but it doesn't. I took the new 64 back and got another one, but it had the same bug. My old 64 from December 1982 works OK. Has Commodore changed the design of the new units? If so, why not put an addendum in the user's manual? In the meantime, I've returned both defective 64s. Can you elaborate on these differences in the 64s?
Neil Hoover
Commodore has made design changes since the very first versions of the 64, but by no means is this a bug.
In the early versions of the 64, color memory was automatically filled with l's—the value for the color white. You could then POKE characters to the screen without worrying about the color.
In the newer versions of the 64, there is no default filling of color memory. When you POKE characters to the screen (locations 1024-2047) in the newer 64s, you also have to POKE values to the corresponding location in color RAM (bytes 55296-56319). For example, if you POKE 1025,1 (the second position in screen RAM) you also need to POKE 55297,x (the corresponding second position in color RAM). The x can be a value from 0 to 15, corresponding to the 16 character colors available on the 64.
It's good practice to always POKE color memory when POKEing screen memory. That way, your programs will run on any version of the Commodore 64.