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

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

int heof(int handle) {

	 union REGS reg;

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

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

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

	 intdos(&reg, &reg);

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

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

// Если флаг переноса сброшен в 0, ошибок нет.

	  if(reg.h.al == 0) return(1);
	  else return(0);

	 }

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

	 else return(-1);
}
