Сдвиг удобен для меня. Можно было бы кругу писать в массив, а потом, используя счётчик, как указатель текущего шага, извлекать нужные биты. Такое я трже рассматривал, но что-то у меня вышло путного. Зацепился я за идею со сдвигом, вроде всё очевидно, двигай, да читай с одних и тех же позиций (позиции разных контролирующих устройств разные, естественно).