3 comments

[ 0.25 ms ] story [ 14.3 ms ] thread
The Atari 2600's TIA made use of these pseudorandom counters, too, for the current horizontal raster position of sprites and other objects. As a result, the programmer couldn't set the position directly -- you'd have to wait for the counter to reach the desired value, then strobe a register that sets the position register (to the opaque pseudorandom value). You could then nudge it -8 or +7 pixels with yet another register.
A Johnson counter is often used in similar circumstances.

To count eight states

  0000 -> 0001 -> 0011 -> 0111 -> 1111 -> 1110 -> 1100 -> 1000 -> 0000
it would have to be a four bit register ABCD where A = B, B = C, C = D, and D = NOT A

It would be one more flip-flop but the counting logic would be free. A flip-flop has a NOT output. Decoding of the eight states are also simple:

  State 0000 is NOT A AND NOT D
  State 0001 is NOT C AND D
and so on. Notice the NOTs are free.