Ethan Dicks wrote:
Were there any versions of the 6522 (65C22?) that had
the shift
register bug fixed?
Yes. Some, but not all, of the CMOS variants fixed the issue. You
can't count on a part marked 65C22 as having the fix; you have to check
the datasheet for the specific manufacturer and part number.
Note that the issue isn't really a bug in the strict sense. According
to Synertek application note AN5, the problem occurs when the rising
edge of CB1 occurs less than 100 nanoseconds before the falling edge of
Phi2. If you look at the NMOS 6522 datasheet (eg, Rockwell R6522), the
AC specifications give a parameter tSR3, "External Shift Clock (CB1)
Setup Time Relative to Phi2 Trailing Edge" with a minimum of 100 ns.
This is illustrated in Figure 31g "Timing for Shift in with Internal or
External Shift Clocking". Thus the problem only occurs when the
specifications for the part are violated.
Another "bug" people claim that the 6522 had was that registers could be
corrupted if the register select inputs changed while Phi2 was active,
even if the chip was not selected. This caused problems with using the
6522 in 68000 systems. Changing the register select lines with Phi2
active violates the tACR, tCAR, tACW and tCAW specs of the part, so it's
not a true bug.
Eric