Значит, я мыслю верно, но туплю насчёт моментов нажатия и отпускания.
1. Определили нажатие кнопки.
2. Считаем счётчик. По достижении защиты от дребезга выставим информацию "Кнопка ХХ нажата"
3. Считаем дальше. Досчитали до какого-то значения, выставляем информацию "Кнопка ХХ нажата долго"
4. Определили отпускание. Ставим информацию "Кнопка ХХ отпущена".
Основная программа, как мне видится, должна работать так:
Найден флаг "Кнопка ХХ нажата" -> скинули флаг (чтобы не пройти это услвие второй раз), обработали реакцию на нажатие
Аналогично с "Кнопка ХХ нажата долго" и с "Кнопка ХХ отпущена".
То-есть, по моей логике получается три варианта флагов. Меня смущает само мышление - так вообще люди делают? Я могу завести тогда (пока мало кнопок) - три регистра, по числу кнопок, и в каждом битами ставить свои флаги?
З.Ы. Хм, а что такое 100 байт в масштабах меги 8?

Пока писал на АСМе, и никак не могу представить СИ в МК - он как-то тут неявно... в асме всё чётко - LDI Rx, 123. А в СИ это как-то непривычно.
В общем меня интересует именно обход последующих реакций "нажатия" на кнопку, если пользователь её ещё не отпустил.
При этом скан у меня идёт по таймеру. Вот я и думаю в направлении флагов - после обработки реакции на нажатие флаг сбрасывается.