void _chain_intr(void(interrupt far *newintr)())
Эта функция не определена стандартом ANSI С.
Функция _chain_intr() предназначена, в первую очередь, для использования в резидентных (TSR) программах и обработчиках прерываний. Она используется для передачи управления от одного исполняемого в настоящий момент обработчика прерываний или TSR к другому. Адрес нового обработчика прерываний или TSR указывается в параметре newintr. Новый обработчик прерываний использует регистры, которые расположены в стеке, а не текущее состояние регистров на момент вызова функции _chain_intr().
Причина, почему функция _chain_intr() часто используется с резидентными программами, заключается в том, что она упрощает включение новых резидентных программ в цепь исполнения и запуск обработчиков прерываний.
В силу сложной природы резидентных программ и обработчиков прерываний мы не приводим соответствующих примеров.