Порт - он последовательный. И опрос нужно делать так же. У Вас - блок записи никак не связан с чтением.
Грубый пример :
Код:
case step of
0:
читаем(...);
if читаем.complete then
...
step := 1;
end_if
1:
пишем(...);
if пишем.complete then
...
step := 0;
end_if
end_case
PS
А сингл или еще чего - побоку
PS
И чего вообще опрашиваете и чего хотите записывать ?