Недавно всё у себя переделал. Раньше вообще выпадал из основной
программы, пока не закончу с модемом. Теперь по каждой посылке в
модем по прерываниям в буфер приходит ответ. Смотрю, что всё
пришло, разбираю и шлю новую посылку. Зачем здесь "кольцевой"
буфер? Всё равно каждая следующая посылка зависит от ответа на
предыдущую. И там - ветвление. Да, сразу не понял. В принципе
большинство простых ответов заканчиваются "ОК" и CR,LF. Но есть
масса ответов со смыслом, где есть "+" и параметры. Там надо строку смотреть. Я везде использую маски типа - "+FTPGET: 1,1". Получив, вижу изменение режима модема.