bdosptr

 Функция            Доступ к системным вызовам DOS.

 Синтаксис          #include 
                    int bdosptr(int dosfun, void * argument,
                                    unsigned dosal);

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

 Описание           bdosptr обеспечивает прямой доступ ко многим сис-
                    темным вызовам DOS. Описание всех системных вызо-
                    вов вы найдете в документе "Справочное руководст-
                    во по DOS".

                    В системных вызовах, требующих целый аргумент,
                    используйте функцию bdos; если в качестве аргу-
                    мента они требуют указатель, то используйте функ-
                    цию bdosptr.

                    Для моделей данных large (compact, large, huge)
                    предпочтительнее использовать для системных вызо-
                    вов функцию bdosptr вместо bdos с адресным указа-
                    телем в качестве аргумента.

                    dosfun описан в документе  "Справочное  руководство
                    по DOS".

                    В моделях данных типа small параметр argument в
                    bdosptr задает DX; в моделях данных типа large он
                    задает значение DS:DX, используемое в системном
                    вызове.

                    dosal является значением регистра AL.

 Возвращаемое       Функция bdosptr возвращает значение регистра AX
 значение           при успешном завершении и значение -1 при неудач-
                    ном завершении. При неудачном завершении устанав-
                    ливаются значения переменных errno и _doserrno.

 Переносимость      bdosptr уникальна для DOS.

 Смотрите также     bdos geninterrupt int6, int6x intdos intdosx

 Пример:

 #include 
 #include 
 #include 
 #include 
 #include 
 #include 

 #define BUFLEN 80

 int main(void)
 {
    char buffer[BUFLEN];
    int test;
    printf("Введите полный маршрут директории:");
    gets(buffer);
    test = bdosptr(0x3b,buffer,0);
    if(test)
    {
       /* в errno.h приведен список кодов ошибок */
       printf("Ошибка DOS, номер: %d\n",errno);
       exit(1);
    }
    getcwd(buffer,BUFLEN);
    printf("Текущая директория: %s\n",buffer);
    return 0;
 }