SYSP_COM.H
SYSP_COM.H
/* SYSP_COM.H - include-файл для примеров, приведенных в книге */
/** *.Name FP_MAKE * *.Title Макро для составления FAR-указателя * *.Descr Макро составляет FAR-указатель, пользуясь * значениями сегмента и смещения * *.Params FP_MAKE(seg,off) * seg - сегмент; * off - смещение * *.Return FAR-указатель seg:off **/
#define FP_MAKE(seg,off) ((void far *) \ ((((unsigned long) (unsigned)(seg)) << 16L) | \ ((unsigned long) (unsigned) (off))))
#pragma pack(1)
/* Идентификатор BIOS */
typedef struct _BIOS_ID_ {
char date[8]; unsigned reserve; char pc_type;
} BIOS_ID;
typedef struct _AUX_MODE_ {
union {
struct { unsigned char len : 2, // длина символа stop : 1, // число стоп-битов parity : 2, // контроль четности stuck_parity : 1, // фиксация четности en_break_ctl : 1, // установка перерыва dlab : 1; // загрузка регистра делителя } ctl_word;
char ctl;
} ctl_aux;
unsigned long baud; // скорость передачи данных
} AUX_MODE;
int aux_init(AUX_MODE *, int, int); // инициализация // асинхронного адаптера
void aux_stat(AUX_MODE *, int); // определение режима // асинхронного адаптера
void aux_outp(char, int); // вывод символа в // асинхронный адаптер
char aux_inp(int); // ввод символа из асинхронного // адаптера