Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11639
Последний выпуск: 19.06.2015

intdosx

[ Оглавление ]
               INTDOSX
              
               #include <dos.h>
               int intdosx(intno,inregs,outregs,segregs);
               union REGS *inregs;           значение  регистров  при
                                             вызове
               union REGS *outregs;          значение  регистров  при
                                             возврате
               struct SREGS *segregs;        значение  сегментов  при
                                             вызове

               Описание.
                
               Функция  intdosx  осуществляет выполнение системного вызова
         DOS, который определен значением регистра, объявленным в  inregs,
         и  возвращает результат системного вызова в outregs. В отличии от
         функции intdos, функция intdosx принимает значения регистров сег-
         мента в segregs, позволяя программам, которые используют сегменты
         данных большой модели или far-указатели, определить,  какой  сег-
         мент  или указатель должен быть использован на протяжении систем-
         ного вызова. Аргументы inregs и  outregs  являются  объединениями
         типа  REGS.Аргумент  segregs  является структурой типа SREGS. Эти
         типы объявлены в include-файле <dos.h>. Для активизации системно-
         го вызова функция intdosx выполняет команду INT 21H. Перед выпол-
         нением команды функция копирует содержимое inregs и segregs в со-
         ответствующие регистры. В segregs  используются  только  значения
         регистров  DS  и  ES. После возврата команды INT intdosx копирует
         текущее значение регистра в outregs и перезаписывает DS.
               Она также копирует статус переносимого флага системы в поле
         cflag, размещенное в outregs. Если это поле  является  ненулевым,
         флаг устанавливается посредством системного вызова и указывает на
         условие ошибки.
               Область  действия  функции intdosx расширяется и на область
         действия системных вызовов DOS, которые берут аргумент в регистре
         ES или значение регистра DS, отличное от  умалчиваемого  сегмента
         данных.
                  
               Возвращаемое значение.
                  
               После  завершения системного вызова функция intdosx возвра-
         щает значение регистра AX. Если поле cflag в outregs является не-
         нулевым, возникает ошибка и _doserrno также  устанавливает  соот-
         ветствующий код ошибки.
               См.также bdos, intdos, segread, FP_SEG.
                  
         
               Замечание!  Значения  сегмента  для  аргумента segreg могут
         быть получены либо при использовании функции segread, либо  макро
         FP_SEG.
      
               Пример:
      
               #include <dos.h>
               union REGS inregs, outregs;
               struct SREGS segregs;
               char far *dir = "/test/bin";
               /*следующий  оператор  заменяет  текущий рабочий директорий
         вызовом шеснадцатеричной функции DOS 36 */
                inregs.h.ah=0x3b;
                /* измененный директорий */
                inregs.x.dx=FP_OFF(dir);
                /* имя файла offset*/
                segregs.ds=FP_SEG(dir);
                /* имя файла сегмента */
                intdosx(&inregs,&outregs,&segregs);
      
      

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог