Цитата Сообщение от Alex_K Посмотреть сообщение
А исходники можно ? А то так ничего не понятно.

---------- Post added at 17:32 ---------- Previous post was at 17:30 ----------

И кстати. На реальном УКНЦ работает без проблем?
Нет, исходники нельзя) Это набросок. Да и не поможет вам исходник, т.к. там просто идет перебор всех комбинаций сдвига, и в какой из них ошибка - выявить невозможно, т.к. финальное число - это сумма всех предыдущих.

На реальном работает.

Да я вам и так скажу, почему ошибка.
Счетчик сдвига - это 6-битное число со знаком -32..31.
Тогда как в эмуляторе делается следующее:

src |= (src & 040)?0177700:0;

Как мы видим, если знак отрицательный, то он расширяется в старшие биты. Тогда как если знак положительный, то ничего не расширяется, а остается, как есть. Т.е. все биты 6..15 будут такие, как в операнде источнике.

Попробуйте поставить перед этой строкой такую, может заработает:

src = src & 0x3F;