На такие задачи можно посмотреть ТРМ151, ТРМ148