disable

 Функция            Запрещает прерывания.

 Синтаксис          #include 
                    void disable(void);

 Файл, содержащий   dos.h
 прототип

 Описание           Данная макрокоманда разработана с целью обеспе-
                    чения программистов гибким средством контроля над
                    прерываниями на физическом уровне.

                    Макрокоманда disable делает прерывания невозможны-
                    ми. Разрешено только прерывание NMI с внешнего ус-
                    тройства (немаскируемое прерывание).

 Возвращаемое       Нет.
 значение

 Переносимость      Данная макрокоманда уникальна для архитектуры
                    8086.

 Смотрите также     getvect enable

 Пример:

 /* Замечание.
    Это программа обработки прерывания. Вы не сможете откомпилировать
    эту программу с включенной  проверкой  переполнения  стека  (Test
    Stack Overflow - On) и получить правильно работающую программу. */

 #include
 #include
 #include

 #define INTR 0X1C  /* прерывание таймера */

 void interrupt (*oldhandler)(void);

 int count=0;

 void interrupt handler(void)
 {
    /* запрет других прерываний во время обработки этого */
    disable();
    /* увеличение глобального счетчика */
    count++;
    /* разрешение прерываний после обработки */
    enable();
    /* вызов старой программы обработки */
    oldhandler();
 }
 int main(void)
 {
    /* сохранить старый вектор */
    oldhandler = getvect(INTR);
    /* записать новый вектор */
    setvect(INTR,handler);
    /* цикл, пока счетчик не достигнет 20 */
    while(count < 20)
       printf("счетчик = %d\n",count);
    /* восстановить старый вектор */
    setvect(INTR,oldhandler);
    return 0;
 }