C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 disable / d / Библиотечн. функции Borland C++

disable

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

Синтаксис          #include <dos.h>
                   void disable(void);

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

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

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

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

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

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

Пример:

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

#include<stdio.h>
#include<dos.h>
#include<conio.h>

#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;
}