CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
bdosptr
bdosptr
Функция Доступ к системным вызовам DOS.
Синтаксис #include <dos.h>
int bdosptr(int dosfun, void * argument,
unsigned dosal);
Файл, содержащий dos.h
прототип
Описание bdosptr обеспечивает прямой доступ ко многим
системным вызовам DOS. Описание всех системных
вызовов вы найдете в документе "Справочное
руководство по DOS".
В системных вызовах, требующих целый аргумент,
используйте функцию bdos; если в качестве аргумента
функции требуют указатель, то используйте функцию
bdosptr. Для моделей данных large (compact, large,
huge) предпочтительнее использовать для системных
вызовов функцию bdosptr вместо bdos с адресным
указателем в качестве аргумента. В моделях данных
типа small параметр argument в bdosptr задает DX; в
моделях данных типа large он задает значение DS:DX,
используемое в системном вызове.
dosfun описан в документе "Справочное руководство
по DOS".
dosal является значением регистра AL.
Возвращаемое Функция bdosptr возвращает значение регистра AX
значение при успешном завершении и значение -1 при неудачном
завершении. В этом случае устанавливаются значения
переменных errno и _doserrno.
Переносимость bdosptr уникальна для DOS.
Смотрите также bdos, geninterrupt, int86, int86x, intdos, intdosx.
Пример:
#include <stdio.h>
#include <dos.h>
/* получение текущего устройства, как 'A','B',...*/
char current_drive(void)
{
char curdrive;
/* получение текущего диска, как 0,1,...*/
curdrive = bdos(0x19,0,0);
return('A' + curdrive);
}
main()
{
printf("Текущий дисковод %c:\n",current_drive());
return(0);
}
/* примечание пер. По моему это ошибка. В файле dop.aga приведен
пример, который использовался для данной функции в Turbo C++. */
