Ну вот, Дим, накидал логику работы декодера, лежит
тут (ну, помимо функциональных клавиш и периодически включаемых функций, типа компрессора, которые на паровозе пока что не нужны).
Необходимые комментарии к файлу:
В DCC есть такая фишка (и в логике работы я этого не упомянул), что если пользователь поменял направление движения, то лок должен встать, как вкопанный)))