Ну вообщем то ни что не мешает писать на на Си или на Асемблере.
Еще при помощи диодов подвешенных на вход с прерыванием и любое на количество входов без прерывания, можно процедуре обработки расставить приоритеты и обработчики.
Пришло прерывание проверяем входы , если есть изменение на каком то входе то вызываем обработчик