/**
*.Name      get_devi
*
*.Title     Получить информацию об устройстве
*
*.Descr     Функция получает информацию о файле
*           или об устройстве по его файловому номеру.
*
*
*.Proto     int get_devi(int handle, int *info);
*
*.Params    handle      - файловый номер (хендл) для
*                         которого необходимо получить
*                         информцию
*
*           info        - указатель на слово, в которое
*                         должна быть записана информация
*
*.Return    0          - если нет ошибок;
*           Код ошибки - если произошла ошибка.
*
*.Sample    show_di.c
**/

#include <stdio.h>
#include <dos.h>
#include "sysp.h"

int get_devi(int handle, int *info) {

	 union REGS reg;

// Заполняем регистровые структуры для вызова
// прерывания DOS INT 21h. Код используемой
// подфункции - 00h.

	 reg.x.ax = 0x4400;
	 reg.x.bx = handle;

// Вызываем прерывание

	 intdos(&reg, &reg);

// Проверяем флаг переноса

	 if(reg.x.cflag == 0) {

// Если флаг переноса сброшен в 0, ошибок нет.
// Записываем информацию по адресу *info

	  *info = reg.x.dx;
	  return(0);

	 }

// Если флаг переноса установлен в 1, возвращаем
// код ошибки

	 else return(reg.x.ax);
}
