/**
*.Name      get_ddcb
*
*.Title     Получить адрес DDCB заданного диска
*
*.Descr     Функция возвращает адрес блока управления
*           устройством DOS DDCB
*
*.Proto     DDCB far *get_ddcb(int device_number)
*
*.Params    device_number - номер диска, для которого
*                           требуется получить DDCB
*                           Номер задается так:
*                           0 - текущий диск, 1 - В и т.д.
*
*.Return    Указатель на DDCB заданного диска
*
*.Sample    showddcb.c
**/

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

DDCB far *get_ddcb(unsigned char device_number) {

	union  REGS  inregs, outregs;
	struct SREGS segregs;

	inregs.h.ah = 0x32;
	inregs.h.al = 0;
	inregs.h.dl = device_number;
	intdosx( &inregs, &outregs, &segregs );
	if(outregs.h.al == 0xff) return(DDCB far *)0;

	return((DDCB far*)FP_MAKE(segregs.ds,outregs.x.bx));

}
