Переменные объявляются как __no_init (считаем, что память не портится, диапазон критических проверяется), если код (сложный!) горячего старта обнаружен то состояние прибора не присваивается исходному, ну а в цикле вызов функции по индексу состоянию (+)