Continuation on bidirectional rotation counter

this must be frustrating for you. a 1400+ word response and two 250+ line pieces of code

but would you mind providing a more succint description of what you're trying to do ... rather than how you think to do it.

... looking over the code, what doesn't it do that you want?