Без сохранения информация будет потеряна,
Вся информация сохраняется во внутренней
области памяти и может быть получена с помощью функции COM_EVENT().
Без сохранения информация будет потеряна, т.к. регистры и флаги,
отмечающие прерывание, при чтении автоматически сбрасываются.
Код клавиши, заданный параметром <nKeyValue2|cKeyValue2>, позволяет
отслеживать процедурой, заданной Clipper-командой SET KEY TO,
заполнение буфера приема на 75% или более. При этом в буфер клавиатуры
не будет помещаться код, заданный параметром <nKeyValue1|cKeyValue1>
при получении символов в буфер приема. Отслеживание изменений
состояний MSR и LSR при этом продолжается.
Примечания
. MSR (Modem Status Register) - регистр состояния модема. LSR (Line
Status Register) - регистр состояния линии.
. Состояния различных интерфейсных регистров объединяются во
внутренней памяти при "обслуживании" события новым вызовом данной
функции. Это означает, что произошедшие в это время изменения не будут
потеряны.
. Функция должна повторно вызываться после каждого выполненного
прерывания, при этом производится сброс информации, накопленной во
внутренней памяти.
. Отслеживание заполнения буфера на 75% производится независимо от
вызова функций COM_SOFT() или COM_HARD().
Примеры
. Процедура COMERRORS() вызывается при помещении в буфер клавиатуры
символа CHR(227), если портом 2 будет обнаружена ошибка или изменится
состояние сигнала модема. При заполнении буфера приема на 75% или
более, в буфер клавиатуры помещается CHR(228) и вызывается процедура
BUFFERFULL():
#include NT2COM.CH // Определения символьных
// констант для интерфейса.
COM_OPEN(2, 1000) // Открытие порта 2
COM_INIT(2, 1200, "N", 8, 1) // Инициализация порта 2
SET KEY 227 TO ComErrors